ARTICLE · 1246051
文档即可执行资产:当 Agent 逐字消费你的规格
文档即可执行资产:当 Agent 逐字消费你的规格

系列:Idea-to-Production · 实践篇。同系列还有《人不在环内:一个 AI 自主交付组织的概念契约》《十三个阶段与它们的工件》。
人类文档靠读者的常识补全歧义;Agent 文档没有这层缓冲。这篇讲一个我们被迫接受的设定——文档是可执行资产:它有类型化接口、会藏 bug,而且真有人在生产环境 24/7 运行它。以及由此推导出的五条写作纪律。
为什么值得看
这是 Agent 工程里最被低估的一层:模型能力再强,你的系统质量上限等于交接文档的无歧义程度。本文不讲提示词技巧,讲更上游的东西——如何让"写文档"这件事本身工程化。五条纪律全部来自真实翻车后的复盘,读完可以直接拿自己的仓库对照检查。
你将学到三点
- 把每份交付文档当公开 API 评审
:它的输入假设、输出契约、术语定义,都值得像函数签名一样过一遍。 - 交付文档里的 TODO 是会跑的废代码
:人类会绕开占位符,Agent 会执行它。 - 复述即分叉
:同一条原则写进第二份文档的那一刻,你就拥有了两条会各自漂移的真相。
文档如何被"运行":两条路径
在这个系统里,文档不是参考资料,它有两条真实的执行路径。
路径一:工件链。 阶段之间以具名文档交接——requirement.md、solution.md、tech_design.md、plan.md……下游 Agent 逐份深读并据此产出。一份有歧义的架构文档,会被下一个环节按字面实现。
路径二:运行时装配。 工作实例拿到任务后,把知识层资源装配成一份结构化上下文提示,交给 AI CLI——固定八段,顺序不变:
1 通用守则 2 项目上下文 3 角色守则 4 工作流 5 知识资源 6 可用工具 7 技能 8 任务定义 八段里只有"任务定义永远在场";通用守则一旦绑定就永不缺席(宁可渲染空段,也不静默消失);其余段落随实例绑定的资源出现或省略。换句话说:你在知识层写的每一个字,都会以这段文字的样子进入模型上下文,被当作操作指令执行。 文档写作从此不是辅助工作,是编程工作。
五类"文档 bug",各配一条纪律
一、模糊规格 → 幻觉子系统
一句"加个基础鉴权",人类同事会默认团队惯例,Agent 会还你一个自由发挥的登录宇宙。多数"Agent 幻觉"其实发生在此刻:模型只是执行了你的歧义。
→ 纪律:文档先行。 规格先于兑现它的实现而变化;写到"另一个角色不需要提问就能执行"的精度,是阶段交接的最低标准。文档与代码不一致,按 bug 排入队列,不按杂务搁置。
二、占位符 → 会跑的废代码
草稿习惯把没想清楚的地方留成 TODO。在人的世界里它躺得很安静;在 Agent 的世界里,下游会把"TODO: 补充限流策略"当成需求去实现,或者更糟——照着空着的部分产出"无"。
→ 纪律:交付文档零占位。 没想清楚的环节就不该进入交付;宁可少发一份文档,不发一份带洞的文档。
三、原则复述 → 双真相分叉
为了"方便阅读"把同一条规则抄进两份文档,是所有的开始。三个月后两份副本各自被改过一轮,两个 Agent 各引用一份,行为分裂,而没有任何一处报错。
→ 纪律:单一真源,链接代替复述。 原则只在一处定义;其他位置只允许出现指向它的链接。这条纪律便宜在执行、昂贵在破坏。
四、术语漂移 → 静默路由失效
角色 ID、阶段字母、任务类型词汇,在内容层与运行时各有一套拼写。改了 A 处忘了 B 处,症状是"某类任务神秘地再也没人执行"——没有异常,只有积压。
→ 纪律:术语一次定死,改名走跨仓库清扫。 把命名空间当公共 API 对待(详见《九个角色如何分掉一家公司:一张不会漂移的 Agent 组织图》)。
五、文档缺位 → 执行退化
流程规定每阶段有对应工作流文件。缺了它,Agent 会"发挥":用通用常识代替项目约定,每次都会、每次都不同。方差就是这么进来的。
→ 纪律:执行面必须有文档承载,每阶段一份单页作业指导,按需加载——宁可十三份精准的小文档,不要一本没人读完的大部头。
自检清单
把你仓库里的关键交接文档拉出来,逐条问:
☐ 它的输入假设写明了吗(依赖哪几份上游文件、缺了会怎样)? ☐ 它的"完成定义"是可判定的吗,还是"设计合理"这种只有人能圆场的表述? ☐ 全文搜索 TODO / TBD / 占位符——交付物里有吗? ☐ 本文引用的原则,在别处有没有第二份"翻译版"? ☐ 术语在两个系统里的拼写一致吗,有没有映射表守护?
五条里任何一条答不上来,那份文档就带着一个未修复的 bug 在生产环境里跑。
总结
- "文档是可执行的"不是比喻
:要么在工件链里被逐字实现,要么在八段上下文里被原样注入——你的文档已经在运行了,区别只在于运行它的是人还是 Agent。 - 五条纪律的共同本质是把软件工程请进写作
:接口要定义、占位不许发版、真相只有一个、命名当 API 管、执行必有文档承载。 - 从最小的动作开始
:挑你最重要的一份交接文档,按上面的自检清单修一轮,然后观察下一轮执行里方差是否变小——这是本系列里成本最低、反馈最快的一次实验。
你手里最重要的一份交接文档,敢拿它过一遍自检清单吗?欢迎在评论区聊聊你的结果。















































































