指出模板化 prompt 的 60% 失效率来自于把 AI 当函数看待,而不是概率系统;主张用模块化上下文块替代刚性模板,通过具体的改进案例说明实施路径。
你花了 3 个小时精心打磨一个“完美”的 prompt 模板。保存下来,反复使用了上百次。可到了第 47 次左右,你突然发现:它大概只有 60% 的时候能奏效。
这就是 AI 工具那个没人愿意谈起的肮脏秘密。你不能像处理数据库查询那样,把 prompt 简单地模板化。每次面对的上下文都不一样,每个代码库都有自己的古怪之处,星期二还管用的方法,到了星期三可能就失效了。
人们通常会尝试这样写:
You are an expert [ROLE].
Your task is to [TASK].
Follow these rules:
- Rule 1: [RULE]
- Rule 2: [RULE]
Analyze the following: [INPUT]
然后填好方括号里的内容,祈祷它能正常工作。有时确实有效,有时得到的却是一堆垃圾。
问题出在哪里?你把 AI 当成了一个拥有固定输入的函数。但它不是。你面对的是一个概率系统,它会根据上下文、语气和具体程度做出响应,而这些响应并不能被你完全预测。
与其使用僵化的模板,不如构建模块化的上下文块,按需组合使用。
Analyze this code for bugs.
I'm debugging a Node.js service that handles real-time WebSocket connections.
The app crashes randomly under load (>500 concurrent connections).
I've already checked logs—no error messages, just hard exits.
Here's the relevant code:
[CODE]
What would cause a silent exit without logging?
区别在哪里?你提供给 AI 的是真实问题,而不是一个通用模板。
不要指望一个 prompt 就能解决所有问题。可以把过程拆成两个阶段:
Does this look normal to you? (Yes/No + brief reason)
[CODE SNIPPET]
Something's wrong here. Let me give you more context:
[FULL LOGS]
[SYSTEM INFO]
[WHAT I'VE ALREADY TRIED]
Why might this be happening?
这不是偷懒,而是实际调试问题时本来就该采用的方式。你不会把整个代码库扔给一位资深开发者,然后只说一句“修好它”。你会先描述症状,获得反馈,再继续深入排查。
与其告诉 AI 应该怎么做,不如直接展示给它看。
Write clear comments in casual developer language.
I want comments like these:
// lol this is why we cache the user object
// setTimeout hack because the API is trash at batching
// TODO: replace this with actual error handling someday
Write comments for the following function:
[CODE]
给出能体现你真实表达方式和真实风格的示例。相比抽象规则,AI 更擅长模仿具体模式。
不能为了追求创造力,就把所有任务的 temperature 都拉到最高。不同任务需要不同的设置:
0.3~0.5:代码生成、bug 修复、技术事实(低变化、高一致性)
0.7:内容写作、头脑风暴、重构建议(在创造力与可靠性之间取得平衡)
0.9 以上:创意写作、命名、奇怪的边缘情况(尽管尝试,看看什么能奏效)
如果你的模板用于代码时表现正常,写文案时却频频失败,可能只是因为不同的 prompt 需要采用不同的 temperature 设置。
成功的 prompt 工作流,与其说像“一个完美模板”,不如说更像下面这样:
从最笨的方式开始——先用最简单的形式提出问题
提供反馈——“已经很接近了,但是……”或者“方向对了……”
持续迭代——在下一个 prompt 中带上此前的回答
逐步收敛——每轮交互都会让结果变得更好
这其实就是你与初级开发者协作的方式,对 AI 工具同样有效。
有一次,我需要重构一段极其棘手的 TypeScript。实际过程是这样的:
Can you refactor this function to be more readable?
[FUNCTION]
得到的结果过于炫技,不是我想要的。
That's too clever. I need it simple and obvious, not fancy.
The priority is "someone new to the codebase understands this immediately."
Try again with that goal.
这次好多了,但还是漏掉了一个我想要的模式。
You got it mostly right. One more thing—can you extract the
validation logic into a separate function? I want to unit test it.
Otherwise, keep the rest as-is.
完成。总共三个 prompt,每一个都建立在前一个的基础上。
我能不能写出一个“一次命中”的完美模板?也许可以。但设计它花费的时间,可能比直接迭代三次还要长。
不要再试图制作适用于所有场景的模板。你应该:
保留一本 prompt 手册——记录的不是模板,而是各种任务的切入点
记下有效的做法——当某次结果特别好时,记录它为什么有效
复用模式,而不是照搬原文——思考“对于 X 类型的任务,我应该如何组织 prompt?”
认真对待迭代——把每次回答都视为反馈,而不是最终答案
这样一来,你的 prompt 会提升得更快,效果更好,也更加可靠。
讽刺的是,当你不再试图制作通用模板时,反而最终会得到真正有效的模板。
想持续掌握真正重要的 AI 工具、生产力技巧和开发者资源?不妨看看 LearnAI Weekly,其中精选的洞见能够切实帮助你更快地交付成果。
如需采取进一步措施,你可以考虑屏蔽此人和/或举报滥用行为。