你有一个生成工程 postmortem 的好 prompt。你复制下来换了输入,跑在一份营销简报上。输出读起来像一份关于营销简报的 postmortem:时间线、根因分析、“经验教训”。一份完美执行的错形状。Prompt 与原始假设紧耦合——受众、格式、隐性约束、你脑子里没说出口的示例。任务一变,这些假设就成了隐形污染源。模型按它们走是因为它们还在 prompt 里;它产出的形态契合旧任务,不是新任务。
本文讲为什么 prompt 复用会失败,以及怎么从目标重建而不是补旧文本。
常见原因
1. 受众变了,用词没变
旧 prompt 默认工程受众。新任务给营销。行话、语气、细节深度全错,但被原样继承。
如何判断:输出用了新受众不懂的领域词。
2. 格式继承自旧任务
旧任务要时间线,新任务要 one-pager。Prompt 还写着”产出时间线”因为你忘删。
如何判断:输出结构匹配旧任务,不是新需求。
3. 示例还是旧域
你保留了旧 prompt 的 few-shot 示例。模型仿其形态,产出形态对但任务错。
如何判断:输出引用了只在旧示例里出现过的实体。
4. 隐性约束来自旧上下文
旧 prompt 有”你有 PR 描述 X 的访问权”——当时是真的,现在是假的。模型现在编 X 长什么样。
如何判断:输出引用了你新任务里不存在的资源。
5. 改了一半留下化石
你改了旧 prompt 适应新任务但漏了几行。半改 prompt 常常比新写更差,因为矛盾你看不出。
如何判断:prompt 里同时有旧、新受众的引用。
动手前先确认
- 不看旧 prompt,先用一句话写下新任务目标。
- 从零定新受众、格式、约束。
- 找旧 prompt 标每行:保留 / 修改 / 删除。
- 保存复制 prompt 的差输出做 diff 用。
- 决定是改还是重写(通常重写更快)。
需要收集的信息
- 旧 prompt 和它对应的任务。
- 新任务目标。
- 复制 prompt 的差输出。
- Prompt 里引用旧上下文的具体行。
- 任何带过来的 few-shot 示例。
最短修复路径
Step 1:从目标句开始
看旧 prompt 之前:
新目标:"为 SMB 卖家产出 Feature X 的 1 页营销简报,
结构:痛点 → 方案 → 证据 → CTA。"
和旧目标对比。结构共享 < ~50% 就该重建而不是补。
Step 2:逐行审旧 prompt
每行标:
- 第 1 行:"你是一名资深工程师……" → 删(受众变)
- 第 2 行:"产出 postmortem 时间线……" → 改为"产出营销简报……"
- 第 3 行:"用通俗语言……" → 留
- 第 4 行:few-shot 示例 A → 删(旧域)
- 第 5 行:输出 schema → 重建
比扫化石快。
Step 3:示例全换
示例承载最重的假设。域变了,示例必须全换。半改示例比没示例差。
差: 把"部署失败因为环境变量缺失"改成"campaign 失败因为跟踪缺失"。
半坏的混血。
好: 换成你团队真实的营销简报示例。
Step 4:新任务重建输出 schema
旧 schema:
{ "timeline": [...], "root_cause": "...", "action_items": [...] }
新 schema:
{ "pain": "...", "solution": "...", "proof": ["..."], "cta": "..." }
这是不同文档,不是变体。
Step 5:先用窄样本测一次再放量
新 prompt 跑一个小输入。输出对就放量。不对说明目标句或 schema 还错。
Step 6:把新 prompt 存成独立模板
不要存成”旧 prompt v2”。存成新任务类型。混着存就是化石积累的开端。
怎么确认已经修好
- 输出匹配新任务类型(营销简报、不是 postmortem)。
- 输出引用新域,不是旧域。
- 没有旧受众残留的行话。
- few-shot 示例(如果有)来自新域。
- 同事读输出说不出旧 prompt 是关于什么。
如果还是没修好
- 目标句本身可能不清晰——先把它打磨清楚再重建。
- 新域可能需要新 few-shot 库;产 2-3 个用上。
- 多个新 prompt 单独都能用之后再考虑合并。
- 高风险工作绝不复用——总是从目标开始。
预防建议
- Prompt 库按任务类型索引,不按”我用过的好 prompt”。
- 复用前先一句话写新目标,与旧对比。
- 参数化 prompt(带槽位的模板)只换槽位,其他稳定。
- 一次性 prompt 干脆不存——每次新写。
- 每季度审 prompt 库;原任务已不存在的删掉。
- 想改时先问:“从头重建会不会更快?“通常会。