AI Engineering
用 Codex 封存 Claude Session:跨代理可搜尋紀錄的安全做法
Claude Code 與 Codex 都會在本機留下 JSONL session;可由另一個代理做唯讀擷取、去祕密、索引與摘要,但不應修改活躍 session、把原始憑證備份上雲,或把 session archive 誤當長期記憶。
2026年9月8日2 分鐘閱讀👁 12
Claude Code / Codex / Session Archive
一個代理可以整理另一個代理的 session,但應把它當唯讀證據庫
Threads 作者在 Claude 額度用完後,改用 Codex 保存 Claude 對話;留言也有人用 hook 自動抽取 Claude/Codex session 純文字。這個做法可行,因為兩者本機都有 JSONL 紀錄,但最安全的模式是 copy → redact → normalize → index,不碰原始活躍 session。
Claude Code
常見 session 位於 ~/.claude/projects/<project-key>/*.jsonl,另有 ~/.claude/history.jsonl。子代理可能在 session 目錄下另有 subagents/。
Codex
常見 rollout 位於 ~/.codex/sessions/YYYY/MM/DD/rollout-*.jsonl。格式與欄位會隨版本改動,不要把未公開 schema 當永久 API。
Hook/排程
在 session 結束後觸發抽取,比一邊寫入一邊讀取安全;每次只處理新增檔案,保存 hash 與 source path。
建議 pipeline
discover read-only JSONL
→ copy to staging
→ strip tool secrets / env / signed URLs / credentials
→ normalize user-assistant-tool events
→ create short summary + decisions + unresolved items
→ full-text / vector index
→ retention + delete policy
不要把 session 直接當 memory:session 是完整操作歷史,常含長工具輸出、檔案路徑、錯誤、暫時狀態與可能的敏感資料。長期記憶應只吸收穩定偏好、決策與可重用知識;原始 session 需有保存期限與刪除機制。
- 只讀 copy,不改寫 Claude/Codex 原檔或索引。
- 先排除 API key、cookie、Authorization header、signed media URL 與客戶資料。
- 記錄 agent、model、project、session ID、開始/結束時間與 SHA-256。
- 摘要要保留來源 message ID/行號,避免日後無法回到證據。
- 索引與原始 archive 分權;搜尋介面預設只回傳摘要與必要片段。
- 版本升級後以 fixture 回歸 parser,JSONL 欄位缺失要容錯但不能靜默丟資料。