AI Native 手册
坑库

子 agent 的长产出别走返回值

长文档经返回值传递会被静默截断,子 agent 的工具也可能和你想的不一样。防止下游拿着残缺输入继续干

亲历产品组织阶段 · 通用依据 · 2026-10 工作记录更新于 2026-10-30
分享到 X
一句话规则

长产出让子 agent 写文件、只回摘要;要读的内容直接嵌进提示词

发生了什么

2026-10,我用一个编排脚本跑了 14 个 agent 写一份长文档。终稿 agent 的返回值被截断,只剩尾部 5072 个字符,前五节全没了,下游 agent 拿到的也是这份残稿。脚本层没有任何报错。

好在运行日志里还留着上游的草稿和勘误。我从日志里取出它们,再派 2 个 agent 重建全文,不用整个重跑。

同一个月,另一组工作流里出了相关的问题:子 agent 的工具和我预想的不一样,有的没有 Bash 和 Read。前两次,任务直接返回了空结果。第三次,一个评审子 agent 拿不到文件工具,就用浏览器工具在我真实的 Chrome 里打开 file:// 标签读文档,连开 70 次,我手动终止了它。

为什么会这样

返回值是给摘要用的通道,有长度上限。截断发生在返回这一层,编排脚本感知不到,也就不会报错。

提示词里写“去读某个文件”时,默认了子 agent 有文件工具。工具不够时,它不一定停下来报告,可能返回空结果,也可能用手头能用的工具绕过去,而绕的方式你事先想不到。

怎么做

提示词里写死产出方式:

把全文用 Write 写入 <绝对路径>,返回内容只写不超过 300 字的摘要。
文档最后一行写 END。

下游读文件,不读返回值。接力之前先确认文件完整:

test -s "<绝对路径>" && tail -n 1 "<绝对路径>"

要读的内容直接嵌进提示词。子 agent 要读文件或跑命令时,把内容贴进去,或者先派一个探针任务,确认它实际有哪些工具。

给子 agent 限定工具。自定义子 agent 时用 frontmatter 的 tools 字段列清楚,浏览器这类有外部影响的工具不要放进去。

疑似截断,先查运行日志。看每个 agent 的完整返回,从上游产物补救,不用整个重跑。

相关

本页目录