跳到主要內容
CAMP 04找觀念›出事那天,你拿得出什麼紀錄
第五架構:防禦控制與 Git 安全網|第 9 篇

出事那天,你拿得出什麼紀錄

同意鍵交給自動模式之後,「誰准的」就不再是你按的那一下。今年 OpenAI 的代理事件一再由別人先發現,連自己的代理有沒有做某件事都說不清;台灣的風險分類框架也把「記錄事件、確保可追溯」列為管理手段。2026 年 10 月 15 日起,Claude Code 的紀錄可以分出每個動作是規則放行、分類器放行還是你親手按的。這篇講出事那天你要回答的四個問題,以及現在就該留的紀錄。

2026-10-15 發布 · 2026-10-21 更新 · 作者整理:Lucas

假設今天早上,有人打電話說你們公司的 AI 昨晚改壞了一份共用文件,或者把一份不該外流的資料寄了出去。你第一個要回答的問題是:真的是我們的 AI 做的嗎?

很多人答不出來。不是不誠實,是沒有紀錄。

今年的 AI 代理事件裡,這個情況一再出現。Hugging Face 7 月 16 日先發現自己被入侵,OpenAI 到 7 月 21 日才把它跟自己的內部測試連起來。9 月有研究者把 5 月 RubyGems 套件庫被灌進大量惡意套件的事,指向 OpenAI 的代理;OpenAI 的回應是,它的代理確實用過 RubyGems 做一般任務,但「無法證實」上傳惡意套件的指控。Simon Willison 的評語很直接:不管是查不了自己的紀錄,還是查了不說,兩種都不好。

出事那天要回答的四個問題

它做了什麼    → 動作、參數、結果
誰准的        → 你按的/規則/分類器
當時什麼模式  → 手動、自動、略過權限
因為哪句話    → 從你的指令串到動作

同意鍵換人按了,紀錄也要換

以前你每一步都按同意,「誰准的」答案永遠是你。自動模式變成預設之後,多數動作是你寫的規則或分類器准的,你根本沒看到。你沒看到的放行,只能靠紀錄還原。

2026 年 10 月 15 日的 2.1.301 版,Claude Code 在每一次權限判斷的紀錄裡加了兩個欄位:判斷當下是什麼權限模式,以及自動模式分類器的結論(放行、擋下、沒有結論、無法使用)。官方的說法是,這樣才分得出一個動作是分類器准的還是權限規則准的。再加一個開關,被擋下時還會記下擋它的是哪一條內建規則,例如資料外洩。

原本就有的欄位也值得知道:每次判斷都記了來源,分得出是設定檔、hook、你按了「以後都同意」、你只同意這一次、你按了拒絕,或你直接關掉了詢問。動作執行完另有一筆紀錄,開了詳細模式會包含完整的指令。每筆紀錄都帶著同一句指令的編號和動作編號,官方說可以用它們把「你說了什麼 → 它判斷了什麼 → 它做了什麼」整串接回來。

這些紀錄要送到你自己的收集端(OpenTelemetry),預設是關的。你下的指令原文預設也不記,要另外開。官方建議組織把這些開關鎖在管理設定裡,因為開發者自己的設定可以把紀錄關掉,除非管理設定鎖住它。

沒有收集端的人,至少留三樣

多數個人和小團隊不會架紀錄收集系統。那就退一步,確保出事時至少有三樣東西。

Git 的提交紀錄。它改了哪些檔案、什麼時候改的,Git 都記得。前提是你讓它在分支上工作、每一段落提交一次,而不是在主線上一路改到底。

被擋下的清單。/permissions 裡有一個「最近被拒絕」分頁,自動模式擋下的動作都在那裡。它擋過什麼,往往比它做過什麼更能告訴你它試圖做什麼。

對話紀錄本身。Claude Code 會在本機保存對話,但有保留天數的清理設定。重要的長任務,結束時請它寫一份「做了什麼、碰了哪些檔案和網站」的摘要存進專案資料夾,不要只靠預設保存。

要留多少,看它做到哪裡

紀錄不是越多越好,留太多沒人看,跟沒留差不多。我自己的分法是看 AI 這次能碰到什麼:

你讓 AI 做的事至少要留保存多久
只產生草稿給你改不用特別留—
在你的資料夾裡改檔案Git 提交(在分支上做)跟專案一樣久
自己上網、自動模式跑長任務再加:任務結束紀錄檔、被擋清單至少到成果交出去之後一個月
碰正式環境、錢、客戶資料再加:集中收集的事件紀錄,鎖在管理設定裡寫進公司規定,不要靠預設

紀錄檔有一個細節我很堅持:要求它只記事實、不寫評語。我遇過不只一次,AI 寫的工作摘要說「全部測試通過」,回頭重跑才發現有一支根本沒跑。讓它自己寫的紀錄,要能被別人重跑驗證,所以檔案、指令、網址都要寫完整,不能只寫「已處理」。

台灣的風險分類框架在列管理手段時,寫了一句「記錄事件確保人工智慧系統運作的可追溯性」。這句話現在是寫給各部會訂規範用的,但它說的事情很樸素:沒有紀錄的 AI,出事時連「不是我們」都證明不了。

動手做

每一次讓 AI 跑長任務或無人看管的任務,在交辦的最後加上這段,讓它自己留一份紀錄:

任務結束時(不論成功、失敗或中途停下),請在專案資料夾的 _logs 資料夾新增一份紀錄檔,檔名用今天日期加任務名稱,內容包含:
1. 我交辦的原話(逐字貼上)。
2. 你實際做了的每一個動作:讀了哪些檔案、改了哪些檔案、開了哪些網址、執行了哪些指令。
3. 哪些動作被擋下或你主動停下,原因是什麼。
4. 你不確定、需要我確認的地方。
只記事實,不要寫評語。這份紀錄寫完不要再修改。

有組織管理權限的,請負責的人看一次官方的監控文件,把權限判斷和執行結果兩種事件送到公司的收集端,並鎖在管理設定裡。

做對了的樣子:出事那天,你能在半小時內回答那四個問題;你知道公司的紀錄是誰收、存多久;你翻過一次「最近被拒絕」,而且看懂它當時想做什麼。

同意鍵換人按了之後,「誰准的」只能靠紀錄回答。出事那天你要答四件事:它做了什麼、誰准的、當時什麼模式、因為哪句話。有收集端的把紀錄打開並鎖住;沒有的,至少留 Git 提交、被擋清單和一份任務結束時的紀錄檔。沒有紀錄,連「不是我們」都證明不了。

站內延伸

來源: Claude Code:Monitoring(tool_decision 事件的 permission_mode、classifier_verdict、classifier_category、source 各值,tool_result 的指令欄位,用指令編號與動作編號串接,指令原文預設不記,管理設定鎖定);Claude Code:changelog 2.1.301(新增上述欄位,「分得出分類器與權限規則」原意;發布日依 npm 版本紀錄為 2026-10-15);Claude Code:Configure auto mode(/permissions 的最近被拒絕分頁);Simon Willison:OpenAI agents and RubyGems(2026-09-12;OpenAI 9 月 11 日的回應、對未揭露的評論);Simon Willison:OpenAI's accidental cyberattack against Hugging Face(7/16 與 7/21 的時間差);數位發展部:人工智慧風險分類框架 v1.0(3.4.1 管理措施「記錄事件確保人工智慧系統運作的可追溯性」)。

第五架構 · 第 9 篇 · 留紀錄

同意鍵換人按了,
誰准的只能靠紀錄回答

什麼時候看這張:你讓 AI 在自動模式下跑任務,但說不出它昨天做了哪些事。

你說了什麼交辦的原話誰准的你、規則或分類器做了什麼動作和結果
  • 出事時連「不是我們」都要靠紀錄證明
  • 沒有收集系統,至少留提交紀錄和被擋清單
  • 長任務結束時,叫它自己寫一份紀錄檔

第一個動作下次交辦長任務時,最後加一句:結束時把做過的每個動作寫成紀錄檔。被擋清單在 /permissions 的最近被拒絕分頁。

2026-10-21 查證稜線 Ridgeline
← 看更多找觀念文章
取得 AI 實戰工具與更新

之後會不定期整理:新方法、指令包(Prompt Pack)、Checklist 與模板。免費、無廣告;送出後會收到一封確認信,點了連結才算訂閱成功,之後每封信都附一鍵退訂。