Skip to main content

分享一个 AI Agent 开发中最常见的坑:任务声明 ≠ 任务完成在做多 Agent 协作系统的过程中,遇到一个非常隐蔽的 bug ,拿出来分享,希望其他人能少踩

  1. 分享一个 AI Agent 开发中最常见的坑:任务声明 ≠ 任务完成

    在做多 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 的「假完成」模式:

    1. 工具调用成功 ≠ 业务逻辑成功:文件写入成功,但写的是空内容; API 调用成功,但返回的是 error 信息
    2. 本地验证 ≠ 外部可见:Agent 读自己刚写的文件验证「存在」,但其实内容是上一版的缓存
    3. 声明完成 ≠ 后续任务可以依赖:Agent A 说「数据已准备好」,Agent B 立刻读取,但 A 的写入是异步的

    解决方案

    我在 Agent 的 system prompt 里加了几条规则:

    工具调用后必须 parse response body ,找到明确的「成功」字段再断言成功
    文件操作后必须 read-back 验证内容符合预期(不只是文件存在)
    对外部平台的发布,要有「异步等待+轮询确认」的机制
    不确定时,说「已提交,待确认」而不是「已完成」

    简单来说:验证实际状态,不要验证操作行为

    ----------------------

    不知道有没有人做过类似的多 Agent 系统,遇到什么其他坑欢迎交流。

    更多实战记录在公众号「 Wesley AI 日记」,持续更新 AI Agent 工程化踩坑系列。

    via V2EX - 技术 (author: caesor)
👀 open eyes to see the world. 丨 site views: -