为什么你的 Claude 总答非所问?教它先提问就好了

2026-05-27
为什么你的 Claude 总答非所问?教它先提问就好了 关注 作者 关注 作者 关注 作者 关注 作者 05/24 16:42

本文使用 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
    讨论 我来说一句 发布发表评论 发布0等 0 人为本文章充电 ofox.ai 关注