本章基于 Anthropic 最新发表的《Building effective agents》总结,这篇文章主要记录 Anthropic 与在最近一年中与多个行业团队的合作经验,其中包含了 Agent 实施的最佳实践和实用建议。以下为文章核心内容:
agents 的定义和分类
- agents(智能体) 的定义
- 完全自主的系统:在扩展时间段内独立操作,使用各种工具完成复杂任务。
- 预定义工作流程的实现:遵循预定义的工作流程。
- agents(智能体) 与 workflows(工作流) 的区别
- Workflows(工作流):大模型和工具通过预定义的代码路径进行编排。
- Agents(智能体):大模型动态指导其自身的过程和工具使用,保持对任务完成的控制。
如何使用 agents ?
- 使用场景
- 复杂任务:当需要灵活性和规模化的模型驱动决策时,Agents(智能体)是更好的选择。
- 不使用场景
- 简单任务:当任务可以清晰分解为固定子任务时,工作流程提供了可预测性和一致性。
框架的使用
- 常用框架
- LangGraph:用于简化LLM调用、定义和解析工具以及链接调用的框架。
- Amazon Bedrock的AI Agent框架:简化代理系统实现的框架。
- Rivet:拖放GUI LLM工作流程构建器。
- Vellum:用于构建和测试复杂工作流程的GUI工具。
- 使用框架的建议
- 初学者使用LLM API:许多模式可以用几行代码实现。
- 理解底层代码:确保理解框架的底层代码,避免错误的假设。
构建blocks、workflows 和 agents
- augmented LLM(增强型大模型)
- 基本构建块:增强型LLM具有检索、工具和内存等增强功能。
- 关键方面:定制这些功能以适应特定用例,并确保为LLM提供易于使用且有良好文档的接口。
The augmented LLM
- Workflow(工作流)
- Prompt chaining(提示链):将任务分解为一系列步骤,每个LLM调用处理前一个调用的输出。
案例:
- 生成营销文案,然后翻译成不同的语言。
- 编写文档的大纲,检查大纲是否满足特定条件,然后根据大纲编写文档。
- Routing(路由):对输入进行分类并将其引导至专门的后续任务。
案例:
- 将不同类型的客户服务查询(一般问题、退款请求、技术支持)引导到不同的下游流程、Prompt 和工具中。
- 将简单/常见问题路由到较小的模型,将困难/不寻常的问题路由到功能更强大的模型,以优化成本和速度。
- Parallelization(并行化):LLMs可以同时处理任务,并聚合其输出。
案例:
- 任务拆分
- 一个模型实例处理用户查询,而另一个模型实例筛选用户查询是否存在不适当的内容或请求。这往往比使用相同的 LLM 调用同时处理响应的性能要好。
- 评估 LLM 性能,其中每个 LLM 调用都会评估模型在给定 Prompt 下性能的不同方面。
- 投票
- 检查一段代码是否存在漏洞,如果发现问题,则几个不同的 Prompt 会检查并标记代码。
- 评估给定的内容是否不合适,多个 Prompt 评估不同的方面或要求不同的投票阈值来平衡误报和漏报。
- Orchestrator-worker(协调器-工作者):中央 LLM 动态分解任务并将其委托给 worker LLMs ,然后综合结果。
案例:
- 每次对多个文件进行复杂更改的产品。
- 涉及从多个来源收集和分析信息的搜索任务。
- Evaluator-optimizer(评估器-优化器):一个LLM调用生成响应,另一个提供评估和反馈。
案例:
- 文学翻译,译者 LLM 最初可能无法捕捉到细微差别,但评估者 LLM 可以提供有效建议。
- 复杂的搜索任务,需要多轮搜索和分析以收集全面的信息,其中评估者 LLM 决定是否需要进一步搜索。
Agents
用于开放式问题,难以预测所需的步骤数量,无法硬编码固定路径。
- 案例
- 用于解决 SWE 工作台任务 的编程 Agent ,该任务涉及根据任务描述对许多文件进行编辑;
- SWE-bench(https://www.anthropic.com/research/swe-bench-sonnet) 是一个用于评估大型语言模型(LLM)在软件工程任务中的表现的基准测试平台。它通常涉及编写、修改和分析代码的任务。
- “computer use” 参考实现,其中 Claude 使用计算机完成任务。
- Anthropic Computer Use Demo(https://github.com/anthropics/anthropic-quickstarts/tree/main/computer-use-demo)是一个帮助开发者快速开始使用 Anthropic 的 Claude AI模型进行操作电脑的例子。
总结
- 核心原则
- 保持 agents 设计的简洁性:避免不必要的复杂性。
- 透明性:展示 agents 的计划步骤。
- 精心设计 agent-computer interface(ACI):通过彻底的文档和测试设计工具。
- 框架的使用建议
- 快速启动:框架可以帮助快速启动,但不要害怕减少抽象层并使用基本组件进行生产。
- 实际应用
- 客户支持:结合聊天机器人界面和工具集成,适用于更开放的 agents。
- 编程辅助:特别是在软件开发领域,agents 特别有效,因为代码解决方案可以通过自动化测试进行验证。
原文地址
https://www.anthropic.com/research/building-effective-agents
相关文章:
更多相关文章
《2024 Agent AI综述,14位顶尖学者(来自微软、斯坦福等)联合撰写!》
《为什么 AI 能一句话操作手机和电脑?(GUI Agent 最新综述)》