如何精簡Claude Code的系統提示中的冗餘內容
本文介紹瞭如何透過六個步驟識別並移除Claude Code每次請求中不必要的工具定義、指令等冗餘內容,從而減少令牌消耗、降低成本。透過使用/context命令測量、日誌代理分析,並配置disable*標誌和deny規則,可以大幅精簡有效載荷。
每次向Claude Code傳送訊息時,都會攜帶一個你從未看到的負載。這並非你的提示詞,而是圍繞它的機制:工具定義、技能目錄、你可能從未接觸過的功能的系統指令。它隨著每次請求被髮送,而你每次互動都要為此付費。
你可以移除其中的大部分內容。以下六個步驟展示瞭如何檢視你的請求實際包含的內容,然後利用Claude Code已有的兩個設定進行精簡。作者的令牌消耗每次互動減少了數萬個。
- 使用/context測量上下文
在任何Claude Code會話中鍵入/context。它會按類別細分你的上下文視窗——系統提示、系統工具、MCP工具、記憶檔案、訊息——每個都帶有令牌計數及其在視窗中的佔比。在修改任何內容之前記下當前數值,最後一步將與之對比。注意/context將工具作為一個整體顯示,不會告訴你哪個工具最大,下一步將解決這個問題。
- 透過日誌代理找出最大消耗者
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 tokens”以及按大小排序的工具列表。開啟Markdown檔案可以檢視完整請求,包括每個工具的完整schema、系統提示和訊息歷史。排名表就是你的工作清單,可以精確移除你不需要的工具。
現在你知道負載中包含什麼以及哪些部分最大。接下來的兩個步驟移除它們。兩個設定都位於設定檔案中:~/.claude/settings.json(全域性)或.claude/settings.json(專案級)。
- 使用disable*標誌關閉整個功能
某些功能會帶來一整套工具和指令。一個標誌即可關閉該功能及其附帶的所有內容:
- disableBundledSkills:一次性移除所有Anthropic捆綁技能(如dataviz、review、init目錄),但保留其斜槓命令可輸入。
- disableWorkflows:移除多代理的Workflow工具,通常是排名表中最大的單項。
當某個功能不值得保留時,就使用對應的標誌。
- 使用deny規則移除單個工具
對於單個工具,使用permissions.deny規則並指定裸工具名稱即可將該工具的定義從負載中移除——Claude永遠看不到它: { "permissions": { "deny": ["NotebookEdit", "CronCreate"] } } 一個值得注意的細節:裸名稱(如"NotebookEdit")會移除工具;而作用域規則(如"Bash(rm *)"、"Skill(dataviz)")會阻止匹配的呼叫,但將定義留在負載中。要精簡請求,請使用裸名稱。上一步的標誌是宏觀的初步篩選,而deny規則則逐個清除標誌未覆蓋的單個工具。 如果想保留部分技能但並非全部?disableBundledSkills是一刀切的。要逐個移除,使用skillOverrides將技能設為"off"(從負載中移除)或"user-invocable-only"(仍可輸入,但Claude看不見)。
- 應用完整配置
以下是前兩步產生的配置——標誌和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 } 請將其視為選單而非處方。先檢視自己的負載再決定刪除哪些,這很重要。如果你使用計劃模式,請保留它;如果你編寫筆記本,請保留NotebookEdit。上述列表只是作者移除的內容。 一個注意事項:有些看似冗餘的內容實際上是後臺任務和多代理執行所依賴的機制——如任務工具、Workflow、工作樹工具。如果你使用它們,請保留。
- 使用/context重新測量
重新啟動Claude Code以使設定生效,然後再次執行/context。工具數量和令牌總數應該會降低。 這個差值就是之前每次互動傳送而現在不再傳送的令牌——不僅請求更便宜,而且模型需要閱讀的無關內容也更少,能更快地關注你的實際問題。