构建有效的 AI Agent:来自 Anthropic 的实践经验
在过去的一年里,Anthropic 与数十个团队合作,帮助他们在各个行业中构建基于 LLM 的 Agent 系统。令人惊讶的是,最成功的实现并非使用复杂的框架或专用库,而是采用简单、可组合的模式。本文总结了 Anthropic 在 2024 年 12 月发布的《Building Effective Agents》中分享的核心经验和最佳实践。
核心理念:简单优先
Anthropic 的首要建议是:找到最简单的解决方案,只在必要时增加复杂性。这可能意味着根本不需要构建 Agent 系统。许多问题通过简单的提示工程或传统的软件工程就能很好地解决。
Workflow vs Agent:关键区别
Anthropic 对 Agentic 系统做了重要的架构区分:
- Workflow(工作流):通过预定义的代码路径来编排 LLM 和工具
- Agent(智能体):LLM 动态地指导自己的流程和工具使用
理解这个区别对于选择合适的架构至关重要。
基础构建块:增强型 LLM
所有 Agentic 系统的核心是 Augmented LLM(增强型 LLM),它具备以下能力:
- 生成自己的搜索查询
- 选择相关工具
- 决定在记忆中存储什么信息
五种 Workflow 模式
1. Prompt Chaining(提示链)
将任务分解为一系列步骤,每个 LLM 调用处理前一个的输出。
适用场景:
- 需要将复杂任务拆分为清晰、连续的步骤
- 每个步骤的输出是下一步的输入
优势:
- 易于实现和调试
- 每个步骤可以优化特定任务
- 成本效益高(可以为简单步骤使用较小的模型)
2. Routing(路由)
根据输入分类,将其导向专门的后续任务。
典型应用:
- 将简单/常见问题路由到小模型(如 Claude 3.5 Haiku)
- 将复杂/罕见问题路由到更强大的模型(如 Claude 3.5 Sonnet)
优势:
- 优化成本和延迟
- 根据任务复杂度分配计算资源
3. Parallelization(并行化)
将任务分解为独立的子任务并行运行,或多次运行同一任务获得多样化输出。
两种形式:
- Sectioning:将任务分成独立部分并行处理
- Voting:多次运行相同任务,通过投票选择最佳输出
优势:
- 显著减少总执行时间
- 提高输出质量和可靠性
4. Orchestrator-Workers(编排者-工作者)
中央 LLM 动态分解任务,委托给工作 LLM,并综合结果。
适用场景:
- 任务无法提前分解的复杂问题
- 需要动态规划和协调的场景
特点:
- 更灵活但也更复杂
- 需要精心设计编排逻辑
5. Evaluator-Optimizer(评估者-优化器)
通过 LLM 评估和优化输出,进行迭代改进。
最有效的场景:
- 有明确的评估标准
- 迭代改进能带来可衡量的价值
- LLM 能够提供有用的反馈
应用:
- 代码生成和优化
- 内容创作和编辑
- 复杂问题求解
实践建议
1. 从简单开始
直接使用 LLM API 开始,许多模式只需几行代码就能实现。框架往往会创建额外的抽象层,使底层提示和响应难以调试。
2. 避免过早优化
不要因为框架提供了复杂功能就使用它们。先用简单的设置验证想法,再根据需要增加复杂性。
3. 可观测性优先
确保能够:
- 查看每一步的提示和响应
- 追踪决策过程
- 快速定位问题
4. 选择合适的模式
根据任务特点选择:
- 步骤明确 → Prompt Chaining
- 需要分类 → Routing
- 可并行化 → Parallelization
- 动态复杂 → Orchestrator-Workers
- 需要迭代 → Evaluator-Optimizer
Agent 模式:何时使用真正的 Agent
当 Workflow 无法满足需求时,才考虑构建真正的 Agent 系统。Agent 的核心特征是 LLM 能够:
- 自主决定下一步行动
- 动态选择和使用工具
- 根据反馈调整策略
适用场景:
- 任务路径高度不确定
- 需要在复杂环境中做出实时决策
- 必须处理意外情况和异常
结语
Anthropic 的实践经验告诉我们,构建有效的 AI Agent 不是关于使用最新、最复杂的技术,而是:
- 理解问题的本质
- 选择合适的抽象层级
- 从简单开始,按需增加复杂性
- 保持系统的可观测性和可调试性
这些原则不仅适用于 Agent 系统,也是所有软件工程的最佳实践。
参考资料: