叠床架屋,说的是床上再叠一张床,屋顶上再架一间屋。
不是不能用。
是白搭一层。
上一篇那句判据在这儿正好用得上:这一步是不是每次都要发生?
写在常驻位的东西,每次开工都要付一遍。一份两千字的规矩挂在那儿,跟你每次提问前先朗诵一遍是一回事。所以该按需加载的东西放进了常驻位,这是确定在浪费,不用测。
那常驻位到底有哪些?我原以为就是一个规矩文件,查完发现远不止,而且有几条挺容易漏。
以 Claude Code 为例,别家的同族文件(Cursor 的 rules、各种 AGENTS.md)机制是一样的:
@路径 导入的文件同样在启动时展开。官方明说拆成 import 只帮你组织文件,不省上下文。拆文件让你自己看得清楚,上下文那边一点没少。.claude/rules/ 里没写 paths 的规则文件,启动时全进。写了 paths 的才按需,等模型碰到匹配的文件才加载。顺着这个说个容易误会的机制,就是 skill 那类按需加载的能力。
它的成本结构是两段,描述常驻,正文按需。平时进上下文的只有一行几十个字的描述,只有当模型判断这活跟它有关,才把整篇正文读进来。一个正文一百多行的 skill,不触发的时候你为它付的就是那一行。
所以「用 skill 省 token」这个说法,我的态度是机制上成立,但省多少完全看命中率,别指望它是个固定收益。天天触发的 skill,等于每次都把正文读一遍,跟直接写进常驻配置差不了多少。一个月触发一次的,那一行描述的成本几乎可以忽略。
真正确定的是反过来那一半。按需加载省的钱,是你没把它放进常驻位省下来的。
这条规矩,是每次开工都要用,还是碰到特定活儿才用?
前者留在常驻位,后者挪进按需加载。判断标准是使用频率,不是这条规矩重不重要——重要但一个月用一次的东西,放常驻位是在为它交月租。
不报错,但这一篇的数不用估,能直接列出来。
Claude Code 里敲 /context,Memory files 那一栏就是实际加载的文件清单。用别家的,看一次请求的完整 system 段有多长,或者拿 token 计数接口数一遍你那份常驻配置。
先看单子再减肥,别凭印象删。我自己那次列出来才发现,占最大头的既不是规矩文件也不是记忆,是工具定义。
这条的可信度分两半。常驻位每次都收费是机制决定,各家都一样。skill 能省多少完全因人而异,我不敢给数字,谁给你一个百分比你都可以问他一句「你的命中率是多少」。
床叠得再整齐,你也只睡一张。