工具教程 · 小互解读

Anthropic 砍掉 Claude Code 八成系统提示词,给出六条新的上下文写法

规则换判断、示例换接口;一个工具描述从约 9100 字符压到一句话加一个枚举
一分钟速览
  • 你在 CLAUDE.md 和技能里写的那些「绝对不要」,现在很可能在拖后腿:Anthropic 把 Claude Code 的系统提示词删掉了八成以上,编程评测上没测出损失
  • 以前写死规则是因为老模型判断力不够,明知道规则对一部分场景是错的也得认。现在那条「默认不写注释」被换成了一句引导:写出来的代码要像它周围的代码
  • 多加一条约束不是免费的:系统提示词说「按需要留文档」、技能说「不要加注释」、你说「照旧的那样弄」,这三句能同时出现在一次请求里,Claude 得先把矛盾调和掉才动手
  • TodoWrite 的工具描述从约 9100 字符压到一句话加一个三值枚举加一条约束;想给自己的技能和 CLAUDE.md 瘦身,在会话里跑 /doctor
⚑ 材料来自 Anthropic 的 Thariq 讲自家产品的改造过程。「删掉 80% 以上」「编程评测无可测损失」是他们自己的口径,原文没有公开是按字符还是按 token 算、也没列出具体是哪些评测。文中那张冲突指令图,Anthropic 自己标注了是示意例子,并非真实提示词原话。
1 一个反直觉的数

他们把 Claude Code 的系统提示词删掉了八成

Anthropic 技术团队成员 Thariq Shihipar(@trq212)在 X 上发了一篇长文,讲他们最近对 Claude Code 做的一件事:针对 Opus 5 和 Fable 5 这代新模型,把系统提示词删掉了 80% 以上。编程评测上,没测出损失。

Claude Code 的系统提示词
删掉的部分:写死的禁令、重复的叮嘱、用不上时也占着位置的流程说明(本站按文中六条替换归纳)
留下
删减比例按原文口径「over 80%」示意,Anthropic 未公开是按字符还是按 token 计。

先说清楚被删的是什么。你给 Claude 发一句话,它读到的远不止这句话:系统提示词、你装的技能、项目里的 CLAUDE.md、它自己存的记忆、你 @ 进来的文件,全部拼成一大块送进去,你打的那行字只占其中一小条。管这一大堆东西怎么组织、什么时候进来,Anthropic 管它叫上下文工程。

提示词是你交代的这一件事,上下文是你递过去的整个工作台。

它跟写提示词有个根本区别:提示词是一次性的,你知道自己这回要什么;上下文是通用的,它要服务成千上万条你事先不知道内容的请求,所以没法写得太具体。难就难在这儿:你要为一个还不存在的问题准备好指引。

2 规则 → 判断

以前必须写死的规则,现在可以删掉

拿一条真规则看。Claude Code 早期的系统提示词里,关于注释是这么写的:

旧写法 · 系统提示词原文
In code: default to writing no comments. Never write multi-paragraph docstrings or multi-line comment blocks — one short line max. Don't create planning, decision, or analysis documents unless the user asks for them — work from conversation context, not intermediate files.
写代码时默认不写注释。绝不写多段落的文档字符串或多行注释块,最多一行短的。除非用户要求,否则不要创建规划、决策或分析文档,从对话上下文里干活,不要产生中间文件。

这条规则当年是必要的。Claude Code 刚推出时,最要紧的是别让模型闯祸,比如别删文件。所以他们会给出特别强硬的指引,哪怕这条指引并不总是对的。注释这条就属于并不总是对的那类:有的用户自己有文档习惯,有的特别复杂的代码就该配多行注释块。可当时的模型不这么拦着,写出来的注释十有八九是错的。明知这条规则会误伤一部分人,也只能这么定。

新一代模型的判断力够了,就不用再这么误伤。同一件事,现在的系统提示词里只剩一句: