Building Effective AI Agents \ Anthropic 下面是我把 Anthropic 的 “Building Effective Agents”(2024 年 12 月)一文的要点提炼/总结,分结构给你看,方便快速理解和运用:
核心观点
-
最成功的 LLM agent/agentic 系统往往 不是用非常复杂的框架或库,而是用简单、可组合(composable)的模式。(Anthropic)
-
在构建 agent 之前/在很多场景里,先用最简单的方案(单一 LLM 调用 + 检索 + few-shot / in-context 示例)就足够了。只有当这些不够时,再升级复杂度。(Anthropic)
Agent vs Workflow 的区别
-
Workflow:预定义流程/路径(code path),LLM + 工具按预设路由或步骤运行。决策/工具使用路径事先被编码好。(Anthropic)
-
Agent:LLM 在运行时自己决定流程/工具调用顺序等,更动态,有规划、可以根据环境/中间反馈调整执行方式。(Anthropic)
什么时候用哪种结构
| 场景 | 推荐用 Workflow | 推荐用 Agent |
|---|---|---|
| 任务定义明确、步骤固定 | ✅ | ❌(overkill) |
| 输入–输出很常规,变化不大 | ✅ | ❌ |
| 任务需要灵活决策与方向调整、不能预先把全部流程写死 | ❌ | ✅ |
| 成本/延迟敏感,不需要太复杂 | ✅ | ❌ |
| 需要在操作中依据环境反馈做判断/自主规划 | ❌ | ✅ |
工作流(Workflows)常用模式
Anthropic 罗列了几种常见的 workflow 模式,每种模式适合不同情况/权衡:
-
Prompt Chaining
-
把任务拆成多个可控的小子任务,按顺序调用 LLM,每一步处理上一步的输出。
-
优点:可以提升准确度、控制中间结果质量。
-
用于任务可被分解成清晰子任务的场景。(Anthropic)
-
-
Routing
-
对输入分类/判别,然后路由到不同 specialized 模块 / prompts /模型。
-
优点:不同类型任务可以用不同策略处理,提高整体性能与效率。(Anthropic)
-
-
Parallelization
-
Sectioning(并行分区):把任务拆成多个子任务并行处理。
-
Voting(投票/多次尝试):同一个任务多个尝试,然后综合(投票、聚合)。
-
用于需要速度或多个视角/高置信度的任务。(Anthropic)
-
-
Orchestrator-Workers
-
一个 “orchestrator” LLM 负责整体规划/拆任务/分派到各 “worker” LLMs,然后收集/整合结果。
-
适合任务结构不固定,不能完全预先定义子任务的场景。(Anthropic)
-
-
Evaluator-Optimizer
-
用一个 LLM 产生结果,用另一个 LLM 或过程为其提供评估/反馈,再迭代优化。
-
当能够清楚定义评估标准,而且迭代可带来明显改进时特别有用。(Anthropic)
-
Agents 的特点与注意事项
-
Agents 能处理更开放/更动态/不可完全预见的任务:规划、工具调用、从环境获取反馈、在必要时向人类反馈/请求决策。(Anthropic)
-
引入 agents 时的风险/代价包括:更高延迟、成本,错误级联(compounding errors)可能性上升。需要在可信环境中部署,有监控/阻止条件(如最大迭代次数/里程碑反馈点)等 guardrails。(Anthropic)
工具设计(Tool design / Tool-接口工程)的原则
-
工具定义要像 prompt 一样被仔细设计:清晰的参数/输入输出格式/边界条件/例子等。(Anthropic)
-
尽量让工具与模型在训练/自然语料中“见过类似格式”的输出,减少格式 overhead(例如避免复杂的 escape、路径问题、不必要的格式限制等)。(Anthropic)
-
文档与测试很重要:对模型使用工具的情况多做测试,观察模型怎样出错,再调整。(Anthropic)
-
Agent-Computer Interface(ACI)要好:就像工具对人的接口要清晰一样,对模型也要清晰且易用。(Anthropic)
实践案例(Applications)
Anthropic 提到了两个具体领域在实践 agent/agentic 系统里的可行性和价值:
-
客户支持(Customer Support)
- 聊天+访问外部系统(客户历史、知识库等)+执行动作(发退款、更新工单等)+成功标准明确。(Anthropic)
-
编码任务(Coding Agents)
- 代码任务有自动化测试结果可验证,有结构,相对容易定义标准;agent 能通过多次迭代优化/反馈;Anthropic 在 SWE-bench 等 benchmark 上已有 agent 实现用 pull request 描述完成多文件更改。(Anthropic)
最佳实践原则
Anthropic 提出三条构建 agents 遵循的核心原则:
-
保持设计简单 —— 不要过度设计、不要引入不必要的复杂性。优先最简单方案。(Anthropic)
-
透明性 (Transparency) —— 明显展示 agent 的规划/中间步骤,让人能看出 agent 在做什么/为什么这么做。(Anthropic)
-
认真做好 Agent-Computer Interface(ACI) —— 工具文档、测试、格式设计等,使 agent 使用工具清晰、稳健。(Anthropic)
如果你愿意,我可以帮你把这些总结整理成一个实践清单(checklist),你在做 agent 产品/项目的时候可以一步步对照用。要吗?