有些 Prompt,应该故意留一点白
我有时会把一篇文章、一段对话,甚至一堆还没整理好的材料丢给 Agent,只问一句:
说到底是啥?
按 Prompt Engineering 的标准,这句话几乎处处不合格:没有指定角色,没有规定步骤,没有定义输出格式,连“啥”指什么都没说清楚。
Agent 拿到以后也会犯难。它不知道我要的是摘要、批评,还是观点提炼,只能自己试着判断:作者真正关心的是什么?哪些术语只是包装?几段材料之间有没有一条暗线?如果删到不能再删,最后剩下的那个判断是什么?
奇怪的是,这样的 Prompt 有时反而会得到更有意思的答案。
不是因为模糊天然比清楚高级,而是因为有些任务的难处,恰恰在于我们还不知道该怎样把问题说清楚。
如果我一开始就要求:
请从背景、问题、原因、解决方案和启示五个部分总结本文。
Agent 当然会做得更稳定。但我也已经替它决定了文章里有什么。它接下来要做的,不过是把材料塞进五个格子。即使作者写的根本不是一个“问题—原因—方案”的故事,它也能整理得像模像样。
Prompt 越具体,控制越强;但这种控制里,也可能藏着提问者自己的盲区。
我们常把好 Prompt 理解成一份完整的施工图:目标、步骤、格式、标准都提前写好,Agent 只需照图施工。这适合那些我们已经知道答案大致长什么样的任务,比如修改一段代码、提取合同字段、把数据整理成表格。
但还有一类任务,我们需要的不是施工,而是勘探。
读一篇陌生文章,判断一个产品真正解决了什么问题,看懂一场争论为什么总在错位,甚至弄清自己模模糊糊在意的究竟是什么——这些任务还没有现成的地图。Prompt 写得太完整,往往意味着探索还没开始,我们就偷偷画好了一张假地图。
“说到底是啥”看似含糊,其实把一部分重要工作交给了 Agent:不只回答问题,还要尝试定义问题。
这里真正有用的,不是模糊本身,而是探索的可逆性。
Agent 可以先带回一种解释。我不满意,就告诉它哪里不对:太顺着作者了;只复述了观点,没有解释为什么;抓到了表面的主张,却没看到背后的利益关系。它再换一个方向。几轮以后,我们可能才逐渐意识到,自己一开始真正想问的是什么。
Prompt 不再是一份必须一次写对的规格书,而更像第一根探针。先刺进去,看看里面是什么,再根据反馈调整方向。
不过,“不满意就让它改”并没有听起来那么轻松。
第一版答案会形成锚点。Agent 一旦把材料解释成“效率问题”,后面即使要求它继续深入,也可能只会寻找更深层的效率原因。人也一样:一个足够流畅的解释出现以后,我们很容易忘记,它只是许多可能解释中的一个。
所以,当第一版的方向不对时,继续说“再深入一点”通常没什么用。更有效的做法,是让它真正退出原来的框架:
暂时放弃刚才的解释。给出三个互相竞争的理解,分别说明它们解释了什么,又遗漏了什么。
修改,是沿着原来的路继续走;重新解释,才是在岔路口换方向。
当然,并非所有任务都适合这样做。
如果 Agent 要修改生产环境、发送客户邮件、提供医疗建议,或者执行一笔不可撤销的交易,就不能先让它自由探索,出了问题再改。因为第一次结果本身就可能产生代价。目标、权限、边界和验收标准,都必须提前写清楚。
故意留白,适合那些成本低、可逆、可以检查,而且人有能力判断好坏的任务。写作、阅读、研究和产品探索,往往属于这一类;执行、承诺和高风险决策,通常不属于。
所以我现在更愿意区分两件事:不规定路径,和不承担责任。
好的开放式 Prompt,可以不告诉 Agent 应该怎样想,却仍然给它足够的材料;可以允许答案出乎意料,却要求它指出依据;可以暂时不定义什么是正确答案,却让不同的解释彼此竞争。
比如,在“说到底是啥”后面再补一句:
不要急着顺着作者总结。先提出几个可能的核心判断,用材料逐一检验。最后告诉我,你最不确定的地方在哪里。
这仍然留着白。只是这片空白不再来自偷懒,而是专门留给探索的空间。
我们过去总担心 Agent 不理解意图,于是拼命把 Prompt 写得越来越长。可有时真正值得担心的是:Agent 太准确地执行了一个被我们过早说清楚、其实还没有想明白的意图。
Prompt 不一定要提前装下答案的形状。
有时候,它只需要把 Agent 放到问题面前,然后说:
你先进去看看。