如何消除 Claude Code 系统提示词中的臃肿内容
本页目录
你发送给 Claude Code 的每条消息都会携带一份看不见的载荷。不是你的提示词,而是围绕提示词的 machinery:工具定义、技能目录,以及你可能永远不会用到的功能系统指令。它会随每次请求发送,并在每一轮计费。
其中大部分都可以移除。下面六步会展示如何查看请求实际包含的内容,再使用 Claude Code 已有的两个设置进行精简。我每轮因此减少了数万个 token。
1. 使用以下命令测量上下文: /context
输入 /context 到任意 Claude Code 会话中。它会把 上下文窗口 按类别拆分—— 系统提示词、系统工具、MCP 工具、记忆文件和消息,并分别显示 token 数量及其占窗口的比例。
先记下这些数字,再进行任何修改,最后一步会与它们进行对比。
/context 会把工具作为一个整体显示,不会告诉你哪个单独工具最大——它只报告一个“tools”数字,而不是排名。下一步会解决这个问题。
2. 使用日志代理找出最大的占用项
Claude Code 通过 HTTP 调用 Anthropic API,因此可以在中间放置代理:原样转发每个请求、直接流式返回响应,并记录经过的内容。CLI 不会察觉。
获取 proxy.mjs ——单文件、无依赖、只使用 Node 内置模块。运行:
node proxy.mjs
在另一个终端让 Claude Code 指向它,并发送一条消息:
ANTHROPIC_BASE_URL=http://localhost:8787 claude
每个请求都会写入 ./logs/ ,以便阅读的 Markdown 格式保存,同时终端会打印排名表:
[agent-proxy] 69 tools · 154,946 tool bytes · 65,538 real input tokensWorkflow 21229 B ~5307 tokDesignSync 8978 B ~2245 tokMonitor 7767 B ~1942 tok…
打开并阅读 Markdown 文件:每个工具的完整 schema、系统提示词、消息历史——模型收到的完整请求都在其中。顶部排名表就是处理清单,你可以准确移除不用的工具,而不必猜测。
现在你知道载荷包含什么、哪些部分占用最大。接下来两步会移除它们。两个设置都位于 settings 文件中—— ~/.claude/settings.json (适用于每个项目),或者 .claude/settings.json (仅适用于单个项目)。
3. 使用以下设置关闭整个功能 disable* flags
有些功能会带来整组工具和指令。一个标志就能连同其全部内容一起关闭功能:
disableBundledSkills——一次移除 Anthropic 捆绑的全部技能(dataviz,review,init目录),但仍可输入对应斜杠命令。disableWorkflows——移除多智能体Workflow工具,它是表中占用最大的一项。
如果某个完整功能不值得占用空间,就关闭它。
4. 使用以下设置移除单个工具 deny rules
对于单个工具, permissions.deny 只包含工具名称的规则会从载荷中移除工具定义,Claude 根本看不到它:
{"permissions": {"deny": ["NotebookEdit", "CronCreate"]}}
有一点需要注意:单独的名称("NotebookEdit")会移除工具;带作用域的规则("Bash(rm *)", "Skill(dataviz)")只会阻止匹配的调用,定义仍留在载荷中。要缩小请求,应使用单独名称。
上一步的标志用于大范围初筛,这些 deny 规则则逐个清理标志未覆盖的工具。
想保留部分技能而不是全部?
disableBundledSkills是全有或全无的设置。要逐个移除,请使用skillOverrides,并把技能设置为"off"(从载荷中移除),或"user-invocable-only"(仍可输入,但 Claude 看不到)。
5. 应用完整配置
下面是前两步得到的结果:用于精简臃肿内容的标志和 deny 规则,可以直接放入 ~/.claude/settings.json:
{"permissions": {"deny": ["EnterPlanMode","ExitPlanMode","DesignSync","NotebookEdit","SendMessage","PushNotification","RemoteTrigger","ReportFindings","ScheduleWakeup","AskUserQuestion","CronCreate","CronDelete","CronList"]},"disableBundledSkills": true,"disableWorkflows": true,"disableRemoteControl": true,"disableClaudeAiConnectors": true,"disableArtifact": true}
把它当作菜单,而不是处方。先查看自己的载荷,是为了移除不用的内容。如果使用 计划模式,就保留它;如果编写 notebooks,就保留 NotebookEdit。上面的列表是我确认可以移除的内容。
有一点例外:部分看似臃肿的内容,其实是后台任务和多智能体运行依赖的 machinery,例如任务工具、 Workflow、worktree 工具。如果你在使用它们,就保留。
想获得我的完整 Claude Code 配置,包括臃肿内容清理?这个 /setup-matt-pocock-skills 技能可以一次运行完成配置。
6. 使用以下命令重新测量 /context
重启 Claude Code 让它重新加载设置,然后再次运行 /context 。工具数量和 token 总数应该会降低。
减少的部分,就是以前每轮都会发送、现在不再发送的 token:请求成本更低,模型也不用先读过大量无关内容才能处理你的问题。