教程Claude Code系列第 5 / 8 篇

Claude 5 这一代模型的上下文怎么写:少定规则,多给判断空间

根据 Claude Code 团队的文章整理:他们为 Opus 5、Fable 5 删掉了八成以上的系统提示词,编码评测没有可测的下降。讲清六条“以前和现在”的变化,以及 CLAUDE.md、skill 和参考资料现在该怎么写。

发布 · 约 6 分钟读完 · 经人工审核()· 本站的内容怎么来的

本文根据公开分享整理,本站尚未实测。操作前请对照文末的原始来源。

本页目录(5 节)
  1. 提示词只是上下文的一小部分
  2. 问题出在哪:管得太死
  3. 六条“以前和现在”
  4. 落到你自己的上下文
  5. 对你有什么用

这是“Claude Code 开发系列”的第五篇。

这一篇解决的问题是:你的 CLAUDE.md 和 skill 是按老模型的习惯写的,放到新模型上可能反而在拖后腿。 Claude Code 团队自己就遇到了这件事:他们为 Claude Opus 5、Claude Fable 5 这类模型删掉了系统提示词的 80% 以上,在编码评测上没有可以测出来的下降。

如果只想要结论:在 Claude Code 里运行 /doctor。团队把这篇文章里的做法放进了 claude doctor,它会帮你把 skill 和 CLAUDE.md 精简到合适的大小。想知道为什么要这样改,往下看。

提示词只是上下文的一小部分

你给 Claude 发一条消息,它实际拿到的远不止这一句。系统提示词、skill、CLAUDE.md、记忆,都会一起送进去。怎么安排这些东西,原文叫“上下文工程”。

它和写提示词的区别在于:提示词只管这一次请求,可以写得很具体;上下文要在很多次请求里通用,而你并不知道用户下一句会说什么。

问题出在哪:管得太死

团队读了自己内部使用 Claude Code 的会话记录,发现同一次请求里常常有互相打架的话。比如一处写着“适当留下文档”,另一处写着“不要加注释”,分别来自系统提示词、skill 和用户的要求。

Claude 一般能猜出用户真正想要什么,但它得先花力气想清楚这些重叠、冲突的话该听哪一句。

这些限制当初是为了防止最坏的情况。团队后来发现,其中很多可以删掉,让模型根据周围的情况自己判断。另一个变化是工具多了:以前 Claude 靠 CLAUDE.md 来记事、存资料、拿指导,现在有了记忆、artifacts 和 skill,可以分担这些事。

六条“以前和现在”

原文把过去的几条最佳实践称为“已经变成迷思”。整理成一张表:

以前 现在 原因
给规则 让它判断 硬规则总会在一部分情况下是错的
给例子 设计好接口 例子会把新模型限制在一小块范围里
全部写在前面 用到时再加载 不是每次都用得上的内容,不该一直占着上下文
重要的话多说几遍 工具说明写一处、写简单 新模型不需要重复提醒
往 CLAUDE.md 里存记忆 自动记忆 Claude 现在会自己保存相关的记忆
简单的规格文档 更丰富的参考资料 Claude 能用好更复杂的参考

下面逐条说。

给规则 → 让它判断

Claude Code 刚推出时,系统提示词里有这样的话(译自原文):

写代码时默认不写注释。不要写多段的文档字符串或多行注释块,最多一行短的。
除非用户要求,不要创建计划、决策或分析文档,直接根据对话内容工作,不要用中间文件。

对一部分请求,这条指导是错的:用户可能有自己的文档习惯,很复杂的代码也确实需要多行注释。但老模型没有这道护栏时,写出来的注释很多是不对的,团队只能接受这个取舍。

新模型的判断力更好,不需要明确的规则也能处理好。新的系统提示词里换成了一句(译自原文):

写出来的代码要读起来像周围的代码:注释的多少、命名和写法都与之一致。

给例子 → 设计好接口

以前工具使用的头号规则是“给 Claude 看例子”。团队发现,对最新的模型,例子反而会把它限制在某一块探索范围里。

替代的做法是多想想工具、脚本和文件本身的设计:Claude 能填哪些参数,怎样让这些参数表达得更清楚。原文举的是待办工具:状态字段只能取 pending、in_progress、completed 三个值,这本身就在提示 Claude 该怎么用;再加一句“同时只保持一项处于 in_progress”,行为就定义清楚了。

全部写在前面 → 用到时再加载

Claude Code 的系统提示词以前包含了怎么做代码评审和验证的详细说明。这些不是每次都需要,但需要时又很关键。

现在 Claude Code 很会“渐进式披露”,也就是在合适的时候加载合适的内容。团队把验证和代码评审各自挪成了 skill,由 Claude 按需调用。

工具也是同样的思路:有些工具是“延迟加载”的,代理要先用 ToolSearch 查到完整定义才能使用。这样可以有更多工具,而不用的时候不占上下文。

对你自己的 CLAUDE.md 和 SKILL.md,原文点破了一个常见的误解:把它们写成收录所有做法的总库,因为担心 Claude 找不到。更好的做法是组织成一棵文件树,到需要时再加载对应的那一份。

重复强调 → 工具说明写简单

早期的模型有时需要重复的指示,或者更容易听上下文末尾的话而不是开头的。所以系统提示词里会提一遍某个工具,工具说明里又写一遍。

团队发现这些重复可以删掉:怎么用工具,写在工具说明里就够了,不用再写进系统提示词。

往 CLAUDE.md 存记忆 → 自动记忆

以前鼓励用户用 # 快捷键把内容写进 CLAUDE.md。现在 Claude 会自动保存和工作、和你有关的记忆。

简单的规格文档 → 更丰富的参考资料

计划模式一直很依赖 Markdown 写的计划文件,另一个常见做法是把规格文档放在代码库里供 Claude 查阅。团队发现 Claude 能处理越来越复杂的参考资料:

  • HTML artifacts:代替简单的 Markdown 文件。
  • 代码本身:一套详细的测试,或者另一个代码库里要移植过来的函数,都可以当作规格。
  • 评分标准(rubric):把你在某个领域的品味写下来,比如“好的 API 设计是什么样”。Claude 可以用动态工作流启动验证代理,按这份标准来检查。

落到你自己的上下文

系统提示词

系统提示词和产品紧密相关,告诉 Claude 它在什么产品里、在做什么。用 Claude Code 的人基本不会去改它;自己做智能体的人,应该在这里花大量时间。

CLAUDE.md

  • 保持轻量,用几句话说明这个仓库是做什么的。
  • 大部分篇幅留给代码库里的“坑”。原文的例子:你们把所有类型都放在一个大文件里,别处一概不放。
  • 不要写 Claude 看一眼文件系统或仓库就能知道的事。
  • 多用渐进式披露。比如验证工作有好几条特别的要求,就单独做成一个验证 skill,在 CLAUDE.md 里引用它。

Skill

  • 把 skill 看作轻量的指引,让 Claude 在需要时能找到信息。
  • 除了特别重要的地方,不要限制得太死。
  • 长的 skill 尽量拆成多个文件,按需加载。
  • 最有价值的 skill,写的是你、你的团队或产品特有的看法、知识和做法。

skill 的基本写法见本站的 Claude Code 自定义 skill 教程。

参考资料

用 @ 提到文件,就能把它作为参考资料带进来,可以是规格文件、设计稿,甚至整个代码库。

原文的建议是优先用代码形式的参考,因为这是 Claude 非常熟悉的语言,指令清楚、不失真。例子:一份 HTML 做的设计稿,通常比一段文字描述或一张截图效果更好。

对你有什么用

只是用 Claude Code 的人:

  • 先运行 /doctor,让它帮你精简 CLAUDE.md 和 skill。
  • 自己过一遍 CLAUDE.md:全大写的“绝对不要”、同一件事说了几遍的、Claude 自己能从仓库看出来的,都是可以删的候选。留下的应该主要是“坑”。
  • 检查有没有互相矛盾的话。它们分散在 CLAUDE.md、skill 和你平时的提示词里,自己不容易发现。
  • 想让 Claude 照着某个样子做,给它一份代码或 HTML,比写一段描述管用。

在做自己智能体的人:

  • 换到新一代模型后,重新审一遍系统提示词。为老模型加的护栏,现在可能是多余的,甚至在互相冲突。
  • 删之前要有评测。团队敢删掉八成,是因为有编码评测证明没有下降。
  • 例子少放,把精力放在参数的设计上:枚举值、字段名本身就是说明。
  • 工具的用法只写在工具说明里,不常用的工具做成延迟加载。

原文最后提到,针对更先进的模型怎么写提示词,另有一份 Fable field guide,可以到原文里找链接。

来源

通过 API 中转站使用这些模型?到 Veridrop 免费检测中转站给你的是不是它声称的模型,或者看看中转站排行榜前 100 名。

相关文章

  • 给 Claude 5.5 这一代写提示词:按现象查该改什么,哪些老写法该删教程 · Claude Code · 约 8 分钟

    老提示词在 Opus 5.5、Sonnet 5.5、Haiku 5.5、Fable 5.1 上基本能直接用,但每个模型有几处行为变了。本文把官方四份指南整理成一张“看到什么现象,改什么”的表,列出该删掉的老写法。实测一道要 JSON 答案的推理题:不思考时模型把推理写进回答里,答案是对的,但整段不再是合法的 JSON。

  • Claude 的思考和 effort 怎么调:五档各是什么、什么时候该调高、钱花在哪教程 · Claude Code · 约 11 分钟

    effort 控制 Claude 在一个回答上下多大功夫,思考只是其中一部分。本文整理五档的含义、各模型的默认值、思考怎么计费、怎么让它多想或少想,以及任务预算和快速模式。实测一道排期题:Sonnet 5.5 在 low 和 medium 上十次全错,调到 high 五次全对;再调到 max 要花三倍多的钱,答案一样。

  • Claude Code 的 advisor 工具:给主模型配一个更强的顾问,以及用令牌接中转站时为什么用不了教程 · Claude Code · 约 8 分钟

    advisor 让便宜的主模型在关键时刻请教一个更强的模型:定方案之前、同一个错反复出现时、宣布做完之前。本文整理它怎么开、哪些模型能配对、怎么计费。本站通过中转站实测的结果是用不了:命令不存在,启动参数被悄悄忽略,没有任何报错。原因在文档里能找到,附三种替代办法。

  • 做一个 Claude Code 插件,分享给团队:把 skill、子代理和 hook 打成一包教程 · Claude Code · 约 11 分钟

    插件是一个带清单文件的目录,把 skill、子代理、hook、MCP 服务器装在一起,可以整包分享和安装。本站把本系列前面做的三样东西打成了一个插件,实测了校验、单次加载、建本地市场、按项目安装和移除。要留意的一个结果:把 skills 目录放错位置,校验照样通过,但 skill 不会加载。