原文链接
https://zhuanlan.zhihu.com/p/1899127131549733019
概述
什么是Agent
“Agent”的定义方式并不统一,有的人将其视为完全自主系统,能在较长时间内独立运行,使用各种工具完成复杂任务。也有人认为Agent是更加固定、预定义的工作流。Anthropic将这些都归为类Agent系统,并对智能体和工作流的概念做了重要区分。
Workflow v.s Agent
Workflow | Agent | |
---|---|---|
定义 | 通过预定义流程编排LLM和工具的系统 | LLM动态决定自己的处理过程和工具使用的系统 |
适用范围 | 可预测和定义解决步骤的问题 | 无法预先定义解决步骤的问题 |
优势 | 稳定、准确、可预测 | 解决没有固定流程的开放性问题 |
劣势 | 为准确性牺牲了解决问题的延迟 | 成本高、问题解决成功率有提升空间 |
类Agent系统设计模式
增强型LLM模式
类Agent系统最基础的模块是对LLM的能力进行增强,即通过检索、工具调用记忆等模块装备LLM。Anthropic当前模型能够主动调用这些功能——生成搜索查询、选择合适工具以及确定需要记忆的信息。
工作流模式
提示链
提示链模式将任务分解为一系列有序的步骤,每个LLM可以调用和处理前一个调用的输出。在该模式中,可以通过在中间任何步骤中添加程序检查(门控单元)来保证相关流程一直处在正确的轨道上。
该模式通常适用于:
- 任务可以被清晰的分解为固定子任务时
- 任务允许通过牺牲时延来提高准确度,使得每个LLM调用处理更简单的子任务
该模式的常见应用包括:
- 生成营销文案,并将其翻译为不同种类的语言。
- 编写文档大纲,检查大纲是否符合特定标准,然后基于大纲撰写文档。
路由
路由类工作流对输入条件进行分类,之后将其引导至后续任务中。这种工作流实现关注点分类,并且能够构件更加专门化的提示。不使用路由时,为某一类输入优化可能降低其他类型输入的处理效果。
适用场景
- 复杂任务可以拆解为不同类别,且需要针对每一类别进行单独处理
- 分类路由可以由LLM或者传统分类模型/算法准确完成
应用案例:
- 引导不同类型的客户服务查询(咨询类问题、退款类问题、技术支持类问题等)进入不同的下游处理流程、提示和工具。
- 将简单/常见问题路由到较小模型解决,将困难/不常见的问题路由到能力更强大的模型解决,从而优化成本及响应速度。
并行化
顾名思义,并行化工作流让LLM同时处理多个任务,并通过程序化的方式聚合任务输出。并行化工作流分为两种关键形式:
适用场景:
- 当拆分成子任务后,子任务可以并行处理来提高速度时
- 需要多次尝试或从不同的视角进行分析,从而获得置信度更高的结果时
- 执行复杂任务需要考虑多种因素时,由独立LLM调用分别处理各因素效果更佳。
编排者-工作者
在编排者-工作者的工作流模式中,编排者(LLM)进行动态的任务分解,将其委派给工作者LLM,并综合其结果。
适用场景:
- 适合无法预测所需子任务的复杂任务。
- 与并行化的关键区别在于其具备更高的灵活性。在编排-工作模式中,子任务不是预定义的,而是由编排者根据任务输入动态确定的。
应用案例:
- 需要对多个代码文件进行编辑的编码项目
- 涉及从多个来源收集和分析信息的搜索类任务
评估-优化
在评估-优化模式中,一个LL调用生成响应,而另一个在循环中提供评估和反馈。
适用场景:
- 有明确的评估标准,且迭代优化能够提供可量化价值的场景,例如:人类反馈能明显改进LLM的响应质量;LLM本身能够提供类似人类的有效反馈。
应用案例:
- 文学翻译:初译(生成)->评估细微差别->根据反馈优化->循环直至达标
- 复杂信息搜索:初步搜索(生成)->评估完整性->指出信息缺口->补充搜索->循环至完整
完整Agent模式
Agent设计要点
随着大模型在理解复杂输入、规划推理、工具使用以及错误恢复等核心能力的成熟,智能体开始逐渐被应用于生产环境。典型的智能体工作流程为:
- 启动阶段:接收用户命令或通过交互确定任务
- 规划阶段:任务明确后独立规划操作,必要时向人类进行反问,获取更多信息
- 环境感知:每步骤从环境中获取“基础事实”,例如工具调用结果或代码执行结果。从而评估任务进展
- 反馈循环:在检查点或任务执行遇到障碍时,暂停执行流程,等待人类反馈
- 任务终止:通常在完成时终止,包含停止条件(如最大迭代次数)以保持控制
智能体可以处理复杂任务,但其实现通常很直接,本质上是在循环中基于环境反馈使用工具的LLMS。因此,为了充分发挥智能体的效果,需要构建清晰且合理的工具集以及对工具集的说明文档。工具集和说明文档的质量将直接影响智能体的成功率和速度,体现在:
- Agent选择合适工具及调用顺序的能力
- Agent正确填写工具参数的能力
- Agent有效利用工具结果的能力
Agent适用于解决开放性问题,例如:1)难以或者不可能预测所需步骤数量;2)无法硬编码固定解决路径。在这类场景中,llm需要进行多轮循环,选择对应的操作。人类需要对其决策过程保持一定信任度。
需要注意的是,Agent自主决策意味着:1)可能产生更高成本;2)存在错误累积的潜在风险。
建议用户在实际部署前于沙盒环境中进行严格测试,并设置适当的防护措施以应对可能出现的幻觉问题。
Comments 1 条评论
符合规范