1442 字
7 分鐘
用 Claude Code 查本機異常前:先做可審核的診斷範圍

Threads 最近有一則討論提到,使用者在電腦長期發燙後,交給 Claude Code 協助檢查,才發現某個程式累積了大量崩潰紀錄。這個情境值得寫的不是「讓 agent 看整台電腦」,而是:當本機異常很模糊時,怎麼把診斷範圍縮到能授權、能重跑、也能保護隱私的程度。

Claude Code 的文件將讀取、Bash 與檔案修改分成不同權限邊界;唯讀工具與需要明確核准的動作並不相同。我的做法是先準備一份最小診斷包,讓 agent 分析證據,而不是把家目錄、瀏覽器資料或所有設定檔一次攤開。

先把「電腦怪怪的」轉成一個可回答的問題#

開始前先寫下這三件事:

要記錄的項目範例為什麼需要
症狀待機時 CPU 持續偏高、風扇一直轉避免把正常的編譯或同步誤判成異常
時間窗2026-07-12 09:00 到 10:00讓日誌與事件能對得上
目標程序app 名稱、bundle id、PID 或 crash report 名稱限制搜尋範圍,不必掃整個使用者目錄

若沒有時間窗與目標,輸出很容易變成大量猜測。此時最好的下一步通常不是多給權限,而是先補一段可重現的觀察:例如「開啟 X 後五分鐘開始升溫」或「登入後才出現」。

建立最小診斷包,不直接開放整個家目錄#

把準備交給 Claude Code 的檔案放進新資料夾,並先移除 token、email、使用者名稱、完整路徑與客戶資料。macOS 可先用你已知的程序名稱蒐集有限輸出;以下只是建立人工審閱用的快照,執行前請自行確認程序名稱與內容。

Terminal window
mkdir -p ~/Desktop/agent-diagnosis
ps -axo pid,ppid,%cpu,%mem,command | rg '目標程序名稱' \
> ~/Desktop/agent-diagnosis/processes.txt
log show --last 1h --predicate 'process == "目標程序名稱"' \
> ~/Desktop/agent-diagnosis/system-log.txt

不要把 log show 的整份輸出原封不動送進模型。先打開檔案確認是否含有帳號、網址、請求內容或其他不該外流的資訊;必要時只留下錯誤碼、時間戳與呼叫堆疊附近幾行。

先用 plan mode 做唯讀判讀#

Anthropic 的 CLI reference 支援 --permission-mode plan--allowedTools--disallowedTools。第一輪的工作是解釋日誌、找出待驗證假設,不是修檔、刪快取或重新安裝。

Terminal window
cd ~/Desktop/agent-diagnosis
claude --permission-mode plan \
--allowedTools "Read" "Bash(rg *)" "Bash(sed *)" \
--disallowedTools "Edit" "Write" "Bash(rm *)" "Bash(curl *)" \
"只分析這個資料夾。輸出:
1. 時間窗內可確認的事件;
2. 每個事件的證據檔與行號;
3. 尚未證實的假設;
4. 下一個最小驗證動作。
不要修改檔案或執行網路命令。"

這段指令刻意不使用跳過確認的選項。官方文件把 --dangerously-skip-permissions 列為會跳過 permission prompt 的旗標;它不適合第一次處理不明的本機異常。

把「看起來像根因」和「已經證實」分開#

一份好的診斷回覆至少要能區分三層:

  1. 觀察到的事實:某程序在指定時間窗出現的錯誤或資源使用量。
  2. 可驗證的假設:例如 crash report 與某次更新、特定外掛或輸入檔是否有關。
  3. 尚未能推出的結論:例如「一定是記憶體洩漏」或「重裝就會好」。

在沒有 profiler、重現步驟或供應商已知問題的情況下,不要把單一 crash log 當成根因證明。

如果第一輪把問題指向某個專案或設定檔,才另開第二個 session,並只加上需要的讀取路徑。需要修改時,也應先讓 agent 列出預計修改的檔案、備份方式與驗證指令,再由人確認。

用完成條件防止診斷無限延長#

診斷任務很容易一直蒐集資料。替它設定停損條件:

完成條件:
- 找到時間窗內最相關的三個事件,並標明來源。
- 每個推測都列出一個可在本機驗證的下一步。
- 若證據不足,明確回報「無法判定」,不要提出刪除或重裝建議。

你也可以在非互動工作流加上 --max-turns,讓超出預期的分析留下目前證據而停止。要解決的是可閱讀的診斷紀錄,而不是讓 agent 在不明範圍內一直嘗試。

這次要記住的事#

Claude Code 適合協助整理已選出的日誌與提出下一步驗證,但它不該替代問題定義或取得不必要的本機存取。先做最小診斷包、用唯讀計畫模式、把結論綁在證據與時間窗上,才有辦法安全地把模糊異常變成可處理的問題。

常見問題#

Q: 可以直接讓 Claude Code 掃描家目錄找問題嗎?#

A: 不建議把它當成起點。先挑出相關 crash report、程序快照或專案日誌,人工移除敏感內容後再分析。範圍越小,越容易看出結論是否真的被證據支持。

Q: 為什麼第一輪不用讓 agent 直接修復?#

A: 異常的根因還不明時,修改、刪除快取或執行修復指令都會改變現場。先保留唯讀證據,第二輪才以明確的修復計畫與驗證標準處理,回溯會容易得多。

Q: plan mode 能保證不會碰到敏感資料嗎?#

A: 不能。它限制可做的動作,不會自動替你判斷每個檔案的敏感性。仍要靠工作目錄、檔案篩選與人工檢查來縮小資料範圍。

參考資料:

Claude Code CLI reference

Claude Code security

用 Claude Code 查本機異常前:先做可審核的診斷範圍
https://laplusda.com/posts/claude-code-local-log-diagnosis-boundary/
作者
Zero
發佈於
2026-07-12
許可協議
CC BY-NC-SA 4.0
這篇文章有幫助嗎?

回報錯字、失效連結,或告訴我你想看的延伸主題。