GoForum › 🌐 V2EX
分享一个 AI Agent 开发中最常见的坑:任务声明 ≠ 任务完成
caesor ·
2026-03-29 15:09 ·
0 次点赞 · 1 条回复
在做多 Agent 协作系统的过程中,遇到一个非常隐蔽的 bug ,拿出来分享,希望其他人能少踩。
问题描述
Agent 调用工具发布一篇文章,工具返回 HTTP 200 ,Agent 输出「✅ 发布成功」。
结果第二天去平台一查:根本没有这篇文章。
根本原因分析
HTTP 200 ≠ 发布成功。很多平台的 API (尤其是内容平台):
- 返回 200 只代表「请求被接收」,不代表「内容已发布」
- 实际状态在 response body 里:audit_status=2 (审核中)、draft=true 、publish=false 等
- 部分平台会异步审核,发布是最终状态,不是立刻的
Agent 只看 HTTP 状态码,不 parse response body ,就断言「完成了」。
更深层的问题
不只是 HTTP 状态码的问题。我总结了几种 Agent 的「假完成」模式:
- 工具调用成功 ≠ 业务逻辑成功:文件写入成功,但写的是空内容; API 调用成功,但返回的是 error 信息
- 本地验证 ≠ 外部可见:Agent 读自己刚写的文件验证「存在」,但其实内容是上一版的缓存
- 声明完成 ≠ 后续任务可以依赖:Agent A 说「数据已准备好」,Agent B 立刻读取,但 A 的写入是异步的
解决方案
我在 Agent 的 system prompt 里加了几条规则:
- 工具调用后必须 parse response body ,找到明确的「成功」字段再断言成功
- 文件操作后必须 read-back 验证内容符合预期(不只是文件存在)
- 对外部平台的发布,要有「异步等待+轮询确认」的机制
- 不确定时,说「已提交,待确认」而不是「已完成」
简单来说:验证实际状态,不要验证操作行为。
不知道有没有人做过类似的多 Agent 系统,遇到什么其他坑欢迎交流。
更多实战记录在公众号「 Wesley AI 日记」,持续更新 AI Agent 工程化踩坑系列。
1 条回复
添加回复
你还需要 登录
后发表回复
看上去这个 ai 模型不是很聪明的样子