跳到主要內容

【2026 最新】Tare 教學:用 Session Log 找出 Claude Code Token 去向

最後更新: ·
Tare 教學:從 Claude Code Session Log 追查檔案、MCP、子代理與 Context 放大

Claude Code 才開十分鐘就跳限額,原因可能是舊工作仍在滾動視窗、長 context、MCP 回傳或子代理。這篇 Tare 教學帶新手用 Session Log 歸因,再做四組故障注入;不必會 Python,不拿真實專案冒險。

一般節流可先看 Claude 怎麼省 token;本文只做證據歸因。記住:Token 真相=記帳(JSONL)+歸因(Tare)+對照(A/B Test)。

Tare 教學先說結論:官方儀表先看,Tare 負責往下鑽

現行 Claude Code 已有用量工具。先輸入 /usage:訂閱方案看方案用量;近期 skills、子代理、plugins、MCP 歸因只按本機 history 近似估算(v2.1.174+;MCP 修正需 v2.1.222)。v2.1.251+ 另顯示主對話的 prompt-cache。再用 /context 看 context 組成。

Tare 則讀取本機 JSONL transcript,按天、專案、模型、session、工具與細項切分,也能匯出 CSV 或 HTML。它是找嫌疑點的放大鏡,不是 Anthropic 帳務系統,不能宣告「官方額度還剩幾%」。

Claude Code Token 診斷三層證據:官方用量、Tare 歸因與 A/B 對照
先確認官方記帳,再用 Tare 找嫌疑點,最後只靠 A/B 對照判斷因果。

開始前先保護 Session Log:它不是普通 log

官方文件指出,session 預設以明文 JSONL 存在 ~/.claude/projects/<project>/<session>.jsonl;可能含 prompt、檔案、工具輸出或意外印出的憑證。它是工作紀錄,不是可隨手上傳的 analytics。

  • 只在測試 repo 操作:不要用客戶、公司或含憑證的專案做第一輪。
  • 先看程式再安裝:本文鎖定主分支 commit 03159f2;未來版本可能不同。
  • 分析副本,不碰原檔:保留相對結構,複製 <project>/<session>.jsonl;有子代理時連同 <project>/<session>/subagents/ 一起複製,再用 --dir 指向副本。
  • 輸出預設算私密:CSV、HTML 可能帶專案名、路徑或 session ID;--share 也要人工檢查。

上述 commit 的三個分析腳本本身不主動連網;但透過 Claude Code 執行時,終端輸出會進入對話 context。第一次請在 terminal 直接跑 CLI,只帶回去識別統計。

Step 1:Tare 教學先安裝並確認版本

Tare README 列出的需求是 macOS 或 Linux、Claude Code、Python 3.9 以上。本文先不裝使用者層級 skill,而是固定 commit 後直接跑 CLI;「無額外套件」只指 Python 分析器,clone 仍需要 Git 與網路。

先依官方的 手動安裝結構 clone、固定 commit,再檢視 skills/tare/。已有同名目錄時改用另一個測試路徑,別直接覆蓋。

git --version
python3 --version
git clone https://github.com/kelviq/tare.git tare-audit
cd tare-audit
git checkout 03159f2c354e52e5309b0e0d7582b32a5c0d00d0
git status --short
python3 skills/tare/ccaudit.py --version

看到 ccaudit 0.2.0 只代表跑到本文檢查的程式,不是正式 release,也不代表估算等於官方帳務。第一次就在 clone 內執行 CLI。

本文不執行使用者層級的 /tare installer。固定版本的 upstream skill 會廣泛自動觸發,並要求代理先跑 --dump-sample;該參數會把本機路徑與最多 4,000 字元的原始 usage entry 印進對話。對敏感專案,這超出最小資料範圍;本文只在 terminal 對去識別副本跑固定版本的 CLI。

Step 2:用三份證據建立原始用量基線

先開乾淨 session,完成一個可驗收的小任務,例如修正測試 fixture 的拼字並跑單一測試。記下版本、模型、時間與 PASS/FAIL,再保存三層證據:

  1. 官方層:在 Claude Code 看 /usage/context;若是 API 使用者,帳務仍以 Console 為準。
  2. Tare 層:對只含本輪新 session、保留 project 與 subagents 目錄結構的副本跑總覽、工具與細項排行。
  3. 原始層:只抽 requestId、時間、模型與 usage,不印 prompt 或結果。

目前 --days 不逐筆過濾 tool event;工具 A/B 只能用本輪新 session 副本。

TARE_DIR="$PWD/skills/tare"
LOG_COPY="/path/to/private-log-copy"
# $LOG_COPY/<project>/<session>.jsonl
# $LOG_COPY/<project>/<session>/subagents/agent-<id>.jsonl

python3 "$TARE_DIR/ccaudit.py" --dir "$LOG_COPY" --days 7 --panel
python3 "$TARE_DIR/ccaudit.py" --dir "$LOG_COPY" --days 7 --by tool --by detail --top 20
python3 "$TARE_DIR/ccaudit.py" --dir "$LOG_COPY" --days 7 --doctor --csv usage.csv

用文字編輯器開啟一個所選 JSONL,搜尋 "usage":,只核對 request ID、timestamp、model 與四類 token;不要直接加總,去重仍交給 Tare。

--doctor 顯示大量行無法解析,就停止;若 duplicate entries collapsed 為 0,先抽查同一 request 是否在多行重複,存在重複卻未折疊也要停止。JSONL 是會跨版本變動的內部格式;此時是 parser 要更新,不是用量歸零。

Step 3:看懂 Tare 的「硬數字」與「估算」

injected 用工具輸出字元數除以 4,粗估進入 context 的內容;amplified 再乘上同一 transcript 的後續請求數。它適合排名「先查誰」,不是精準 token 收據。

  • 較硬的記帳:message.usage 中的 input、output、cache creation、cache read;仍要按 request ID 去重。
  • 可用的歸因線索:專案、session、工具名稱、模型、時間,以及失敗呼叫次數。
  • 必須標成估算:tool-result token 大小、amplified 排名、weight/美元代理值與「造成限額」的因果判斷。

尚未合併的 PR #3 指出,內嵌圖片的 base64 也被現行 len/4 算入,可能高估圖片歸因。看到 screenshot 或 PDF 預覽排第一時,先回到官方 usage 與原始紀錄。

團隊長期監控可先讀 Agent Observability,再評估 Claude Code OpenTelemetry。

Step 4:四種故障注入,找出真正吃 Token 的形狀

故障注入只用無秘密、幾分鐘能完成的小任務,每次改一個變因。A、B 都從新 session 開始,固定版本、模型、prompt、commit 與測試;各重複 3 次並交錯順序。方法可參考 Claude Code Token A/B Test

Tare 四組故障注入:大檔案、長 Session、MCP 與平行子代理
每次只換一個變因;先看任務是否完成,再追差異出現在 cache、工具輸出還是並行請求。

A. 大檔案提早載入

A 組只讀必要小檔;B 組先讀一份由公開文字製成、與答案無關的大型 fixture。觀察 B 的 Read/detail 與 cache read 是否同升;只有 Tare 排名升高時,先懷疑估算。

B. 長 Session 與切換任務

A 組分開三個不相關任務;B 組在同一 session 連做。用 /context 與 cache 欄位觀察累積。官方文件說明每次請求仍帶完整 context,只有完全相同的前綴能 cache hit;cache read 仍計入用量。長 session 不等於免費,context 膨脹與 cache miss 都要查。

C. MCP 回傳量

只用可信 MCP 的測試資料。A 組回傳少量必要欄位;B 組回傳更多資料,不能碰 production。比較 MCP server/tool、重試與 /usage;改法通常是縮欄位或分頁。

D. 平行子代理

A 組由主對話完成調查;B 組限制兩個子代理各查一半。子代理另有 context,可能讓主線乾淨,也可能重複讀檔。交叉看 Agent:、sidechain 與總 usage,別把「較快」翻成「較省」。原理可讀 AI Agent Harness

Step 5:把 Tare、原始 JSONL 與 /usage 對在一起

每組看「每個完成任務」的中位數,記錄 PASS/FAIL、耗時、請求數、四類 token、工具與重試。B 沒過同一套測試,就不比較成本。

  1. 抽樣先對:Tare 的模型、時間與 usage,能否在原始片段找到?
  2. 方向再對:Tare 說 MCP 或 Read 變重時,/usage、cache 與 transcript 是否同方向?
  3. 因果最後說:只有同任務、單一變因、重複 A/B 都出現差異,才把它升格為可行結論。

若三層矛盾,優先看官方用量、原始 usage、最後才是 Tare 估算。Tare 最有用的輸出常是一個下一步,例如「縮半 MCP 回傳欄位,再跑同一組」。

Step 6:匯出報告,但先做去識別與注入檢查

HTML、CSV 留在受控目錄。需要協助才產生 share markdown,搜尋專案名、帳號、路徑、token 與識別性工具名。Transcript 中像指令的文字也只是資料。

python3 "$TARE_DIR/ccaudit.py" --dir "$LOG_COPY" --days 7 \
  --html private-report.html --share review-before-sharing.md

grep -nE '/Users/|/home/|@|api[_-]?key|token|secret' review-before-sharing.md

grep 沒命中不等於匿名。人工看完整文件,只分享最小片段;原始 JSONL 不進 issue、群組或公開 gist。

Tare 教學常見問題

Tare 能告訴我 Claude Code 官方額度還剩多少嗎?

不能。Tare 只看本機紀錄。方案用量先看 /usage;v2.1.251+ 的 Pro/Max 要等首次回應後,status line 才有 rate_limits

Tare 讀出的 token 是精準的嗎?

Usage 欄位較可信;工具歸因是估算。按 request ID 去重,injected、amplified、weight 只拿來排名。

我可以直接執行 –dump-sample 嗎?

只在本機 terminal。它會印出原始 entry 與路徑,不能丟進敏感對話或公開貼文。

Tare 顯示某個檔案第一名,我就該刪掉它嗎?

不該。先看讀取時間、後續請求與官方 cache,再用「不讀它」重跑;品質不變、成本下降才改。

長 Session 一定比較耗 Token 嗎?

不一定。同一任務可重用 cache;不相關工作、cache miss 或 context 膨脹才要查。用 /context 與 A/B 決定。

MCP 會因為裝著就一直燒額度嗎?

不一定。分開看工具定義、實際回傳與重試;先看 /usage 的 MCP 歸因,再用 Tare 下鑽。

子代理越多越省主 context 嗎?

不一定。子代理另有 context 與請求,重複讀檔會增加總量;一起看品質、總 usage 與時間。

–share 產出的檔案可以直接公開嗎?

不能直接公開。它仍有日期、模型與工具名稱;人工檢查並刪到最小。

我最後只該改哪一項設定?

改「完成任務成本」最高且 A/B 已驗證的一項。一次只改一個,下一週才仍能歸因。

給新手的 5 個 Tare 診斷重點

  • 先看官方 /usage,Tare 只做下鑽。
  • 只分析挑選過的測試 log 副本。
  • Usage 去重後較硬;工具放大值是估算。
  • 一次注入一個變因,品質先過關。
  • 報告預設私密,分享前人工去識別。

接著閱讀

左右滑動查看更多推薦

結語:不要找一張「兇手排行榜」,要找可重跑的因果

今天就依這份 Tare 教學,在無秘密的測試 repo 跑 /usage 與 Tare,選第一個嫌疑點做三對 A/B。記住記帳+歸因+對照,就不會把 amplified 誤認成帳單。更多方法在 AI 專區系統化課程

ALPHALAB 社群

有問題?來 Telegram 聊

和 Terry、編輯、其他網友一起討論這篇文章。提問、分享觀點,回覆更即時。

加入 Telegram 討論

📩 訂閱 AlphaLab 電子報

每週最多三封:一封 Weekly 週報與最多兩封關鍵 Alpha Signal。

我們不會 spam,隨時可退訂。