site logo

Marico's space

Anthropic 工程师谈构建有效 AI Agent 的三条原则

AI技术与应用 2026-04-28 17:35:55 4

▌ 按:Anthropic 工程师 Barry Zhang 在 "Agents at Work" 活动上做了一场深度分享,本文是对其核心观点的转写与整理。

去年,Anthropic 的 Barry Zhang 与 Eric 合写了那篇爆火的《Building Effective Agents》。这一次,他把背后的思考更深地挖了出来——三条核心原则,直指我们做 AI Agent 时最容易踩的坑。

AI 系统的演进路径

Barry 首先回顾了 AI 系统的演进历程:

  • 单模型能力:摘要、分类、提取,一次调用搞定,简单直接
  • 工作流(Workflows):多个模型调用串联,固定流程,可控成本换性能
  • Agent:模型自主决策,根据环境反馈调整行动轨迹
  • 下一阶段?:更通用的单 Agent,或者多 Agent 协作——尚未定型

趋势很清晰:给系统越多自主权,能力越强,但成本、延迟和出错后果也同步上升。这三个原则本质上都是在处理这个张力。

原则一:不要什么都上 Agent

Agent 是用来规模化复杂高价值任务的,不是所有场景的万能升级。Barry 给出了一个四维检查清单:

任务复杂度

Agent 擅长模糊问题空间。如果你能轻松画出完整决策树,直接写死逻辑成本更低、控制更强。

任务价值

Agent 消耗大量 Token。如果单个任务预算只有 1 毛钱(比如高并发客服),只能用 30-50 个工具调用——那用工作流解决高频场景就够了。但如果你想的是"不惜成本把事做成",Agent 才值得。

核心能力兜底

跑 Agent 前检查关键能力瓶颈。以编码 Agent 为例:它能写出好代码吗?能 Debug 吗?出错能恢复吗?有缺口不会致命,但会成倍放大成本和延迟——先缩小范围再试。

错误代价与发现难度

高风险 + 难发现的错误,很难放心让 Agent 自主行动。读权限限制、人工审核可以缓解,但也会限制扩展性。

为什么编程是 Agent 的最佳场景

Barry 用编程套这个清单:

  • 复杂度:从设计文档到 PR,天然模糊复杂
  • 价值:好代码价值极高
  • 能力:Claude 已在编程工作流上表现出色
  • 可验证性:有单元测试和 CI,输出容易验证——这解释了为什么编程 Agent 最成功

原则二:保持简单

Barry 给 Agent 下了个极简定义:Agent = 模型 + 工具 + 循环

三个组件:

  • Environment(环境):Agent 运行的系统(文件系统、浏览器、API 等)
  • Tools(工具):Agent 采取行动、获取反馈的接口
  • System Prompt:定义目标、约束和理想行为
env = Environment()
tools = Tools(env)
system_prompt = "目标、约束和行为准则"

while True:
    action = llm.run(system_prompt + env.state)
    env.state = tools.run(action)

一个编码 Agent、一个搜索 Agent、一个 Computer Use Agent,表面看起来完全不同——但 Anthropic 内部它们共享几乎同一套代码骨架,只有环境不同。真正的设计决策只有两个:用哪些工具,下什么 Prompt。

复杂度会杀死迭代速度

这是经验之谈:任何前期复杂度都会严重拖慢迭代。先把这三个组件搭对,ROI 最高。优化是后来的事。

  • 编码/Computer Use:缓存目录,降低成本
  • 搜索(多工具):并行调用,降低延迟
  • 所有场景:向用户展示 Agent 进度,建立信任

原则三:像 Agent 那样思考

"把自己放进它的上下文窗口里,而不是它的鞋子里。"

很多开发者(包括 Barry 本人)用自己的视角设计 Agent,然后对 Agent 的"愚蠢"错误感到困惑。解法是:进入 Agent 的上下文窗口感受一下。

Agent 每步的行为,本质上是在 10-20K Token 的有限上下文中做推理。它所知道的关于当前世界状态的一切,都在这个窗口里。

Computer Use 练习

想象你是 Computer Use Agent。你只收到一张静态截图和一段写得很烂的描述,唯一影响环境的方式是工具调用。

当你尝试点击时,推理和工具执行大约需要 3-5 秒——这相当于闭上眼睛摸黑操作电脑 3-5 秒。然后你睁开眼看到新截图。你点击可能成功了,也可能把电脑关了。你不知道。整个循环就是这样。

做完这个练习,Agent 真正需要什么就很清楚了:屏幕分辨率(知道点哪里)、推荐动作和限制(防止无效探索)。

用 Claude 评估 Claude

一个实用技巧:把整个 Agent 轨迹扔给 Claude 问:

"你为什么在这里做了这个决定?有什么我们可以帮你做得更好的?"

也可以把 System Prompt 直接给模型,问"有没有不清晰的地方?你能执行吗?"这不能替代自己的判断,但能让你从 Agent 视角看世界。

三个未解决的问题

1. 预算感知型 Agent

和工作流不同,Agent 的成本和延迟我们还控制不好。定义并强制执行时间、成本、Token 预算,将解锁更多生产级场景。

2. 自我进化的工具

已经在用模型迭代工具描述了,下一步是让 Agent 自己设计改进工具——使 Agent 更通用。

3. 多 Agent 协作

Barry 个人确信:2026 年底多 Agent 协作会大量进入生产环境。收益明显:并行化、关注点分离、子 Agent 保护主 Agent 的上下文窗口。但核心问题是:Agent 之间怎么通信?从同步的用户-助手模式,到异步通信和 Agent 互相识别,这是下一个前沿。

总结

原则核心要点
不要什么都上 Agent从复杂度、价值、能力、错误成本四个维度评估
保持简单先做好 Environment + Tools + System Prompt,优化以后再说
像 Agent 那样思考进入上下文窗口,从 Agent 视角理解世界

让 Agent 稳定工作仍然很难——但大部分难度来自我们不理解 Agent 看到什么、看不到什么。这三条原则是弥合这个认知差距的起点。


原文:How We Build Effective Agents — 3 Principles from Anthropic's Barry Zhang