动手学agent应用开发笔记_task01
Agent应用开发的核心概念与架构解析:目前业界对Agent尚无统一定义,OpenAI将其定位为能长期自主执行任务的智能体,而吴恩达则提出"agentic"概念强调渐进式智能属性。Agent系统主要分为两类架构:1)工作流系统,通过预定义路径编排LLM和工具,适用于步骤明确的任务;2)自主智能体系统,具备动态决策能力,适合开放性问题。工作流系统包含提示链、路由、并行等多种模式,
动手学agent应用开发笔记_task01
本文来自于datawhale动手学Agent应用开发学习笔记,大部分内容为课上PPT。感谢datawhale和鲁力老师的讲解
一、什么是agent,agent的定义
什么是agent,这个现在没有一个统一规范的定义。以下给了一些比较权威的公司或者大佬对agent的定义。
OpenAI的AGI五级分类:
Level1:ConversationalAI,仅限于语言对话,能力有限Level2:Reasoners,在专业领域能够独立推理,不需外部工具
Level3:Agents,能长时间自主行动执行任务
Level4:Innovators,产生新思路,推动科技突破
Level5:Organizers,能管理协调整个组织
前OpenAI研究副总裁,经典定义:
LangChain作者Horrison的定义:
Agent是一个使用LLM决定应用程序控制流的系统
“Thisfitsmytechnicaldefinition,butnotthecommonperceptionof whatanagentshouldbecapableof.It’shardtodefineexactly whatanagentis!”(这符合我的技术定义,却不符合大众对Agent能力的普遍认知。准确定义Agent确实困难!)
吴恩达定义agentic
与其讨论agent,不如讨论agentic:渐进的智能属性
吴恩达&Horrison:不必拘泥于“是否属于Agent”,而应关注其具备“agentic”的程度。
形容词“agentic”更能包容这个蓬勃发展的领域中各种形态的系统,更包容地接纳所有希望参与agent研究的人们。
二、Agentic System的架构划分
从架构上看,agentic system可以分为两大类系统:
1.工作流(Workflow):通过预定义代码路径编排LLM和工具
2.自主智能体(Autonomous Agent):LLM动态控制决策和工具使用,自主规划任务
这两者特点的对比:
(1)工作流侧重流程固定和可预测性
(2)自主智能体侧重灵活性与自我决策
适用场景
首先,有些场景(比如DeepSeekApp中的聊天对话)可能完全不需要agenticsystem 当确实需要复杂方案时,才会考虑工作流或者自主智能体:
1.工作流适用于任务明确、步骤可预定义的场景
2.自主智能体适用于任务步骤难以预知、需长期自主规划的场景
对很多场景,通过RAG(检索增强生成)和prompt优化可能已足够。
增加系统复杂度往往伴随延迟和成本,需权衡利弊!
三、Agentic System组成模块
3.1基础构建模块:增强型LLM
智能体系统的基础是具备检索、工具使用和记忆能力的增强型LLM
1.复杂应用使用的模型能力都是基于API,建议一定要搞清楚大模型接口逻辑
2.开发时建议优先直接使用API,只在必要时借助高级框架
3.2工作流(Workflow)的常见模式:提示链Prompt Chaining
1.按顺序拆分任务,每一步由LLM生成内容
2.可以在任意中间步骤添加程序检查(见下图中的“gate”)以确保整个过程依然按计划执行场景示例:
3.先生成市场营销文案,再将其翻译成另一种语言。
4.编写文档提纲、检验提纲是否符合某些标准,然后再根据提纲写出完整文档。
3.3工作流(Workflow)的常见模式:路由Routing
1.根据输入分类,分配给专门的后续任务
场景示例:
2.不同类型的客户服务请求(常见问题、退款请求、技术支持)进入不同的后续流程、提示词及工具。
3.将简单/常见问题路由给较小的模型,将困难/罕见问题路由给更强大的模型,以优化成本与速度。
3.4工作流(Workflow)的常见模式:并行parallelization
同时执行多个任务,然后将它们的输出聚合在一起,有两个主要变体:
1.分段(Sectioning):将任务划分为可以并行运行的独立子任务。
2.投票(Voting):对同一任务进行多次执行,从而获得多样化的输出,以进行对比或投票。
场景示例
1.(分段)并行内容审核与主任务处理:一个模型实例负责处理用户查询,另一个模型实例同时对查询进行不恰当内容或非法请求筛查。
2.(投票)评估某段内容是否不当:多个提示从不同角度评估,或设定不同的投票阈值以平衡误报与漏报
3.5工作流(Workflow)的常见模式:协调者-工作者Orchestrator-Workers
1.协调者拆解任务
2.工作者专注子任务
拆解的子任务是不可预知的。与并行不一样
场景示例:
1.多文件代码修改:每次都需要对多个文件进行复杂改动的编程产品。(示例vibe coding)
2.多源信息搜索分析:在多源信息中搜索并分析可能相关的信息来完成搜索任务。
3.6工作流(Workflow)的常见模式:评估-优化循环Evaluator-Optimizer
1.一个LLM生成输出
2.另一个LLM进行反馈和优化
3.反复循环
场景示例:
1.文学翻译润色:一些细微的语言差异可能在初稿中并未充分体现,而评估者LLM可以指出这些不足并给出改进意见。
2.复杂搜索任务的多轮优化:需要多轮搜索和分析以收集全面信息,由评估者判断是否需要进一步搜索。
3.7自主智能体(AutonomousAgent)
1.执行过程中获取环境真实反馈(例如工具调用的结果或代码执行情况)2.支持人工检查点干预(可在检查点或遇到阻碍时暂停,等待人类反馈)
3.设置终止条件(任务通常在完成时终止,但也常常设置停止条件(如最大迭代次数)以保证不会无休止运行)
适用场景:适用于开放性问题,即当任务步骤数量难以预知或无法预先固定时。
在基于LLM的自主智能体系统中,LLM充当智能体的大脑,需结合以下关键组件:
1.规划模块
(1)子目标拆解:将复杂任务分解为可管理的子目标
(2)反思优化:通过自我评估改进执行策略
2.记忆系统
(1)短期记忆(上下文)
(2)长期记忆(外部存储)
3工具使用:获取预训练模型外的实时信息与功能扩展
四、国内外有哪些Agent平台、框架、产品
全代码框架
1.LangChain& LangGraph(开源)
2.Llamaindex
低代码
毕昇
Dify
Coze
FastGPT
低代码workflow产品设计的思考
1.独立、完备的流程编排框架
(1)不简单是一个被bot调用的工具
(2)不需要划分出chatflow和workflow
2.Humanintheloop特性:中间过程支持灵活的输入/输出和多样
化的人机交互
(1)复杂业务场景需要人类与AI进行协作:人类也能参与执行过
程的判断和决策
3.节点之间是否支持成环?
(1)核心在于workflow执行引擎抽象出来后,到底是一个DAG(有向无环图)还是状态机?
(2)根据形式语言与自动机理论:支持成环能够更多范围的场景
更多推荐
所有评论(0)