你让它帮你调试一次部署。模型回了 4 段精致 prose,讲”先考虑环境配置”、“调查部署流水线”、“复盘相关日志”。没文件路径、没具体命令、没要查的配置值。读起来像顾问 deck,不是修复。光精致没工件就是装饰——它满足了”有用回答”的形态,但没给任何人能动手的具体抓手。模型不是不帮忙,是太礼貌:训练让它在开放任务上走”顾问腔”,而顾问腔里工件本来就稀少。
本文讲为什么”精致输出”哪怕你追问”具体点”也还是精致,以及怎么用 schema 强制工件,而不靠加形容词。
常见原因
1. Prompt 要建议,不要工件
“我该怎么思考 X”得到思考框架。“产出 X”得到 X。动词决定你拿到的是讨论还是交付物。
如何判断:你的动词是”建议”、“解释怎么”、“讨论”、“考虑”。
2. 没要求工件
你没说”至少 1 个文件路径、1 个命令、1 个数字”,模型就略掉,因为 prose 更便宜且读着更像在思考。
如何判断:你的 prompt 没有工件清单。
3. 软动词在 prompt 里漏到输出里
你 prompt 说”考虑是否……”,模型回声”你也许可以考虑……”。软动词会传染。
如何判断:prompt 含”考虑”、“想想”、“探索”、“看一下”。
4. 没给可执行输出示例
你描述了”可执行”但没展示。模型走训练分布的”可执行”平均态,大多还是 prose。
如何判断:prompt 描述了形态但没展示一个。
5. RLHF 让模型在开放问题上 hedge
现代 chat 模型在开放问题上打太极避免出错。打太极把工件藏在”可能”、“也许”、“取决于”后面。
如何判断:基本每隔一句就有 hedge 词。
动手前先确认
- 想清楚有用答案该含哪些工件:文件路径、命令、数字、版本号、代码片段、schema 片段、命名工具。
- 保存精致输出做 diff 用。
- 想清楚谁来执行、需要什么。
- 规划一个把工件作为字段强制的 schema 或模板。
- 标出 prompt 里要替换的软动词。
需要收集的信息
- 当前 prompt。
- 不可执行的精致输出。
- 可执行版本该含的工件清单。
- 输出的下游消费者。
- 模型 + system prompt。
最短修复路径
Step 1:把”建议”换成”产出”
差: "对发布修复给点建议。"
好: "产出 5 步修复,编号列表。每步必须含:
- 一条要运行的命令(代码块)、
- 一个要查或改的文件路径、
- 预期结果(1 行)。"
“产出”动词 + 工件清单逼出具体性。
Step 2:用 schema 强制工件
输出 schema:
[
{
"step": <int>,
"command": "<准确 shell 命令>",
"file": "<绝对或相对路径>",
"expected_output": "<一行字符串>"
},
...
]
Schema 字段不能填 prose。模型没有具体的就只能写 UNKNOWN。
Step 3:禁软动词
禁用:"考虑"、"也许可以"、"你或许"、"可能"、"探索"。
不许出现。给不出具体下一步时写 "INSUFFICIENT_INFO"
并询问需要什么具体数据。
禁 hedge 逼模型要么提交要么升级。
Step 4:给具体示例
像这样:
1. 运行 `vercel logs --since=10m` 查看最近报错。
文件:vercel.json(看 buildCommand)
预期:日志里有 "Error: env STRIPE_KEY missing"
不要这样:
1. 可以考虑复盘部署日志,看看有没有
和问题相关的异常。
对比让形态毫不含糊。
Step 5:让模型自审
末尾加:
写完后数每步的工件:
- 每步是否恰好 1 命令、1 文件、1 预期? 是/否
- 全文工件总数:<数>
- 5 步输出全文工件 < 15 个时重写以加具体性。
工件计数机械化,模型擅长。
Step 6:用真实输入数据
prompt 泛(“帮我调 bug”),输出就泛。粘真实报错、真实配置、真实日志。具体输入拉具体输出。
怎么确认已经修好
- 输出每个逻辑单元(每步、每条 bullet、每节)有 3+ 工件。
- 同事读完能直接动手,不需要追问。
- 软动词(考虑、也许、可能)出现 0 次。
- 同 prompt + 同输入,多次输出工件密度相近。
- 输出读起来像 runbook,不像 memo。
如果还是没修好
- 任务可能在你的输入下真的没有具体抓手——多粘输入数据。
- 换更强的模型——有些 hedge 少。
- 切到多步工作流:第一 prompt 抽事实、第二 prompt 从事实产行动方案。
- 重复任务在 API 层做 JSON schema 强制的行动方案模板。
预防建议
- 默认:每个”建议型” prompt 写明要产出的工件。
- 每个任务类型维护”可执行输出”清单(发布修复、code review、PRD)。
- 没工件的输出当草稿,不当交付。
- 审已接受输出:数工件密度;低就收紧 prompt。
- 默认动词从”建议/讨论/考虑”换成”产出/列出/写”。
- 团队工作流商定最低工件密度(如”每步必须含一条命令”)。
相关阅读
标签: #排查 #Prompt #Prompt 质量 #回答太泛