🏠 总目录 📚 资料库智能体构建模式

Building Effective Agents(构建有效的 Agent)

📄 来自 Claude 官方博客
原文标题
Building Effective Agents(构建有效的 Agent)
原文链接
https://www.anthropic.com/engineering/building-effective-agents
作者
Erik S.、Barry Zhang(Anthropic)
发布日期
2024-12-19
⚠️ 本页是原文的中文结构化整理笔记(保留架构、数据、案例、结论),并非逐字翻译。具体参数与功能名更新很快,落地前请点击上方链接核对原文。

12 分钟 | ⭐ 这一篇是整个系列的总纲

🎯 一句话

最重要的一条建议是:从最简单的方案开始,只在确实需要时才增加复杂度。⭐ 很多「Agent 项目」用一次精心设计的模型调用就能解决。

📑 本页目录

成功的 LLM Agent 实现靠的不是复杂框架或专门库,而是简单、可组合的模式。应该从简单提示词开始,用完善的评估优化,只有在简单方案不够用时才引入多步 Agent 系统。

工作流 vs Agent 的根本区分

五种工作流模式

1. 提示词链(Prompt Chaining)

任务分解为顺序步骤,每次 LLM 调用处理上一步的输出;中间可插入程序化「闸门」检查。 - 适用:可干净拆分的固定子任务,用延迟换准确率 - 例子:先写营销文案再翻译;先写大纲再写正文

2. 路由(Routing)

分类器 LLM 把输入分发给专门的下游处理器。 - 适用:有明确类别、需要不同处理方式的任务 - 例子:客服请求分类(退款/技术支持/一般咨询);简单问题给 Haiku、复杂问题给 Sonnet

3. 并行化(Parallelization)

多个 LLM 同时工作,程序化聚合输出。两个变体: - 分片(Sectioning): 独立子任务并行执行(如一个模型处理请求、另一个做内容审查护栏) - 投票(Voting): 同一任务跑多次取共识(如多个代码审查者标记漏洞)

4. 编排器-工作者(Orchestrator-Workers)

中心 LLM 动态分解任务、委派给工作者、综合结果。与并行化的区别在于子任务不可预先确定。 - 例子:跨多文件的复杂代码修改;多来源信息搜集

5. 评估器-优化器(Evaluator-Optimizer)

一个 LLM 生成、另一个评估反馈,迭代循环,类似人类编辑流程。 - 适用:有清晰评估标准、迭代能实证改善结果的任务 - 例子:文学翻译;多轮搜索分析的复杂研究

自主 Agent

三大实现原则

  1. 简单: 避免不必要的复杂度
  2. 透明: 显式展示 Agent 的规划步骤
  3. 文档: 精心打磨 Agent-计算机接口(ACI),像做 HCI 一样投入

工具设计最佳实践(附录精华)

应用场景洞察

框架建议

框架(Claude Agent SDK 等)能简化实现,但建议先用原始 LLM API 做原型,理解底层抽象后再采用框架,始终保持简单。

结语

成功来自「为需求构建正确的系统」而非最大化复杂度:从优化的单次 LLM 调用开始,只有当性能数据证明必要时才增加多步系统。


✅ 检查点

  1. 这篇的核心建议是什么?
  2. 增加复杂度前应该先确认什么?
  3. Agent 的三个基本组成是什么?
👀 答案
  1. 从最简单的方案开始,只在确实需要时才增加复杂度。⭐ 复杂度的顺序是:单次调用 → 加检索/工具 → 固定工作流 → Agent,每往后一步都要有明确理由。
  2. 确认简单方案确实不够,而不是「感觉不够」。具体做法:先把简单方案做出来并测出它的失败率和失败模式,看清楚它究竟在哪类输入上不行;如果失败原因是提示词或上下文不足,加复杂度也救不了。
  3. ①模型(决策)②工具(能力)③反馈循环(从环境获取结果并继续)。⭐ 其中反馈循环是 Agent 区别于「一次调用」的本质——它能看到自己行动的结果,并据此决定下一步。

🛑 可以停在这里

走神救援
核心建议:从最简单的方案开始,只在确实需要时才增加复杂度——很多「Agent 项目」用一次精心设计的模型调用就能解决复杂度顺序:单次调用 → 加检索/工具 → 固定工作流 → Agent,每步都要有明确理由。⭐⭐加复杂度前要确认「简单方案确实不够」而不是「感觉不够」先把简单方案做出来,测出失败率和失败模式如果失败原因是提示词或上下文不足,加复杂度也救不了Agent 三要素:模型(决策)+ 工具(能力)+ 反馈循环,⭐反馈循环是 Agent 区别于「一次调用」的本质——它能看到自己行动的结果并据此决定下一步。