Community生產力與協作github.com

Context Weight

測量並削減代理程式啟動時載入的上下文用量(CLAUDE.md、AGENTS.md、GEMINI.md、規則、@imports、技能清單),以及工作階段成長的大小;使用本機 Claude Code 和 Codex 日誌來精簡指令檔案,並證明沒有任何行遺失。請在工作階段感覺沉重、壓縮或使用限制提早出現、指令檔案不斷增長、或同一儲存庫中 Claude Code 和 Codex 行為不同時使用。不是即時的上下文用量監控工具。

Context Weight 是什麼?

`Context Weight` 是一個專為 AI 代理技能設計的測量與最佳化工具,主要針對 Claude Code 和 Codex 等開發工具。它的核心功能是分析啟動時載入的指令檔案(如 CLAUDE.md、AGENTS.md)占用多少 token,以及工作階段在實際使用中如何增長。透過基於 Python 的腳本 `cw.py`,使用者可以獲得精確的 token 統計,並根據數據(例如啟動 token 占用百分比、超過閾值的比例)決定要精簡哪些指令或改善工作階段習慣。支援 `--svg` 繪製圖表,並提供 `--json` 輸出以便自動化處理。此技能特別適合那些感到上下文經常達到限制、或懷疑指令檔案過大的開發者,它透過數字量化問題,並提供具體的槓桿(精簡檔案、工作階段衛生)來改善效能,最後還能透過比對前後數字來驗證節省效果。

相容平台✓Claude Code✓Codex CLI~Cursor✓Gemini CLI
npx skills add https://github.com/ohm41321/context-weight/tree/HEAD/skills/context-weight

Installed? Explore more 生產力與協作 skills: steipete/gemini, steipete/gh-issues, steipete/skill-creator · View all 6 →

在你喜歡的 AI 中提問

開啟一個已預先載入此 Agent Skill 的新對話。

說明文件

Context Weight 是做什麼的?

啟動時載入的任何內容都會在會話的每個請求中重新發送。一個 150k token 的 CLAUDE.md 在每個請求開始任何工作之前就要花費 150k token。此技能可以測量該負載、削減它,並用數字證明削減的效果。

腳本是此技能目錄中的 scripts/cw.py。請根據此檔案的位置解析其絕對路徑。它需要 Python 3.8+ 且無其他依賴。它絕不會更改使用者的檔案,只會輸出數字,絕不輸出對話內容,而它寫入的唯一檔案是透過 --svg 或 --open 要求產生的圖片。

即時監控? 想知道「我現在的上下文有多滿」,請使用工具本身的命令:Claude Code /context,Codex /status。此技能關注的是儲存庫和歷史記錄。

1. 測重(唯讀)

python3 <技能目錄>/scripts/cw.py report <儲存庫> --days 30 --svg

--svg 會將報告繪製成一張圖片存放在系統暫存資料夾中,並在最後一行列印路徑(Picture: ...)。將該路徑提供給使用者,以便他們一目了然地查看數字;當使用者要求查看時,可以加上 --open 直接為他們開啟。使用 --svg FILE 可指定儲存位置,但除非使用者要求,否則不要使用儲存庫內的路徑。

文字輸出包含四個部分:

  • 每個工具在啟動時載入的指令檔案,以估計的 token 數表示;
  • 針對每個工具的預算限制的技能清單;
  • 此儲存庫的已測量會話數據;
  • 排名後的發現結果。

更狹義的檢視:files <repo>、skills <repo>、sessions --top 20、sessions --project <name> --compare-at YYYY-MM-DD。任何命令都可以加上 --json。

當你向使用者報告時,請提供:

  • 每個工具的啟動 token 數;
  • start(會話第一個請求的中位數上下文大小);
  • start%(所有輸入中,該啟動負載被重新發送的比例);
  • >threshold tok 的比例;
  • 發現結果。

說明哪些數字是估計值(files、skills)、哪些是實際測量值(sessions)。Claude Code 的技能預算取決於模型的上下文視窗,但日誌中並未記錄:cw.py 預設假設為 200k 並會說明。如果使用者執行的是 1M 上下文的模型,請重新執行並加上 --window 1000000。

2. 根據數字選擇應採取的槓桿

信號槓桿
儲存庫指令超過約 5k token,start% 很高精簡指令檔案(步驟 3)
>threshold tok 超過 50%會話衛生(步驟 4)
「不同工具遵循不同規則」建立一個標準的 AGENTS.md(步驟 3)
Codex「永遠看不到」警告精簡,或將部分內容移至巢狀的 AGENTS.md 檔案
技能清單超過預算解除安裝未使用的技能或插件。先詢問:這是使用者的設定

從最大的數字開始。不要碰任何數字沒有指向的內容。

3. 精簡指令檔案

完整程序請參閱 references/slimming.md。在編輯之前請先閱讀該文件。簡短形式:

  1. 備份檔案,然後記錄 cw.py files <repo>。
  2. 將每個章節分類為五種類型之一:規則(保留它,使其簡潔)、指標、參考、日誌或重複。
  3. 將參考和日誌移至 docs/agent-notes/。留下一行包含純路徑的指標。不要使用 @:Claude Code 會在啟動時展開 @imports,而 Codex 會忽略它們。
  4. 將核心內容保持在 200 行以內、約 5k token,低於 Codex 的 32 KiB 鏈結限制。
  5. 讓 AGENTS.md 成為唯一的標準檔案。CLAUDE.md 應包含 @AGENTS.md 以及任何僅限 Claude 使用的行。
  6. 證明它:verify-split 退出碼為 0,files 顯示減少,並且 --max-tokens 門檻通過。

移動文字是安全的。刪除知識則由使用者決定:在刪除任何非確認為重複的行之前,請先詢問。

4. 會話衛生

大多數輸入 token 來自長時間會話中的後期請求。每個請求都會重新發送先前所有的內容。

  • 每個工作使用一個會話。
  • 當上下文約達到視窗的一半,或工作變更時,請撰寫簡短的交接紀錄(目標、狀態、下一步、觸及的檔案),然後重新開始。在 Claude Code 中使用 /clear;在 Codex 中使用 /new。優先使用此方法,而非反覆壓縮。
  • 避免將大量工具輸出留在上下文中:過濾它、只取開頭部分,或將其寫入檔案後僅讀取所需內容。

5. 證明它

  • 立即: 比較 cw.py files <repo> 修改前後的結果,並確認 verify-split 退出碼為 0。
  • 防止重新增長: 將 python3 <skill-dir>/scripts/cw.py files . --max-tokens 6000 加入 CI 或 pre-commit。當儲存庫指令增長超過限制,或 Codex 會截斷任何內容時,它會以退出碼 1 終止;當路徑錯誤時則以退出碼 2 終止,因此拼寫錯誤永遠不會通過。
  • 實際使用幾天後: 執行 cw.py sessions --project <name> --compare-at <修改日期>,並報告修改前後的 start 和 start%。

在最後一個命令執行並取得修改後的會話結果之前,不要聲稱已實現節省效果。

退出碼

0 正常,1 檢查失敗(--max-tokens、verify-split),2 輸入錯誤(路徑不存在、檔案無法讀取、日期錯誤)。錯誤訊息輸出到 stderr。

參考資料

  • references/harnesses.md:每個工具載入的內容和時機、大小限制、技能資料夾,包含來源。
  • references/slimming.md:精簡程序與驗證。

相關技能