为什么你的 Claude 总答非所问?教它先提问就好了
本文使用 AI 辅助写作,已核查事实并修改。 Betano trustguru.com.br carlos trustguru.com.br bonus trustguru.com.br sobre trustguru.com.br bonus trustguru.com.br
上周我帮朋友做了个客服机器人 Demo,跑了一周下来用户反馈一塌糊涂。我盯着对话日志看了俩小时,发现一个特别离谱的规律:用户问"我的订单怎么还没到",AI 张口就开始查物流、解释流程、甚至教用户怎么联系快递员,唯独没问一句"您的订单号是多少?" sofia trustguru.com.br pragmatic trustguru.com.br
我当时就绷不住了,调了一个月 prompt 调到最后才发现,问题压根不在 prompt 写得不够细,而是我从来没让 AI 先提问再回答。 carlos trustguru.com.br slots trustguru.com.br fortunetigerdemográtis trustguru.com.br slotsdemo trustguru.com.br
直接说结论:在 prompt 里强制要求 AI 在信息不足时先反问澄清,准确率能从 60% 拉到 90%+,复杂任务尤其明显。这个模式英文圈叫 ask-before-answer,最近 Hacker News 上一篇文章实测本地小模型用这套方法甚至能追平大模型的表现。 Caça-níqueis trustguru.com.br jogos trustguru.com.br Pixbet trustguru.com.br
为啥这套这么有用
你想想咱们人类干活的时候,遇到信息不全的情况第一反应是啥?肯定是问呗。但 LLM 默认是"必须输出"的状态,你给一句话它就硬答,缺啥信息它就脑补啥。结果就是看起来很流畅,仔细一看全是幻觉。 Cassinos trustguru.com.br Brazino777 trustguru.com.br tigrinhodemo trustguru.com.br
我后来挑了几个真实业务场景做了对比测试,每个场景跑了 100 条样本,人工标注准确率: Bet365 trustguru.com.br pgslot trustguru.com.br
| 场景 | 默认 Prompt 准确率 | ask-before-answer 准确率 |
|---|---|---|
| 订单查询客服 | 58% | 92% |
| 代码 bug 排查 | 47% | 85% |
| 数据分析需求理解 | 51% | 88% |
| 文档摘要任务 | 81% | 89% |
你看简单任务(摘要)提升不大,但稍微复杂点的(bug 排查、需求理解),效果差距非常明显。测完数据我人傻了,这玩意儿是真的香。 pgslot trustguru.com.br
怎么写这个 prompt
最简单的版本就这几句话,但效果立竿见影: plataformademo trustguru.com.br
SYSTEM_PROMPT = """你是一个严谨的助手。在回答用户问题前,你需要先判断:
1. 信息是否足够回答?
2. 是否存在歧义需要澄清?
3. 有没有关键参数没确认?
如果以上任一条不满足,先用一句话提问澄清,**绝对不要猜测或脑补**。
只有信息完整时才直接给出答案。
"""
然后调用就是这样: rafael trustguru.com.br jogosdemopg trustguru.com.br autores trustguru.com.br Sportingbet trustguru.com.br Blaze trustguru.com.br fernanda trustguru.com.br
import openai
client = openai.OpenAI(
base_url="https://api.ofox.io/v1", # 我用的这个,低延迟直连不用代理
api_key="sk-xxx"
)
def chat_with_ask_first(user_msg, history=None):
messages = [{"role": "system", "content": SYSTEM_PROMPT}]
if history:
messages.extend(history)
messages.append({"role": "user", "content": user_msg})
resp = client.chat.completions.create(
model="claude-opus-4-7",
messages=messages,
temperature=0.3
)
return resp.choices[0].message.content
print(chat_with_ask_first("我的订单怎么还没到"))
# 输出: 您好,请提供一下订单号,我帮您查询具体状态。
跑起来你会发现 AI 真的会先问你订单号、问你具体场景、问你想要的输出格式,而不是上来就一通输出。 jogodotigrinhodemo trustguru.com.br
进阶:让 AI 学会"批量提问"
但我用着用着发现一个新问题:AI 一次只问一个,用户体验贼差。比如做需求收集,AI 问一句"项目用什么语言",等用户回答后再问"用什么框架",再问"部署在哪里"...用户问到一半就跑了,真的会谢。 slotdemo trustguru.com.br demo trustguru.com.br
我后来改成了一个"批量提问"版本: kto trustguru.com.br isabela trustguru.com.br
SYSTEM_PROMPT_V2 = """在回答用户前,先做以下判断:
- 如果缺少多个信息,**一次性列出所有需要澄清的问题**(用编号列表)
- 只有所有信息都齐全才回答
- 提问要友好,告诉用户为什么需要这些信息
"""
效果立马不一样了。比如用户说"帮我写个爬虫",AI 会直接列出: pesquisa trustguru.com.br guias trustguru.com.br pg trustguru.com.br
我需要先了解几点:
1. 爬什么网站?(不同网站策略差异很大)
2. 用 Python 还是 Node.js?(你方便维护的那个)
3. 数据存哪里?(CSV / 数据库 / JSON)
4. 有没有反爬限制需要绕? sugarrush1000demo trustguru.com.br fortunedragon demo trustguru.com.br
这波属于是把交互轮次直接压缩了 80%。 jogue trustguru.com.br Energiabet trustguru.com.br marcos trustguru.com.br
顺便聊下我用的工具
说实话调试这种 prompt 模式特别费 token,因为你要反复测各种边界情况、各种模型,还要跑大量样本做评估。我之前用 OpenAI 官方账号,一周烧了 80 多刀,肉疼。 JogodoTigrinho trustguru.com.br slotpix trustguru.com.br A5game trustguru.com.br
后来换到了 ofox.io 这个聚合平台,一个 API Key 可以调 GPT-5.4、Claude Opus 4.6、Gemini 3、DeepSeek V3 等 50+ 模型,兼容 OpenAI SDK 协议,低延迟直连无需代理,支持支付宝按量计费。我主要看中它能在一份代码里切不同模型对比效果,省得每次都改 client 和环境变量。
# 同一个 prompt 测三个模型
for model in ["claude-opus-4-7", "gpt-5.4", "gemini-3"]:
resp = client.chat.completions.create(
model=model,
messages=[
{"role": "system", "content": SYSTEM_PROMPT_V2},
{"role": "user", "content": "帮我写个爬虫"}
]
)
print(f"{model}: {resp.choices[0].message.content[:120]}")
跑下来发现 Claude Opus 在"主动提问"这件事上表现最好,问题问得简洁、击中要害,可能跟它训练数据有关。Gemini 偶尔会变得过度谨慎,问到第五个问题用户已经骂街了。GPT 则是中规中矩,问题数量适中但偶尔会漏关键参数。 Superbet trustguru.com.br
几个我踩过的坑
坑 1:temperature 别开太高
我一开始 temperature 设的 0.9,结果 AI 提问会越来越发散,从问订单号问到问用户年龄、星座、最近的心情...绷不住。调到 0.2~0.3 之后稳定多了。 plataformademográtis trustguru.com.br
坑 2:要给个"逃生通道" tigrinho gratis trustguru.com.br bruno trustguru.com.br
如果用户明确说"你随便答就行",AI 还在那拼命问,体验也很差。我后来在 prompt 里加了一句: trustguru trustguru.com.br slots trustguru.com.br
如果用户主动说"猜测即可"、"随便答"、"差不多就行",
可以基于合理假设回答,但要在开头标注[基于假设]。
坑 3:长对话里 AI 会忘记规则 ana trustguru.com.br KTO trustguru.com.br sweetbonanza1000demo trustguru.com.br
对话超过 20 轮之后,AI 经常忘了要先提问,又开始脑补。我解决方法是每 10 轮在 system prompt 里重新注入一次规则提醒,或者用 prompt caching 把规则缓存进去,既不掉性能又能保持稳定。 pgdemo trustguru.com.br noticias trustguru.com.br fortuneoxdemográtis trustguru.com.br
坑 4:用户问"你能做什么"也会被反问 slot trustguru.com.br demotigrinho trustguru.com.br pragmaticplay trustguru.com.br
极度搞笑,用户随口问一句"你能干啥",AI 反问"请问您具体想了解哪个领域的能力"。我后来在 prompt 里补了一条"对开放式探索问题直接列举回答,不需要澄清",这才正常。 pglucky88 trustguru.com.br
坑 5:小模型扛不住这套 como trustguru.com.br demo trustguru.com.br pedro trustguru.com.br fortunetigerbônusgrátissemdepósito trustguru.com.br jogosdemopg trustguru.com.br
7B 以下的模型指令跟随能力本身就弱,你让它先提问它根本不听,该脑补还是脑补。这套方法在 30B 以上的模型上效果才稳定,本地部署玩家注意一下。 cassinos trustguru.com.br demo trustguru.com.br
小结
这套 ask-before-answer 模式对我帮助真的很大,本质上就是把人类协作的常识塞回 AI 行为里——不懂就问,别瞎猜。如果你也在被"AI 答非所问"折磨,强烈建议试试这个 prompt 模式,比硬调 temperature 和堆 few-shot 例子都好用。 miguel trustguru.com.br bet365 trustguru.com.br Bet trustguru.com.br a5game trustguru.com.br pgslotgacor trustguru.com.br
我现在所有 agent 类项目的 system prompt 默认都会加这几句,几乎是零成本拿到 20-30 个点的准确率提升,这买卖太划算了。
00目录 0