Skip to content

结构化编码的四段式 Prompt 与生成编排的元 Prompt

第三部 · Prompt · 第38章

撰写日期:2026-07-07

结论

驱动 AI 写复杂程序时,真正稳定的不是某句“咒语”,而是一个固定的提问骨架:目标 / 输入 / 输出 / 步骤,再加一条“不明确就必须提问”的纪律。

大多数“AI 写的东西差一口气”不是模型问题,是提问缺了某一段:没说清目标,或没交代已有输入,或没定输出落到哪,或没规定它遇到模糊该问还是该猜。四段齐全,模型才没有替你瞎猜的空间。

这份模板配套 用嘴编程会腐烂:把 AI 编码变成有护栏的工程 的四步流程使用:每一步都用同一个四段骨架写 prompt,成果落到文件,然后开新会话进入下一步。

四段式骨架

text
目标:我想让你完成什么(一句话说清终态)
输入:现在已经有什么(工程结构、已有文件、素材位置)
输出:产物放到哪(明确文件路径和格式)
步骤:怎么做;在不明确的地方,必须向我提问、不要猜测我的意图

“步骤”里最值钱的一条,是让 AI 主动提问。当你对领域一无所知(比如根本不懂怎么写模拟器),与其硬写需求,不如让 AI 用提问帮你把需求逼出来。

1. 需求 Prompt(产出 proposal.md)

text
目标:我想用 Python 开发一个 FC 模拟器,最终能跑起来某个游戏 ROM,现在帮我完成需求文档。
输入:当前文件夹是一个 uv 管理的 Python 工程;rom 文件夹下有测试用的镜像文件。
输出:请在 docs 文件夹下生成需求文档 proposal.md。
步骤:我不了解任何 FC 模拟器的相关知识,请用提问的方式帮我确定需求;
      不要猜测我的意图,任何不明确的地方都必须向我提问。

产物 proposal.md 是“从技术角度说清到底要做什么”,可手工改也可继续对话改。现在的强模型往往会在需求文档里顺带给出概要设计(模块划分),省掉单独一步。

2. 详细设计 Prompt(产出每模块设计文档)

text
目标:根据 docs/proposal.md,为每个模块生成详细设计。
输入:docs/proposal.md(已含功能需求与模块划分)。
输出:在 docs 下为每个模块生成一份详细设计文档。
步骤:划分与细化模块时尽量保持模块之间独立,方便后续独立开发和测试;
      任何不明确处必须向我提问,不要猜测。

写这一步前,如果上一步对话已经很长,新开一个会话——成果都在 proposal.md 里,不必带着旧上下文。

3. 任务拆分 Prompt(产出 checklist + progress.md)

text
目标:根据详细设计,为每个模块生成独立的任务清单,并建立总进度文件。
输入:docs 下的各模块详细设计文档。
输出:为每个模块生成一份任务清单,用 checklist 标记每项是否完成;
      另生成一个总的 progress.md,记录每个模块整体是否完成。
步骤:任务粒度要能支持后续为不同模块并行启动多个 Agent。

这一步通常不必再让 AI 提问——需求和设计已经足够详细。拆分的目的,是让实现阶段可以按模块分给互不干扰的子 Agent。

4. 元 Prompt:生成监工编排 Prompt(产出 prompt.md)

实现阶段要用“监工 Agent + N 个子 Agent”的结构(见配套的 agent 手记)。监工收到的那个 prompt 必须同时写清监工和每个子 Agent 的职责,非常复杂——所以用一个 prompt 去生成这个 prompt

text
目标:帮我生成一个用于自动实现整个项目的编排 Prompt,存到 prompt.md。
输入:docs 下的详细设计、各模块任务清单、progress.md。
输出:一个 prompt.md,内容包含——
      1. 主(监工)Agent 的职责:准备环境、读取 progress.md、
         为每个未完成模块派发一个子 Agent、跟踪整体进度;
      2. 每个子 Agent 的职责:附带该模块详细设计与任务文件的路径、
         如何实现、如何测试与验证;
      3. 全程自动执行,无人工参与。
步骤:因为用的是弱类型语言、容易出错,必须要求生成的每一行代码都有对应单元测试,
      并且通过类型检查(mypy)和语法检查(ruff)后,该模块才算完成;
      生成前,如仍有不明确处,给我最后一次提问探讨的机会。

生成出的 prompt.md 会很长:开头指导监工准备环境,然后是划分子 Agent 的章节,最重要的是每个子 Agent 各自的 prompt(含设计与任务文件地址、实现与验证要求)。有了它,直接让 AI 读这个文件开跑即可。

落地时的两个边界

事项做法
权限演示可临时放开全部权限;真实场景用 policy 管权限,或把项目放进容器,规避 prompt injection
会话切换每一步开新会话,只带文件不带聊天历史,保持上下文短、省 token、防幻觉

我的判断

这四段 prompt 单独看都很朴素,价值在于它们串成了一条“文件驱动”的流水线:每一步的输出,就是下一步的输入文件。真正被复用的不是某段措辞,而是这个目标/输入/输出/步骤 + 让 AI 提问 + 成果落文件的骨架——它对写代码成立,对写文档、做设计同样成立,是把一次性提问升级成可复用 Workflow 的通用范式(见 从 Prompt 到 Workflow)。

相关

MIT License