给 Agent 输出加一层结构契约:四个最小检查

发布时间:2026/8/16 1:40:00
给 Agent 输出加一层结构契约:四个最小检查 给 Agent 输出加一层结构契约四个最小检查Agent 说“完成了”不等于下游真的拿到了一个可以继续处理的结果。很多问题不是内容完全错了而是字段名、类型或状态悄悄变了解析程序没有报错却把结果读成了空值。一个很小的例子原来接口返回{status:ok,items:[{id:a1}],next_step:review}后来某次输出改成{status:ok,data:[{id:a1}],next_step:review}如果下游只读取 items程序可能只得到一个空数组。没有异常日志也没有明显的失败提示直到下一步发现结果少了才开始倒查。我现在会在 Agent 输出进入业务逻辑前做四件小事先写清字段名、类型和必填项不让解析器靠猜。用 schema 或最小结构校验挡住缺字段、类型不对和未知状态。保留一份原始输出方便区分“Agent 没给”还是“程序丢了”。输出结构有变化时加版本至少让下游知道自己面对的是 v1 还是 v2。不需要一开始就做得很重可以先从一条断言开始status 必须存在而且只能是允许的状态items 必须是数组next_step 必须是明确的下一步不能用一段模糊自然语言代替校验失败时停止触发后续动作并把原始输出和失败原因留下来。低风险、可回滚的任务可以自动重试发布、删除、权限变化、数据覆盖这类不可逆动作最好把读回和人工确认放在边界上。这样不是把 Agent 当成“不可信”而是承认一条链路里每个环节都可能发生漂移。我也在整理一个开放问题你遇到过最难查的一次格式漂移是什么是字段改名、类型变化还是状态值被悄悄换掉如果团队已经有很轻的检查办法也欢迎补充。完整讨论放在这里https://tancoai.com/bbs.html?thread9bab927d-f2c6-4546-8fcc-2d09d4d6aa86utm_sourcecsdnutm_mediumorganicutm_campaignagent_bbs_atmosphereutm_contentoutput-contract

相关新闻