AI 回答太泛:3 步逼出具体答案

问 AI 一个具体问题,收回四段"看情况"式废话,几乎都是 prompt 形状问题。本文拆六种触发外交辞令的写法,给出把模型逼回锋利判断的改写模板。

最快修法: 给 prompt 加一个决策动词和一个约束。把”我的 App 该怎么组织?“改成”我有 12 条路由、4 条需鉴权。选:单 app router 还是嵌套 layouts,3 句话内辩护。“光这一改就能解掉大多数”回答太泛”,根本不用换模型。

你问了一个具体问题——“这个业务该用 Postgres 还是 DynamoDB?“——然后收获四段”这要看你的访问模式、规模需求、团队熟悉度和预算”。这不是分析,这是模型在镜像开放问题、给出开放回答。回答泛几乎总是 prompt 形状的问题,不是模型能力问题:同一个模型,面对”我该怎么设计 App”会打太极,但面对”日活 1 万、主要是 key-value 查询、团队会 SQL——Postgres 还是 DynamoDB?3 句话内决定”就会给出锋利答案。

2026 年有一处变化让这事比以前更明显。自 GPT-5.5 Instant 成为 ChatGPT 默认模型后(2026 年 4 月底起陆续推送),OpenAI 把默认行为调成了大约短 30%、幻觉更少的回答;Claude 和 Gemini 也朝同一个方向走。模型能力没变,但它对”你没说清时该多详细”的默认设定变得更短、更谨慎。同一条简短 prompt,2024 年继承的是慷慨的默认,现在继承的是谨慎的默认。所以你得自己把详细程度的底线写出来。

本文梳理六种导致输出泛的 prompt 形状,以及把模型从外交辞令拉回真实判断的改写方法。

常见原因

按命中率排序。

1. 问题开放,没有决策点

典型反面:

"我的 React App 该怎么组织?"
"鉴权该怎么处理比较好?"
"数据库选型你有啥想法?"

模型没有要选的对象,于是把选项空间巡视一遍,不做选择。你拿到的是”考虑清单”,不是”决定”。

如何判断:你的 prompt 没列出两个或更多具体选项,也没有以一个模型必须执行的动词结尾(“选”、“写”、“排序”、“决定”)。

2. 没给上下文,模型只能猜场景

如果你只问”最好的缓存策略是什么”,没说流量、读写比、现有技术栈,模型默认回”看情况”——因为它脑补了一堆听众,任何具体答案对其中一半都是错的。这种含糊是它的”校准”。

如何判断:把 prompt 当成你完全不了解项目的人去读。如果你判断不出哪个选项肯定错,模型也判断不出。

3. 没成功标准

“给个好答案”——这里”好”是什么意思?具体步骤?排序列表?50 行内的代码片段?没有靶子,模型就交出”所有可能的好答案的中位数”,那就是糊。

如何判断:prompt 里没写答案应该是什么形状、多长、读完用户该能做什么。

4. RLHF 让模型对观点题过于谨慎

现代 chat 模型被训练得在主观问题上打太极,避免观点偏激冒犯用户。你把问题写成征询意见的样子(“你怎么看 Tailwind”)就触发外交模式。

如何判断:回答有”两边都有道理”的气味。修法是写成”模型必须做出并辩护的绑定决定”,不是”分享想法”。

5. 要”全面综述”

“comprehensive”、“完整指南”、“你需要知道的一切”这类词推模型走宽度而不是深度。结果是 12 条要点每条 1 句话,而不是 3 条要点每条 4 句话。

如何判断:数输出里的具体工件(文件路径、数字、代码、命令)。少于 3 个就是宽度吃掉深度。

6. 前轮建立了”调研”框架

如果你第一轮问的是”对比 A、B、C”,后续轮次会继承对比框架。“现在选一个”得到的是带 caveat 的排序,不是决定。

如何判断:往上翻对话。最近几轮是在讲选项和权衡,那模型就在调研模式里,无论你这轮怎么问。

需要收集的信息

  • 完整的 prompt 文本和 system prompt(如果有)。
  • 模型名称版本、temperature、max tokens。
  • 对话历史(前面的轮次会影响框架)。
  • 你拿到的输出 vs 你想要的输出。
  • 模型给出锋利答案所需要知道的领域背景。

最短修复路径

按收益排序,前 3 步通常能解 80% 的情况。

Step 1:把”怎么”改成”选”

把开放询问改成绑定决策:

含糊 prompt锋利 prompt
”我的 React App 该怎么组织?""12 条路由,4 条需鉴权。选:单 app router vs 嵌套 layouts。3 句话内辩护。"
"用什么数据库?""负载:每天 1 万写、90% 读、需要 join。选 Postgres 还是 DynamoDB。2 句话给决定因素。"
"测试策略有啥想法?""选:Vitest 主导的单测 vs Playwright 主导的集成。基于 3 人团队、每周发版的场景辩护。”

模型现在有”可能选错”这件事——这逼它真的去推理。

Step 2:前置 5 行上下文

提问前先粘这个模板:

技术栈:<运行时、框架、关键依赖含版本>
规模:<用户量、QPS、数据量>
约束:<预算、deadline、人数、部署目标>
试过:<已经尝试什么、为什么失败>
目标:<要交付什么,附成功标准>

例子:

技术栈:Next.js 14、Supabase、Vercel
规模:日活 2000,峰值 200 写/分
约束:50 美金/月基础设施预算,单人开发
试过:PgBouncer 连接池;峰值还是耗尽
目标:一处具体配置或架构改动让峰值跑通,diff <30 行

问题:……

5 行上下文把”看情况”翻成”给定 X,做 Y”。

Step 3:显式禁用打太极词汇

附加:

答案约束:
- 禁用:"看情况"、"可以考虑"、"也许"、"或许"、"各种"
- 选一个并辩护
- 至少包含 2 项:文件路径、命令、代码片段、具体数字、版本号
- 不超过 200 字

这招意外有效——RLHF 反而让模型很擅长服从明确写出来的负面约束。

Step 4:显式写出详细程度的底线

因为 2026 年的默认行为把回答砍短了,你常常得把最低深度明说出来。模型会尊重你给的底线,它只是不再自己假设一个。加一行类似:

深度:写完整版,不要摘要。至少 5 个具体步骤,
每步给出确切的命令或文件改动。不要占位符,不要"在这里加你的逻辑"。
把我当成想看真实细节的资深工程师。

“把我当成想看真实细节的资深工程师”这一句锚点很可靠,能同时拉高具体度和篇幅——因为它告诉模型该按哪个受众来校准,而不是退回到谨慎的中位数。

Step 5:要工件,不要建议

把”解释怎么 X”换成”产出 X”。要正则就要正则字符串,不要正则教程。要配置就要 YAML 文件,不要讨论配置项。

差:  "这个 nginx 路由该怎么配?"
好:  "写出 nginx 的 server 块。只包含必要的 location。无解释注释。"

Step 6:还泛?反问它缺什么

如果模型确实因为缺信息答不出,让它告诉你缺什么:

"要给出具体而非通用回答,你还需要我提供哪些最少信息?列 3-5 个问题。"

然后你回答这些问题,粘进去,重问。一次性含糊回答就变成两轮锋利回答。

Step 7:调研框架卡住时就重置对话

前轮建立了对比框架时,新开一个对话,只粘相关上下文。长会话会累积框架包袱,单次追问消不掉。

怎么确认已经修好

  • 新回答前 2 句就指明具体选择。
  • 输出里至少有一个可执行工件(代码、命令、配置)。
  • 同事读完能直接干活,不需要追问。
  • 全文”看情况/也许/可能”出现 0 次。

如果还是没修好

  1. 缩到最小 prompt:一句上下文 + 一个决策动词。
  2. 换成会”推理”的模型,而不只是更大的模型。在 ChatGPT 里打开模型选择器,把默认的 GPT-5.5 Instant 换成 GPT-5.5 Thinking(参见 OpenAI 模型选择器说明);Thinking 会先把权衡推一遍再下结论,所以打太极更少。同理可用 Claude Opus 4.7 替 Sonnet 4.6、Gemini 3.1 Pro 的思考模式。有时含糊确实是快速默认模型的能力上限。
  3. 观点题如果你能控温(API),把 temperature 调到 0.7 左右会比 0.2 少打太极——过低反而退回安全的中位数。ChatGPT 和 Claude 的 App 不暴露 temperature,这条只对 API 适用。
  4. 从 chat UI 切到 API 调用并用 system prompt 控制。消费级 App 会注入自己的中立性和简短偏置;一条干净的 system prompt(“你是一个果断的技术顾问,永远只锁定一个选项”)能去掉它。

预防建议

  • 把每个 prompt 当成”有返回类型的函数”——写 prompt 前先想好返回类型。
  • 维护一个个人”反打太极”后缀,每次问观点题就粘上。
  • 调研类问题分两轮:“综述”轮和”决定”轮永远不要合在一起。
  • 审最近 10 个 prompt 里的”怎么”——每个”怎么”都该改成”做”或”选”。
  • 新任务类型先用 few-shot 展示锋利答案的样子。

常见问题

我的 prompt 没变,为什么 2026 年 AI 回答变泛了? 是默认变了。自 2026 年 4 月底 GPT-5.5 Instant 成为 ChatGPT 默认模型后,OpenAI 把默认调成了大约短 30%、幻觉更少的回答,Claude 和 Gemini 也朝同方向走。一条没说清的 prompt 以前继承的是慷慨默认,现在继承的是谨慎默认。自己写出详细程度底线和决策动词(Step 1 和 Step 4),原来的质量就回来了。

“看情况”会不会本来就是对的答案? 会,当答案确实取决于你没给的某个事实时。修法不是无脑禁掉这个短语,而是:要么把那个事实给它,要么让它告诉你哪个事实能决定(Step 6:“要给出具体回答,你还需要哪些最少信息?列 3-5 个问题。”)。如果你补全后它还在打太极,那问题就在 prompt 形状,不在数据。

直接跟模型说”别打太极”管用吗? 单独用有一点用。和决策动词加禁用词清单(“禁用’看情况’、‘可以考虑’、‘也许’“)一起用,效果好得多。模型很会服从明确的负面约束,但前提是你还得给它一个具体可锁定的对象。

换更贵的模型能修好回答太泛吗? 不太靠谱。重塑 prompt 能解的情况远多于升级模型。唯一值得一试的模型改动,是从快速默认换成会推理的模型(GPT-5.5 Thinking、Claude Opus 4.7、Gemini 3.1 Pro 思考模式),它会先把权衡推一遍再答,打太极更少。用同一条泛 prompt 去喂更大的模型,通常只会换来一句更漂亮的废话。

回答很具体但是错的,是同一个问题吗? 不是。本文讲的是让模型敢于下结论。如果它下了个错结论,那是准确性问题:给它更多可核实的上下文、让它把推理过程写出来,或者让它先简短地正反各说一遍再选。一个自信的错答案至少可被证伪,含糊的回答连证伪都谈不上。

相关阅读

标签: #排查 #Prompt #Prompt 质量 #回答太泛