构建高效的 AI Agent:Anthropic 的智能体系统指南
Anthropic 建议使用简单、可组合的模式来构建 AI agent,而不是复杂的框架,因为最成功的实现都优先考虑针对特定任务的合适复杂度。其核心理念是,从尽可能简单的解决方案开始——通常是单次 LLM 调用——并且仅在能够证明可以改善结果时才增加复杂度。
区分工作流与 Agent
Anthropic 将所有 LLM 驱动的系统都归类为“智能体系统 (agentic systems)”,但在工作流和 agent 之间做了关键的架构区分:
- 工作流 (Workflows):通过预定义的代码路径来编排 LLM 和工具的系统。对于定义明确的任务,这些系统提供了可预测性和一致性。
- Agent (Agents):LLM 动态地指导其自身的过程和工具使用,并保持对如何完成任务的控制权。这些系统最适合于无法通过硬编码实现步骤的开放式问题。
智能体系统的构建模块
每个智能体系统都始于增强型 LLM (augmented LLM),即通过检索、工具和记忆力增强后的 LLM。Anthropic 建议使用 Model Context Protocol (MCP) 通过简单的客户端实现来集成第三方工具。
组合式工作流
当任务可以分解为可预测的步骤时,工作流为完全的自主性提供了一个可靠的替代方案:
- 提示词链 (Prompt Chaining):将任务分解为一系列步骤,其中每个 LLM 调用处理上一个输出。这对于生成营销文案并随后进行翻译之类的任务非常理想。
- 路由 (Routing):对输入进行分类,以将其引导至专门的后续任务。这允许实现关注点分离,例如将客户服务查询路由到不同的专门提示词,或者将简单问题路由到较小的模型(例如 Claude Haiku 4.5)并将困难问题路由到能力更强的模型(例如 Claude Sonnet 4.5)。
- 并行化 (Parallelization):同时运行多个 LLM 调用。这包括分段 (Sectioning)(将任务分解为独立的子任务,例如在运行响应的同时并行运行护栏检查)和投票 (Voting)(多次运行同一任务以获得多样化的输出,从而获得更高的置信度)。
- 编排器-工作者 (Orchestrator-Workers):一个中心化的 LLM 动态地分解任务并将其委派给工作者 LLM。这用于处理子任务不可预测的复杂任务,例如对编程项目中的多个文件进行更改。
- 评估器-优化器 (Evaluator-Optimizer):一个循环,其中一个 LLM 生成响应,而另一个提供反馈以进行迭代式精炼。这对于文学翻译或需要多轮分析的复杂搜索任务非常有效。
自主 Agent
Agent 用于处理 LLM 必须独立规划和操作的开放式问题。它们依赖于基于环境反馈(地面真值/ground truth)的工具使用循环来评估进度。
Agent 的关键特征:
- 动态规划 (Dynamic Planning):Agent 决定其完成任务的路径。
- 人机协作 (Human-in-the-Loop):Agent 可以在检查点或遇到阻碍时暂停,以寻求人类的反馈。
- 停止条件 (Stopping Conditions):为了保持控制,Agent 通常包含最大迭代次数限制。
Anthropic 引用了其用于 SWE-bench 任务的编程 Agent 以及其“computer use”参考实现作为自主 Agent 的主要示例。
实现的最佳实践
框架 vs. 直接使用 API
虽然 Claude Agent SDK、AWS Strands、Rivet 和 Vellum 等框架简化了底层任务,但 Anthropic 警告说,它们可能会创建抽象层,从而掩盖提示词和响应,使调试变得更加困难。他们建议直接从 LLM API 开始,以保持透明度。
设计 Agent-Computer Interface (ACI)
有效的 Agent 需要高质量的工具文档和设计。Anthropic 建议将工具定义视为与提示词工程一样严谨对待:
- 避免格式开销 (Avoid Formatting Overhead):使用模型在互联网上自然见过的格式。避免要求模型执行复杂的计算(例如 diffs 的行数统计)或过度的字符串转义(如用于代码的 JSON)。
- 防错设计 (Poka-yoke):设计工具参数以降低出错的可能性。例如, Anthropic 通过要求使用绝对文件路径而非相对文件路径,改进了其 SWE-bench agent,从而消除了一个常见的失败点。
- 清晰的文档 (Clear Documentation):在工具定义中提供使用示例、边缘情况以及输入格式要求。
实践应用场景
Anthropic 识别了两个具有高价值的智能体系统领域:
- 客户支持 (Customer Support):将对话式界面与工具结合,以提取客户数据并执行操作(例如,发放退款),其成功与用户定义的解决结果挂钩。
- 编程 Agent (Coding Agents):非常有效,因为代码解决方案可以通过自动化测试进行验证,从而允许 Agent 迭代基于客观反馈。
核心成功原则
为了构建可靠且可维护的 Agent,Anthropic 强调了三个原则:
- 简单性 (Simplicity):保持设计简单,避免不必要的复杂度。
- 透明度 (Transparency):明确展示 Agent 的规划步骤。
- ACI 优化 (ACI Optimization):仔细设计工具文档和测试,以确保模型可以完美地使用工具。
Sources
- OriginalBuilding Effective AI Agents
相关
- Dispatch
- Dispatch
- Dispatch
- Dispatch
- Dispatch