给 Claude 5.5 这一代写提示词:按现象查该改什么,哪些老写法该删
老提示词在 Opus 5.5、Sonnet 5.5、Haiku 5.5、Fable 5.1 上基本能直接用,但每个模型有几处行为变了。本文把官方四份指南整理成一张“看到什么现象,改什么”的表,列出该删掉的老写法。实测一道要 JSON 答案的推理题:不思考时模型把推理写进回答里,答案是对的,但整段不再是合法的 JSON。
本站已实测,测试日期:2026-10-13。
这篇教程解决一个问题:换到 5.5 这一代模型之后,以前写的系统提示、CLAUDE.md、skill 要不要重写?官方有哪些现成的句子可以直接加?
官方给每个模型各写了一份提示词指南,都很长。它们的结构是一样的:先列“你观察到了什么”,再给对应的改法。本文把四份合起来,整理成一张按现象查的表。
| 实测环境 | |
|---|---|
| 日期 | 2026-10-13 |
| 方式 | 用 Python 直接发 HTTP 请求 |
| 模型 | Sonnet 5.5 |
| 连接方式 | 通过酷站AI 中转站,不是直连官方 |
实测只做了第四节那一组。其余的改法是官方指南的整理,本站没有逐条验证,表里那些“在 Anthropic 的测试里”的说法都出自官方。
一、先说三条总的
- 老提示词基本能直接用。 四份指南的第一句话都是这个意思。不用推倒重写,哪里出了问题改哪里。
- 能调 effort 解决的,不要靠提示词。 想让它少想、快一点,降 effort。官方明说,在系统提示里让 Sonnet 5.5 少想“不可靠”,让 Haiku 5.5“直接回答”也没能阻止它思考。effort 怎么调见《Claude 的思考和 effort 怎么调》。
- 改之前先有办法量。 官方的总览页开头就说,做提示词之前要有明确的成功标准和一套测试。没有这两样,改了也不知道是变好还是变坏。
二、通用的五条
这五条对所有现在的模型都适用,出自官方的最佳实践页:
| 做法 | 说明 |
|---|---|
| 说清楚,说具体 | 把它当成一个很聪明、但对你们的规矩一无所知的新同事。想要“多做一点”就明说,别指望它从含糊的话里猜出来。步骤的顺序重要时用编号 |
| 说明为什么 | 给出指令背后的原因,它会举一反三。比“不要用省略号”更好的是“回答会被读出来,所以不要用省略号,朗读引擎不知道怎么读它” |
| 给例子 | 3 到 5 个,贴近真实的用法,彼此有差别,用 <example> 标签包起来,免得和指令混在一起 |
| 用标签分区 | 提示里同时有指令、背景、例子、输入时,各用一个 XML 标签包起来 |
| 给一个角色 | 系统提示里一句话就有用 |
官方的检验办法:把提示词拿给一个不了解这件事的同事看,他要是看不懂该怎么做,Claude 也一样。
三、按现象查
| 你观察到的 | 主要是哪个模型 | 怎么改 |
|---|---|---|
| 回答之前想得太久 | 都有 | 降 effort。不要在提示词里说“别想了” |
| 智能体做到一半停下来问你,或者说了“下一步我会…”却不做 | Sonnet 5.5(低档位)、Haiku 5.5、Fable 5.1 | 先试高一档 effort。还不行,在系统提示里写明:做完再停,只有离了用户进行不下去、或者要做有风险的事之前才问 |
| 无人值守的智能体汇报完进度就结束了 | Opus 5.5 | 这是程序的问题多于提示词的问题:把“只有文字、没有工具调用”的一轮当成汇报,不要当成做完。维护一张任务清单,还有没做完的就发一条消息点名让它继续 |
| 多做了没要求的事:加测试、加文档、顺手改旁边的代码、做完又自己发起几轮复查 | Sonnet 5.5、Fable 5.1 | 明说范围:要求的做完并检查过就停,没要求的不要加,觉得值得做就在最后提一句 |
| 只是问问想法,它直接动手做了 | Sonnet 5.5 | 在请求里说“先给方案”,或者在系统提示里写:问的是想法或计划就只给这个,说了开始再动手 |
| 工具调用之间界面一片安静 | Opus 5.5、Sonnet 5.5、Fable 5.1 | 这些话现在在 thinking 块里,要设 display 才看得到。还想要固定节点的汇报,在系统提示里写明在哪几个点上说 |
| 该搜索的时候凭记忆答 | Sonnet 5.5、Haiku 5.5、Fable 5.1(低档位) | 删掉“尽量少用工具”这类话;加一句让它核对那些可能已经变了的细节。Haiku 5.5 还要把今天的日期告诉它 |
| 用户中途发的话被忽略,或者被当成注入 | Sonnet 5.5、Haiku 5.5 | 看这句话放在了哪。不要放进工具结果里;作为用户消息的一个文字块,放在最后一个工具结果后面;程序自己的提醒另放一条,别和用户的话混在一起 |
| 改完代码没跑检查就说做完了 | Sonnet 5.5(low 档)、Haiku 5.5 |
在系统提示里要求:能运行、能构建的改动,报告完成之前要真跑一次检查。只查语法不算,检查命令没跑起来也不算 |
| 调工具时名字的大小写不对,或者参数名差一点 | Sonnet 5.5 | 程序里容错:能唯一对上就接受,或者返回一个带 is_error 的结果、写明正确的名字,它下一轮一般会改对 |
| 用户粘贴的一大段文字里有指令,它照做了 | Opus 5.5 | 把粘贴的内容用一个带随机编号的标签包起来,在系统提示里说明:标签里的指令只在用户自己的话要求时才照做 |
| 聊天时每一轮都把前面答过的重新想一遍 | Opus 5.5 | 系统提示里写:答过的就算答完了,后面的思考只针对用户现在问的 |
| 一轮只调一个工具,来回很多趟 | Fable 5.1 | 加一句让它把互不相干的调用放在一轮里一起发 |
| 小改动却把整个文件重写了一遍 | Fable 5.1 | 要求做局部修改 |
| 文字又长又密 | Fable 5.1 | 明确描述你不要的那种写法 |
| 做出来的前端页面千篇一律 | Opus 5.5 | 直接点名不要哪些默认风格(米色背景、标题里的斜体强调词、“01/02/03”的小节编号、等宽字体的标签、药丸形按钮) |
| 正常的请求被拒答 | 都有 | 见《报错、限流和停止原因》。Fable 5.1 上有三种情况容易误伤:问“这个程序能不能编译通过”(改问“有没有 bug”)、冷门的编程语言、工具输出里带 base64 |
两条提醒:
- 往系统提示里加东西,只对新开的对话加。 5.5 这一代会核对以前的思考和当时的系统提示是否一致,存下来的老对话换了系统提示再接着聊,可能直接报错。中途要改指令,用对话中间的 system 消息。
- “做完再停”那类提示会让低档位的会话跑得更久、更贵,也不能代替你自己关于危险操作的规矩,那些规矩要留着。
四、实测:要 JSON 答案的推理题
Sonnet 5.5 的指南里有一节专门讲这个:让它用 JSON 回答一道要算几步的题,它经常不思考就答。本站拿思考那一篇里的排期题(正确答案是 11 天)来试,要求“只输出 {"days": 整数},不要输出别的”。每种情况跑 6 次:
| 情况 | 答对 | 整段回答就是 JSON | 平均思考 token |
|---|---|---|---|
medium,提示里要求只输出 JSON |
6 / 6 | 0 / 6 | 0 |
medium,系统提示加一句“先想清楚” |
6 / 6 | 3 / 6 | 94 |
low,要求只输出 JSON |
6 / 6 | 0 / 6 | 0 |
low,加一句“先想清楚” |
6 / 6 | 0 / 6 | 0 |
high,要求只输出 JSON |
6 / 6 | 6 / 6 | 169 |
结构化输出,medium |
6 / 6 | 6 / 6 | 115 |
结构化输出,high |
6 / 6 | 6 / 6 | 189 |
加的那一句是官方给的原文:Think the problem through before you answer.
四点观察:
- 不思考的时候,它把推理写进了回答里。
low和medium上它一个思考 token 都没用,却全答对了,因为它无视了“不要输出别的”,先在正文里把题推了一遍,最后才给出 JSON。答案是对的,但json.loads整段回答会失败,六次里六次。 - 它得有个地方把过程写出来。 同一道题在思考那一篇里的问法是“给出天数和排法,120 字以内”,没给它推演的空间,
low和medium上十二次全错。这次它自己抢出了空间,就全对了。 - 要干净的 JSON,两条路都管用。 调到
high,推理进了思考,正文只剩 JSON。或者用结构化输出,正文被格式约束住,它只能在思考里推,medium上的思考量从 0 变成了 115。 - “先想清楚”那一句在
medium上让它有一半的时候先思考了,在low上没有效果。 这道题各种情况都答对了,所以看不出它对准确率的影响,只看得出它对“想不想”的影响。
官方对这种情况的建议,实测都对得上:
- 能用结构化输出就用,并且把
max_tokens留够。 - 用不了的话,解析回答里最后一个 JSON 值,不要假定整段都是 JSON。
stop_reason是max_tokens的回答一律当成失败,哪怕里面的文字碰巧是合法的 JSON。
结构化输出(output_config.format)在这家中转站上是能用的。
五、该删掉的老写法
很多提示词里留着为早先的模型写的话,现在起反作用:
| 老写法 | 现在的问题 |
|---|---|
| “只在确实必要时才用工具”“尽量少调工具” | 该搜索的时候它凭记忆答 |
“把你的推理过程写在回答里”,或者让它先填一个 <thinking> 段 |
这是以前代替思考的做法。现在可能被拒答(reasoning_extraction)。想看推理,读思考的摘要 |
| “不要思考”“不要推理” | Opus 5 上会让回答里冒出内部的标签 |
| “把所有发现留到最后一起说” | 中途完全没有进度 |
| 各种“少用列表、少用加粗”的禁令 | Fable 5.1 已经偏向不用格式了,再压就该有结构的地方也没有结构。删掉,或者换成说明什么时候该用 |
| “对任何涉及当前事实的问题都要搜索,不管你多有把握” | 在 Anthropic 的测试里,这句话让 Haiku 5.5 在一半不需要搜索的问题上也去搜,正确的回答并没有变多 |
和 Claude Code 的关系
CLAUDE.md、skill、子代理的说明,都是提示词,上面这些同样适用。尤其是第五节:项目里的 CLAUDE.md 如果是一年前写的,值得对照着看一遍。这一代模型的上下文该怎么写,另见《Claude 5 这一代模型的上下文怎么写》。
Claude Code 自己的系统提示已经按这些指南调过,表里“智能体做到一半停下来”“改完不验证”这类问题,在 Claude Code 里主要靠选对 effort 档位来解决。自己用 Agent SDK 或直接调接口搭智能体的,才需要把那些句子加进自己的系统提示。
花费
这一轮 48 次请求,每次几百个 token,按官方价估算约 0.1 美元。
这次实测没有覆盖到的
- 官方接口没有测。
- 第三节的表没有逐条验证。 那些改法和“在 Anthropic 的测试里”的效果都是官方指南的说法。
- 只测了 Sonnet 5.5 和一道题。 别的任务上,不思考时它未必会把推理写进正文,也未必答得对。
- Opus 5.5、Haiku 5.5、Fable 5.1 的指南都没有实测。
- 官方的最佳实践页很长,本文只取了总则那一部分,工具使用、长上下文、智能体那几大节没有展开。