# Body Diff JSON（請求體增量對比）

## 背景

Claude Code 的 MainAgent 採用全量上下文發送機制——每次請求都會攜帶完整的對話歷史、system prompt、工具定義等內容。這意味著隨著對話推進，請求體會越來越龐大，直接查看原始 Body 很難快速定位「這一輪到底新增了什麼」。

Body Diff JSON 正是為了解決這個問題：它自動對比前後兩個 MainAgent 請求的 body，提煉出增量部分，讓你一眼看清本次請求實際新增的內容。

## 工作原理

1. **識別連續的 MainAgent 請求**：當前請求必須是 MainAgent 類型，且存在上一個 MainAgent 請求
2. **逐欄位對比**：遍歷請求體的所有頂層欄位，跳過 `_` 前綴的內部屬性
3. **智慧差異提取**：
   - 新增的欄位：直接展示
   - 刪除的欄位：不顯示（通常不影響理解）
   - 變更的欄位：展示當前值
   - `messages` 陣列特殊處理：只展示新增的訊息（因為正常對話是追加模式，前綴訊息不變）
4. **請求體縮小偵測**：如果當前請求體比上一個更小，說明發生了上下文截斷或會話重置，此時會顯示提示訊息而非 diff

## 典型場景

在一輪正常對話中，Body Diff JSON 通常只包含：
- `messages`：新增的 1~2 條訊息（使用者的輸入 + 上一輪助手的回覆）

如果你看到 diff 中出現了 `system`、`tools`、`model` 等欄位的變更，說明本輪請求發生了配置變化，這往往也是快取重建的原因。

## 使用方式

- Body Diff JSON 顯示在 MainAgent 請求的詳情面板中
- 點擊標題可展開/收起
- 支援 JSON 和 Text 兩種查看模式，以及一鍵複製
- 在左上角 **CC-Viewer → 全域設定** 中，可以設定「預設展開 Body Diff JSON」
