AI News HubLIVE
站內改寫2 分鐘閱讀

如何精簡Claude Code的系統提示中的冗餘內容

本文介紹瞭如何通過六個步驟識別並移除Claude Code每次請求中不必要的工具定義、指令等冗餘內容,從而減少令牌消耗、降低成本。通過使用/context命令測量、日誌代理分析,並配置disable*標誌和deny規則,可以大幅精簡有效載荷。

來源Hacker News AI作者: Garbage

每次向Claude Code發送消息時,都會攜帶一個你從未看到的負載。這並非你的提示詞,而是圍繞它的機制:工具定義、技能目錄、你可能從未接觸過的功能的系統指令。它隨着每次請求被髮送,而你每次交互都要為此付費。

你可以移除其中的大部分內容。以下六個步驟展示瞭如何查看你的請求實際包含的內容,然後利用Claude Code已有的兩個設置進行精簡。作者的令牌消耗每次交互減少了數萬個。

  1. 使用/context測量上下文

在任何Claude Code會話中鍵入/context。它會按類別細分你的上下文窗口——系統提示、系統工具、MCP工具、記憶文件、消息——每個都帶有令牌計數及其在窗口中的佔比。在修改任何內容之前記下當前數值,最後一步將與之對比。注意/context將工具作為一個整體顯示,不會告訴你哪個工具最大,下一步將解決這個問題。

  1. 通過日誌代理找出最大消耗者

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(項目級)。

  1. 使用disable*標誌關閉整個功能

某些功能會帶來一整套工具和指令。一個標誌即可關閉該功能及其附帶的所有內容:

  • disableBundledSkills:一次性移除所有Anthropic捆綁技能(如dataviz、review、init目錄),但保留其斜槓命令可輸入。
  • disableWorkflows:移除多代理的Workflow工具,通常是排名表中最大的單項。

當某個功能不值得保留時,就使用對應的標誌。

  1. 使用deny規則移除單個工具

對於單個工具,使用permissions.deny規則並指定裸工具名稱即可將該工具的定義從負載中移除——Claude永遠看不到它: { "permissions": { "deny": ["NotebookEdit", "CronCreate"] } } 一個值得注意的細節:裸名稱(如"NotebookEdit")會移除工具;而作用域規則(如"Bash(rm *)"、"Skill(dataviz)")會阻止匹配的調用,但將定義留在負載中。要精簡請求,請使用裸名稱。上一步的標誌是宏觀的初步篩選,而deny規則則逐個清除標誌未覆蓋的單個工具。 如果想保留部分技能但並非全部?disableBundledSkills是一刀切的。要逐個移除,使用skillOverrides將技能設為"off"(從負載中移除)或"user-invocable-only"(仍可輸入,但Claude看不見)。

  1. 應用完整配置

以下是前兩步產生的配置——標誌和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、工作樹工具。如果你使用它們,請保留。

  1. 使用/context重新測量

重新啓動Claude Code以使設置生效,然後再次運行/context。工具數量和令牌總數應該會降低。 這個差值就是之前每次交互發送而現在不再發送的令牌——不僅請求更便宜,而且模型需要閲讀的無關內容也更少,能更快地關注你的實際問題。