徐慧志的个人博客

2025-09-11 Anthropic 做 Multi Agent 系统的工程经验(下)

发布于 2025年09月11日  •  1 分钟  • 116 字
Table of contents

这一篇写Anthropic的智能体评估、生产可靠性和工程挑战。

智能体评估

如何做智能体评估呢?传统的做法是“给定输入 X,必须走步骤 Y,才能得到正确输出 Z”。但是多智能体不能这样做,因为它没有固定唯一的、可预先写死的解题路径。

评估什么

不要去检查是否走了预设的路径,而要判断是否有合理的过程和正确的结果。

从小样本集上就开始做评估

不要等数据量大时才开始做评估,在小样本的时候就开始做评估

LLM AS JUDGE

打分规则

Anthropic 制定了一些打分规则:

实验与优化

人工评估的重要性

  1. 自动化评估的局限性: 自动化评估工具(如LLM评判工具)虽然高效,但可能会遗漏一些边缘情况(edge cases)。这些情况包括:
  2. 人工评估的优势:
  3. 多智能体系统的复杂性

生产可靠性和工程挑战

在传统软件里,一个小 bug 可能仅仅让功能崩溃、性能下降或触发一次故障。

而在agentic 系统里,微小的改动会像滚雪球一样放大,引发巨大的行为漂移——这使得为那些需要在长时间运行中保持状态的复杂智能体编写可靠代码变得异常困难。

1. 增加故障点原地恢复的功能

智能体可能长时间运行,在多次工具调用之间持续保持状态。这意味者必须保证代码的持久执行,并在每一步都能妥善处理错误。

出错时,不能简单地“重启”:重启太昂贵了。所以Anthropic 构建了一套可从故障点原地恢复的系统,并加上了重试逻辑和定期快照来保证断点恢复的功能。

2. 开发全链路追踪

在传统软件里,同样的输入基本会得到同样的输出,可 AI 智能体是“动态、非确定性”的——同一套提示词跑两次,内部决策路径都可能不同,于是调试难度成倍上升。 举个例子:用户投诉“智能体连显而易见的资料都找不到”。光凭日志根本看不出问题出在哪——是它生成了糟糕的搜索关键词?还是选到了垃圾网页?还是工具本身调用失败?

Anthropic 引入了一套“全链路追踪(full production tracing)”,记录每一次调用、每一个决策节点(关键词→结果→评分→下一步动作),但不记录对话正文,保证用户隐私。

好处:

3. 部署的时候要考虑用户正在使用

考虑到无论什么时候发布更新都有可能有用户在使用智能体,Anthropic 采用“彩虹部署(rainbow deployments)”:旧版本和新版本同时在线,逐步将流量从旧实例切到新实例,从而避免打断正在运行的智能体。

4. 同步执行与异步执行

同步执行优点

同步执行挑战

异步执行优点

异步执行挑战

5. 上下文管理

当 AI 代理需要与用户进行几百轮对话时,如何让它“记住”前面发生的事,又不会因为上下文窗口塞不下而失效呢?

  1. 解决思路:
  2. 具体做法:

总结

把 AI 原型变成真正可依赖的生产系统,比大多数人想象的要难得多。

  1. 在 AI Agent项目上,跑通demo 只占 40% 的工作量,剩下 80% 都要花在“最后一公里”——让它在生产环境中长期、可靠、可扩展地运行。
  2. 在开发者电脑上能跑 ≠ 能在生产环境跑。要把demo变成 7×24 可用的服务,需要额外的工程:持久化、重试、并发、监控、灰度发布、回滚、成本控制……这些在传统软件里已经很复杂,在“会思考”的 AI 代理里更加复杂。
  3. 传统软件里,一个小 bug 通常只影响一个功能;AI 代理里,一个小错误会被“推理链”放大,导致后续所有步骤跑偏。例如搜索返回一条错误信息,代理可能据此做出完全错误的商业决策。
  4. 很多团队低估了这个差距,导致项目延期或失败。因此要提前规划工程投入,而不是“先做出来再说”。
Sein heißt werden, leben heißt lernen.

Der einfache Weg is immer verkehrt.