Claude Code 怎麼運作:agentic loop、內建工具與兩道安全防線
Claude Code 的核心是一個 agentic loop:蒐集 context、採取行動、驗證結果,循環直到任務完成。本文拆解它的五大類內建工具、模型與 harness 的分工,以及 checkpoints 和 permission modes 兩道安全防線,作為整個系列的閱讀地圖。
Claude Code 深入介紹 系列文章
Claude Code 的核心是一個 agentic loop:蒐集 context、採取行動、驗證結果,循環直到任務完成。本文拆解它的五大類內建工具、模型與 harness 的分工,以及 checkpoints 和 permission modes 兩道安全防線,作為整個系列的閱讀地圖。
Claude Code 的設定分散在專案 `.claude/` 與家目錄 `~/.claude/` 兩層,共 20 多個檔案位置。關鍵分野只有兩條:settings 是跨層合併的強制設定,CLAUDE.md 和 rules 是串接進 context 的指引;committed、gitignored、Claude 自寫三種身分各不相同。
Claude Code 把每個 session 逐行寫進 ~/.claude/projects/ 底下的 JSONL 檔,預設保留 30 天。本文拆解 --continue 與 --resume 的差異、session 命名規則、/branch 分岔語意,以及 transcript 匯出與清理的設定。
Checkpointing 不是 git commit:Claude Code 在每個 user prompt 前自動存檔案 snapshot,一個 session 保留最近 100 個、30 天清除。本文拆解 /rewind 選單的五個選項、bash 與 subagent 等追蹤邊界,以及它跟 git 的分工。
Claude Code 官方最佳實踐的主軸只有一條:管好 context window。本文按探索、plan mode、實作、驗證、commit 的循環整理 prompt 技巧、/clear 與 rewind 的使用時機,以及官方點名的五種失敗模式。
Claude Code 的設定分五層——managed settings、CLI flag、專案 local、專案共用、使用者——純值型 key 由高層蓋掉低層,permissions.allow 這類清單型 key 則跨層合併。本文整理每層檔案的角色、allow/deny/ask 三清單的寫法,以及用 /status 和 claude doctor 驗證設定是否生效。
Claude Code 共有六個 permission mode,日常主要在 Manual、Accept edits、Plan、Auto 四個之間用 Shift+Tab 切換;Pro/Max/Team 的互動終端機與 VS Code session 在條件符合時預設進入 auto mode,由背景分類模型審查多數動作,預設攔下 force push、`curl | bash`、production deploy 等風險操作。本文講四個模式的取捨、permission rules 的寫法,以及組織層的 trust config。
Claude Code 有五種權限模式:default(逐步確認)、acceptEdits(自動接受編輯)、plan(唯讀規劃)、auto(AI classifier 背景審查)、bypassPermissions(YOLO 全跳過)。用 Shift+Tab 切換,搭配 settings.json 精細控制。auto mode 是最佳平衡點——既不用每步確認,又有安全防護。
Claude Code 每個 session 都是乾淨的 context window,靠三種記憶跨 session 帶知識:每個 session 都載入的 CLAUDE.md、寫 paths 就條件載入的 .claude/rules/、以及 Claude 自己累積的 auto memory。各層 CLAUDE.md 是串接進 context,不是繼承覆蓋。本文拆解層級行為、@path imports、monorepo 拆檔策略,以及用 @AGENTS.md 讓多個工具共用一份指示。
Claude Code 在你打第一個字之前就載入了 system prompt、MEMORY.md、CLAUDE.md、MCP tool 名稱和 skill 描述。本文拆解 session 開頭的自動載入內容、六類擴充功能各自的 context 成本,以及 /compact、/autocompact、autoCompactWindow 三層壓縮控制的用法。
Claude Code 的 prompt caching 靠 prefix 完全匹配運作:命中時重讀計費約為標準 input 的 10%,但換模型、改 effort、開 fast mode、連斷 MCP server、整工具 deny 都會讓下一輪整段重算。TTL 預設五分鐘,訂閱方案的主對話與少數 helper requests 用一小時。
Hook 是 Claude Code 的事件系統。在 AI 執行工具前後、送出 prompt 時、結束任務時自動觸發 shell command、HTTP 請求、MCP tool 或 LLM 判斷。用來擋住危險操作、自動審核、注入上下文、記錄 audit log。
Skill 是寫給 AI 看的 SOP。一個 markdown 檔案定義步驟,Claude 照著執行。不用寫程式,不用學框架,只要把「有經驗的人會怎麼做」寫成步驟就好。
Claude Code 用 MCP(Model Context Protocol)連外部工具,手動設定分三種 scope:專案共用放 .mcp.json、個人跨專案和 local 都在 ~/.claude.json、企業走 managed config——不在 settings.json。本文涵蓋 claude mcp add/login 流程、SSE 已 deprecated 的 transport 現狀,以及 tool search 延遲載入。
Sub-agent 是在獨立 context window 中工作的專業助手:一個 Markdown 檔定義 system prompt、工具與模型,Claude 依 description 自動委派,也能 @-mention 直接指派。本文拆解 frontmatter schema、背景執行與巢狀 spawn 的現狀、permission 繼承規則,以及什麼時候不該用。
Plugin 的價值不是新能力,而是分發:把散在 .claude/ 的 skills、agents、hooks、MCP 設定收進一個帶 manifest 的目錄,透過 marketplace 安裝、更新、鎖版本。本文拆解 plugin 目錄結構、最小建立流程、marketplace 發佈與 dependencies 版本約束。
Hook 是自動化安全網(擋住壞 commit),Skill 是互動式工作流程(跑檢查 + 自動修),指令檔(CLAUDE.md / AGENTS.md)是行為指引。三層各自獨立,組合起來讓 AI agent 在 commit 前自動完成 lint、typecheck、build 檢查。
claude -p 把 Claude Code 從終端機互動變成一條可寫進腳本和 CI 的指令:pipe 資料進去、用 --output-format json 拿結構化結果、--bare 跳過大多數自動探索來加速啟動。本文以 CLI 用法為主體,最後講四個該改用 Python/TypeScript Agent SDK 的訊號。
用 anthropics/claude-code-action 把 Claude Code 放進 GitHub Actions:/install-github-app 一條指令裝好,@claude 在 PR 和 Issue 留言就能叫它修 bug、推分支並給 PR 建立入口;Bedrock/Vertex/Foundry 三種雲端後端走 OIDC 免存金鑰;GitLab CI/CD(beta)則用 .gitlab-ci.yml 一個 job 對應,所有變更走 merge request。
GitHub PR 審查設定好後,由一隊 agent 依 repo 觸發模式審查,平均 20 分鐘、每則約 15–25 美元,findings 以 inline comments 貼在問題行上;改動夠大時用 /code-review ultra 開雲端深審,5–10 分鐘回報每條都經獨立驗證的 bug,單次約 5–25 美元、Pro/Max 有 3 次免費。
Channels 是一種特殊的 MCP server,能把 CI 失敗、監控告警、Telegram 訊息這類外部事件直接推進正在跑的 Claude Code session,Claude 讀完事件還能透過 reply tool 從同一條通道回話。本文拆解 channel contract、雙向回覆、安全閘門與安裝需求。
Routines 是 Claude Code 的雲端自動化系統(前身 Cloud Scheduled Tasks)。除了 cron 排程,還能用 API 端點或 GitHub 事件觸發——掃 issue、審 PR、跑檢查、開 PR,電腦關了也會跑。
/loop 是 Claude Code 的原生 cron 功能,自然語言設定排程,讓 Claude 在背景持續監控、自動修 PR、定期執行任務。Session 範圍、7 天到期,跨 session 用 Routines 或 Desktop 任務。
官方文件把 Claude Code 的平行工作分成 4 種方式:subagents 在同一個 session 內委派、agent view 讓你自己盯多個背景 session、agent teams 由 lead 協調一群工人、dynamic workflows 用腳本跑大量 subagent 交叉驗證;檔案衝突一律靠 worktree 隔離。本文附官方比較表中譯與三題決策指引。
Agent Teams 讓多個完整的 Claude Code session 組成一個團隊:Team Lead 分配工作,teammates 各自擁有獨立 context window,靠點對點傳訊和共享任務清單自我協調。本文講它跟 sub-agent 的三個關鍵差別、teammateMode 兩種顯示模式的取捨,以及 token 成本隨人數線性上升這件事。
`claude agents` 一個畫面列出所有背景 session,把 Needs input、Ready for review、Working、Completed 等狀態排在一起管理,Space 鍵偷看、Enter 接手。搭配 cross-session messaging(ListAgents/SendMessage,v2.1.224+),session 之間還能自己互傳訊息;同機傳訊走本機 socket,不經 Anthropic 伺服器。
Dynamic workflows 讓 Claude 把多代理編排寫成 JavaScript 腳本、交給 runtime 在背景執行,單次最多 1,000 個 agent、可存成 /<name> 指令重跑。本文拆解觸發方式、儲存流程、codebase audit/大遷移/交叉查證研究三種場景,以及與 Agent Teams 的分工和成本陷阱。
Claude Code 透過 Claude in Chrome 擴充套件取得瀏覽器控制權:讀 console log 與 DOM、點擊輸入、上傳檔案、錄 GIF,還能直接操作你已登入的網站。官方前置條件列出 Chrome、Edge 與 Brave、Arc、Vivaldi、Opera 等 Chromium 系瀏覽器,但 WSL 不支援。
在 Slack @Claude 就能把 bug report 變成雲端跑的 Claude Code session。但現在有兩條路:Pro/Max 走原 Claude Code in Slack(每個 session 掛在個人帳號),Team/Enterprise 新設定或遷移則看 Claude Tag(組織共用身分、admin 管權限與用量)。先確認方案再設定,才不會裝錯。
Claude Code 內建的 sandboxed Bash 用 OS 層機制限制每條指令:寫入限工作目錄與 session temp,讀取預設整機可讀;網路走 proxy allowlist,預設零網域。開關在 /sandbox 面板和 sandbox.enabled,不是 --sandbox 旗標。本文再比較 sandbox runtime、devcontainer、Docker、VM 與 Claude Code on the web 這幾種更重的隔離方案該什麼時候用。
在 `.devcontainer/devcontainer.json` 加一行 Anthropic 官方 Dev Container Feature(`ghcr.io/anthropics/devcontainer-features/claude-code:1.0`),三步驟——寫設定、rebuild 容器、跑 `claude` 登入——就能讓團隊每個人的 Claude Code 跑在同一份容器定義裡;同一份定義也能餵給 GitHub Codespaces 和 CI,rollout 五步可落地。
Claude Code 成本隨 context 大小累積:企業部署平均每位開發者每個活躍日約 $13、每月 $150–250。本文整理 /usage 與 /insights 追蹤、六種省 token 手段,以及「該用哪個模型」的系統性答案:provider-dependent model aliases、effort levels、fast mode(Opus 5/4.8 每 MTok $10/$50)與 advisor 工具。
安裝與登入問題照五步排:驗 PATH(macOS/Linux 用 echo $PATH,Windows 用 PATH 查詢)、確認只剩一份安裝、測 downloads.claude.ai 是否回 200、OAuth callback 失敗就貼 login code 或改用 claude auth login,最後用 claude doctor 收尾。
執行期問題五類解法:記憶體偏高用 /compact 加 /heapdump 診斷;hang 了按 Ctrl+C 再 claude --resume 復原;大型表格改寫檔案不要硬看終端輸出;autocompact thrashing 用分段讀檔或 /compact 指定焦點脫離迴圈;搜尋失效裝系統 ripgrep 並設 USE_BUILTIN_RIPGREP=0。
CLAUDE.md 寫了沒被遵守、hook 不觸發、MCP server 沒出現,多半是檔案沒載入、載錯位置或被另一層設定覆蓋。本文整理 /context、/memory、/skills、/doctor、/mcp 等診斷入口各看什麼、safe mode 二分法,以及六條高頻錯誤訊息的對照表。
原 Claude Code 除錯合集已拆分為第 33-35 篇:安裝與登入、執行期問題、設定診斷。本頁是三篇的索引。
Remote Control 把 claude.ai/code 或 Claude 手機 app 變成你本地 Claude Code session 的遙控器:程式照樣跑在自己的機器上,MCP servers 和本地工具全部可用,但對話同步會經過 Anthropic 伺服器。本文涵蓋啟動、續接、推送通知與傳檔,以及安全邊界。
Claude Code on the web 把任務丟到雲端環境執行,預設是 Anthropic 託管 VM,也可由組織路由到 self-hosted environment:GitHub 授權後從瀏覽器或手機派工,`--cloud` 從終端機開雲端 session,`--teleport` 把雲端 session 拉回本地續作。目前是 Pro/Max/Team 的 research preview,不另收運算費用但共享帳號 rate limit。