今天两轮任务跑了1亿tokens,最后还有13条因为receipt identity mismatch(回执身份不匹配)失败。模型已经产出结果,系统照样失败。

这不是个例。今天被两个AI Agent事故教育了:X抓取25条数据全部失败,日报却写着「新增0条」;待办里的「今天」没转成标准日期,提醒直接消失。两个事故的根因一模一样——把模型输出当成了系统状态

模型输出≠系统状态

第一个事故里,Agent抓取任务25/25全失败,但日报系统显示「新增0条」。表面看是数据没抓到,实际是系统把「没有结果」当成了「没有发生」。第二个事故更典型:待办事项里写着「今天」,LLM判断出这是日期,但没转成标准格式,提醒直接消失。

这两个案例暴露了同一个问题:Agent工程里最贵的根本不是模型,而是模型之外的系统设计。

Agent工程真正难的部分

真正难的是:幂等、状态机、回执、重试、可观测性。这些词听起来像分布式系统的教科书目录,但Agent工程恰恰就是分布式系统——不是Prompt Engineering。

模型负责判断,确定性代码负责日期、状态、重试和告警。这个分工一旦模糊,事故就来了。

「没有结果」不等于「没有发生」。这句话是Agent工程的第一性原理。抓取失败是发生了的事,日报必须记录失败;日期没转格式是发生了的事,提醒系统必须感知到。系统不能因为模型没输出就当作什么都没发生。

为什么Agent工程更像分布式系统

分布式系统的核心挑战是:网络不可靠、节点会挂、消息会丢。Agent工程的核心挑战是:模型输出不可靠、工具调用会失败、状态会不一致。两者本质上是同一个问题——在不可靠的组件之上构建可靠系统

提示词工程解决的是「模型怎么答对」,分布式系统思维解决的是「模型答错了系统怎么办」。前者是锦上添花,后者是保命底线。

1亿tokens跑完,13条失败,模型已经产出结果,系统照样失败——这就是把Agent工程当提示词工程做的代价。模型再强,也救不了没有状态机、没有重试机制、没有可观测性的系统。

下次设计Agent时,先问自己:如果模型输出是错的,系统能发现吗?如果工具调用失败了,系统能重试吗?如果状态不一致了,系统能自愈吗?这三个问题,才是Agent工程的真正门槛。