Claude 回答不准确怎么办——三处调整

Claude 信誓旦旦地说错——80% 不是"换模型"能解决的,要看 context / system prompt / 检索。

Claude 给出一个答案,听起来非常自信、措辞专业,但你一查发现关键事实是错的——比如把 API 函数签名写反了、把 2023 年的政策当作 2026 年现行的、或者编造了一个不存在的库名。这种”自信地说错”(confidently wrong)是所有 LLM 的通病,但通过调整 context、system prompt 和检索方式,错误率可以从 30% 降到 < 5%。

绝大多数人遇到这种问题的第一反应是”换更聪明的模型”,但实测发现:同样问题在 Opus 4.7 上还是错,原因不是模型不行,而是它没拿到正确的 grounding 数据。下面按”诊断 → 修复”的顺序来。

常见原因

按命中率从高到低:

1. 没给 grounding 文档,模型在凭训练记忆回答

最常见。你问”Stripe 2026 年新加的 Adaptive Pricing 怎么用?“——如果你不贴文档,Claude 只能根据训练截止日(约 2025 年中)的记忆去推测,编一个看起来合理但完全错的 API 出来。

如何判断:让 Claude 在回答末尾加”我的信息来源是:“。如果它说”基于训练数据”、“通常情况下”,就是在凭记忆。

2. 上下文窗口被挤满,关键事实被截断

长会话中如果你早期贴了一段重要参考资料(比如规范文档),但中间又灌入了大量代码或日志,那段参考资料可能已经被”挤出”活跃 attention,模型记不清细节。

如何判断:让 Claude 复述早期贴的某段事实,如果复述偏差大或完全忘了,就是这种情况。

3. System Prompt 鼓励”helpful”压过”accurate”

默认 Claude 倾向于”给出有用回答”,遇到不确定的事实更倾向于”猜一个看起来对的”而非”承认不知道”。

如何判断:直接问”你确定吗?请如实回答置信度”,如果它立刻改口或表示”其实不太确定”,说明此前在硬猜。

4. 问题描述本身有歧义或错误前提

“Python 的 urllib.fetch 怎么用?“——Python 没有 urllib.fetch,但 Claude 可能不指出错误,而是顺着你的话编一个。

如何判断:你的问题里是否假设了某个不一定存在的 API / 概念 / 配置项。

5. 多语言混合 / 术语不一致

用中文问技术问题但夹了英文术语,可能让 Claude 在中文文档语料和英文文档语料之间摇摆,导致细节错乱。

如何判断:换成全英文重问同一题,看答案是否变得更准。

6. 模型选择本身不匹配

简单 RAG 用 Haiku、复杂多步推理用 Opus,反过来都会出问题。Haiku 在长上下文里准确率低;Opus 强行省 token 时也会跳步。

如何判断:在 Settings 看你当前用的是哪个模型,对比任务复杂度。

最短修复路径

按 ROI 排序,前 3 步通常能消掉 80% 的错误。

Step 1:贴原文,强制 grounding

最有效的一招。不要让 Claude 凭记忆,把官方文档相关段落直接粘进 prompt:

prompt:
[贴 Stripe API 文档原文 200-500 字]

基于上面文档原文回答:Adaptive Pricing 怎么 enable?
要求:只能用文档里出现过的字段名和 API endpoint,
     如果文档没明说,必须回答 "文档未说明"。

这一招把错误率从 ~30% 降到 < 3%。

Step 2:System Prompt 加”反过度自信”指令

你是一个严谨的助手。规则:
1. 不确定的具体事实(数字、版本号、API 名)必须前缀 "[未验证]"
2. 不能 100% 确定时,必须说"我不确定,建议你查 X 文档"
3. 不要为了显得有帮助而编造细节
4. 引用任何函数名 / 配置项必须能在我贴的代码或文档里找到

放在对话开头一次即可。

Step 3:开新会话,只带必要 context

当前会话已经污染(错误回答可能让模型自我强化),关掉重开。新会话只贴必要事实,问同样问题。常见现象:新会话答得明显更准。

Step 4:交叉验证

让 Claude 答完后,复制问题去问另一个模型(GPT、Gemini)或同一模型的不同会话:

独立问问:[原问题]
不要被影响,直接给你的答案。

对比两个回答的分歧点——分歧的地方就是双方都在猜的地方。

Step 5:让 Claude 自评置信度

对上面回答,逐条列出每个事实陈述的置信度:
- 高(>95%,能在我提供的资料里找到原文)
- 中(不确定,但符合一般经验)
- 低(猜测,需要核实)

然后只采纳”高”的部分。

Step 6:换模型 / 模式

如果问题复杂多步:用 Opus + Extended Thinking。 如果上下文超长:用 Sonnet(长上下文准确率比 Haiku 高)。 如果是事实检索:用 Projects + Knowledge 而非纯聊天。

预防建议

  • 对所有”具体数字 / 版本号 / API 名 / 函数签名”默认不信任,自己跑一遍或查官网
  • 维护一份常用领域的”事实包”(API 文档关键片段、内部规范),重要对话直接粘贴
  • System Prompt 里固定加”不确定就说不确定”指令,作为 baseline
  • 把 Claude 当 senior pair-programmer 而非 oracle——它给草稿,你做校对
  • 模型选择按任务复杂度匹配,不要一上来就用最贵的(也不要为省钱用最便宜的处理复杂任务)

相关阅读

标签: #Claude #排查 #排查