Anthropic 官方 Opus 5 提示指南:教你删东西,而不是加东西

八段可直接抄的提示词,外加一条反直觉的:审查提示写「只报高危」,它可能真的就少报。
作者:Anthropic 官方文档07-25 · 10 分钟⚑ 方法教程
🎧 听播客版0:00 / --:--
0:00 / --:--
深度 · 小互解读
一分钟速览
  • Anthropic 在官方文档里单开了一页,讲你手上已有的提示词换到 Opus 5 之后该改哪几行。整页最反常的地方是:八个板块里有三个在教你删东西
  • 最该删的是「最后加一步验证」「用子代理复核一遍」这类话。Opus 5 自己就会验,这些从上一代抄过来的指令留着只会让它验过头,多烧 token、质量不变
  • 代码审查的提示词要反着写:写「只报高危问题」「保守一点」,它可能当真照做、报得更少。给出的解法是让它全报,另开一轮去筛
  • 它比上一代话多、更爱播报、更爱把活派给子代理。文档给了八段可以直接复制的提示词,一段管住一个毛病
  • 思考现在默认开着,想关掉只允许在 high 档及以下(low 到 max 是思考力度的五个档位名,第八节有完整对照表),在 xhigh 和 max 上关思考会直接返回 400 错误
⚑ 材料来自 Anthropic 的官方文档,讲的是自家模型该怎么调,能力描述和推荐档位都是自评口径。文中的五档说明、报错细节和缓存下限来自同一站点的 Effort 文档与迁移指南,正文会逐处标出。
1 这是什么

一份教你删东西的文档

如果你的系统提示词里写着这么一句:「任务做完之后,加一步验证」,那么从换到 Claude Opus 5 的那一刻起,它就在让你多花钱。

Anthropic 给 Opus 5 单独写了一页提示指南,八个板块、一千五百多个英文单词。这八个板块里有三个,讲的是从你的提示词里拿掉东西。

同一份系统提示词,换到 Opus 5 之后
删
任何不简单的任务,最后都加一步验证。
用一个子代理来复核结果。
回答之前再检查一遍你的答案。

加
把回答控制在需要的长度。
只有大到真能拆开并行的活才派子代理。
交付被要求的那件事,别自己扩大范围。
左边那三句都是为上一代模型写的。Opus 5 把这些动作做进了默认行为,那三句留着只会让它做两遍。

方向为什么会掉头,逻辑并不绕。过去几年提示工程的主流动作是「加」:模型不肯自查,就写一句逼它自查;模型交半成品,就写一句逼它跑完;模型不验证,就挂一个子代理去复核。这些句子解决的都是短板。

Opus 5 把其中一批短板补掉了。它自己就会验证、会把整个任务做完而不是写一半就交差(不留只有函数名、里面没真干活的占位代码)、会在发现自己写错时回头改。原来那些逼它的句子,现在逼的是它本来就会做的事。

这类指令会让 Claude Opus 5 过度验证,把它们删掉能减少浪费的 token,而质量没有损失。Prompting Claude Opus 5 · Anthropic

要说清楚的是,这一页跟 Opus 5 的发布公告是两份不同的东西。公告讲的是这个模型有多强、多少钱、值不值得换;这一页只讲一件事:换过去之后,你手上那些从 Opus 4.7、4.8 时代抄下来的提示词,该改哪几行。

站内相关
Claude Opus 5 发布解读:一半价钱逼近自家最强的 Fable 5,12 项里仍有 5 项落后
2 删

先删:所有让它自己验一遍的话

这是整份文档里最该先做的一件事。要删的句子分两类,长得都很眼熟。

第一类是任务级的验证要求,典型写法是「任何不简单的任务都要包含一个最终验证步骤」「用一个子代理来验证」。第二类是回答级的自查要求,典型写法是「再检查一遍你的答案」「回答之前重新确认」。两类的处置一样:删。

同一句提示词,在两代模型上的实际效果
上一代:不写这句,它就真的不验
干活
→
你要求的那一遍验证
→
交付
这句话在这里是有价值的,它补上了模型缺的那一步。
Opus 5:它自己已经验过了
干活
→
它自带的那一遍
→
你要求的那一遍
→
交付
同样的产出,多走一轮。这一轮的开销是实的,收益是零。

要删的不止提示词里的句子。文档特意点了一句:那些为了老模型搭的流程脚手架(harness),如果里面有一个单独的验证环节,也要一起拆掉。提示词是你对模型说的话,脚手架是你写在外面的流程代码,管什么时候调模型、调几次、每次给什么。两层都得清。

给 Claude Code 用户的等价落点

这一页整篇站在接口调用的角度写,讲的是系统提示词和外层脚手架。如果你是在 Claude Code 里用它,等价的位置就是 CLAUDE.md 和你自己写的技能文件。对号入座的写法长这样:「改完代码记得叫一个子代理复核一遍」「每步做完自己验证一次再往下」「交付前重新确认所有改动」,这三句现在都该删。这一层文档没有明说,是本站按同一个模型、同一套系统提示推的。

3 反着写

审查提示写「只报严重的」,它会真的少报

这一条最反直觉,也最容易在自己那套自动化流程里踩到。

先看前提:Opus 5 审代码的准确率和覆盖率都高,每一轮能捞出真 bug 的比例很高,而且它多报出来的那些,大部分也是真问题,不是误报凑数。更实用的一点是,这个准确率在思考力度调低时也保持得住,所以审查时可以先用便宜的档位快扫一轮,之后再细审一轮。

问题出在你怎么写筛选条件。如果提示词里有「只报告高严重度的问题」或者「保守一点」,Opus 5 可能按字面执行,于是报得更少。文档给的解法是把筛选从提示词里挪出来:让它全都报,另外开一轮去筛。

写法 A:在提示里筛
「只报高严重度问题」
它替你判严重度。灰掉的那些在它嘴边被吞了,你不知道有过这些,也没法回头翻。
写法 B:全报,再单开一轮筛
「全部报出来」+ 一轮独立筛选
你自己定阈值。全量摆在面前,筛掉哪些、留下哪些,标准在你手上,随时能调。
图为示意:方块数量与比例只用来说明两种写法的差别,不代表实测数据。

两种写法的差别,说到最实处是一句话:谁来定什么算严重。写进提示词,就等于把这个判断交给模型在你看不见的地方做完;单独开一轮,这个判断才在你手上。

4 按住

它变啰嗦的三个地方,要分开按

Opus 5 默认给用户看的回答,比上一代的 Opus 长。很多人的第一反应是调低档位省点字,这条路走不通,得先弄清 effort 这个参数到底管什么。

effort(思考力度)管的是模型这次愿意花多少 token 去想,不是它最后说多少。调低它,思考量会下来,可见回答的长度却不一定跟着短。想让它说得短,只能明着要求。

一次回答里的四样东西,effort 这个旋钮拧得动第一格,另外三格不保准
effort 思考力度旋钮 ? ? ? 思考 effort 能管 给用户看的回答 得单独写一句 写到磁盘的文档 得单独写一句 干活时的播报 得单独写一句
下面那三格各有一段现成提示词,明着要求比拧旋钮可靠,三段都可以直接复制走。

第一处:给用户看的回答

用于面向用户的多轮产品
Keep responses focused, brief, and concise. Keep disclaimers and caveats short, and spend most of the response on the main answer. When asked to explain something, give a high-level summary unless an in-depth explanation is specifically requested.
中译:回答保持聚焦、简短、精炼。免责声明和限定条件写短,把大部分篇幅留给正题。被要求解释某件事时,给一个高层次的概述,除非对方明确要了深入解释。

系统提示很长的话,还有一个配套做法:在长提示的末尾再补一个短提醒,跟上面那段配对使用。

补在长系统提示的末尾
<tone_preference>
Keep outputs reasonably concise.
</tone_preference>
中译:输出保持适度精炼。

第二处:写到磁盘上的文件

这一处跟对话里的啰嗦是两码事,需要单独按。Opus 5 写出来的报告、Markdown 文档、总结文件,篇幅也比上一代长。如果你的产品会让它生成文档交给用户,得给一条明确的长度校准。

校准写到磁盘的文档长度
Match the length of written documents to what the task needs: cover the substance, but do not pad with filler sections, redundant summaries, or boilerplate.
中译:文档长度要匹配任务的实际需要:把实质内容讲到,但不要用凑数的章节、重复的总结、套话来充篇幅。

第三处:干活时的播报

Opus 5 在放手让它自己跑(agentic)的场景里很爱说话:动手前先报一句自己打算干什么,每条消息也比上一代长。要调下来,别命令它闭嘴,把你想要的节奏和形状描述清楚就行。

调低播报密度
Before your first tool call, say in one sentence what you're about to do. While working, give a brief update only when you find something important or change direction. When you finish, lead with the outcome: your first sentence should answer "what happened" or "what did you find," with supporting detail after it for readers who want it.
中译:第一次调用工具之前,用一句话说你要做什么。干活过程中,只有发现重要的东西或者改变方向时才给一条简短更新。做完之后,先说结果:第一句要回答「发生了什么」或者「你发现了什么」,想看细节的人往后读。

想让它多播报,或者换一种播报风格,用的是同一个杠杆的反方向。这里还带出一条通用的手艺:给出你想要的沟通风格的正面例子,比列一堆「不许这样」有效。

5 按住

它派子代理比以前积极,小活也派

子代理(subagent)是主模型把一块工作拆出去,交给一个新开的分身独立干完再交回来。每个分身自己读一遍上下文、自己生成一遍,各烧各的 token。

Opus 5 派活比上一代积极。这在真正独立、体量够大的任务上是划算的,比如一次要横跨很多文件的调查;但用在小任务上,成本和时间都是乘出来的。

自己做完
主模型
一份上下文
一份生成开销
做完就交
派三个分身做同一件小事
分身 1
分身 2
分身 3
三份上下文各读一遍
三份生成开销
收工时间取决于最慢那个
限制它派子代理
Delegate to a subagent only for large tasks that are genuinely independent and parallelizable, such as a wide multi-file investigation. Do not delegate work you can finish yourself in a handful of tool calls, and do not use subagents to verify or double-check your own work. If one subagent can complete the task, use one rather than several, and keep spawn counts low.
中译:只有大的、真正独立且可并行的任务才派子代理,比如大范围的跨文件调查。你自己几次工具调用就能做完的活不要派出去,也不要用子代理来验证或复核你自己的工作。如果一个子代理就能完成任务,就用一个,别用好几个,把开出去的数量压低。

这段里有一句跟上面第二节咬合上了:不要用子代理来复核自己的工作。同一个毛病在两个地方各堵一次,一次堵在验证行为本身,一次堵在派活习惯上。

还有一条更硬的办法:如果你的外层流程支持,直接在代码里写死能开几个分身。提示词是劝,脚手架里的上限是拦。成本敏感的场景两样一起上。

6 按住

它会自己给任务加戏

除了验证得过头,Opus 5 还会自行扩大任务的范围:加上没被要求的步骤,或者用自己的判断去重新定义这个任务应该是什么。对于范围明确的窄任务,需要把边界写死。

文档给的这段是八段里最长也最讲究的一段。它同时要防四个方向的跑偏,拆开看每一句在管什么:

Deliver what was asked, at the scope intended.
交付被要求的那件事,按预期的范围。这是总纲,既防加戏也防缩水。
Make routine judgment calls yourself, and check in only when different readings of the request would lead to materially different work.
常规判断自己做,只有在对请求的不同理解会导致做出实质不同的工作时才回来问。防的是另一个极端:把边界写死之后,它变得每一步都来请示。这句给了一条明确的提问门槛。
If the request seems mistaken or a better approach exists, say so in a sentence and continue with the task as asked rather than quietly narrowing, widening, or transforming it.
如果请求看起来有问题、或者存在更好的办法,用一句话说出来,然后按被要求的样子继续做,别悄悄地把它缩小、放大或者改成别的。允许它提意见,但不允许它因为有意见就改做别的。后半句点名了三种具体的跑偏:缩小、放大、变形。
Finish the whole task, and stop short of actions that are clearly beyond what was asked.
把整个任务做完,同时在明显超出要求的动作面前停住。一头管做完,一头管别越界。

这段措辞跟 Claude Code 默认系统提示里那几段的写法高度接近(这是本站的观察,文档没有交代两者的关系)。如果你在自己的项目里写过类似的边界约束,可以直接对照着补齐缺的那几句。

7 机制

思考默认开着,关掉会出两种毛病

Opus 5 和上一代之间有一个真正的机制变更:在 Opus 4.8 上,请求里不写 thinking 字段就是不思考;在 Opus 5 上,同样的请求会带着思考跑。想回到旧行为,得自己手动加一句 thinking: {"type": "disabled"}。

而且这个开关是有条件的:只有 effort 在 high 及以下才允许关思考。配上 xhigh 或 max 会直接返回 400 错误,每个请求单独校验(报错码和每请求校验这两点来自 Anthropic 的迁移指南,档位上限本身在这页提示指南里就写了)。

真关掉之后,有两种毛病偶尔会冒出来。第一种更贵,因为它是静默的。

关掉思考之后,一次工具调用可能这样消失
1
模型准备调用一个工具
2
它把这次调用写成了给人看的一段文字,而不是程序能识别的结构化调用
3
程序在该拿调用的地方什么也没拿到
4
这一轮正常结束,没有任何报错,那次调用从头到尾没有发生过
5
那段假调用留在了对话历史里
6
后面每一轮都会读到它,影响一路往下传

这种情况在工具用得密的场景里最常见,比如搜索类的活。第二种毛病相对好认:模型把 <thinking> 之类的内部标签吐进了用户能看见的回答里。

第二种毛病连着一个反直觉的坑:如果你的系统提示里有一条规则,叫模型「不要思考」或者「不要推理」,把它删掉,这类指令会让标签漏得更多。同理,点名 thinking 标签的写法,效果不如通用的写法,所以下面这段缓解指令里一个标签名都没提。

首选处理是别关

对这两种毛病,给出的第一处理办法都不是缓解措施。保持思考开着,改用低档位控制成本。原话是:大多数任务上,开着思考跑 low 档,比关掉思考、花差不多的钱,效果更好。

必须关掉思考时,用这一段同时防两种毛病
When you use a tool, you may say a brief sentence first. If no tool can express what the user asked for, say so instead of guessing. Do not include internal or system XML tags in your response.
中译:使用工具时,你可以先说一句简短的话。如果没有任何工具能表达用户的要求,就直说,不要猜。回答里不要包含内部或系统的 XML 标签。

三句话各自对着一个成因:第一句给它「调工具之前可以先说话」的许可,它就不必把话挤进调用里;第二句给它一条没有合适工具时的退路,免得硬凑一个;第三句是通用的标签禁令,不点名任何一种标签。

8 档位

五档 effort 怎么挑,以及一个会报 400 的组合

提示指南本身只用一段话带过档位建议,完整的档位表在 Anthropic 的 Effort 文档里。这一节的材料主要来自那一页和迁移指南,不是从提示指南里抄的。

档位是什么典型用途
max能力上限,不给 token 花销设约束需要最深推理、最彻底分析的任务。这一档禁止关思考
xhigh为长周期工作扩展的能力超过 30 分钟、token 预算以百万计的长跑编码和 agentic 任务。这一档禁止关思考
high高能力,等同于不设这个参数(默认值)复杂推理、难的编码问题、agentic 任务
medium平衡,省下中等幅度的 token需要在速度、成本、效果之间平衡的 agentic 任务
low最省,明显省 token,能力有一定下降简单任务,要最快最省,比如给子代理用

Opus 5 的推荐是:从默认的 high 起步,然后按你自己那套评测往两边调,硬的编码和 agentic 工作往上到 xhigh,值得不计成本的任务再上 max;而 low 和 medium 应该放开用,只要评测显示质量守得住,就把它们当成控制 token 成本和响应时间的首选杠杆。

这个起步点跟上一代不一样,值得单独拎出来。Opus 4.8 的官方推荐是「编码和 agentic 从 xhigh 起步」,到 Opus 5 改成了「从 high 起步」。同一份能力清单里还写着一条:low 和 medium 现在能用高档位一小部分的 token 和延迟,跑出很不错的质量。

400
关思考 + xhigh 或 max,API 直接返回的错误码,每个请求单独校验
64k
跑 xhigh 或 max 时建议的 max_tokens 起步值,它是思考加回答的总上限
512
能进提示缓存的最短长度(token),上一代 Opus 4.8 是 1024

提示缓存是把提示词里重复不变的那部分存起来,下次再发同样的开头就不用重新算钱、也不用重新等。门槛从 1024 降到 512,意味着以前太短进不了缓存的提示,现在也能省下这笔。

三个配套动作,做自动化流程都会碰到。一是从旧模型迁过来时,别把旧的档位设置直接抄过来,拿你平时最常跑的那些真实任务凑一组,新旧档位各跑一遍比对结果。二是那些原来在 Opus 4.8 上不带思考跑的任务,换过来之后会带着思考跑,而 max_tokens 管的是思考加回答的总量,这个值要回头再看一眼。三是改档位会让提示缓存失效,一个依赖缓存的长会话里,开头选定一档就别中途换,要换也是跨任务换。

站内相关
Claude Fable 5 官方提示指南:十几条可直接抄的调法,从治过度规划到治假进度汇报
9 带走

一页纸:老提示词删什么、加什么

把上面八节压回一张可执行的清单。删的三条放在最前面,因为它们不花钱、立刻见效。

✅ Opus 5 提示词改造清单
八段可以原样复制进系统提示的英文原文,全部收在上面各节的代码块里:管回答长度、末尾短提醒、播报节奏、文档长度、任务范围、子代理限制、纠错播报、关思考时的合并缓解。

还有一段没在正文单列

Opus 5 自己会发现并改掉之前的错,这是好事,但它也比上一代更爱在用户面前念叨「我刚才说错了」。做面向用户的产品时,这段能把纠错播报收到只剩真正重要的那些。

少念叨自己刚才说错了
Only correct an earlier statement when the error would change the user's code, conclusions, or decisions. State corrections plainly and briefly, then continue the task. For slips that change nothing for the user, make the fix and move on without noting it.
中译:只有当那个错误会改变用户的代码、结论或决定时,才纠正你之前说过的话。纠正要说得平实简短,然后继续做任务。对于那些对用户没有任何影响的小失误,改掉就行,不用特意说明。

这份文档没给的东西

「回答更长」「播报更多」「更爱派子代理」,这几条全是定性描述,一个百分比都没有。到底比上一代长多少、多多少,读者没法预期,只能自己跑一轮对照。同样,「删掉验证指令能省 token 且质量不掉」是给出的结论,没有附对照数据;「开着思考跑低档比关掉思考更好」也一样,是判断,不是实测数字。

能确定的是那八段提示词本身:它们是可以原样复制的材料,改与不改,拿自己常跑的任务前后各试一轮就知道。

来源
Prompting Claude Opus 5Anthropic·platform.claude.com
本站说明
五档 effort 表、400 报错细节、64k 与 512 两个数字、缓存失效规则均来自 Effort 文档与迁移指南,不在这页提示指南内,正文已逐处标注。八段提示词为原文英文,中译为本站所译。全部图表为本站绘制;审查写法对照图中的方块为示意,非实测数据。「给 Claude Code 用户的等价落点」与「措辞接近默认系统提示」两处为本站观察。