Building Effective Agents
来源:Anthropic, "Building Effective AI Agents" (2024-12-19) 作者:Erik Schluntz, Barry Zhang
核心原则
关键洞察
成功的实现使用简单、可组合的模式,而非复杂框架。
三大原则
- Simplicity - 保持设计简单
- Transparency - 明确展示规划步骤
- Well-crafted ACI - 精心设计 Agent-Computer Interface
架构定义
Workflows vs Agents
| 类型 | 定义 |
|---|---|
| Workflows | LLM 和工具通过预定义代码路径编排 |
| Agents | LLM 动态指导自己的过程和工具使用 |
何时使用 Agent
不需要 Agent
- 单次 LLM 调用 + 检索 + 示例足够
- 可预测的任务
- 对延迟/成本敏感
需要 Workflow
- 任务可清晰分解
- 需要一致性和可预测性
- 有明确的评估标准
需要 Agent
- 开放性问题
- 无法预测步数
- 需要灵活决策
Workflow Patterns 详解
1. Prompt Chaining
适用:任务可分解为固定子任务
步骤1 → 步骤2 → 步骤3 → 输出
2. Routing
适用:不同类别需要不同处理
分类 → 路由到专门处理流程
3. Parallelization
适用:速度优化、多视角验证
并行执行 → 聚合结果
4. Orchestrator-Workers
适用:动态子任务分解
Orchestrator 分解 → Workers 执行 → 合成结果
5. Evaluator-Optimizer
适用:迭代改进有价值
生成 → 评估 → 反馈 → 改进 → 循环
ACI 设计
核心类比
在 HCI 上投入多少努力,就在 ACI 上投入多少。
设计检查清单
- 模型视角 - 使用方式是否明显?
- 命名清晰 - 参数名是否让事情更明显?
- 测试迭代 - 在 workbench 测试错误模式
- Poka-yoke - 防错设计
格式选择
| 格式 | Agent 难度 |
|---|---|
| Markdown 代码块 | 低 |
| 整个文件重写 | 低 |
| Diff 格式 | 高(需计算行号) |
| JSON 内嵌代码 | 高(需转义) |
框架使用建议
推荐框架
- Claude Agent SDK
- Strands Agents SDK (AWS)
- Rivet (GUI workflow builder)
- Vellum (GUI workflow tool)
注意事项
框架陷阱
框架增加抽象层,可能掩盖底层 prompt/response。
建议:
- 先用 LLM API 直接实现简单模式
- 使用框架时理解底层代码
- 不要因框架添加不必要复杂性
Agent 应用场景
客户支持
- 自然对话 + 工具集成
- 成功可清晰衡量
- 人类监督机制
编码 Agent
- 代码可通过测试验证
- Agent 可用测试结果迭代
- 问题空间结构化
相关主题
- Agent-Workflow-Patterns - 详细模式说明
- Agentic-Engineering-Patterns - Simon Willison 的工程视角
- ACI-Agent-Computer-Interface - 接口设计详解
参见
- Barry-Zhang - Building Effective Agents 合著者
- Erik-Schluntz - Building Effective Agents 合著者
- MIT-Technology-Review-Insights - Agent 报告研究部门
来源:Anthropic, "Building Effective AI Agents", 2024-12-19