agent:~/.claude$ cat agent-architecture.md

Agent架構:打造AI驅動的開發框架

# 打造正式環境AI Agent框架的完整系統。涵蓋Skills、Hooks、記憶、子Agent、多Agent協作編排,以及讓AI程式設計Agent成為可靠基礎設施的設計模式。

author: words: 8872 read_time: 117m updated: 2026-08-01 22:26

Part 2 of Agentic Engineering

$ less agent-architecture.md

重點摘要:Claude Code 並非可存取檔案的聊天介面,而是具備30個已記載生命週期事件的可程式化執行環境。每個事件都能掛接模型無法略過的 shell 指令碼。將 hooks 組合成 dispatchers、dispatchers 組合成 skills、skills 組合成 agents、agents 組合成工作流程,即可建構自主開發 harness;它能強制執行限制、委派工作、跨工作階段保存記憶,並協調多 agent 審議。Claude Code v2.1.147 新增預設停用的 Workflow 工具(CLAUDE_CODE_WORKFLOWS=1),讓確定性的多 agent 協調從純粹的使用者空間指令碼,逐步轉向第一方執行環境原語;v2.1.149 則從安全層面再次印證相同道理,修正 PowerShell 權限繞過問題及 git-worktree 沙箱允許清單問題。正確性仍由 hooks 與 evidence gates 把關。5253 本指南涵蓋此堆疊的每一層:從單一 hook 到由10個 agent 組成的共識系統。完全不需要框架,只需 bash 與 JSON。

Andrej Karpathy 創造了一個詞,用來描述環繞 LLM agent 發展而成的系統:claws。也就是讓 agent 得以掌握其上下文視窗之外世界的 hooks、指令碼與協調機制。1 多數開發人員將 AI 程式設計 agent 視為互動式助理:輸入提示、看著它編輯檔案,然後繼續下一件事。這種思維會將生產力上限侷限在您親自監督的範圍內。

基礎架構的思維模式截然不同:AI 程式設計 agent 是以 LLM 為核心的可程式化執行環境。模型採取的每項動作,都會通過由您掌控的 hooks。您定義的是政策,而非提示。模型在您的基礎架構中運作,就如同網頁伺服器依循 nginx 規則運作。您不會守在 nginx 前逐一輸入請求,而是完成設定、部署並加以監控。

這項差異至關重要,因為基礎架構的效益會不斷累積。能阻止 bash 指令夾帶憑證的 hook,可保護每個工作階段、每個 agent 與每次自主執行。將評估準則編碼其中的 skill,無論由您或 agent 呼叫,都能一致套用。負責安全性程式碼審查的 agent,無論您是否正在監看,都會執行相同的檢查。2


核心重點

  • Hooks 能保證執行,提示則不能。對於 linting、格式化、安全性檢查,以及任何無論模型如何行動都必須每次執行的工作,請使用 hooks。結束代碼2會封鎖動作;結束代碼1僅會提出警告。3
  • Skills 封裝可自動啟用的領域專業知識。description 欄位決定一切。Claude 會透過 LLM 推理(而非關鍵字比對)判斷何時套用 skill。4
  • Subagents 可避免上下文膨脹。將探索與分析置於隔離的上下文視窗中,能讓主要工作階段保持精簡。彼此獨立的 subagents 應平行執行;若工作者需要持續協調,則使用 agent 團隊。5
  • 記憶存放於檔案系統。檔案可跨上下文視窗持續存在。CLAUDE.md、MEMORY.md、rules 目錄及交接文件共同構成結構化的外部記憶系統。6
  • 多 agent 審議能發現盲點。單一 agent 無法挑戰自身假設。讓2個採用不同評估優先順序的獨立 agent 共同審議,可以發現 quality gates 無法處理的結構性缺陷。7
  • Harness 模式本身就是整套系統。CLAUDE.md、hooks、skills、agents 與記憶並非彼此獨立的功能。它們共同構成位於您與模型之間的確定性層,並能隨自動化規模同步擴展。

如何使用本指南

經驗 從這裡開始 接著探索
每天使用 Claude Code,希望發揮更多潛力 Harness 模式 Skills 系統Hook 架構
建構自主工作流程 Subagent 模式 多 Agent 協調正式環境模式
評估 agent 架構 Agent 架構為何重要 決策框架安全性考量
為團隊建置 harness CLAUDE.md 設計 Hook 架構快速參考卡

每一節皆以前一節為基礎。文末的決策框架提供查詢表,協助您針對各類問題選擇合適的機制。


五分鐘黃金路徑

在深入探討之前,這是從零到建立可運作 harness 的最短路徑。一個 hook、一個 skill、一個 subagent,一個成果。

步驟 1:建立安全 hook(2 分鐘)

建立 .claude/hooks/block-secrets.sh:

#!/bin/bash
INPUT=$(cat)
CMD=$(echo "$INPUT" | jq -r '.tool_input.command // empty')
if echo "$CMD" | grep -qEi '(AKIA|sk-|ghp_|password=)'; then
    echo "BLOCKED: Potential secret in command" >&2
    exit 2
fi

.claude/settings.json 中串接:

{
  "hooks": {
    "PreToolUse": [
      {
        "matcher": "Bash",
        "hooks": [{ "type": "command", "command": ".claude/hooks/block-secrets.sh" }]
      }
    ]
  }
}

結果:Claude 執行的每一個 bash 指令都會被篩檢是否洩漏憑證。模型無法略過此檢查。

步驟 2:建立程式碼審查 skill(1 分鐘)

建立 .claude/skills/reviewer/SKILL.md,包含 frontmatter(name: reviewerdescription: Review code for security issues, bugs, and quality problems. Use when examining changes, reviewing PRs, or auditing code.allowed-tools: Read, Grep, Glob)以及檢查清單:SQL injection、XSS、硬編碼密鑰、缺漏的錯誤處理、超過 50 行的函式。

結果:每當您提及審查、檢查或稽核時,Claude 會自動啟用這項專業能力。

步驟 3:派出 subagent(30 秒)

在任何 Claude Code session 中,請 Claude 使用獨立代理審查最近 3 次 commit 的安全問題。Claude 會派出一個 Explore agent 讀取 diff、套用您的審查 skill,並回傳摘要。您的主要 context 保持乾淨。

您現在擁有什麼

一個三層 harness:決定性的安全關卡(hook)、會自動啟用的領域專業知識(skill),以及保護您 context 的隔離分析(subagent)。以下每一節都會深入擴展這三層中的一層。


為什麼 Agent Architecture 至關重要

Simon Willison 用一個觀察點出了當前的時刻:撰寫程式碼現在很便宜。8 沒錯。但隨之而來的推論是,驗證現在才是昂貴的部分。缺乏驗證基礎架構的廉價程式碼,只會大規模製造 bug。真正值得投資的不是更好的提示詞,而是模型周圍那套能捕捉模型遺漏之處的系統。

有三股力量讓 agent architecture 成為必要:

Context window 是有限且會耗損的。每一次檔案讀取、工具輸出與對話輪次都會消耗 token。Microsoft Research 與 Salesforce 針對 15 個 LLM 進行了超過 20 萬次模擬對話測試,發現從單輪互動到多輪互動平均效能下降 39%。9 退化最快在兩輪之內就開始,並依循可預測的曲線:前 30 分鐘還能精準完成多檔案編輯,到第 90 分鐘就退化為單檔案的隧道視野。更長的 context window 並無法解決這個問題。同一份研究的「Concat」條件(將完整對話作為單一提示詞)以相同內容達到單輪效能的 95.1%。退化來自輪次邊界,而非 token 上限。

模型行為是機率性的,而非決定性的。告訴 Claude「編輯檔案後一律執行 Prettier」大約有 80% 的時候會成功。3 模型可能忘記、可能優先考慮速度,或判斷該變更「太小」。對於合規、安全與團隊標準而言,80% 並不可接受。Hooks 能保證執行:每一次 Edit 或 Write 都會觸發您的 formatter,次次如此,毫無例外。決定性勝過機率性。

單一視角會遺漏多維度的問題。一個審查 API endpoint 的 agent 檢查了身份驗證、驗證了輸入清理並核對了 CORS 標頭。一切看似無恙。但第二個 agent 在獨立提示下以滲透測試者身份介入,發現該 endpoint 接受無上限的查詢參數,可能透過資料庫查詢放大觸發阻斷服務攻擊。7 第一個 agent 從未檢查這點,因為其評估框架中並未把查詢複雜度視為安全面向。這個缺口是結構性的。再多的提示詞工程也無法彌補。

Agent architecture 同時解決這三者:hooks 強制執行決定性限制、subagents 管理 context 隔離,而多代理協調提供獨立視角。它們共同構成了 harness。


Harness 模式

harness 並非框架,而是一種模式:由可組合的檔案、指令碼與慣例構成,將 AI 程式設計 agent 包覆在具確定性的基礎架構中。其元件如下:

┌──────────────────────────────────────────────────────────────┐
│                      THE HARNESS PATTERN                      │
├──────────────────────────────────────────────────────────────┤
│  ORCHESTRATION                                                │
│  ┌────────────┐  ┌────────────┐  ┌────────────┐             │
│  │   Agent     │  │   Agent    │  │  Consensus │             │
│  │   Teams     │  │  Spawning  │  │  Validation│             │
│  └────────────┘  └────────────┘  └────────────┘             │
│  Multi-agent deliberation, parallel research, voting          │
├──────────────────────────────────────────────────────────────┤
│  EXTENSION LAYER                                              │
│  ┌──────────┐  ┌──────────┐  ┌──────────┐  ┌──────────┐    │
│  │  Skills   │  │  Hooks   │  │  Memory  │  │  Agents  │    │
│  └──────────┘  └──────────┘  └──────────┘  └──────────┘    │
│  Domain expertise, deterministic gates, persistent state,     │
│  specialized subagents                                        │
├──────────────────────────────────────────────────────────────┤
│  INSTRUCTION LAYER                                            │
│  ┌──────────────────────────────────────────────────────┐    │
│  │     CLAUDE.md  +  .claude/rules/  +  MEMORY.md       │    │
│  └──────────────────────────────────────────────────────┘    │
│  Project context, operational policy, cross-session memory    │
├──────────────────────────────────────────────────────────────┤
│  CORE LAYER                                                   │
│  ┌──────────────────────────────────────────────────────┐    │
│  │           Main Conversation Context (LLM)             │    │
│  └──────────────────────────────────────────────────────┘    │
│  Your primary interaction; finite context; costs money        │
└──────────────────────────────────────────────────────────────┘

指令層:CLAUDE.md 檔案與 rules 目錄定義 agent 對專案的認知。它們會在工作階段開始時及每次壓縮後自動載入,構成 agent 的長期架構記憶。

擴充層:skills 提供領域專業知識,並依據情境自動啟用。hooks 則提供具確定性的關卡,在每次符合條件的工具呼叫時觸發。記憶檔案可跨工作階段保存狀態。自訂 agents 則提供專門的 subagents 設定。

協調層:多 agent 模式負責協調彼此獨立的 agents,以進行研究、審查與研議。生成配額可避免遞迴失控,共識驗證則確保品質。

關鍵洞見在於:多數使用者完全只在核心層作業,眼看著情境不斷膨脹、成本節節攀升。進階使用者則會設定指令層與擴充層,僅將核心層用於協調與最終決策。2

代管式與自行託管的 Harness(2026年4月)

在2026年初的大部分時間裡,「自行建置 harness」是唯一真正可行的選擇。到了2026年4月,情況有了轉變。Anthropic 於4月8日推出公開測試版 Claude Managed Agents:將 harness 迴圈、工具執行、沙箱容器與狀態持久化整合為 REST API,按標準 token 用量計費,另加每工作階段小時0.08美元。OpenAI 於4月16日更新的 Agents SDK 正式確立了相同的分層方式——將 harness 與運算拆分為不同層級,支援原生沙箱供應商(Blaxel、Cloudflare、Daytona、E2B、Modal、Runloop、Vercel),並透過快照與重新載入機制,在容器遺失後延續作業。2324

OpenAI 端更完整的 SDK 介面,隨 openai-agents Python v0.14.0 於2026年4月15日發布,並在4月16日正式公布:其中包含 Agent 的子類別 SandboxAgent,並具備 default_manifest、沙箱指令與功能;Manifest 用於描述全新工作區的契約(檔案、目錄、本機檔案、Git 儲存庫、環境、使用者、掛載點);SandboxRunConfig 則負責每次執行時的沙箱用戶端連接、即時工作階段注入、manifest 覆寫、快照及實體化並行限制。內建功能涵蓋 shell 存取、檔案系統編輯、影像檢查、skills、沙箱記憶與壓縮。沙箱記憶會跨執行保存擷取出的經驗,並逐步揭露內容;工作區支援本機檔案、Git 儲存庫項目及遠端掛載(S3、R2、GCS、Azure Blob、S3 Files);快照可跨供應商移轉。後端包括 UnixLocalSandboxClientDockerSandboxClient,以及透過選用額外套件提供的 Blaxel、Cloudflare、Daytona、E2B、Modal、Runloop 與 Vercel 代管用戶端。24

對於希望將 Claude Code 執行環境嵌入為函式庫的 Python 專案——介於「透過 shell 呼叫 claude」與「向 Managed Agents 發送 REST API」之間——第三種選擇是 claude-agent-sdk-python。4月28日至29日的一系列版本(v0.1.69 → v0.1.71)將隨附的 CLI 升級至v2.1.123,並將 mcp 相依套件的最低版本提高至 >=1.19.0(較舊版本會悄然捨棄行程內 MCP 工具傳回的 CallToolResult,導致模型只收到一段驗證錯誤內容),同時讓 SandboxNetworkConfig 與 TypeScript SDK 的結構描述保持一致(allowedDomainsdeniedDomainsallowManagedDomainsOnlyallowMachLookup)。30 截至2026年8月1日,PyPI 上的套件版本為 v0.2.128(隨附 Claude CLI v2.1.220,且 mcp 的最低版本現已提高至 >=1.23.0),TypeScript SDK 則為 v0.3.220;0.2.x 系列是在此處所述0.1.x 介面上的漸進式更新——下文的 include_hook_eventsskills 與沙箱設定選項目前仍然適用——近期版本主要著重於子行程清理及 NDJSON 串流可靠性。86

若您的 harness 包含語音或即時互動層,openai-agents-python v0.17.0(2026年5月8日)已將 RealtimeAgent 的預設模型更新為 gpt-realtime-241 現有的即時工作階段會自動採用新的預設值;若需要保留舊有行為以進行評估,請明確固定使用先前的模型。

到了2026年7月,OpenAI 端的代管方案也補上了多 agent 能力:openai-agents-python v0.18.2(7月11日)與 openai-agents-js v0.13.2(7月10日)新增測試版的代管式多 agent 支援——由 OpenAI 以代管服務形式協調多個 agents,直接對應於多 Agent 協調一節所述的 Anthropic Managed Multiagent Orchestration 公開測試版。73 如今,兩家供應商在多 agent 層級提供的取捨,與下表針對單一 agent 所描述的相同:供應商負責執行委派迴圈,而您則必須放棄 hooks 介面。

架構上的分岔如今已確實成形:

面向 自行託管的 harness(本指南預設方案) 代管式 harness(Claude Managed Agents/OpenAI Agents SDK)
維運負擔 一切皆由您自行執行 供應商負責迴圈、沙箱與狀態
自訂能力 完全掌控——您的 hooks、skills 與記憶 有所限制——由供應商定義擴充點
成本模式 Token 加自行託管的運算成本 Token 加執行時數溢價
狀態持久性 由您自行設計 供應商可跨連線中斷建立檢查點
Agent 團隊協調 自行建置 由供應商提供多 agent 協調

該如何選擇:對於已有充足基礎架構能力、希望自行掌控 skills/hooks,或正深入最佳化特定工作流程的團隊,自行託管仍是合適選擇。若團隊沒有專職平台工程師、重視價值實現速度勝過自訂能力,或需要 agent 執行作業在筆記型電腦闔上後仍能可靠延續,且不想自行建置持久化層,則適合採用代管方案。兩者亦可相容並用——自行託管的 harness 可透過 REST API,將特定的長時間執行任務委派給 Managed Agents。

Harness 在磁碟上的結構

~/.claude/
├── CLAUDE.md                    # Personal global instructions
├── settings.json                # User-level hooks and permissions
├── skills/                      # Personal skills (44+)
   ├── code-reviewer/SKILL.md
   ├── security-auditor/SKILL.md
   └── api-designer/SKILL.md
├── agents/                      # Custom subagent definitions
   ├── security-reviewer.md
   └── code-explorer.md
├── rules/                       # Categorized rule files
   ├── security.md
   ├── testing.md
   └── git-workflow.md
├── hooks/                       # Hook scripts
   ├── validate-bash.sh
   ├── auto-format.sh
   └── recursion-guard.sh
├── configs/                     # JSON configuration
   ├── recursion-limits.json
   └── deliberation-config.json
├── state/                       # Runtime state
   ├── recursion-depth.json
   └── agent-lineage.json
├── handoffs/                    # Session handoff documents
   └── deliberation-prd-7.md
└── projects/                    # Per-project memory
    └── {project}/memory/MEMORY.md

.claude/                         # Project-level (in repo)
├── CLAUDE.md                    # Project instructions
├── settings.json                # Project hooks
├── skills/                      # Team-shared skills
├── agents/                      # Team-shared agents
└── rules/                       # Project rules

此結構中的每個檔案都有其用途。~/.claude/ 目錄樹是套用至所有專案的個人基礎架構;每個儲存庫中的 .claude/ 目錄樹則專屬於該專案,並透過 git 共享。兩者相輔相成,共同構成完整的 harness。


Skills 系統

Skills 是由模型呼叫的擴充功能。Claude 會根據情境自動探索並套用,無須由您明確呼叫。4 當您發現自己在不同工作階段反覆說明相同背景資訊時,就該建立 skill 了。

何時該建立 Skill

情況 建立… 原因
您在每個工作階段都貼上相同的檢查清單 Skill 自動啟用領域專業知識
您明確執行相同的命令序列 斜線命令 由使用者呼叫,且觸發條件可預期的動作
您需要不應干擾情境的隔離分析 Subagent 以獨立情境視窗專注處理工作
您需要具有特定指示的一次性提示詞 什麼都不用建立 直接輸入即可。不是所有事物都需要抽象化。

Skills 用於提供Claude 隨時可用的知識。斜線命令則用於由您明確觸發的動作。若您正在兩者之間取捨,不妨問:「應由 Claude 自動套用,還是由我決定何時執行?」

建立 Skill

Skills 可存放於以下4個位置,依適用範圍由廣至窄排列:4

範圍 位置 適用對象
企業 受管理的設定 組織內所有使用者
個人 ~/.claude/skills/<name>/SKILL.md 您的所有專案
專案 .claude/skills/<name>/SKILL.md 僅限此專案
外掛程式 <plugin>/skills/<name>/SKILL.md 啟用該外掛程式的位置

每個 skill 都需要一個含有 YAML frontmatter 的 SKILL.md 檔案:

---
name: code-reviewer
description: Review code for security vulnerabilities, performance issues,
  and best practice violations. Use when examining code changes, reviewing
  PRs, analyzing code quality, or when asked to review, audit, or check code.
allowed-tools: Read, Grep, Glob
---

# Code Review Expertise

## Security Checks
When reviewing code, verify:

### Input Validation
- All user input sanitized before database operations
- Parameterized queries (no string interpolation in SQL)
- Output encoding for rendered HTML content

### Authentication
- Session tokens validated on every protected endpoint
- Permission checks before data mutations
- No hardcoded credentials or API keys in source

Frontmatter 參考資料

欄位 必要 用途
name 唯一識別碼(小寫、連字號,最多64個字元)
description 探索觸發條件(最多1024個字元)。Claude 據此判斷何時套用 skill
allowed-tools 限制 Claude 的能力(例如以 Read, Grep, Glob 設為唯讀)
disable-model-invocation 防止自動啟用;skill 僅能透過 /skill-name 啟用
user-invocable 設為 false 可完全從 / 選單中隱藏
model 覆寫 skill 啟用時使用的模型
context 設為 fork,即可在隔離的情境視窗中執行
agent 以 subagent 執行,並使用其專屬的隔離情境
hooks 定義僅適用於此 skill 的生命週期 hooks
$ARGUMENTS 字串替換:以使用者在 /skill-name 後輸入的內容取代

Description 欄位至關重要

工作階段開始時,Claude Code 會擷取每個 skill 的 namedescription,並將其注入 Claude 的情境。當您傳送訊息時,Claude 會運用語言模型推理判斷是否有相關 skill。對 Claude Code 原始碼的獨立分析證實了這項機制:skill description 會注入系統提示詞的 available_skills 區段,模型再運用標準語言理解能力選取相關 skills。10

不佳的 description:

description: Helps with code

有效的 description:

description: Review code for security vulnerabilities, performance issues,
  and best practice violations. Use when examining code changes, reviewing
  PRs, analyzing code quality, or when asked to review, audit, or check code.

有效的 description 會包含:功能內容(針對特定問題類型審查程式碼)、使用時機(檢查變更、PR、品質分析),以及使用者會自然輸入的觸發詞(review、audit、check)。

請注意,自動啟用是可調整的尺度,而非鐵律:自 v2.1.215 起,Claude 不再自行呼叫內建的 /verify/code-review skills,而只會在明確呼叫時執行。這是刻意收緊由 description 驅動的啟用機制,因為這類高負載的審查 skills 若未經要求便執行,成本往往高於效益。74

情境預算

所有 skill description 共用一筆情境預算,會依情境視窗大小動態調整為1%,並以8,000個字元作為備援值。4 若有許多 skills,請讓每個 description 保持精簡,並將主要使用情境放在最前面。雖然可透過 SLASH_COMMAND_TOOL_CHAR_BUDGET 環境變數覆寫預算,11但更妥善的做法是撰寫更短、更精確的 description。請在工作階段中執行 /context,檢查是否有 skills 遭到排除。

支援檔案與組織方式

Skills 可參照相同目錄中的其他檔案:

~/.claude/skills/code-reviewer/
├── SKILL.md                    # Required: frontmatter + core expertise
├── SECURITY_PATTERNS.md        # Referenced: detailed vulnerability patterns
└── PERFORMANCE_CHECKLIST.md    # Referenced: optimization guidelines

請在 SKILL.md 中使用相對連結參照這些檔案。Claude 會在 skill 啟用後按需讀取。SKILL.md 應維持在500行以內,並將詳細參考資料移至支援檔案。12

透過 Git 分享 Skills

專案 skills(位於儲存庫根目錄的 .claude/skills/)可透過版本控制分享:4

mkdir -p .claude/skills/domain-expert
# ... write SKILL.md ...
git add .claude/skills/
git commit -m "feat: add domain-expert skill for payment processing rules"
git push

團隊成員拉取變更後,便會自動取得該 skill。無須安裝,也無須設定。這是讓整個團隊採用一致專業知識最有效的方法。

將 Skills 作為提示詞程式庫

除了單一用途的 skills,此目錄結構也能作為井然有序的提示詞程式庫:

~/.claude/skills/
├── code-reviewer/          # Activates on: review, audit, check
├── api-designer/           # Activates on: design API, endpoint, schema
├── sql-analyst/            # Activates on: query, database, migration
├── deploy-checker/         # Activates on: deploy, release, production
└── incident-responder/     # Activates on: error, failure, outage, debug

每個 skill 都封裝您專業知識的不同面向。這些 skills 共同構成一套知識庫,供 Claude 根據情境自動取用。即使是資淺開發人員,也能不必開口要求便獲得資深層級的指引。

Skills 與 Hooks 的組合運用

Skills 可在 frontmatter 中定義專屬 hooks,且僅在該 skill 執行期間啟用。如此便能建立特定領域的行為,同時避免干擾其他工作階段:2

---
name: deploy-checker
description: Verify deployment readiness. Use when preparing to deploy,
  release, or push to production.
hooks:
  PreToolUse:
    - matcher: Bash
      hooks:
        - type: command
          command: "bash -c 'INPUT=$(cat); CMD=$(echo \"$INPUT\" | jq -r \".tool_input.command\"); if echo \"$CMD\" | grep -qE \"deploy|release|publish\"; then echo \"DEPLOYMENT COMMAND DETECTED. Running pre-flight checks.\" >&2; fi'"
---

哲學類 skills 會透過 SessionStart hooks 自動啟用,將品質限制注入每個工作階段,無須明確呼叫。Skill 本身提供知識,hook 則負責落實規範。兩者相輔相成,形成政策層。

常見的 Skill 錯誤

Description 過於寬泛。 如果 git-rebase-helper skill 遇到任何與 git 相關的提示詞都會啟用(包括 rebase、merge、cherry-pick,甚至 git status),便會干擾80%的工作階段。解決方式是縮小 description 的適用範圍,或加入 disable-model-invocation: true,要求使用者明確透過 /skill-name 呼叫。4

太多 skills 競爭預算。 Skills 越多,競爭1%情境預算的 description 也越多。若發現 skills 未啟用,請透過 /context 檢查是否遭到排除。與其建立大量模糊的 skills,不如優先保留少數且描述清楚的 skills。

關鍵資訊埋藏在支援檔案中。 Claude 會立即讀取 SKILL.md,但只在需要時存取支援檔案。若關鍵資訊位於支援檔案,Claude 可能無法找到。請將必要資訊直接放入 SKILL.md。4

SDK Skill 介面(2026年5月8日)

使用 claude-agent-sdk-python v0.1.77+ 的自行託管 harness,應透過 ClaudeAgentOptionsskills 選項宣告可用 skills,而非在 allowed_tools 中使用舊版 "Skill" 值。37 "Skill" 簡寫已棄用;專用選項能向 Claude Code 提供結構更完整的可用 skills 資訊。v0.1.77 內建的 CLI 為 v2.1.133。

.claude/skills/ 中外掛程式與 Skill 的整合(2026年5月29日)

Skills 一向會從專案的 .claude/skills/ 目錄載入。Claude Code v2.1.157 將此目錄擴及外掛程式:現在只要將外掛程式放入 .claude/skills/,無須向市集註冊即可自動載入;而 claude plugin init <name> 會在該處建立新的外掛程式骨架,manifest 與 SKILL.md 也已完成串接。58 這項變更消除了兩種原本分處不同位置的專案工具形式之間的隔閡:一種是直接提交至儲存庫的獨立 skill;另一種是將 skill、hooks 與 MCP server 封裝在一起,過去卻必須透過市集安裝的外掛程式。對 harness 設計的實際影響是:專案範圍的工具不必再繞道登錄系統才能交付。撰寫、提交後,團隊成員執行 git pull 即可取得相同介面。外掛程式仍適合可整包安裝的使用情境(將 hooks + skills + MCP servers + agents 整合於單一 ZIP);改變之處在於,專案不再需要僅為了從自己的目錄樹載入外掛程式而架設市集。

將隱藏內建介面作為治理手段(2026年6月8日)

Skills 代表能力,而能力也代表攻擊面。Claude Code v2.1.169 新增 disableBundledSkills 設定(以及相對應的 CLAUDE_CODE_DISABLE_BUNDLED_SKILLS 環境變數),可向模型完全隱藏內建 skills、workflows 與內建斜線命令。60 對強化或受監管的 harness 而言,這是一項刻意縮減攻擊面的措施:操作人員在稽核並核准一組特定的專案及個人 skills 後,可停用 Anthropic 隨附的所有功能,確保模型只會針對經過審核的介面進行推理。請以對待工具允許清單的方式看待此設定——預設提供廣泛能力,而關閉預設能力是一項治理決策,並非便利性切換選項。

巢狀 .claude/skills 與就近優先解析(2026年6月16日)

Claude Code v2.1.178 讓專案工具具備位置感知能力。現在處理某個目錄下的檔案時,也會載入該目錄內巢狀 .claude/skills 目錄中的 skills,不再侷限於儲存庫根目錄;若名稱衝突,巢狀 skill 會顯示為 <dir>:<name>,讓兩者皆可存取。63 同一版本也讓專案其餘介面採用最接近工作目錄者優先的解析方式:當巢狀 .claude/ 目錄中的 agent、workflow 或 output-style 名稱衝突時,以最接近工作目錄者為準;儲存專案範圍的 workflow 時,也會以最近的既有 .claude/workflows/ 為目標,而非一律存至根目錄。63 對 monorepo 或儲存庫內含儲存庫的架構而言,這正是單一扁平全域介面與依套件劃分、隨情境啟用的工具之間的關鍵差異——services/api/.claude/skills/ 可收納僅在該目錄樹中工作時才會顯示的 API 專屬 skills,且不會與 services/web/ 中同名的 skill 衝突。


Hook Architecture

Hooks 是由 Claude Code 生命週期事件觸發的 shell 命令。3它們以一般指令碼的形式在 LLM 外部執行,而非由模型解讀的提示。模型想執行 rm -rf /?只需一段 10 行的 bash 指令碼,即可依封鎖清單檢查命令,並在 shell 看到命令之前拒絕執行。無論模型是否願意,hook 都會觸發。

可用事件

截至本指南更新時,Claude Code 提供橫跨 8 個類別、共 30 個已有文件記載的生命週期事件。事件清單會隨版本發布而增加,因此請以參考文件為準;在為正式環境配置 hooks 前,請先查閱速查表,確認目前完整的事件表:13

類別 事件 能否封鎖?
工作階段 SessionStart, Setup, SessionEnd
使用者/完成 UserPromptSubmit, UserPromptExpansion, Stop, StopFailure, TeammateIdle 提示/擴充/停止/閒置事件可以封鎖;StopFailure 不行
工具 PreToolUse, PermissionRequest, PermissionDenied, PostToolUse, PostToolUseFailure, PostToolBatch 使用前/權限/批次事件可以封鎖;使用後事件不行
Subagent/任務 SubagentStart, SubagentStop, TaskCreated, TaskCompleted 停止/任務事件可以封鎖;啟動事件不行
情境 PreCompact, PostCompact, InstructionsLoaded PreCompact 可以封鎖;壓縮後/載入事件不行
檔案系統/工作區 CwdChanged, DirectoryAdded, FileChanged, WorktreeCreate, WorktreeRemove 建立 worktree 時可以封鎖;其他事件不行
設定/通知 ConfigChange, Notification 除了原則設定以外,設定變更可以封鎖;通知不行
MCP Elicitation, ElicitationResult
近期有 2 項改進,對背景作業與多代理 harness 格外重要。自 v2.1.198 起,背景 claude agents 工作階段會以 agent_needs_inputagent_completed 作為觸發值來啟動 Notification hook。因此,當代理群中的成員因提示而受阻或完成工作時,協調器能夠立即因應;這相當於以通知驅動的方式取代輪詢 claude agents --json。此外,自 v2.1.199 起,SessionStartSetupSubagentStart hooks 在以狀態碼 2 結束時會顯示 stderr(過去會默默捨棄這項輸出)。因此,啟動或 subagent 啟動 hook 若執行失敗,現在會說明原因,不再讓人盲目排查。

DirectoryAdded(v2.1.219)補上了工作階段中途加入工作區的缺口。自 v2.1.152 加入 MessageDisplay 後,事件清單便一直維持穩定;DirectoryAdded 是此後首個新增的生命週期事件。當 /add-dir 或 SDK 的 register_repo_root 控制要求在工作階段中途註冊新的工作目錄後,便會觸發此事件。84它所填補的缺口確實存在:過去,harness 即使在 SessionStart 時徹底驗證工作區,仍可能在完全沒有 hook 觸發的情況下,看著第 2 個儲存庫被接入。凡是在啟動時對工作區做出的任何判定,包括信任檢查、機密資訊掃描、依目錄樹建立的路徑範圍規則,以及各儲存庫的原則載入,都必須在此重新執行,因為工作階段的目錄集合不再於啟動時固定不變。此事件僅供提供資訊,無法封鎖操作。因此,應將它視為重新推導狀態與記錄來源的觸發條件,而非 evidence gate;若某個目錄絕不能被加入,請在設定中禁止,而不要試圖透過 hook 否決。SDK 端也在同一版本完成支援(TypeScript v0.3.219 將 DirectoryAdded 加入控制協定的生命週期事件),因此由 SDK 託管的 harness 能以與 CLI 託管者相同的方式接收此事件。85

結束狀態碼語意

結束狀態碼決定 hooks 是否會封鎖操作:3

結束狀態碼 意義 動作
0 成功 操作繼續。詳細模式下會顯示 stdout。
2 封鎖錯誤 操作停止。stderr 會成為傳給 Claude 的錯誤訊息。
1、3 等 非封鎖錯誤 操作繼續。僅在詳細模式(Ctrl+O)下顯示 stderr。
務必注意:每個安全性 hook 都必須使用 exit 2,而非 exit 1。狀態碼 1 只是非封鎖警告,危險命令仍會執行。這是各團隊最常犯的 hook 錯誤。14

Hook 設定

Hooks 位於設定檔中。專案層級(.claude/settings.json)用於共用 hooks;使用者層級(~/.claude/settings.json)則用於個人 hooks:

{
  "hooks": {
    "PreToolUse": [
      {
        "matcher": "Bash",
        "hooks": [
          {
            "type": "command",
            "command": ".claude/hooks/validate-bash.sh"
          }
        ]
      }
    ],
    "PostToolUse": [
      {
        "matcher": "Write|Edit",
        "hooks": [
          {
            "type": "command",
            "command": "bash -c 'if [[ \"$FILE_PATH\" == *.py ]]; then black --quiet \"$FILE_PATH\" 2>/dev/null; fi'"
          }
        ]
      }
    ]
  }
}

matcher 欄位會篩選各事件專屬的值。對工具事件而言,它會比對 tool_name 的值,例如 BashEditWriteReadGlobGrepmcp__server__tool 之類的 MCP 工具名稱,或代表所有工具的 *。單純名稱和以 | 分隔的清單會進行完全比對;含有其他字元的值則視為 JavaScript 正規表示式。部分事件不支援 matchers,只要完成設定就一律會觸發。13自 Claude Code v2.1.195 起,含有連字號識別碼code-reviewermcp__brave-search)的 matchers 會進行完全比對,不再意外比對子字串。因此,針對特定代理或伺服器的 hook,不會再對名稱中僅含該字串的所有項目觸發;若要涵蓋含連字號之 MCP 伺服器的所有工具,請明確撰寫模式 mcp__brave-search__.*66v2.1.214 對路徑模式採用了同樣嚴謹的規則:hook 的 if: 條件若使用單一區段的 dir/** 模式,現在只會比對 <cwd>/dir,而非目錄樹中任何名為 dir 的目錄;若確實要涵蓋任意深度,請寫成 **/dir/**74如同 v2.1.195 的變更,這項修正以明確表達意圖取代意外擴大的比對範圍;請稽核所有可能暗中依賴舊版任意深度行為的 hook 條件。

Hook 輸入/輸出協定

Hooks 會透過 stdin 接收包含完整情境的 JSON:

{
  "tool_name": "Bash",
  "tool_input": {
    "command": "npm test",
    "description": "Run test suite"
  },
  "session_id": "abc-123",
  "agent_id": "main",
  "agent_type": "main"
}

若需要進階控制,PreToolUse hooks 可以輸出 JSON,用來修改工具輸入、注入情境或做出權限決策。請使用 hookSpecificOutput 包裝器;對 PreToolUse 而言,舊版頂層 decisionreason 格式已遭棄用:

{
  "hookSpecificOutput": {
    "hookEventName": "PreToolUse",
    "permissionDecision": "allow",
    "permissionDecisionReason": "Command validated and modified",
    "updatedInput": {
      "command": "npm test -- --coverage --ci"
    },
    "additionalContext": "Note: This database has a 5-second query timeout."
  }
}

3 種保證

撰寫任何 hook 前,先問自己:我需要哪一種保證?14

格式保證可在事後確保一致性。Write/Edit 的 PostToolUse hooks 會在每次變更檔案後執行格式化工具。模型產生何種輸出並不重要,因為格式化工具會將所有內容標準化。

{
  "hooks": {
    "PostToolUse": [
      {
        "matcher": "Write|Edit",
        "hooks": [
          {
            "type": "command",
            "command": "bash -c 'if [[ \"$FILE_PATH\" == *.py ]]; then black --quiet \"$FILE_PATH\" 2>/dev/null; elif [[ \"$FILE_PATH\" == *.js ]] || [[ \"$FILE_PATH\" == *.ts ]]; then npx prettier --write \"$FILE_PATH\" 2>/dev/null; fi'"
          }
        ]
      }
    ]
  }
}

安全保證會在危險操作執行前加以阻止。Bash 的 PreToolUse hooks 會檢查命令,並以結束狀態碼 2 封鎖具破壞性的模式:

#!/bin/bash
# validate-bash.sh — block dangerous commands
INPUT=$(cat)
CMD=$(echo "$INPUT" | jq -r '.tool_input.command')

if echo "$CMD" | grep -qE "rm\s+-rf\s+/|git\s+push\s+(-f|--force)\s+(origin\s+)?main|git\s+reset\s+--hard|DROP\s+TABLE"; then
    echo "BLOCKED: Dangerous command detected: $CMD" >&2
    exit 2
fi

品質保證會在決策點驗證狀態。針對 git commit 命令的 PreToolUse hooks 會執行程式碼檢查工具或測試套件;若品質檢查失敗,便會封鎖提交:

#!/bin/bash
# quality-gate.sh — lint before commit
INPUT=$(cat)
CMD=$(echo "$INPUT" | jq -r '.tool_input.command')

if echo "$CMD" | grep -qE "^git\s+commit"; then
    if ! LINT_OUTPUT=$(ruff check . --select E,F,W 2>&1); then
        echo "LINT FAILED -- fix before committing:" >&2
        echo "$LINT_OUTPUT" >&2
        exit 2
    fi
fi

Shell 命令以外的 Hook 類型

Claude Code 支援 5 種 hook 類型:13

命令 hookstype: "command")會執行 shell 指令碼。速度快、結果可預期,而且不耗用 token。 MCP tool hookstype: "mcp_tool")會呼叫已連線的MCP伺服器上的工具。若驗證邏輯已位於MCP邊界之後,且不需要另行使用 shell 指令碼,請採用此類 hooks。

Prompt hookstype: "prompt")會將單輪提示傳送給快速的Claude模型。模型回傳{ "ok": true }表示允許,或回傳{ "ok": false, "reason": "..." }予以阻擋。適合用於正規表示式無法表達的細緻評估。

Agent hookstype: "agent")會產生具備工具存取權限(Read、Grep、Glob)的subagent,進行多輪驗證。此功能仍屬實驗性質;正式環境的閘門應優先採用command hooks,僅在檢查確實需要查閱實際檔案或測試輸出時,才使用agent hooks:

{
  "hooks": {
    "Stop": [
      {
        "hooks": [
          {
            "type": "agent",
            "prompt": "Verify all unit tests pass. Run the test suite and check results. $ARGUMENTS",
            "timeout": 120
          }
        ]
      }
    ]
  }
}

自Claude Code v2.1.140 起,agent hook輸入會包含subagent_type,讓共用hook不必根據提示文字臆測,就能區分security-reviewer、explorer或一般worker的執行作業。49

HTTP hookstype: "http")會將事件的JSON輸入以POST要求傳送至URL,並接收傳回的JSON。適合用於webhooks、外部通知服務或以API為基礎的驗證(v2.1.63+)。不支援SessionStart事件:

{
  "hooks": {
    "PostToolUse": [
      {
        "hooks": [
          {
            "type": "http",
            "url": "https://your-webhook.example.com/hook",
            "headers": { "Authorization": "Bearer $WEBHOOK_TOKEN" },
            "allowedEnvVars": ["WEBHOOK_TOKEN"],
            "timeout": 10
          }
        ]
      }
    ]
  }
}

非同步Hooks

Hooks可以在背景執行,不會阻塞作業。對於通知與記錄等非關鍵操作,請加入async: true13

{
  "type": "command",
  "command": ".claude/hooks/notify-slack.sh",
  "async": true
}

非同步模式適合用於通知、遙測與備份。格式化、驗證或任何必須在下一個動作前完成的工作,絕對不可使用非同步模式。

以Dispatchers取代獨立Hooks

若7個hooks全都由同一事件觸發,並各自獨立讀取stdin,就會產生競爭條件。當2個hooks同時寫入同一個JSON狀態檔案時,會截斷其中的JSON。此後,所有解析該檔案的下游hook都會失效。2

解決方式是為每個事件配置一個dispatcher,由其使用快取的stdin依序執行hooks:

#!/bin/bash
# dispatcher.sh — run hooks sequentially with cached stdin
INPUT=$(cat)
HOOK_DIR="$HOME/.claude/hooks/pre-tool-use.d"

for hook in "$HOOK_DIR"/*.sh; do
    [ -x "$hook" ] || continue
    echo "$INPUT" | "$hook"
    EXIT_CODE=$?
    if [ "$EXIT_CODE" -eq 2 ]; then
        exit 2  # Propagate block
    fi
done

Hooks偵錯

以下是5種偵錯無聲失敗hooks的方法:14

  1. 單獨測試指令碼。 以管線傳入範例JSON:echo '{"tool_input":{"command":"git commit -m test"}}' | bash your-hook.sh
  2. 使用stderr輸出偵錯資訊。 結束代碼2的stderr會作為錯誤訊息回傳給Claude。非阻塞的stderr(結束代碼1、3等)只會顯示於詳細模式(Ctrl+O)。
  3. 留意jq失敗。 錯誤的JSON路徑會悄然回傳null。請使用實際工具輸入測試jq運算式。
  4. 確認結束代碼。 PreToolUse hook若使用exit 1,看似正常運作,實際上卻毫無強制效果。
  5. 維持hooks迅速執行。 Hooks採同步執行。所有hooks都應在2秒內完成,最好不超過500ms。

SDK端Hook事件串流

claude-agent-sdk-python建置的自託管harness(v0.1.74+,2026年5月6日)可以直接從訊息串流訂閱hook事件,不必透過shell指令碼callback。36ClaudeAgentOptions上設定include_hook_events=True後,HookEventMessage物件(PreToolUse、PostToolUse、Stop及其他事件)便會與助理訊息及工具結果一起從同一個iterator產生。這與TypeScript SDK的includeHookEvents選項相呼應;同一版本也將內附的CLI升級至v2.1.129。

若harness本就以Python執行,並希望hook訊號與模型輸出位於同一控制流程中,事件串流模式便最為合適。若harness需要組合多種工具、讓Claude Code與Codex共用hooks,或仰賴結束代碼語意進行阻擋,shell指令碼hook合約(結束代碼、stdin JSON、dispatchers)仍是正確選擇。

TypeScript SDK於2026年7月推出的系列版本(v0.3.205–v0.3.208),讓串流協定本身成為更明確的合約。70 中斷現在會回傳具型別的收據:中斷收據會透過still_queued UUID確認哪些佇列訊息仍在等待處理;工作階段也會在system/init中宣告interrupt_receipt_v1能力,讓協調器能區分「中斷已生效」與「中斷未及攔下已在傳輸中的訊息」。command_lifecycle frames會逐則訊息回報queued/started/completed/cancelled/discarded狀態,這是首個無須從transcript推斷,就能由第一方回答「我送出的訊息後來如何」的機制。此外也新增了幾項規模較小的介面:用於subagent完成payload的AgentToolCompletedOutput型別,以及canUseTool callbacks現在可回傳不含updatedInput欄位的{behavior: 'allow'}

該系列中的一項變更是安全底線,而非新功能:v0.3.208修正了呼叫端在hook等待期間發出abort,卻被轉換為hook成功的問題——這表示由PreToolUse hook管控的工具,可能會在呼叫端中止後仍繼續執行。70 若harness以SDK端hooks作為權限閘門,並仰賴abort取消執行中的工作,請將v0.3.208視為最低版本;低於此版本時,「已中止」並不必然代表「已阻擋」。Python v0.2.127(2026年7月24日)是1個月內第2個同類型的繞過問題——query()在收到第一個result frame時便關閉stdin,即使背景subagents仍在執行亦然,導致其SDK-MCP工具呼叫因"Stream closed"而失敗,並且完全繞過PreToolUse hooks。85 請明確認識並持續監控此模式:SDK端hook的強制機制會在生命週期邊界——abort、teardown、stream close——失效放行。傳輸層在取得hook判定前就已終止,而且失敗悄無聲息,因為遭繞過的hook看起來與核准操作的hook毫無二致。請鎖定兩個SDK的最低版本,並保留可確實驗證其強制效果的shell-hook層。

Effort與工作階段來源(2026年5月7日至8日)

Claude Code v2.1.132與v2.1.133新增了2項功能,讓hooks與子程序能更清楚掌握執行環境:3839

  • hook輸入中的effort.level Hooks現在會在承載tool_inputsession_id的同一份輸入中,收到effort.level JSON欄位。同一值也會匯出為$CLAUDE_EFFORT環境變數,因此Bash命令無須解析JSON即可讀取。可用此值依effort層級調整hook成本:在low時略過昂貴的驗證,在xhighmax時執行完整安全閘門。
  • Bash子程序中的CLAUDE_CODE_SESSION_ID環境變數。 Bash工具子程序現在可取得hooks所見的同一個session_id值,並以CLAUDE_CODE_SESSION_ID提供。這補足了來源追蹤的缺口;先前,記錄各工作階段狀態的工具無法將子程序事件與hook事件相互關聯。

這2項訊號無須修改程式碼即可使用;忽略新欄位的現有hooks仍可繼續運作。

autoMode.hard_deny與v2.1.136 Hook/Plugin修正(2026年5月8日)

Claude Code v2.1.136為auto mode新增hard-deny層級,並修正一系列會影響長時間執行harness的plugin與MCP問題:40 - settings.autoMode.hard_deny Auto mode 分類器規則會無條件封鎖操作,不受使用者意圖或允許例外影響。此設定位於現有的允許/拒絕比對器之上,是不可協商的治理手段。即使操作者已在個人設定中核准較廣泛的類別,仍可用它設定絕不容許覆寫的規則(例如強制推送至 main、存有密鑰的檔案、存取正式環境資料庫)。 - autoMode.classifyAllShell(v2.1.193)。 Auto mode 分類器預設只會審查符合任意程式碼執行模式的 shell 指令。此設定會將每一條 Bash/PowerShell 指令都交由分類器處理,為受治理的 harness 提供涵蓋範圍最完整的防護態勢。同一版本也會在文字記錄、快顯通知及 /permissions 中顯示拒絕原因,將原本悄無聲息的封鎖轉化為可稽核的決策。Codex 在 v0.142.2 中也收緊了對應機制:若 PowerShell 指令含有安全分類器無法檢查的可執行 AST 區域,現在必須取得核准,不再默默放行。66 - Hook ask 為分類器設定下限(v2.1.211)。 Hook 與 auto mode 之間的優先順序如今已有定論:若 PreToolUse hook 傳回 ask 權限決策,最終結果至少必須提示使用者確認;對於未受沙箱隔離的 Bash 指令,auto mode 無法再將其提升為允許。69 對受治理的 harness 而言,這補上了缺失的保證層級:即使採用全自動權限態勢,hook 的 ask 仍是確定且無法略過的人工介入關卡。若某項操作需要由人員決定,而非直接拒絕,請使用 ask(而不只是以結束碼2封鎖)。 - 分類器模型會在每個工作階段固定(v2.1.210)。 Auto mode 分類器預設採用 Sonnet 5,並在工作階段期間固定不變,因此工作階段進行中的模型切換不再改變負責權限分類的模型。分類一致性是治理的重要特性;此變更消除了一項不易察覺的偏移來源。 - MCP 伺服器不再於 /clear 後消失。 在 VS Code 擴充功能、JetBrains 外掛程式及 Agent SDK 中執行 /clear 後,於 .mcp.json、外掛程式及 claude.ai 連接器中設定的伺服器,過去會悄悄從作用中集合消失。此問題已於 v2.1.136 修正。若您曾遇到「MCP 伺服器 X 在工作階段進行中消失」,原因就在此。 - 並行重新整理導致 MCP OAuth refresh token 遺失。 使用多個遠端 MCP 伺服器的使用者,現在應不再需要每日重新驗證。先前並行重新整理時的寫入操作會彼此覆寫。 - Plan mode 現在能正確封鎖檔案寫入。 符合條件的 Edit(...) 允許規則過去會繞過 plan mode 的寫入保護。如今無論允許規則為何,皆會強制執行 plan mode。 - 外掛程式的 StopUserPromptSubmit hooks 不再於工作階段進行中失效。 快取清理程序過去會刪除執行中工作階段仍在使用的外掛程式版本檔案,導致這兩個 hook 事件失效。修正後,使用中的版本會維持固定。 - plugin.json 中的 skills 項目。 設定 skills 過去會隱藏外掛程式預設的 skills/ 目錄。現在兩者能正確組合;若將該項目指向檔案路徑,也會明確回報錯誤,不再無聲失敗。 - CLAUDE_ENV_FILE SessionStart hook 的環境變數失效。 SessionStart hooks 透過 CLAUDE_ENV_FILE 匯出的變數,過去會在 /resume/clear 後失效。此問題已於 v2.1.136 修正。工作階段現在會在這些事件發生時重新載入環境檔案。

對治理型 harness 而言,實務上最值得關注的是 autoMode.hard_deny(新的治理手段),以及 MCP 消失問題的修正(這項無聲失敗會破壞長時間工作階段)。其餘項目主要是改善使用體驗。

結構化 Hook 引數與封鎖後繼續執行(2026年5月11日)

Claude Code v2.1.139 新增了兩項對正式環境 harness 至關重要的 hook 細節:command hooks 可採用 args: string[] exec 形式,以及 PostToolUse hooks 可使用 continueOnBlock4244 若 hook 需要動態值或路徑預留位置,建議優先使用 args。它不經 shell,直接產生指令程序,從根本上避免一整類引號處理與注入錯誤。

如果 PostToolUse hook 應將拒絕原因回傳給 Claude 並繼續目前回合,而非終止流程,請使用 continueOnBlock。應將其視為改善操作者體驗的功能,而非繞過安全機制的途徑。負責封鎖的關卡仍須阻止不安全的結果。

同一版本也會將 CLAUDE_PROJECT_DIR 傳給 MCP stdio 伺服器,並允許外掛程式設定在指令中參照 ${CLAUDE_PROJECT_DIR}42 MCP 工具應依據此值解析專案相對路徑,而非仰賴啟動伺服器時碰巧採用的程序工作目錄。2026年7月上旬的版本(v2.1.203–v2.1.206)將同一原則擴展至通訊協定層級:MCP roots/list 現在會納入工作階段的其他工作目錄,並在目錄變更時傳送 roots/list_changed 通知。如此一來,遵循 MCP roots 的伺服器便能掌握實際的多目錄工作區結構,而不會假設只有單一專案目錄。68

Claude Code v2.1.140 對 harness 操作者而言主要是可靠性版本:它修正了設定變更時未觸發 ConfigChange hooks 的問題、解決 disableAllHooksallowManagedHooksOnly 在不同設定層級間無法正確組合的邊界情況,並防止權限對話方塊顯示 hook 結果所傳回但不應揭露的環境變數。49 這使本節既有的治理模式更加可靠,無須採用新的 hook 架構。

Claude Code v2.1.141 在 hook 輸出中新增 terminalSequence 欄位,可在沒有控制終端機的情況下發出桌面通知、設定視窗標題及響鈴。50 請將此功能視為操作者訊號,而非強制執行機制。安全與品質關卡仍應透過一般封鎖契約傳達失敗:使用結構化 hook 輸出,並配合能阻止不安全操作的結束行為。同一版本也新增 claude agents --cwd <path>,可將 Agent View 的範圍限定於單一目錄;新增 CLAUDE_CODE_PLUGIN_PREFER_HTTPS,供缺少 GitHub SSH 金鑰的環境安裝外掛程式;另新增 ANTHROPIC_WORKSPACE_ID,讓工作負載身分同盟規則可涵蓋多個工作區。50 對團隊 harness 而言,這些都是架構層面的細節:縮小作業檢視範圍、減少安裝外掛程式時的前提假設,並明確限定企業權杖的適用範圍。

相較於 hook 語意,Claude Code v2.1.142 對背景工作階段協調更為重要。51 claude agents 現在能以明確的目錄、設定、MCP、外掛程式、權限、模型及 effort 旗標分派背景工作階段,不再依賴包裝程式狀態。該版本的 fast mode 預設採用 Opus 4.7;若 harness 經量測後確實依賴 Opus 4.6 的行為,可使用 CLAUDE_CODE_OPUS_4_6_FAST_MODE_OVERRIDE=1 將其固定。到了 v2.1.219,Opus 4.7 已完全退出 fast mode,而 /fast 適用於 Opus 5 與 Opus 4.8。84 探索外掛程式根層級的 SKILL.md,以及顯示外掛程式提供的 LSP,減少了封裝上的模糊空間。針對 MCP_TOOL_TIMEOUT、既有背景工作階段 worktrees、daemon 睡眠/喚醒與升級後清理,以及外掛程式快取清理的修正,也補上了原本容易被誤認為協調錯誤的可靠性缺口。

Stop-hook 引導、跨工作階段權限與多代理程式 v2(2026年6月)

6月上旬有4項變更對 harness 與多代理程式設計至關重要。59

Stop/SubagentStop hooks 新增了引導通道。 自 Claude Code v2.1.163 起,StopSubagentStop hook 可傳回 hookSpecificOutput.additionalContext,將意見回饋交給 Claude 並讓目前回合繼續,且不會將回應標示為 hook 錯誤。在此之前,Stop hook 唯一實質可用的手段是以結束碼2封鎖,但這會顯示為錯誤,並計入連續封鎖上限。對品質關卡 harness 而言,這是更簡潔合宜的基本機制:如果 Stop hook 偵測到「您說已完成,但測試仍未通過」,現在可以注入「以下項目仍然失敗,請繼續處理」,而不必強制封鎖。真正必須停止的情況請使用封鎖;若是「尚未完成,原因如下」,則使用 additionalContext

跨工作階段訊息不再附帶借用的權限。 v2.1.166 強化了多工作階段情境:經由 SendMessage 從另一個 Claude 工作階段轉送的訊息,不再附帶原使用者的權限。因此,接收端工作階段會拒絕轉送而來的權限要求,auto mode 也會予以封鎖。若您的協調架構會讓代理程式彼此傳訊,應將傳入訊息視為不受信任的資料,而非經過驗證的指令。這與安全性章節套用於工具輸出的原則相同,只是進一步延伸至代理程式間的訊息傳遞。自 v2.1.199 起,若兩個代理程式同名而導致 SendMessage 傳送至錯誤對象,Claude Code 也會偵測並發出警告。這項可靠性改善與權限邊界相輔相成,因為訊息送達錯誤的同名代理程式,本身就是另一類協調錯誤。 模型韌性已成為一級設定。 fallbackModel 設定現在最多可串接3個備援模型;主要模型過載或無法使用時,會依序嘗試這些模型。若發生非預期且不可重試的API錯誤,每個回合還會自動使用備援模型重試1次。對於長時間執行的自主 harness 而言,這能將主要模型的短暫中斷轉化為平順的降級服務,而非直接中止執行。claude agents --json 也新增了 waitingFor 欄位(v2.1.162),用來顯示受阻的背景工作階段正在等待什麼,例如權限提示。對任何輪詢 agent 叢集的協調器而言,這都是可觀測性上的一大進展。

適用於潔淨室治理與疑難排解的安全模式。 Claude Code v2.1.169 新增 --safe-mode 旗標(以及對應的 CLAUDE_CODE_SAFE_MODE 環境變數),啟動工作階段時可一次停用所有自訂項目:CLAUDE.md、外掛程式、skills、hooks 與MCP伺服器。60 這是 harness 的反面——刻意建立的潔淨室。每位維運人員終究都會問:「這個行為來自模型,還是來自我的某項設定?」此模式正可用來釐清答案。當 hook 誤觸發、skill 在不該啟用時啟用,或MCP伺服器汙染了上下文,--safe-mode 會提供一個已知為空的基準,供您比對差異。它也是一項治理基元:讓您能以純粹模型執行,不帶 harness 平時授予的任何持續性權限。若需重現結果,且不希望受到任何維運人員定義的鷹架影響,這點至關重要。

關於模型層級的說明。 自Claude Code v2.1.197(2026年6月30日)起,Claude Sonnet 5 已成為新工作階段隨附的預設模型——原生支援1M上下文,並於8月31日前提供每百萬 token 2美元/10美元的促銷價格,取代 Opus 4.8 成為開箱即用的選擇。本指南將 Opus 5(claude-opus-5)視為建議的 agentic 預設模型:除非刻意另作選擇,否則自主 harness 應使用此模型執行,因為長時間跨度、高風險的 agent 迴圈,正是 Opus 深度推理足以回報其成本的場景。Opus 5 於2026年7月24日隨Claude Code v2.1.219 推出,成為新的預設 Opus——支援1M上下文,每 MTok 5美元/25美元(與其取代的 Opus 4.8 同價),另有每 MTok 10美元/50美元的快速模式,速度約為預設模式的2.5倍。Anthropic 報告指出,它在 Frontier-Bench v0.1 的成績超過 Opus 4.8 的兩倍,CursorBench 3.2 分數則與 Fable 5 相差不到0.5%,成本卻只有一半。8487 價格不變、能力更強,而且Anthropic 將此模型形容為「更擅長驗證自身工作並審慎反覆改進」;對 harness 工作而言,這種難得的升級無須再從成本角度辯護,從4.8遷移僅需變更模型 ID。若工作重視成本或高吞吐量,且 Sonnet 5 的速度與智慧比更占優勢,則可降至 Sonnet 5。Opus 之上還有 Claude Fable 5claude-fable-5),於2026年6月9日推出。Anthropic 將這個新層級描述為其最強大的模型,是一套已達到可安全供大眾使用程度的「Mythos-class」系統;自Claude Code v2.1.170 起,可透過 /model claude-fable-5 選用。60 應審慎選用更高層級,僅在原始推理深度足以證明其成本合理的決策上使用,而非將其一概套用至整個叢集。Opus 5 切換另帶來兩項例行調整:Opus 4.7 已移出快速模式(/fast 現在適用於 Opus 5 與 Opus 4.8);而自 v2.1.176 起,auto-mode 分類器的 Fable-5 備援選項——「目前可用的最佳 Opus 模型」——現在會解析為 Opus 5。84

Codex 推出 multi-agent v2。 Codex CLI v0.137.0 讓每個 thread 自行保有 runtime 選擇,為衍生的 agent 提供更簡潔的後續操作與中繼資料預設值(hide_spawn_agent_metadata 現已預設為 true),並將原始父層事件傳播給子層監聽器。其 subagent 模型仍採明確定義:內建 default/worker/explorer agent 類型、以 TOML 定義的自訂 agent,以及並行控制(agents.max_threads 預設為6,agents.max_depth 預設為1)。同一版本也加入 v1 skills 擴充功能,包括每回合解析 skill 目錄,以及新的 thread-start/turn-error 生命週期 contributor 事件;這在維持 kernel-sandbox 態勢作為預設邊界的同時,也縮小了與Claude Code hook/skill 介面之間的差距。接著,Codex v0.138.0–v0.139.0 強化 multi-agent v2,使其適用於正式環境:agent 之間的訊息 payload 現已加密;v2 agent 設定目錄搭配 agent-residency LRU,負責管理哪些 agent 保持常駐;並行數則改以執行中的活動計算,而非已衍生的 thread 數量,因此閒置 agent 不再占用名額。61 生命週期API也更加成熟——close_agent 在 v0.139.0 中更名為 interrupt_agent,以反映其實際作用是中斷執行中的 agent,而非只是關閉控制代碼;此外,由 subagent 觸發的MCP啟動警告,現在會侷限於所屬 thread,不再向上複製至父層的逐字記錄。61 對任何建置 Codex 端協調機制的人而言,這些正是展示原型與正式叢集之間的分水嶺:加密的訊息傳輸、設有上限的常駐機制、按執行活動計算的並行數,以及不會跨越 thread 邊界洩漏的警告。隨後,Codex v0.140.0 開啟了一道跨工具的接合面:/import 可選擇性地將設定、專案設定與近期聊天記錄從Claude Code匯入 Codex;工作階段也可永久刪除(codex delete/delete,並設有確認防護措施)。64 /import 首度正式承認維運人員會在不同 harness 之間移動——您為其中一個建立的設定,不再受困於該處。


記憶與上下文

每段 AI 對話都在有限的上下文視窗內運作。隨著對話內容增加,系統會壓縮較早的對話輪次,為新內容騰出空間。這種壓縮會造成資訊損失。第 3 輪記錄的架構決策,到了第 15 輪時可能已不復存在。9

多輪對話崩解的 3 種機制

MSR/Salesforce 的研究發現了 3 種彼此獨立的機制,每種機制都需要不同的介入方式:9

機制 發生的情況 介入方式
上下文壓縮 捨棄較早的資訊,以容納新內容 將狀態檢查點保存至檔案系統
推理連貫性喪失 模型在多輪對話中推翻自己先前的決策 全新上下文迭代(Ralph loop)
協調失敗 多個 agents 持有不同的狀態快照 agents 之間採用共享狀態協定

策略 1:以檔案系統作為記憶

跨越上下文邊界時,最可靠的記憶位於檔案系統中。Claude Code 會在每次工作階段開始時,以及每次壓縮後,讀取 CLAUDE.md 與記憶檔案。6

~/.claude/
├── configs/           # 14 JSON configs (thresholds, rules, budgets)
│   ├── deliberation-config.json
│   ├── recursion-limits.json
│   └── consensus-profiles.json
├── hooks/             # 95 lifecycle event handlers
├── skills/            # 44 reusable knowledge modules
├── state/             # Runtime state (recursion depth, agent lineage)
├── handoffs/          # 49 multi-session context documents
├── docs/              # 40+ system documentation files
└── projects/          # Per-project memory directories
    └── {project}/memory/
        └── MEMORY.md  # Always loaded into context

MEMORY.md 檔案會記錄跨工作階段的錯誤、決策與模式。當您發現 VAR 為 0 時,((VAR++)) 在啟用 set -e 的 bash 中會失敗,便將此事記錄下來。3 個工作階段後,當您在 Python 遇到類似的整數邊界情況時,MEMORY.md 中的項目便會帶出這個模式。15

Auto Memory(v2.1.32+):Claude Code 會自動記錄並回想專案上下文。工作期間,Claude 會將觀察結果寫入 ~/.claude/projects/{project-path}/memory/MEMORY.md。工作階段開始時,Auto memory 會將前 200 行載入系統提示詞。內容應保持精簡,詳細筆記則連結至個別主題檔案。6 自 v2.1.210 起,若寫入 MEMORY.md 的內容超過大小限制,系統會回報錯誤,而非無聲截斷69——問題會在寫入時浮現,不再讓記憶項目悄然消失。若您的 harness 會自動寫入記憶,請妥善處理此錯誤;這是平台在告知您該檔案需要整理,而不是要求重試。

重視記憶整理,而非記憶數量(2026年5月):近期一篇探討 LLM-agent 協作的 arXiv 預印本指出,擴大回想範圍可能反而導致失敗:在作者的實驗中,較長的可見歷史記錄使 28 種模型博弈設定中的 18 種協作品質下降。48 應將此視為設計警訊,而非定論。實務上的原則已相當明確:保持 MEMORY.md 精簡、以連結導向詳細內容,並在交接文件中提供可直接用於決策的摘要。原始逐字稿、工具記錄與冗長的回想資料應存放於可搜尋的儲存空間,而不是自動放入當前提示詞。

策略 2:主動壓縮

Claude Code 的 /compact 命令會摘要對話並釋放上下文空間,同時保留關鍵決策、檔案內容與任務狀態。15

適合執行壓縮的時機: - 完成一項獨立子任務後(功能已實作、錯誤已修正) - 開始處理程式碼庫的新區域之前 - Claude 開始重複內容或忘記先前上下文時 - 密集工作期間約每 25 至 30 分鐘一次

CLAUDE.md 中的自訂壓縮指示:

# Summary Instructions
When using compact, focus on:
- Recent code changes
- Test results
- Architecture decisions made this session

壓縮可保護對話;而 /cd 命令(Claude Code v2.1.169)則可保護提示詞快取。它能在不中斷目前流程的情況下,將工作階段移至新的工作目錄,同時保留該輪對話中已累積的快取。60 在此之前,變更目錄意味著必須建立新的工作階段,且快取需從零開始。若長時間執行的工作階段需要從某個儲存庫轉至同層的另一個儲存庫——這在 monorepo 與多服務工作中很常見——/cd 可保留成本高昂的已快取前置內容,同時將檔案系統上下文重新指向新位置。

策略 3:工作階段交接

對於橫跨多個工作階段的任務,請建立交接文件,完整記錄目前狀態:

## Handoff: Deliberation Infrastructure PRD-7
**Status:** Hook wiring complete, 81 Python unit tests passing
**Files changed:** hooks/post-deliberation.sh, hooks/deliberation-pride-check.sh
**Decision:** Placed post-deliberation in PostToolUse:Task, pride-check in Stop
**Blocked:** Spawn budget model needs inheritance instead of depth increment
**Next:** PRD-8 integration tests in tests/test_deliberation_lib.py

Status/Files/Decision/Blocked/Next 結構能以最低的 token 成本,向後續工作階段提供完整上下文。使用 claude -c(continue)啟動新工作階段,或讀取交接文件後,即可直接進入實作。15

策略 4:全新上下文迭代(Ralph Loop)

若工作階段超過 60 至 90 分鐘,請為每次迭代啟動新的 Claude 執行個體。狀態透過檔案系統保存,而非仰賴對話記憶。每次迭代都能取得完整的上下文預算:16

Iteration 1: [200K tokens] -> writes code, creates files, updates state
Iteration 2: [200K tokens] -> reads state from disk, continues
Iteration 3: [200K tokens] -> reads updated state, continues
...
Iteration N: [200K tokens] -> reads final state, verifies criteria

與單一長時間工作階段相比:

Minute 0:   [200K tokens available] -> productive
Minute 30:  [150K tokens available] -> somewhat productive
Minute 60:  [100K tokens available] -> degraded
Minute 90:  [50K tokens available]  -> significantly degraded
Minute 120: [compressed, lossy]     -> errors accumulate

每次迭代採用全新上下文的方法,會因準備步驟(讀取狀態檔案、掃描 git 歷史記錄)增加 15% 至 20% 的額外成本,但每次迭代都能運用完整的認知資源。16 成本效益的衡量方式如下:工作階段若短於 60 分鐘,使用單一對話較有效率;超過 90 分鐘後,儘管存在額外成本,全新上下文仍能產出品質更高的結果。

策略 5:受管理的記憶整理(Dreaming)

Anthropic 的 Claude Managed Agents 已於 2026年5月6日新增 Dreaming Research Preview。35 根據 Anthropic 的說明:「Dreaming 是一項排程程序,會檢視您的 agent 工作階段與記憶儲存空間、擷取模式並整理記憶,讓您的 agents 能隨時間逐步改善。」35

Dreaming 會在工作階段之間於背景執行,不會位於關鍵路徑上。它是檔案系統記憶模式的補充,而非替代方案:MEMORY.md 檔案仍是承載核心資訊的介面;Dreaming 則會將整理後的記憶項目寫入 Managed Agents 記憶儲存空間,agent 會在工作階段開始時讀取這些內容。對於同時採用自行託管檔案系統狀態與受管理端整理機制的 harness,這兩種模式可並行運作。

檔案系統記憶 Dreaming(Managed)
記憶儲存位置 您的儲存庫,由版本控制管理 Anthropic 管理的記憶儲存空間
更新時機 由您手動寫入項目,或透過 hooks 寫入 在工作階段之間由背景程序執行
擷取內容 您標記的決策、錯誤與模式 從工作階段歷史記錄中擷取的模式
最適合的用途 專案特有的組織知識 發掘您難以手動察覺的跨工作階段模式

Dreaming 目前仍處於 Research Preview,行為可能有所變動。對於自行託管的 harness,上述工作階段交接與 CLAUDE.md 模式仍是權威的記憶機制。

反模式

只需要 10 行,卻讀取整份檔案。讀取單一 2,000 行的檔案會耗用 15,000 至 20,000 個 token。請使用行偏移:Read file.py offset=100 limit=20 可省下絕大部分成本。15

在上下文中保留冗長的錯誤輸出。錯誤除錯完成後,上下文中可能仍保留 40 多份失敗迭代的堆疊追蹤。修正錯誤後執行一次 /compact,即可卸下這些無用負擔。

每次工作階段開始時都讀取所有檔案。讓 Claude Code 的 glob 與 grep 工具按需尋找相關檔案,可避免不必要的預先載入,節省超過 100,000 個 token。15


Subagents 模式

Subagents 是專門處理複雜任務的 Claude 執行個體,能夠獨立作業。它們會從乾淨的脈絡開始(不受主對話內容干擾),使用指定工具執行工作,並以摘要形式回傳結果。探索結果不會讓主對話變得臃腫;只有結論會回傳。5

內建 Subagent 類型

類型 模型 模式 工具 適用情境
Explore Haiku(快速) 唯讀 Glob, Grep, Read, safe bash 探索程式碼庫、尋找檔案
General-purpose 繼承 完整讀寫 所有可用工具 複雜研究與修改
Plan 繼承(或 Opus) 唯讀 Read, Glob, Grep, Bash 執行前的規劃

建立自訂 Subagents

.claude/agents/(專案)或 ~/.claude/agents/(個人)中定義 subagents:

---
name: security-reviewer
description: Expert security code reviewer. Use PROACTIVELY after any code
  changes to authentication, authorization, or data handling.
tools: Read, Grep, Glob, Bash
model: opus
permissionMode: plan
---

You are a senior security engineer reviewing code for vulnerabilities.

When invoked:
1. Identify the files that were recently changed
2. Analyze for OWASP Top 10 vulnerabilities
3. Check for secrets, hardcoded credentials, SQL injection
4. Report findings with severity levels and remediation steps

Focus on actionable security findings, not style issues.

Subagent 設定欄位

欄位 必填 用途
name 唯一識別碼(小寫字母與連字號)
description 何時呼叫(加入「PROACTIVELY」可鼓勵自動委派)
tools 以逗號分隔。若省略,則繼承所有工具。支援 Agent(agent_type) 以限制可產生的 agents
disallowedTools 要拒絕的工具,會從繼承或指定的清單中移除。自 v2.1.178 起,此處已能正確比對 MCP 伺服器層級規格(mcp__servermcp__server__*mcp__*);舊版會悄悄忽略這些規格,因此原本用來封鎖 MCP 伺服器的拒絕規則實際上毫無作用。63
model sonnetopushaikuinherit(預設:inherit
permissionMode default(自 v2.1.200 起,在 CLI/IDEs 中標示為「Manual」;manual 是可接受的別名,底層設定值並未改變)、acceptEditsdelegatedontAskbypassPermissionsplan。自 v2.1.212 起,Task tool 每次呼叫所用的 mode 參數已遭棄用;subagents 會繼承父 session 的權限模式,而此前置中繼資料欄位則是每個 agent 的覆寫設定69
maxTurns Subagent 停止前可執行的 agentic turns 上限
memory 持久化 memory 範圍:userprojectlocal
skills 啟動時自動將 skill 內容載入 subagent 脈絡。自 v2.1.133 起,subagents 也會透過 Skill tool 探索專案、使用者與 plugin skills,方式與父 session 相同。舊版會悄悄將這些內容從 subagent 脈絡中捨棄。39
hooks 範圍限定於此 subagent 執行期間的生命週期 hooks
background 強制設為背景任務。自 v2.1.198 起,subagents 預設會在背景執行——主要 session 會繼續工作,並在完成時收到通知——因此此欄位目前是明確固定該行為,而非選擇啟用
isolation 設為 worktree,使用隔離的 git worktree 副本

Worktree 隔離

Subagents 可在暫存 git worktrees 中作業,取得完整且隔離的儲存庫副本:5

---
name: experimental-refactor
description: Attempt risky refactoring in isolation
isolation: worktree
tools: Read, Write, Edit, Bash, Grep, Glob
---

You have an isolated copy of the repository. Make changes freely.
If the refactoring succeeds, the changes can be merged back.
If it fails, the worktree is discarded with no impact on the main branch.

對於可能破壞程式碼庫的實驗性工作,worktree 隔離不可或缺。

只有確實守住邊界,隔離才稱得上隔離。 Claude Code v2.1.210 修正了一項錯誤:採用 worktree 隔離的 subagents 可能修改主要 checkout——而這正是此機制原本要防止的問題。69 若您將 isolation: worktree 視為安全邊界,而不只是便利功能,應以 v2.1.210 為最低版本。隨附的權限變更則朝另一個方向發展:自 v2.1.211 起,「always allow」規則會跨 worktrees 持續保存在儲存庫根目錄,因此在某個 worktree 中接受的規則,也會套用至同一儲存庫的其他 worktrees。69 這對平行運作的 worktree agents 而言確實更符合操作需求,但也代表在拋棄式實驗期間授予的允許會比實驗本身存續更久——授權時應考量整個儲存庫,而不只是眼前的 worktree。

v2.1.216 完成了最後一塊拼圖,讓 worktree 隔離從錯誤修正提升至可強制落實的等級。74 v2.1.210 的修正可防止 worktree subagents 透過一般 git 呼叫修改主要 checkout,但 git 本身提供明確的重新導向方式——git -C <path>--git-dir,以及 GIT_DIR/GIT_WORK_TREE 環境變數——採用 worktree 隔離的 subagent 仍可利用其中任一方式指向共用 checkout。如今,這些逃逸途徑已全數封鎖。同一版本也修正了 worktree sessions 偶爾進入「其他專案」殘留 worktree 的問題;防止 workflow 與排程任務的寫入操作跟隨置於 .claude 的符號連結,前往專案外部目標;並讓 /rewind 拒絕穿越符號連結與硬式連結。這四項修正一脈相承:隔離邊界必須能抵禦刻意的重新導向——例如 git 環境覆寫與植入符號連結——而不只是防範預設行為。若 isolation: worktree 在您的 harness 中是安全邊界,而非便利功能,v2.1.216 就是新的最低版本。

平行 Subagents

針對彼此無須協調的獨立研究任務,可使用平行 subagents:5

> Have three explore agents search in parallel:
> 1. Authentication code
> 2. Database models
> 3. API routes

每個 agent 都會在自己的 context window 中執行、尋找相關程式碼,並回傳摘要。主脈絡得以保持乾淨。

遞迴防護

若未限制產生數量,agents 會委派給其他 agents,而後者又繼續委派給更多 agents;每一層都會流失脈絡並消耗 tokens。遞迴防護模式會強制執行預算:16

#!/bin/bash
# recursion-guard.sh — enforce spawn budget
CONFIG_FILE="${HOME}/.claude/configs/recursion-limits.json"
STATE_FILE="${HOME}/.claude/state/recursion-depth.json"

MAX_DEPTH=2
MAX_CHILDREN=5
DELIB_SPAWN_BUDGET=2
DELIB_MAX_AGENTS=12

# Read current depth
current_depth=$(jq -r '.depth // 0' "$STATE_FILE" 2>/dev/null)

if [[ "$current_depth" -ge "$MAX_DEPTH" ]]; then
    echo "BLOCKED: Maximum recursion depth ($MAX_DEPTH) reached" >&2
    exit 2
fi

# Increment depth using safe arithmetic (not ((VAR++)) with set -e)
new_depth=$((current_depth + 1))
jq --argjson d "$new_depth" '.depth = $d' "$STATE_FILE" > "${STATE_FILE}.tmp"
mv "${STATE_FILE}.tmp" "$STATE_FILE"

關鍵教訓:請使用產生預算,不要只靠深度限制。以深度為準的限制會追蹤父子鏈(在第 3 層封鎖),卻無法掌握寬度:深度 1 有 23 個 agents,仍然只是「深度 1」。產生預算會追蹤每個父項目前啟用的子項總數,並以可設定的上限加以約束。預算模型直接對應實際失敗模式(agents 總數過多),而不是替代指標(巢狀層級過多)。7

巢狀深度的預設值已變更 3 次;請勿以此為基礎建構系統。 Claude Code v2.1.172(2026年6月10日)允許 sub-agents 產生自己的 sub-agents,巢狀深度最多可達 5 層——此前的委派實際上僅有 1 層。62 此設定從 v2.1.172 維持至 v2.1.216。v2.1.217(2026年7月21日)將其下調至 1,預設關閉巢狀產生。接著,v2.1.219(2026年7月24日)取折衷值:「Subagents 現在預設最多可產生深度 3 的巢狀 subagents(原為 1);設定 CLAUDE_CODE_MAX_SUBAGENT_SPAWN_DEPTH=1 即可停用巢狀結構。」84 先是 5,再降為 1,接著改成 3——後兩次變更僅相隔 3 天。

真正值得注意的不是其中任何一個數字是否正確,而是平台仍在摸索合適的預設值。因此,讓 harness 繼承「目前隨附的值」並非明智之舉。請將巢狀深度視為明確的預算項目:依架構的實際需求設定 CLAUDE_CODE_MAX_SUBAGENT_SPAWN_DEPTH——大多數協調架構只需 1 或 2——如此升級就不會悄然改變 agent 群的委派深度。無論預設值如何頻繁變動,核心論點始終不變:agents 委派給 agents 的鏈結,消耗脈絡與 tokens 的速度往往快過產出結果;深度是必須編列預算加以防範的風險,而不是應刻意追求的能力。無論預設值下一步如何漂移,上述遞迴防護都能避免深層樹狀結構擴散成數百個啟用中的 agents。唯有自行設定的限制,才能在下次版本發布後,仍維持您所理解的深度意義。

Auto mode 現在會在啟動前審查產生作業。 Claude Code v2.1.178 補上了對應的治理缺口:在 auto mode 中,subagent 產生作業會在 subagent 啟動「之前」由權限分類器評估,而不是等到它開始執行動作後才評估。63 過去可能產生一個 subagent,要求執行父 session 原本會遭封鎖的動作——產生作業本身就是繞過途徑。在產生階段進行審查,代表遞迴防護與權限模型終於接軌:子項無法再充當政策禁止動作的洗白步驟。

平台現在內建原生產生預算。 Claude Code v2.1.212(2026年7月)加入第一方失控迴圈防護:sessions 預設最多可產生 200 個 subagents(使用 CLAUDE_CODE_MAX_SUBAGENTS_PER_SESSION 調整,/clear 會重設計數器),而 WebSearch 每個 session 最多可呼叫 200 次(CLAUDE_CODE_MAX_WEB_SEARCHES_PER_SESSION)。69 自 v1.0 起,本節一直將產生預算模式記錄為使用者空間指令碼,如今平台已原生提供——這也驗證了預算模型優於深度模型。但請留意其校準方式:200 次產生比上述設定中的 12-agent 預算高出一個數量級。原生上限是防止迴圈徹底失控的保險絲,而不是針對您的架構量身調校的預算。請保留使用者空間防護,以管理每個父項的預算、追蹤深度,並設定符合實際協調需求的限制;平台上限則負責攔截任何漏網之魚。

第一方防護現已涵蓋 4 個軸向。 其中 3 個正好為本節使用者空間防護所追蹤的項目提供後盾:每個 session 的產生總數(v2.1.212,上限 200,CLAUDE_CODE_MAX_SUBAGENTS_PER_SESSION)、巢狀深度(CLAUDE_CODE_MAX_SUBAGENT_SPAWN_DEPTH,目前預設為 3,且已證實並不穩定),以及並行執行數量(v2.1.217,預設 20,CLAUDE_CODE_MAX_CONCURRENT_SUBAGENTS——單一訊息再也無法無限擴散出背景 agents)。7884 v2.1.219 新增第 4 個通常不存在於使用者空間防護中的軸向:協調寬度,也就是單一規劃 workflow 可包含的 agents 數量;其預設指引為「目標應少於 15 個 agents」,並可透過任何設定檔中的 workflowSizeGuideline 設定(詳見下方 Workflow Tool 一節)。產生預算模式現在於原先設計涵蓋的每個軸向都有後盾,還多了一個原先未涵蓋的軸向。

校準方面的提醒依然適用,但各軸向程度不一。200 次產生與 20 個並行 agents 都是保險絲——比上述設定中的 12-agent deliberation 預算高出一個數量級,其規模是為了攔截失控迴圈,而非塑造架構。寬度指引則是第一個與實際預算處於相同量級的原生數字:每個 workflow 15 個 agents,與本指南的 12 個相當接近。採用平台預設值幾乎無須付出代價;若選擇不同數字,理當具備充分理由。請將 3 個保險絲設為您能合理辯護的值,並讓寬度指引符合原本預期建構的協調形態。

Agent Teams(研究預覽)

Agent Teams 會協調多個獨立運作的 Claude Code 執行個體。它們透過共用信箱與任務清單溝通,並能彼此質疑對方的發現:5

元件 角色
Team lead 建立團隊、產生 teammates 並協調工作的主要 session
Teammates 分別處理指派任務的獨立 Claude Code 執行個體
Task list 供 teammates 領取並完成的共用工作項目(以檔案鎖定)
Mailbox 用於 agents 之間溝通的訊息系統

啟用方式:export CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS=1

何時該使用 agent teams,何時該使用 subagents:

Subagents Agent Teams
溝通 僅回報結果 Teammates 彼此直接傳訊
協調 主 agent 管理所有工作 透過共用任務清單自行協調
最適合 只在意結果的聚焦任務 需要討論與協作的複雜工作
Token 成本 較低 較高(每個 teammate 都有獨立的 context window)

Agent View 與目標迴圈(2026年5月)

Claude Code v2.1.139 新增 Agent View。這是一項研究預覽介面,可透過 claude agents 啟動,並在單一畫面中顯示執行中、受阻與已完成的 Claude Code sessions。4243 官方文件將其定位為一種派送與管理多個 sessions 的方式,可查看每個 session 正在執行的工作,並找出哪些需要操作者介入。43 這讓多 agent 工作具備最終摘要無法提供的營運視圖。

將 subagent 或 team 模式推向實務運作時,請使用 Agent View 檢查哪些 sessions 受阻、哪些仍在執行,以及工作分配是否符合預期架構。切勿將它視為品質證明。它提供的是可觀測性;工作是否可靠,仍應由測試、審查閘門與 evidence reports 決定。

同一版本也新增 /goal,可設定完成條件,讓 Claude 跨 turns 持續執行,直到條件達成;互動式、-p 與 Remote Control 用法皆受支援。42 請將 /goal 視為 session 範圍的完成迴圈,而非確定性閘門的替代品。它有助於讓 agent 專注於目標,但在失敗必須阻擋流程的情境中,測試、引用檢查、部署檢查與安全 hooks 仍應由命令或指令碼提供可靠後盾。

Workflow Tool(v2.1.147+)

Claude Code v2.1.147 新增預設關閉的 Workflow tool,用於確定性的多 agent 協調。設定 CLAUDE_CODE_WORKFLOWS=1 即可啟用。52 從架構角度來看,此功能至關重要,因為它為 Claude Code 提供第一方協調原語,可處理過去必須依賴自訂派送指令碼、信箱狀態與 subagent 協調慣例的流程。

請勿因此刪除周邊 harness。Workflow 可以組織執行流程,卻無法取代您的安全模型。請保留 PreToolUse 與 PostToolUse hooks 作為阻擋層,保留產生預算或 workflow 步驟預算以防止寬度失控,確保檔案系統狀態可供稽核,並讓最終 evidence reports 獨立於模型的自我評估。實務上:使用 Workflow 塑造協調結構;使用 hooks、測試與審查閘門判定事實。

Dynamic workflows 現在對寬度提出明確主張(v2.1.219)。 Dynamic workflows 預設採用中型規模指引——「目標應少於 15 個 agents」——在 /config 的 Dynamic workflow size 中,另有其他規模與不受限制的選項;執行中的 workflow 狀態列也會顯示目前指引。84 此數字僅供建議,並不強制執行;它會引導 planner,而不是封鎖寬廣的計畫。真正值得設定的是其交付機制:新的 workflowSizeGuideline 設定鍵可在任何設定檔中設定——包括受管理設定與專案設定;自 v0.3.219 起,它也已納入 TypeScript SDK 設定類型——因此,協調寬度可由團隊或組織統一規範,不必讓每位操作者各自摸索。85 請在專案層級設定,以反映程式碼庫工作實際可拆解的方式。另有 2 點操作提醒:當設定檔正在提供此值時,/config 對應列會自行隱藏;這是正確行為,但若不清楚原因,可能會誤以為設定遺失。其次,由於此指引只會引導 planner 而不會阻擋執行,因此它屬於「結構」欄,而不是「安全」欄。寬度失控仍應由產生上限負責。

值得保留的觀點是:這是第 4 個第一方防護軸向——協調寬度,與產生數量、巢狀深度及並行執行並列——也是 Anthropic 第一個依合理工作規模校準,而非當作失控保險絲的軸向。每個 workflow 15 個 agents,與本指南自 v1.0 起使用的 12-agent deliberation 預算處於相同數量級。當平台預設值與您自己的預算從不同方向殊途同歸時,這幾乎就是此類數字所能獲得的最佳獨立佐證。

Session 分支與自動背景化的 MCP(2026年7月)

Claude Code v2.1.212 重塑了 2 個協調原語。69 /fork 現在會從目前對話狀態建立一個新的背景 session——分支出的工作線會獨立執行,原始工作線則繼續運作——先前的 session 內行為已重新命名為 /subtask。這項區別對協調設計至關重要:/subtask 是單一 session 生命週期內範圍受限的支線;/fork 則能以低成本建立繼承完整脈絡的平行背景 session,更接近 Ralph-loop spawn,而非 subagent。若您的 harness 指令碼原本假設 /fork 會留在 session 內,現在它們將會派送背景工作。

同一版本也會自動將緩慢的 MCP 呼叫移至背景:若 MCP tool 呼叫執行超過 2 分鐘,就會自動轉為背景執行(可使用 CLAUDE_CODE_MCP_AUTO_BACKGROUND_MS 調整門檻)。69 緩慢的 MCP 伺服器不再阻塞 agentic loop——但這也代表「工具回傳」與「turn 繼續」不再是同一事件。因此,原本假設 MCP 會同步完成的 hooks 或指令碼,應以工具結果為觸發依據,而非 turn 邊界。

針對 headless 協調,v2.1.211 新增 --forward-subagent-text(環境變數:CLAUDE_CODE_FORWARD_SUBAGENT_TEXT),可將 subagent assistant 文字轉送至 stream-json 輸出。69 消費父項 stream 的 coordinator process 現在可直接觀察 subagent 進度,無須輪詢 transcripts 或等待最終摘要——這正好補足預設在背景執行之 subagents 的可觀測性。v2.1.219 將此功能延伸至第一層之外:深度 2 或更深處產生的 subagents,現在也會出現在轉送的 stream 中,並以產生它們的 Agent tool_use id 作為索引鍵。84 這個索引鍵才是應當據以建構系統的部分。巢狀產生重新預設啟用後,扁平的 subagent 文字 stream 會產生歧義——該 id 可讓 coordinator 判斷哪個父項產生了哪個子項,進而從 stream 重建委派樹,而不必自行推斷。若您的 stream consumer 是依單層 subagents 編寫,現在會看到來自過去根本不知道存在之 agents 的文字;請依產生端的 tool_use id 分組,不要假設每一行轉送內容都屬於直接子項。


多代理人協作

單一代理人 AI 系統存在結構性盲點:無法質疑自身的假設。7 多代理人協商在任何決策定案前,強制從多個角度進行獨立評估。

跨工具協作(2026年4月): Google 於 4 月 7 日開源 Scion — 這是一個多代理人 hypervisor,可將 Claude Code、Gemini CLI 及其他「深度代理人」作為並行行程執行,每個代理人都擁有獨立的容器、git worktree 與憑證。可在本機、hub 或 Kubernetes 上執行。其明確的設計理念是「以隔離取代約束」— 代理人在基礎架構層強制的邊界內以高度自主性運作,而非依賴提示中的限制。25 這直接將 subagent 隔離的論述延伸至不同工具廠商之間。若您的工作流程橫跨 Claude 與 OpenAI 模型,Scion 是首個真正可作為跨工具 subagent 參考實作的方案,提供每個代理人專屬的 worktree 與憑證隔離。

辯論並非萬靈丹: M3MAD-Bench 研究群組(2026 年初)發現,多代理人辯論會出現停滯,且可能被誤導性共識顛覆 — 當其他代理人自信地堅持錯誤答案時,正確的論點反而會落敗。26 Tool-MAD 透過讓每個代理人擁有異質的工具存取權限,並在裁判階段使用 Faithfulness/Relevance 分數來改善此問題。若您正在建構辯論式協作架構,應投資於(a)每個代理人的工具異質性,以及(b)量化的裁判評分,而非假設代理人愈多答案就愈好。

託管多代理人協作與成果(公開測試版)

如果您不想自行建構下方所述的協商基礎架構,Multiagent Orchestration 已於 2026 年 5 月 6 日進入 Claude Managed Agents 的公開測試階段。35 根據 Anthropic 的說法:「當工作量過大、單一代理人難以勝任時,多代理人協作可讓主導代理人將任務拆解成多個部分,並委派給各自擁有專屬模型、提示與工具的專家代理人。」35 專家代理人「在共享檔案系統上並行工作,並貢獻於主導代理人的整體脈絡。」35

追蹤功能也內建其中。根據 Anthropic:「您也可以在 Claude Console 中追蹤每一個步驟:哪個代理人做了什麼、按什麼順序、為何如此,讓您完全掌握任務如何被委派與執行的全貌。」35

搭配的公開測試版功能是 Outcomes。根據 Anthropic:「您撰寫一份描述成功樣貌的評分標準(rubric),代理人即會朝該目標努力。獨立的評分器在自己的脈絡視窗中依您的標準評估輸出,因此不會受到代理人推理過程的影響。」35 這是本節後續所述雙閘驗證模式的託管服務版本:rubric 取代了手寫的閘門,獨立評分器則取代了共識驗證器。

自託管協商(本節內容) 託管 Multiagent + Outcomes
專家路由 您自行撰寫生成邏輯 主導代理人將任務拆解成多個部分
驗證 雙閘 hooks + 共識評分 Rubric + 獨立脈絡中的評分器
追蹤 您自行埋點 Claude Console
適用情境 需要完全控制或特定工具組合的模式 標準委派模式,且驗證 rubric 即為契約
計費方式 僅 token 與 harness 成本 標準 token 加上 Managed Agents 工作階段時數費率(4 月 8 日推出時的基礎價;參見 23

當驗證需要與您自己的 hook 介面整合(PreToolUse 阻擋、退出碼語意、自訂 dispatcher),或當 harness 必須在沒有外部相依性的情況下執行時,自託管協商仍是正確答案。當標準委派加上 rubric 評分就是您實際需要的契約時,託管 Multiagent 才是正確答案。

最小可行協商

從 2 個代理人與 1 條規則開始:代理人必須在看到彼此成果之前獨立評估。7

Decision arrives
  |
  v
Confidence check: is this risky, ambiguous, or irreversible?
  |
  +-- NO  -> Single agent decides (normal flow)
  |
  +-- YES -> Spawn 2 agents with different system prompts
             Agent A: "Argue FOR this approach"
             Agent B: "Argue AGAINST this approach"
             |
             v
             Compare findings
             |
             +-- Agreement with different reasoning -> Proceed
             +-- Genuine disagreement -> Investigate the conflict
             +-- Agreement with same reasoning -> Suspect herding

此模式涵蓋了 80% 的價值。其餘所有方法都只是漸進式改善。

信心觸發機制

並非每個任務都需要協商。信心評分模組會評估四個面向:17

  1. 模糊性 - 該查詢是否有多種有效詮釋?
  2. 領域複雜度 - 是否需要專業知識?
  3. 風險程度 - 該決策是否可逆?
  4. 脈絡相依性 - 是否需要理解更廣泛的系統?

評分對應至三個等級:

等級 門檻 動作
HIGH 0.85+ 不經協商直接執行
MEDIUM 0.70-0.84 執行但記錄信心註記
LOW 低於 0.70 觸發完整的多代理人協商

門檻會依任務類型調整。安全性決策需要 0.85 共識。文件變更僅需 0.50。這可避免簡單任務過度設計,同時確保高風險決策獲得審視。7

狀態機

七個階段,每個階段都由前一個階段把關:7

IDLE -> RESEARCH -> DELIBERATION -> RANKING -> PRD_GENERATION -> COMPLETE
                                                                    |
                                                              (or FAILED)

RESEARCH: 獨立代理人各自調查主題。每個代理人都會獲得不同的角色設定(Technical Architect、Security Analyst、Performance Engineer 等)。脈絡隔離確保代理人在研究階段無法看到彼此的發現。

DELIBERATION: 代理人查看所有研究結果並產出替代方案。Debate 代理人辨識衝突。Synthesis 代理人整合不互相矛盾的發現。

RANKING: 每個代理人針對每個提案,依 5 個加權面向評分:

面向 權重
Impact 0.25
Quality 0.25
Feasibility 0.20
Reusability 0.15
Risk 0.15

雙閘驗證架構

兩道驗證閘門可在不同階段攔截問題:7

Gate 1:共識驗證(PostToolUse hook)。在每個協商代理人完成後立即執行: 1. 階段必須至少達到 RANKING 2. 至少 2 個代理人完成(可設定) 3. 共識分數達到任務適應性門檻 4. 若任何代理人持反對意見,必須記錄其疑慮

Gate 2:Pride Check(Stop hook)。在工作階段可關閉前執行: 1. 方法多元:呈現多個獨特角色 2. 矛盾透明性:反對意見有記錄理由 3. 複雜度處理:至少產出 2 個替代方案 4. 共識信心:分類為強(高於 0.85)或中等(0.70-0.84) 5. 改善證據:最終信心超越初始信心

於不同生命週期點放置兩道 hook,正好對應失敗實際發生的方式:有些是瞬時的(分數差),有些是漸進的(多樣性低、缺漏反對意見記錄)。7

為何意見一致是危險的

Charlan Nemeth 從 1986 年開始研究少數派異議,直至 2018 年出版《In Defense of Troublemakers》。有異議者的群體比快速達成一致的群體做出更好的決策。異議者不必是對的。光是表達不同意這個動作,就能迫使多數派檢視原本會跳過的假設。18

Wu 等人測試 LLM 代理人是否能進行真正的辯論,發現若缺乏結構性的異議誘因,代理人會收斂至聽起來最有自信的初始回應,無論其正確性如何。19 Liang 等人將根本原因歸結為「Degeneration-of-Thought」:一旦 LLM 對某立場建立信心,自我反思便無法產生新穎的反對論點,這使得多代理人評估在結構上有其必要性。20

獨立性是關鍵設計約束。兩個代理人若能看到彼此的發現,評估同一份部署策略時的分數為 0.45 與 0.48。同樣的代理人若彼此不可見:分數為 0.45 與 0.72。0.48 與 0.72 之間的差距,就是從眾效應的代價。7

偵測虛假共識

從眾偵測模組會追蹤代理人未經真正評估即達成共識的模式:7

分數聚集: 在 10 分制中,每個代理人的評分都落在 0.3 分以內,這暗示共享脈絡受到污染,而非獨立評估。當五個代理人評估身分驗證重構時,安全風險全都評在 7.1 至 7.4 之間,以新的脈絡隔離重新執行後,分數則散佈於 5.8 至 8.9 之間。

樣板式反對意見: 代理人複製彼此的疑慮用語,而非產生獨立的反對意見。

少數派觀點缺席: 來自具有衝突優先順序的角色卻全數同意(Security Analyst 與 Performance Engineer 鮮少在所有事情上達成一致)。

從眾偵測器能捕捉明顯的案例(約 10-15% 的協商中代理人收斂得太快)。剩餘的 85-90%,則由共識與 pride check 閘門提供充分的驗證。

協商中無效的做法

自由形式的辯論回合。 在資料庫索引討論中進行三輪來回文字辯論,產生了 7,500 token 的辯論內容。第一輪:真實的意見分歧。第二輪:重述立場。第三輪:以不同字眼重複相同論點。結構化的面向評分取代了自由形式辯論,將成本降低 60%,同時提升了排序品質。7

單一驗證閘門。 第一版實作只在工作階段結束時執行一個驗證 hook。某代理人完成協商時共識分數為 0.52(低於門檻),接著繼續處理無關任務 20 分鐘,直到工作階段結束的 hook 才標記出失敗。拆分為兩道閘門(一道在任務完成時、一道在工作階段結束時)後,可在不同生命週期點捕捉相同問題。7

協商成本

每個研究代理人約處理 5,000 token 的脈絡,並產出 2,000-3,000 token 的發現。3 個代理人就是每個決策額外 15,000-24,000 token。10 個代理人則約為 50,000-80,000 token。7

依當前 Opus 定價,3 個代理人的協商成本約為 $0.68-0.90。10 個代理人的協商成本為 $2.25-3.00。系統會在約 10% 的決策上觸發協商,因此攤平至所有決策後,每個工作階段的成本為 $0.23-0.30。是否值得,取決於一個錯誤決策的代價有多高。

何時應該協商

應協商 應跳過
安全性架構 文件錯字
資料庫綱要設計 變數重新命名
API 契約變更 日誌訊息更新
部署策略 註解措辭調整
相依套件升級 測試夾具更新

CLAUDE.md 設計

CLAUDE.md 是 AI agent 的操作政策,而非供人閱讀的 README。21 Agent 不需要理解您為何採用 conventional commits,只需要知道該執行的確切命令,以及何謂「完成」。

優先順序層級

位置 範圍 共用方式 使用情境
企業管理設定 組織 所有使用者 公司標準
./CLAUDE.md./.claude/CLAUDE.md 專案 透過 git 團隊脈絡
~/.claude/CLAUDE.md 使用者 所有專案 個人偏好
./CLAUDE.local.md 專案本機 永不共用 個人專案筆記
.claude/rules/*.md 專案規則 透過 git 分類政策
~/.claude/rules/*.md 使用者規則 所有專案 個人政策

規則檔案會自動載入並提供結構化脈絡,避免 CLAUDE.md 雜亂不堪。6

哪些內容會被忽略

下列模式確實不會對 agent 行為產生可觀察的改變:21

沒有命令的敘述段落。「我們重視簡潔且經過充分測試的程式碼」只是說明文件,不是操作指令。Agent 讀完後仍會繼續撰寫未經測試的程式碼,因為其中沒有可執行的指示。

模稜兩可的指示。「處理資料庫遷移時務必謹慎」並不構成限制。「套用遷移前執行 alembic check。若缺少降版路徑,立即中止。」才算明確。

彼此矛盾的優先事項。「快速推進並儘速發布」加上「確保全面的測試涵蓋率」、加上「將執行時間控制在 5 分鐘內」、再加上「每次 commit 前執行完整整合測試」。Agent 無法同時滿足這 4 項要求,最後通常會直接略過驗證。21

缺乏強制機制的風格指南。只要求「遵循 Google Python 風格指南」,卻沒有 ruff check --select D,agent 就沒有驗證合規性的機制。

有效的做法

命令優先的指示:

## Build and Test Commands
- Install: `pip install -r requirements.txt`
- Lint: `ruff check . --fix`
- Format: `ruff format .`
- Test: `pytest -v --tb=short`
- Type check: `mypy app/ --strict`
- Full verify: `ruff check . && ruff format --check . && pytest -v`

完成條件定義:

## Definition of Done
A task is complete when ALL of the following pass:
1. `ruff check .` exits 0
2. `pytest -v` exits 0 with no failures
3. `mypy app/ --strict` exits 0
4. Changed files have been staged and committed
5. Commit message follows conventional format: `type(scope): description`

依任務編排的章節:

## When Writing Code
- Run `ruff check .` after every file change
- Add type hints to all new functions

## When Reviewing Code
- Check for security issues: `bandit -r app/`
- Verify test coverage: `pytest --cov=app --cov-fail-under=80`

## When Releasing
- Update version in `pyproject.toml`
- Run full suite: `pytest -v && ruff check . && mypy app/`

升級處理規則:

## When Blocked
- If tests fail after 3 attempts: stop and report the failing test with full output
- If a dependency is missing: check `requirements.txt` first, then ask
- Never: delete files to resolve errors, force push, or skip tests

撰寫順序

若要從零開始,請依照下列優先順序新增章節:21

  1. 建置與測試命令(agent 必須先取得這些資訊,才能進行任何有用的工作)
  2. 完成定義(避免誤報完成)
  3. 升級處理規則(避免採取具破壞性的變通手段)
  4. 依任務編排的章節(減少解析不相關指示)
  5. 目錄範圍界定(適用於 monorepo:讓各服務的指示彼此隔離)

在前 4 項正常運作前,先略過風格偏好。

平台現在會替您稽核 CLAUDE.md。自 2026年7月初發布的版本(v2.1.203–v2.1.206)起,/doctor 會分析 CLAUDE.md,並建議刪減模型可自行從程式碼庫推導的內容,例如重述的目錄配置、程式碼已呈現的框架慣例,以及與套件指令碼重複的命令清單。68 這是第一方對本節主張的印證:只有記錄 agent 無法自行推斷的資訊(政策、門檻、完成條件定義),指示所占用的 token 才有價值,而非重複它能從磁碟讀取的內容。CLAUDE.md 大幅擴充後,請執行 /doctor,並將其刪減建議視為起點;但若它將關鍵操作規則標示為「可推導」,仍應予以保留,因為這些是不可或缺的限制,而非單純描述。

檔案匯入

在 CLAUDE.md 中參照其他檔案:

See @README.md for project overview
Coding standards: @docs/STYLE_GUIDE.md
API documentation: @docs/API.md
Personal preferences: @~/.claude/preferences.md

匯入語法:相對路徑(@docs/file.md)、絕對路徑(@/absolute/path.md)或家目錄路徑(@~/.claude/file.md)。最大深度為 5 層匯入。6

跨工具指示相容性

AGENTS.md 是所有主流 AI 程式設計工具皆能辨識的開放標準。21 若團隊使用多種工具,請以 AGENTS.md 作為規範來源,並將相關章節同步至各工具專用的檔案:

工具 原生檔案 是否讀取 AGENTS.md?
Codex CLI AGENTS.md 是(原生支援)
Cursor .cursor/rules 是(原生支援)
GitHub Copilot .github/copilot-instructions.md 是(原生支援)
Amp AGENTS.md 是(原生支援)
Windsurf .windsurfrules 是(原生支援)
Claude Code CLAUDE.md 否(格式不同)

無論使用何種工具,AGENTS.md 中的模式(命令優先、明確定義完成條件、依任務編排)皆適用於任何指示檔案。請勿維護多套逐漸分歧的平行指示。應建立單一權威來源,再同步至其他檔案。

Codex 對等功能說明

Codex 現已針對主要 harness 層提供一級對等功能,但遷移時應轉換模式,而非直接複製檔案。Codex 會在工作開始前讀取 AGENTS.md,並將 ~/.codex 的全域指引與專案及巢狀儲存庫指示逐層疊加。31 Codex skills 採用相同的 SKILL.md 心智模型,並運用漸進式揭露:Codex 一開始只取得 skill 名稱、說明與檔案路徑,判定需要使用時才載入完整 skill。32 Codex 也具備原生 hooks、隨 plugin 封裝的 hooks、受管理的 hooks、MCP 支援,以及明確的 subagent 工作流程。3334

Codex v0.138.0–v0.139.0 強化了非簡單工作區中的 AGENTS.md 探索機制:現在會透過環境的檔案系統抽象層載入,並在探索走訪期間保留邏輯路徑。因此,即使工作區位於遠端檔案系統或採用符號連結目錄樹,也能選取正確的檔案。61 當規範來源 AGENTS.md 具備最高權威,而 agent 又是在掛載、由容器具現化或使用符號連結的 checkout 上運作時,這項改進至關重要。若只是單純走訪路徑,這些情況可能會悄然選錯指示檔案,甚至完全找不到檔案。若您在多項服務之間同步單一權威 AGENTS.md,至少應採用此版本,才能信任 agent 實際載入的檔案正是您撰寫的那一份。

隨後,Codex v0.141.0 進一步強化遠端執行路徑:遠端執行器現在會透過經過驗證、端對端加密的 Noise-relay 通道連線(控制平面與執行器不再需要信任兩者之間的 relay);跨平台遠端執行會保留執行器的原生工作目錄與 shell;TLS 也接受企業 Proxy 的 P-521 憑證簽章。65 若您的 orchestration 會驅動 Codex 執行器跨越網路邊界,這代表架構已從「必須信任 relay」轉變為「端對端加密」。任何遠端執行器拓撲都應以此版本作為基準。

2026年7月的版本脈絡顯示,兩套 runtime 正從不同方向逐步匯聚至相同的基礎機制。72 Codex v0.143.0 預設讓 MCP 工具透過 tool search 載入:工具 schema 不再預先塞入 context,而是延後至有需要時才擷取。這與 Claude Code 透過 ToolSearch 介面提供的延遲工具載入模式相同;當 MCP 工具數量龐大、造成 context 膨脹時,這也是兩套 runtime 的正確解法。Codex v0.144.0 新增 writes 應用程式核准模式:唯讀操作不經提示即可執行,寫入操作則必須取得核准。這是在唯讀與自動核准之間真正新增的權限模式基礎機制,而 Claude Code 的模式清單並無直接對應項目(最接近的是 plan 模式,但它會完全封鎖寫入,而非逐次提示核准)。同一版本也讓 MCP 互動式驗證正式進入 GA。v0.144.5 則擴大了危險命令偵測範圍,呼應 Claude Code 在 v2.1.183 與 v2.1.208 推出的破壞性命令防護機制。對跨 runtime 的 harness 設計而言,匯聚才是重點:延遲工具載入、分級寫入核准,以及意圖層級的危險命令攔截,正逐漸成為基本配備,而非供應商之間的差異化功能。

Codex v0.145.0 在兩方面進一步推動這項匯聚。76 選用的 multi-agent V2 介面已趨於穩定:現在可設定 sub-agent 模型、推理層級與並行數量,先前移除的 agent 角色也已恢復。這是 Codex 對 .claude/agents/ frontmatter 中逐一設定 subagent 模型與工作強度的回應。此外,/import 已發展為完整的跨 harness 遷移功能:除了 v0.140.0 推出的 Claude Code 設定匯入,現在還能遷移 Claude Code Cursor 的設定,包括 MCP 伺服器、plugins、sessions、commands,以及專案範圍的 memories。對同時使用兩套 runtime 的團隊而言,兩者之間單向遷移的成本持續下降;您在 Claude Code 建立的 harness 層(伺服器、作為 commands 的 skills、memory)日益成為可攜式狀態,而非供應商綁定。

實務對應關係如下:

Claude Code harness 層 Codex 對等功能 遷移規則
CLAUDE.md / .claude/rules/ AGENTS.md / 巢狀 AGENTS.override.md 維持命令與完成規則的權威性;只有目錄範圍確實不同時才拆分
.claude/skills/<name>/SKILL.md .agents/skills/<name>/SKILL.md 或 plugin skill 移植可重複使用的工作流程,但應依 Codex 的啟用措辭與預算重寫說明
.claude/settings.json hooks Codex config.toml、plugin hooks 或受管理的 requirements hooks 優先移植確定性 gates;廣泛啟用前,以真實工具事件測試每個 hook
.claude/agents/*.md ~/.codex/agents/*.toml.codex/agents/*.toml 或內建 worker / explorer 僅移植能反覆創造價值的 agents;Codex subagents 採明確啟動,因此應優先採用明確 delegation
Plugins Codex plugins 本機 hooks 與 skills 經驗證後,再以 plugins 作為發布單位

重要差異在於:Claude subagents 可依說明自動選用,而 Codex 目前將 subagent 工作流程記載為明確啟動。因此,在 Codex 中,skills 與 hooks 才是常駐 harness 行為的預設選擇;subagents 則用於審慎規劃的平行工作、審查與探索。

測試您的指示

驗證 agent 是否確實讀取並遵循您的指示:

# Check active instructions
claude --print "What instructions are you following for this project?"

# Verify specific rules are active
claude --print "What is your definition of done?"

關鍵考驗:要求 agent 說明您的建置命令。若無法逐字重現,表示指示不是過於冗長(內容被擠出 context)、過於含糊(agent 無法擷取可執行的指示),就是根本未被探索到。GitHub 對 2,500 個儲存庫的分析發現,措辭含糊是大多數失敗的主因。21


生產環境模式

Opus 4.7 長時間任務模式(2026年4月)

Claude Opus 4.7(2026年4月16日)推出多項特定能力,改變了 harness 所需防範的風險:29

  • 工具失敗韌性:Opus 4.7 遇到會使 Opus 4.6 工作階段中止的工具失敗時,仍能繼續執行。您可以減少(但不能完全移除)subagent 程式碼中的防禦性重試封裝。保留 hook 層級的防護機制;精簡提示詞中「若工具失敗,請重試三次」之類的鷹架。
  • xhigh effort 層級(僅限 Opus-4.7):介於 highmax 之間。建議將其作為程式開發及代理式工作負載的預設值。對長時間執行的 subagents 而言,xhigh 的表現明顯優於 high,而 token 成本增加幅度相對較低。max 仍適合單次高難度推理;xhigh 則更適合持續性任務。
  • Token 預算上限:可透過 output_config.task_budget 為每次 agent 執行進行設定(beta 標頭為 task-budgets-2026-03-13)。模型會看到持續倒數的預算,並依預算從容調整工作範圍,而不會意外耗盡。適合用於需要可預測 token 支出、同時又不希望犧牲短提示詞品質的代理式迴圈。
  • 隱含需求感知:首個通過「隱含需求」測試的 Claude 模型,能辨識使用者的字面要求何時未能完整說明其實際需求。這降低了 CLAUDE.md 中「釐清規則」章節的必要性。若您的 CLAUDE.md 有 200 行「當使用者要求 Y 時,也要考慮 X」之類的防護規則,請刪除模型現已能原生處理的部分。

Worktree 基準、Sandbox 路徑與管理員設定(2026年5月7日)

Claude Code v2.1.133 新增 4 項值得生產環境 harness 留意的管理員層級設定:39

設定 功能
worktree.baseRef fresh(預設)| head 新 worktree 再度從 origin/<default> 建立分支。這是對 v2.1.128 具破壞性的預設值回復;該版本曾改用本機 HEAD。若團隊仰賴未推送的 commit 可供新 worktree 使用,請設定 worktree.baseRef: "head"
sandbox.bwrapPath 絕對路徑 在 Bubblewrap 不位於 $PATH,或採用隨產品提供版本的 Linux/WSL 主機上,固定 Bubblewrap 二進位檔的位置。
sandbox.socatPath 絕對路徑 同樣用於指定 sandbox 網路功能所使用的 socat 二進位檔。
parentSettingsBehavior 'first-wins'(預設)| 'merge' 管理員層級的控制項,用於決定 SDK managedSettings 如何與上層企業/團隊設定組合。'merge' 讓子工作階段繼承並擴充設定;'first-wins' 則維持上層設定的主導權。

worktree.baseRef 的回復是最需要提醒使用者的變更:若 agent 仰賴 v2.1.128 至 v2.1.132 的行為(worktree 從本機 HEAD 建立分支),除非明確選擇恢復該行為,否則在全新 worktree 中將無法存取尚未推送的工作。

適用於企業可觀測性的 OTel 意見調查(2026年5月8日)

Claude Code v2.1.136 新增 CLAUDE_CODE_ENABLE_FEEDBACK_SURVEY_FOR_OTEL,讓透過 OpenTelemetry 擷取回覆的企業可重新啟用工作階段內的品質調查。40 若組織將 OTel 事件匯入集中式可觀測性堆疊,此環境變數可讓調查重新進入資料路徑,使品質訊號與延遲及錯誤指標流經同一條管線。請將其視為選用功能:預設會停用調查,這對未部署 OTel 的環境而言是正確做法。

企業啟動器與 MCP 規模的效能(2026年7月)

v2.1.207 有兩項變更攸關生產環境部署。68 CLAUDE_CODE_PROCESS_WRAPPER 讓受管理的環境可透過企業封裝二進位檔啟動 Claude Code 程序,作為端點 agent、啟動時政策檢查,以及所有程序都必須在指定監督程式下執行之環境的整合點。若企業過去以 shell 別名或分支修改的啟動器指令稿勉強實現此功能,現在已有正式支援的介接點。

同一版本也降低了 harness 最有感的執行階段負擔:在 MCP 工具數量龐大的工作階段中,工具使用回合最快提升 7 倍,工作階段逐字記錄則縮小至多 79 倍68 這在一定程度上緩和了以成本作為架構考量的指引,但並未將其推翻:對無狀態的單次操作而言,CLI 優先仍是最佳選擇;不過,搭載數十項 MCP 工具的 harness,不再承受春季版本中每回合的高額效能代價,逐字記錄儲存也不再是長時間自主執行的隱藏成本。

quality loop

所有非瑣碎變更都必須遵循的審查流程:

  1. 實作-撰寫程式碼
  2. 審查-重新閱讀每一行,找出錯字、邏輯錯誤與語意不清之處
  3. 評估-執行 evidence gate,檢查模式、邊界情況與測試涵蓋率
  4. 精煉-修正所有問題,絕不推延至「稍後」處理
  5. 綜觀全局-檢查整合點、匯入項目及相鄰程式碼是否出現迴歸
  6. 重複-若任何 evidence gate 準則未通過,返回步驟 4
  7. 報告-列出變更內容、驗證方式,並引用具體證據

evidence gate

「我相信」和「應該可以」都不算證據。請引用檔案路徑、測試輸出或特定程式碼。

準則 必要證據
遵循程式碼庫模式 指明模式名稱,以及該模式所在的檔案
最簡單且可運作的解決方案 說明否決了哪些更簡單的替代方案及其原因
已處理邊界情況 列出具體邊界情況及各自的處理方式
測試通過 貼出顯示 0 項失敗的測試輸出
未造成迴歸 指明已檢查的檔案/功能
解決實際問題 說明使用者的需求,以及此方案如何滿足該需求

若任一列無法提出證據,請返回「精煉」步驟。22

人工合併權限

2026年5月一項針對 29,585 個 AI agent pull request 生命週期的 arXiv 研究,將作業執行權與合併治理區分開來。47 其架構啟示十分明確:agent 可以開始工作、延續分支、建立 PR、審查工作並摘要風險,而合併權限則維持為獨立的治理邊界。

請在 harness 中明確劃定此邊界。允許 agent 準備 PR 並蒐集證據;除非組織另有經過稽核的自動化政策,否則合併、發布及破壞性儲存庫操作都必須取得人工核准。若由自動化系統執行合併,請保留能區分實際執行者與授權該操作之人員或政策的記錄。

錯誤處理模式

不可分割的檔案寫入。多個 agent 同時寫入同一個狀態檔案會破壞 JSON。先寫入 .tmp 檔案,再以 mv 執行不可分割的移動操作。作業系統保證在同一檔案系統內,mv 是不可分割的操作。17

# Atomic state update
jq --argjson d "$new_depth" '.depth = $d' "$STATE_FILE" > "${STATE_FILE}.tmp"
mv "${STATE_FILE}.tmp" "$STATE_FILE"

狀態毀損復原。若狀態毀損,復原模式會從安全預設值重新建立狀態,而非直接當機:16

if ! jq -e '.depth' "$RECURSION_STATE_FILE" &>/dev/null; then
    # Corrupted state file, recreate with safe defaults
    echo '{"depth": 0, "agent_id": "root", "parent_id": null}' > "$RECURSION_STATE_FILE"
    echo "- Recursion state recovered (was corrupted)"
fi

((VAR++)) bash 陷阱。當 VAR 為 0 時,((VAR++)) 會傳回結束代碼 1,因為 0++ 的計算結果為 0,而 bash 將 0 視為 false。啟用 set -e 後,這會使指令稿終止。請改用 VAR=$((VAR + 1))16

影響範圍分類

依影響範圍為每項 agent 操作分類,並設定相應的管控關卡:2

分類 範例 管控關卡
本機 寫入檔案、執行測試、linting 自動核准
共用 Git commit、建立分支 警告後繼續
外部 Git push、API 呼叫、部署 需要人工核准

Remote Control(從任何瀏覽器或行動應用程式連線至本機 Claude Code)可將「外部」管控關卡從阻塞式等待轉為非同步通知。當您透過手機審查前一項任務時,agent 可繼續處理下一項任務。2

自主執行的任務規格

有效的自主任務包含 3 項要素:目標、完成條件與背景資訊指引:16

OBJECTIVE: Implement multi-agent deliberation with consensus validation.

COMPLETION CRITERIA:
- All tests in tests/test_deliberation_lib.py pass (81 tests)
- post-deliberation.sh validates consensus above 70% threshold
- recursion-guard.sh enforces spawn budget (max 12 agents)
- No Python type errors (mypy clean)

CONTEXT:
- Follow patterns in lib/deliberation/state_machine.py
- Consensus thresholds in configs/deliberation-config.json
- Spawn budget model: agents inherit budget, not increment depth

條件必須能由機器驗證:測試通過/失敗、linter 輸出、HTTP 狀態碼、檔案存在性檢查。早期曾有一項任務要求 agent「撰寫會通過的測試」,結果產生了 assert Trueassert 1 == 1。技術上正確,實務上毫無價值。16

條件品質 範例 結果
模糊 「測試通過」 Agent 撰寫無實質意義的測試
可衡量但不完整 「測試通過且涵蓋率 >80%」 測試涵蓋了程式碼行,卻未驗證任何有意義的行為
完整 「所有測試均通過、涵蓋率 >80%、沒有型別錯誤、linter 檢查無誤,且每個測試類別各自測試不同模組」 達到生產環境品質的輸出

需要留意的失敗模式

失敗模式 說明 預防措施
捷徑螺旋 為了更快完成而略過 quality loop 步驟 evidence gate 要求每項準則都有證據
信心幻象 未執行驗證便宣稱「我有信心」 在完成報告中禁止使用模稜兩可的措辭
虛假驗證 未在本次工作階段執行測試,卻宣稱測試已通過 Stop hook 會獨立執行測試
延後債務 已 commit 的程式碼中存在 TODO/FIXME/HACK git commit 的 PreToolUse hook 會掃描 diff
檔案系統汙染 放棄迭代後留下無用的產出物 在完成條件中加入清理步驟

具體的工作階段追蹤記錄

以下是一次自主執行處理含有 5 個 story 的 PRD 時所產生的工作階段追蹤記錄:2

  1. SessionStart 觸發。dispatcher 注入:目前日期、專案偵測、理念限制條件、成本追蹤初始化。共 5 個 hooks,總計 180ms。

  2. Agent 讀取 PRD,規劃第一個 story。UserPromptSubmit 觸發。dispatcher 注入:作用中專案背景資訊、工作階段偏移基準線。

  3. Agent 呼叫 Bash 執行測試。PreToolUse:Bash 觸發。執行認證資訊檢查、sandbox 驗證、專案偵測,耗時 90ms。測試隨後執行。PostToolUse:Bash 觸發:記錄活動心跳並檢查偏移。

  4. Agent 呼叫 Write 建立檔案。PreToolUse:Write 觸發:檢查檔案範圍。PostToolUse:Write 觸發:執行 lint 檢查與 commit 追蹤。

  5. Agent 完成 story。Stop 觸發。quality gate 檢查:agent 是否引用證據?是否使用模稜兩可的措辭?diff 中是否有 TODO 註解?若任何檢查失敗,便以結束代碼 2 結束,agent 則繼續處理。

  6. 獨立驗證:由全新的 agent 執行測試套件,不採信先前 agent 的自行報告。

  7. 3 個程式碼審查 agent 平行產生。各自獨立審查 diff。若任何審查者標記 CRITICAL,該 story 就會返回佇列。

  8. Story 通過,載入下一個 story。對全部 5 個 story 重複此循環。

處理 5 個 story 期間觸發的 hooks 總數:約 340 次。hooks 總耗時:約 12 秒。這些額外負擔在單次夜間執行中,防止了 3 次認證資訊外洩、1 次破壞性命令,以及 2 項未完成的實作。

案例研究:夜間 PRD 處理

某個生產環境 harness 在 8 個夜間工作階段中處理了 12 個 PRD(47 個 story)。下列指標比較前 4 個 PRD(最精簡的 harness:僅有 CLAUDE.md)與後 8 個(完整 harness:hooks、skills、quality gates、多 agent 審查)。

指標 最精簡配置(4 個 PRD) 完整 Harness(8 個 PRD) 變化
認證資訊外洩 2 次外洩至 git commit 前攔截 7 次 從被動應對轉為主動預防
破壞性命令 1 次強制推送至 main 攔截 4 次 以結束代碼 2 強制執行
錯誤完成率 35% 的測試失敗 4% evidence gate + Stop hook
每個 story 的修訂回合數 2.1 0.8 Skills + quality loop
背景資訊劣化 6 起事件 1 起事件 檔案系統記憶
Token 額外負擔 0% 約 3.2% 微不足道
每個 story 的 hook 耗時 0s 約 2.4s 微不足道

這 2 次認證資訊外洩導致必須輪替 API 金鑰並稽核下游服務,事件應變約耗費 4 小時。能防止同等事件的 harness 額外負擔,僅為每個 story 執行 2.4 秒的 bash。錯誤完成率從 35% 降至 4%,原因在於 Stop hook 會先獨立執行測試,再允許 agent 回報完成。


安全性考量

可信賴 Agent 的五項原則(Anthropic,2026年4月)

Anthropic 於2026年4月9日發布正式的 Agent 可信賴性框架。27這五項原則呼應並延伸了本指南的 evidence gate 思維:

原則 意義 此 harness 如何實現
人類控制 在每個決策點提供實質的人為介入機制 hooks 管控工具呼叫;PreCompact 阻擋機制;以 Auto Mode 分類器作為檢查層
價值一致性 Agent 的行動遵循使用者意圖,而非相鄰目標 以 CLAUDE.md 明確規範意圖;以 skills 界定能力範圍
安全性 抵禦對抗性輸入與提示詞注入 在 hook 層採用沙箱、拒絕規則與輸入驗證
透明度 決策與行動皆有可稽核的紀錄 hook 記錄;工作階段逐字稿;skill 呼叫軌跡
隱私權 妥善處理及治理資料 清除憑證環境變數;在 hook 層偵測機密資訊

Anthropic 也將 MCP 捐贈給 Linux Foundation 的 Agentic AI Foundation,與 AGENTS.md 一同加入(目前由 OpenAI、Google、Cursor、Factory、Sourcegraph 共同管理)。Agent 互通性標準如今已不受特定供應商限制。27

MCP 的無狀態回合與自行聲明的身分(2026年7月)。MCP 規格正處於轉向無狀態核心(SEP-2575)的過渡期,將移除過去用來傳遞伺服器身分的有狀態初始化交握。7月16日合併的一項規格草案變更(PR #3002)將身分恢復為一個選用介面:伺服器可在回應的 _meta 中加入 io.modelcontextprotocol/serverInfo 物件,而請求中的 clientInfo 則改為選用。71與安全性最相關的是規格對信任的說明:此身分是自行聲明且未經驗證,僅供顯示與記錄使用,不應作為安全決策的依據。如果您的 harness 根據 MCP 伺服器宣告的名稱來套用允許清單、權限規則或以記錄為基礎的稽核,請切記該名稱只是宣稱,而非憑證。信任應固定於傳輸與設定之上(也就是在何種端點設定了哪一部伺服器),絕不可取決於伺服器如何自稱。最終版無狀態規格預定於2026年7月28日修訂完成,本節的通訊協定細節預計會在下次更新時更加明確。

Skill 沙箱工具:對於將 skills 視為攻擊面的團隊,Permiso 的 SandyClaw(於2026年4月2日推出)會在專用沙箱中執行 skills,並根據 Sigma、YARA、Nova、Snort 的偵測結果提供有證據支持的判定。這是 skill 沙箱類別的首款產品。28

沙箱

Claude Code 支援選用的沙箱模式(可透過 settings.json/sandbox 命令啟用),使用作業系統層級的隔離機制限制網路存取與檔案系統操作(macOS 使用 seatbelt,Linux 使用 bubblewrap)。啟用後,沙箱可防止模型任意提出網路請求,或存取專案目錄以外的檔案。若未使用沙箱,Claude Code 會採用權限式模型,由您逐一核准或拒絕工具呼叫。13

2026年5月的安全基準。Claude Code v2.1.149 修正了 PowerShell 工作目錄權限繞過問題、數個 PowerShell 允許規則及過期變數的權限分析缺口,以及一項 git worktree 沙箱寫入允許清單錯誤。該錯誤原先涵蓋整個主要儲存庫根目錄,而非僅限於共用的 git 內部資料。53如果您的 harness 允許 PowerShell 或採用 worktree 隔離的 Agent,請將 v2.1.149 以上版本視為最低基準,並嚴格限縮 shell 規則。寬泛的 PowerShell(*) 與整個儲存庫的寫入例外只是編排捷徑,並非安全邊界。

OpenAI Agents SDK 沙箱封鎖強化(v0.17.0,2026年5月8日)。在 OpenAI 方面,openai-agents-python v0.17.0 收緊了另一項平行邊界:LocalFile.srcLocalDir.src 現在必須位於具體化作業的 base_dir 之內(套用資訊清單時 SDK 程序的目前工作目錄),除非來源已透過 Manifest.extra_path_grants 搭配 SandboxPathGrant 明確授權。41相對本機來源會以 base_dir 為基準解析;絕對路徑則必須已位於其中,或持有授權。這項修正封閉了本機成品邊界的問題:舊版允許資訊清單將主機上的任意路徑拉入沙箱工作區。遷移方式:若要唯讀掛載,請在資訊清單層級使用 SandboxPathGrant(path=..., read_only=True) 宣告受信任的主機根目錄。應將 extra_path_grants 視為受信任的應用程式設定;絕不可根據模型輸出或不受信任的資訊清單輸入來填入授權。

OpenAI Agents SDK 後續最低基準(v0.17.3)。0.17.1 至0.17.3系列進一步強化沙箱與工作階段,包括封存檔解壓縮限制、GitRepo 子路徑驗證、更明確的沙箱供應商錯誤、避免掛載點憑證出現在沙箱命令中、拒絕相對沙箱工作區根目錄,以及處理 Vercel 沙箱的終止狀態。54如果您使用 OpenAI 託管或供應商支援的沙箱,而不只依賴 Claude Code hooks,請將0.17.3視為本節模式目前的最低基準。

各產品採用的三種圍堵模式(Anthropic,2026年5月)

Anthropic 的工程文章〈How we contain Claude across products〉(2026年5月25日)是供應商對本節各處所述原則的正式闡釋,包括上述設定層級沙箱、worktree 隔離基準,以及將一切視為不受信任的立場。81其核心做法,是依產品介面調整圍堵強度;而這項對應關係本身就是關鍵:不存在唯一正確的隔離設計,只能根據誰在監督,以及可能發生哪些問題來選擇相稱的隔離措施。

  • 暫時性 gVisor 容器(claude.ai)。伺服器端執行作業會在隔離基礎設施上的 gVisor 容器中進行,並為每個工作階段提供暫時性檔案系統。其威脅模型著重於基礎設施與租戶隔離。由於完全無法觸及使用者的電腦,因此不需防護任何本機內容。
  • 人類參與決策的作業系統沙箱(Claude Code)。這是上述沙箱段落所述模式的政策化表述:macOS 使用 Seatbelt,Linux 使用 bubblewrap;允許讀取、將寫入限制在工作區內,並預設拒絕網路存取。邊界未涵蓋的部分則交由人類核准。Anthropic 已將執行階段開放原始碼(sandbox-runtime),讓邊界可供稽核。該文章坦率指出其中的薄弱環節:約93%的權限提示都會獲得核准。Auto Mode 分類器則會在執行前攔截約83%的過度積極行為,同時將核准提示減少84%。這項機制之所以存在,正是因為核准疲勞屬於安全性問題,而非使用者體驗方面的抱怨。這正是本指南自 v2.1.193 起持續追蹤的檢查層立場。
  • 密封式 VM(Claude Cowork)。完整的虛擬機器會在平台 Hypervisor 上執行——macOS 採用 Apple Virtualization framework,Windows 採用 HCS——且僅掛載所選工作區與 .claude 資料夾;主機上的其他內容一概不可見。憑證絕不會進入 VM,而是保留在主機鑰匙圈中;每個工作階段只會取得範圍受限、可獨立撤銷的權杖。VM 內的防禦性 MITM Proxy 會強制執行此機制,只允許帶有該 VM 自行佈建之工作階段權杖的請求通過。攻擊者嵌入的金鑰會在邊界遭到拒絕,因為只有 VM 知道其來源。

這套分類法背後的設計原則才是可以觸類旁通的部分。先在環境層圍堵,再於模型層引導:任何機率式防禦都有非零的漏判率,因此確定性邊界必須攔住提示詞層級引導所遺漏的情況。這也就是本指南所述「hooks 保證執行」的論點,由供應商換一種方式重申。讓隔離強度符合使用者的監督能力:開發人員能在核准前評估 bash 命令;知識工作者則未必能做到。因此 Code 採用權限對話框,而 Cowork 使用密封式 VM。優先採用久經考驗的基本機制,而非自行撰寫隔離程式碼:Hypervisor、seccomp 與容器執行階段所承受的對抗性檢驗,比 Anthropic 自行開發的允許清單 Proxy 與設定解析器更嚴苛。將專案本機設定與工具輸出視為不受信任:文章指示,應像處理任何來自網際網路的傳入請求一樣看待開啟專案與載入設定;即使工具本身受信任,其輸出仍是攻擊面。這與本指南對 Agent 間訊息、subagent 讀取的內容,以及自行聲明的 MCP 身分所採取的立場相同。將憑證留在沙箱之外:應使用範圍受限、可撤銷且每個工作階段獨立的權杖,而非 Agent 可能洩漏的環境常駐金鑰。

設定介面正逐步跟上第一項原則(v2.1.219)。「先在環境層圍堵」看似理所當然,實際設定卻一直不太順手。因為 Claude Code 沙箱對規則未涵蓋的情況會以提問解決;正如上述93%的核准率所顯示,權限提示只是披著確定性外衣的機率式防禦。sandbox.network.strictAllowlist 消除了對輸出流量的提問:啟用後,沙箱命令對不在允許清單中的主機提出請求時,系統會直接拒絕,而不會顯示提示。84將其與 v2.1.216 的 sandbox.filesystem.disabled 搭配使用,兩項設定便能組成完整的安全態勢,而非雜亂無章的開關集合。檔案系統與網路圍堵可各自獨立選擇,而網路圍堵如今也能以確定性方式執行。對無人值守的 harness 而言,後者更為重要,因為注入指令正是透過輸出流量演變成資料外洩。核准疲勞的終極情況,就是鍵盤前根本無人可感到疲勞。其代價與所有確定性邊界相同:允許清單必須正確無誤,遺漏的主機將收到不透明的拒絕,而非詢問。請列出 Agent 合法需要存取的主機,然後移除提示機制。

上述措施都不能取代 hook 層,而是位於其下方。圍堵模式構成確定性的最低防線。本指南所記錄的 worktree 強制執行歷程,也以縮影形式傳達相同教訓:唯有在蓄意重新導向之下仍能守住,才稱得上邊界;最有可能守住的基本機制,往往不是為了眼前情境臨時打造的方案。

權限邊界

權限系統會在多個層級管控操作:

層級 控制項目 範例
工具權限 可使用哪些工具 將 subagent 限制為 Read、Grep、Glob
檔案權限 可修改哪些檔案 阻擋寫入 .envcredentials.json
命令權限 可執行哪些 bash 命令 阻擋 rm -rfgit push --force
網路權限 可存取哪些網域 MCP 伺服器連線的允許清單

參數層級權限規則(2026年6月)

Claude Code v2.1.178 將權限規則從工具層級延伸到參數層級:Tool(param:value) 會比對工具的輸入參數,並以 * 作為萬用字元。標準範例是 Agent(model:opus),此規則會阻止 subagents 使用特定模型層級產生。63從架構角度來看,這項機制補足了上述四層表格無法表達的缺口:過去只能全面允許或拒絕某項工具,卻無法約束工具的呼叫方式。如今,治理政策可以透過確定性規則指出「subagents 可以產生,但不得使用 Fable 5 層級」,或「允許 Bash,但不得搭配這個旗標」,不再只是提示詞層級的要求。

配套的受管理設定 enforceAvailableModels(v2.1.175)會由上而下限制模型選擇:固定 Default 模型,並防止使用者或專案範圍的設定擴大受管理的 availableModels 允許清單。63兩者可以相互配合:允許清單定義工作階段中可以使用哪些層級,參數層級規則則限制 subagents 如何從中選用。自 v2.1.196 起,管理員也能從組織主控台設定全組織預設模型,並在 /model 中顯示為「Org default」。如此一來,整個機群都能繼承受治理的預設值,不必由每位操作人員分別固定模型,形成與允許清單上限相輔相成的最低基準。

路徑範圍的允許規則會錨定於工作目錄(2026年7月)

Claude Code v2.1.214 修正了路徑範圍權限規則中一項不易察覺的過度比對問題:採用單一區段 dir/** 模式的允許規則(例如 Edit(src/**)),原先會自動核准對任意深度中任何名為 src 之目錄的編輯,包括 vendor/some-package/src/,以及規則作者從未打算授權的其他巢狀 src/ 目錄。如今,此類規則只會錨定於 <cwd>/dir;如果確實需要任意深度比對,請使用 **/dir/** 明確宣告。74拒絕與詢問規則則刻意保留舊有的任意深度比對方式。這種不對稱正是正確的失效安全設計:允許規則比對範圍過窄時會安全失效(您會收到提示),拒絕規則比對過窄卻會開放失效(應封鎖的路徑會漏網)。因此,允許規則變得更嚴格,而拒絕規則維持寬泛。如果您的設定依賴單一區段的允許模式涵蓋巢狀路徑,升級至 v2.1.214 後便不再適用。這正是修正按預期運作的結果,但仍值得檢查允許清單,重新明確宣告實際需要的涵蓋範圍。

Auto Mode 破壞性命令防護機制(2026年6月)

Claude Code v2.1.183 縮小了 Auto Mode 對可能在無聲無息間造成工作遺失或拆除環境之操作的影響範圍。除非您在工作階段中明確要求,Auto Mode 現在會強制阻擋以下項目:破壞性 git 操作(git reset --hardgit checkout -- .git clean -fdgit stash drop);並非由 Agent 在本工作階段建立之 commit 的 git commit --amend;以及基礎設施拆除操作(terraform destroypulumi destroycdk destroy),除非您指定了特定 stack。65從架構角度來看,這是上述產生審查與參數層級規則的互補措施:它不管控使用哪一個工具,也不管控工具如何產生,而是依意圖管控一小組特定且不可逆的命令。Agent 仍可執行這些命令,但僅限於接獲明確指示時,不能擅自行動。對自主式 harness 而言,也應將相同原則編入自己的 PreToolUse hooks:會摧毀狀態的命令,理應預設拒絕,且只能由操作人員的明確訊號解除。

2026年7月:Auto Mode 進入企業環境,且有一項提示不可豁免。Auto Mode 在 v2.1.207 中正式於 Amazon Bedrock、Google Vertex AI 與 Microsoft Foundry 全面推出,並以受管理設定 disableAutoMode 作為企業停用選項。分類器作為檢查層的安全態勢,如今已可在每個第一方企業平台上使用;停用它是明確的治理決策,不再是平台能力的缺口。68接著,v2.1.208 將災難性移除防護設為絕對規則:災難性移除的確認提示,現在會凌駕於 --dangerously-skip-permissions 與 Auto Mode 兩者68這是一項值得注意的先例,也是 Claude Code 中第一個無法由任何權限態勢豁免的確認提示,即使是明確的略過旗標亦然。若自主式 harness 的設計原先假設 --dangerously-skip-permissions 代表完全不會出現提示,就應將這項例外納入考量;它正好會在無人值守迴圈可能造成最嚴重且無法復原之損害的情況下觸發。

防止捏造的防護機制(2026年7月)

v2.1.203 至 v2.1.206 版本封閉了 Agent 捏造自身稽核軌跡的兩條路徑。68首先,新增的 Auto Mode 規則會阻止竄改逐字稿檔案;工作階段紀錄不再能由該工作階段本身的工具呼叫改寫。其次,背景工作通知現在會明確指出,工作執行期間未發生任何人類輸入。第二項修正針對的是一種細微的失敗情況:模型彙整背景工作時,過去可能會在逐字稿中呈現(甚至捏造)一項從未發生的「核准」,而通知中沒有任何內容可加以反駁。現在,通知本身就是反證。

這項架構教訓也適用於 Evidence Gate:逐字稿、通知與記錄都是稽核介面,而稽核介面不得由其所稽核的對象寫入。平台如今已對自身逐字稿強制執行此原則;您的 harness 也應採用相同規則——證據報告、測試輸出與審議紀錄,均應置於模型可寫入路徑之外。

提示詞注入防禦

Skills 與 hooks 可提供多層次的提示詞注入防禦:

透過工具限制的 skills 可防止遭入侵的提示詞取得寫入權限:

allowed-tools: Read, Grep, Glob

無論模型收到何種提示,PreToolUse hooks 都會驗證每次工具呼叫:

# Block credential file access regardless of prompt
if echo "$FILE_PATH" | grep -qE "\.(env|pem|key|credentials)$"; then
    echo "BLOCKED: Sensitive file access" >&2
    exit 2
fi

Subagent 隔離可限制影響範圍。使用 permissionMode: plan 的 subagent 即使提示詞遭到入侵,也無法進行變更。

平台的安全基準於2026年7月提高。Claude Code v2.1.210 強化了 Agent tool,使其更能抵禦透過 subagent 所讀內容間接傳入的提示詞注入。無論是遭下毒的檔案、網頁,或由 subagent 取得的工具結果,都更難藉此操控委派介面本身。69v2.1.211 則強化了鏈結中的人類環節:權限預覽現在會消除雙向文字覆寫、零寬度及外觀相似的 Unicode 字元所造成的影響,因此命令無法再被刻意製作成於核准對話框中看似無害,實際執行時卻另有所圖。69第二項修正對於需要人類在時間壓力下核准轉譯預覽的 harness 尤為重要,因為顯示內容本身也是注入介面。這兩項變更都不能取代上述 hook 層級的防禦,而是提高其下方的最低安全基準。

Agent 記錄與防護規則也是安全介面

2026年5月的兩份安全公告進一步印證一項模式:Agent 基礎設施會創造新的位置,讓敏感內容與可執行政策發生洩漏或逸出。GitHub 公告 GHSA-f3jg-756w-gm35 涉及 Gryph Agents 的 payload 篩選問題;在預設記錄行為下,敏感的工具 payload 內容可能留存在本機 SQLite 記錄中。45OSV GHSA-wxxx-gvqv-xp7p 則涉及 LiteLLM 的自訂程式碼 guardrail,可能從受管理員保護的 Proxy 端點逃逸沙箱。46

正式環境的準則是:將 Agent 逐字稿、工具 payload、SQLite 記錄與 guardrail 執行視為敏感基礎設施。應在持久儲存前遮蔽敏感內容、套用保留期限,並確保自訂 guardrail 程式碼在沙箱中執行且可供審查。只在提示詞層級規定「不要記錄機密」並不足夠;記錄與 guardrail 路徑都需要確定性測試。

Hook 安全性

將環境變數插入標頭的 HTTP hooks,必須明確列出 allowedEnvVars 清單,以防止任意環境變數遭到外洩:13

{
  "type": "http",
  "url": "https://api.example.com/notify",
  "headers": {
    "Authorization": "Bearer $MY_TOKEN"
  },
  "allowedEnvVars": ["MY_TOKEN"]
}

人類與 Agent 的責任分工

Agent 架構的安全性需要明確劃分人類與 Agent 的責任:17

人類責任 Agent 責任
定義問題 執行管線
設定信賴度門檻 在門檻範圍內執行
設定共識要求 計算共識
制定品質閘門標準 強制執行品質閘門
分析錯誤 偵測錯誤
做出架構決策 提供架構選項
注入領域脈絡 產生文件

其模式是:需要組織脈絡、倫理判斷或策略方向的決策由人類負責;需要在龐大可能性空間中進行運算搜尋的決策則由 Agent 負責。Hooks 會強制執行這項邊界。

遞迴式 Hook 強制執行

Hooks 也會針對 subagent 的動作觸發。13如果 Claude 透過 Agent tool 產生 subagent,您的 PreToolUse 與 PostToolUse hooks 會針對該 subagent 使用的每項工具執行。若未採用遞迴式 hook 強制執行,subagent 就可能繞過安全閘門。SubagentStop 事件可讓您在 subagent 完成時執行清理或驗證。

這不是選用功能。若 Agent 產生的 subagent 未套用您的安全 hooks,該 Agent 便能在閘門眼睜睜看著主要對話毫無動靜時,強制推送至 main、讀取憑證檔案或執行破壞性命令。

將成本視為架構

成本是一項架構決策,而非事後才考慮的營運問題。2可分為三個層級:

Token 層級。壓縮系統提示詞。移除教學式程式碼範例(模型已了解 APIs),合併分散於各檔案的重複規則,並以約束取代解釋。「拒絕符合敏感路徑的工具呼叫」與一段15行、解釋為何不應讀取憑證的文字,能達成相同效果。

Agent 層級。優先使用全新產生的 Agent,而非冗長對話。自主執行中的每個 story 都交由擁有乾淨脈絡的新 Agent 處理。由於每個 Agent 都從頭開始,脈絡不會無止境膨脹。應提供簡報而非記憶:相較於梳理累積30個步驟的脈絡,模型更擅長執行清楚明確的簡報。

架構層級。若操作是無狀態的,應優先選擇 CLI,而非 MCP。用於一次性評估的 claude --print 呼叫成本較低,也不會增加連線負擔。只有當工具需要持久狀態或串流時,MCP 才有其必要性。


決策框架

何時使用各項機制:

問題 使用 原因
每次編輯後格式化程式碼 PostToolUse hook 必須每次都以確定方式執行
阻擋危險的 bash 指令 PreToolUse hook 必須在執行前阻擋,exit code 2
套用安全審查模式 Skill 可依情境自動啟用的領域專業
探索 codebase 而不污染 context Explore subagent 隔離 context,只回傳摘要
安全執行實驗性重構 Worktree-isolated subagent 若失敗,可捨棄變更
從多個角度審查程式碼 Parallel subagentsAgent Team 獨立評估可避免盲點
決定不可逆的架構 Multi-agent deliberation 信心觸發 + 共識驗證
跨 session 保存決策 MEMORY.md 檔案系統可跨越 context 邊界
分享團隊標準 Project CLAUDE.md + .claude/rules/ 透過 Git 分發,並自動載入
定義專案建置/測試指令 CLAUDE.md agent 可驗證的指令優先說明
執行長時間自主開發 Ralph loop(fresh-context iteration) 每次 iteration 都有完整 context 預算與檔案系統狀態
session 結束時通知 Slack Async Stop hook 非阻塞,不會拖慢 session
commit 前驗證品質 PreToolUse hook on git commit 若 lint/tests 失敗就阻擋 commit
強制完成條件 Stop hook 防止 agent 在任務完成前停止

Skills vs Hooks vs Subagents

面向 Skills Hooks Subagents
Invocation 自動(LLM reasoning) 確定性(事件驅動) 明確指定或自動委派
Guarantee 機率性(由 model 決定) 確定性(一定觸發) 確定性(隔離 context)
Context cost 注入主要 context 零(在 LLM 外執行) 獨立 context window
Token cost Description budget(window 的 1%,fallback 8,000 characters) 每個 subagent 使用完整 context
Best for 領域專業 政策執行 聚焦工作、探索

FAQ

hooks 多少算太多?

限制在於效能,而不是數量。每個 hook 都會同步執行,因此所有 hook 的總執行時間會加到每次符合條件的 tool call 上。當每個 hook 都能在 200ms 內完成時,user-level 與 project-level settings 合計 95 個 hooks 也能在沒有明顯延遲的情況下運作。需要留意的門檻是:如果某個 PostToolUse hook 讓每次檔案編輯多出超過 500ms,session 就會感覺遲滯。部署前請先用 time profile hooks。14

hooks 可以阻擋 Claude Code 執行指令嗎?

可以。PreToolUse hooks 只要以 code 2 結束,就能阻擋任何 tool action。Claude Code 會取消待執行的動作,並將 hook 的 stderr output 顯示給 model。Claude 會看到拒絕原因,並建議更安全的替代方案。Exit 1 則是非阻塞警告,動作仍會繼續執行。3

hook configuration files 應該放在哪裡?

Hook configurations 放在 .claude/settings.json 可作為 project-level hooks(commit 到 repository,與團隊共享),或放在 ~/.claude/settings.json 作為 user-level hooks(個人設定,套用到每個專案)。兩者同時存在時,project-level hooks 具有優先權。script files 請使用絕對路徑,以避免 working-directory 問題。14

每個決策都需要 deliberation 嗎?

不需要。confidence module 會從 4 個面向為決策評分(ambiguity、complexity、stakes、context dependency)。只有整體信心低於 0.70 的決策才會觸發 deliberation,約占總決策的 10%。文件修正、變數重新命名與例行編輯會完全略過 deliberation。安全架構、database schema 變更,以及不可逆部署則會穩定觸發。7

如何測試一個設計來產生分歧的系統?

成功路徑與失敗路徑都要測試。成功:agents 能有建設性地分歧,並達成共識。失敗:agents 太快收斂、始終無法收斂,或超出 spawn budgets。End-to-end tests 會以確定性的 agent responses 模擬各種情境,驗證兩個 validation gates 都能捕捉每個已記錄的 failure mode。一套 production deliberation system 會在 3 層執行 141 項 tests:48 個 bash integration tests、81 個 Python unit tests,以及 12 個 end-to-end pipeline simulations。7

deliberation 對 latency 的影響是什麼?

3-agent deliberation 會增加 30-60 秒的 wall-clock time(agents 會透過 Agent tool 依序執行)。10-agent deliberation 會增加 2-4 分鐘。consensus 與 pride check hooks 各自在 200ms 內完成。主要瓶頸是每個 agent 的 LLM inference time,而不是 orchestration overhead。7

CLAUDE.md 檔案應該多長?

每個 section 維持在 50 行以內,整份檔案維持在 150 行以內。太長的檔案會被 context windows 截斷,因此請把最關鍵的 instructions 放在前面:commands 與 closure definitions 應先於 style preferences。21

這能搭配 Claude Code 以外的工具使用嗎?

這些架構原則(hooks 作為確定性 gates、skills 作為領域專業、subagents 作為隔離 contexts、filesystem 作為 memory)在概念上適用於任何 agentic system。具體實作使用 Claude Code 的 lifecycle events、matcher patterns 與 Agent tool。AGENTS.md 將相同模式帶到 Codex、Cursor、Copilot、Amp 與 Windsurf。21 即使實作細節與工具相關,harness pattern 本身不受工具綁定。


快速參考卡

Hook Configuration

{
  "hooks": {
    "PreToolUse": [{"matcher": "Bash", "hooks": [{"type": "command", "command": "script.sh"}]}],
    "PostToolUse": [{"matcher": "Write|Edit", "hooks": [{"type": "command", "command": "format.sh"}]}],
    "Stop": [{"matcher": "", "hooks": [{"type": "agent", "prompt": "Verify tests pass. $ARGUMENTS"}]}],
    "SessionStart": [{"matcher": "", "hooks": [{"type": "command", "command": "setup.sh"}]}]
  }
}

Skill Frontmatter

---
name: my-skill
description: What it does and when to use it. Include trigger phrases.
allowed-tools: Read, Grep, Glob
---

Subagent Definition

---
name: my-agent
description: When to invoke. Include PROACTIVELY for auto-delegation.
tools: Read, Grep, Glob, Bash
model: opus
permissionMode: plan
---

Instructions for the subagent.

Exit Codes

Code 意義 用途
0 成功 允許操作
2 阻擋 Security gates、quality gates
1 非阻塞警告 Logging、advisory messages

關鍵指令

Command 用途
/compact 壓縮 context,保留 decisions
/context 檢視 context allocation 與 active skills
edit .claude/agents/ 管理 subagents — /agents wizard 已在 v2.1.198 移除;請直接建立或編輯 definitions,或要求 Claude 執行
/goal <condition> 讓 Claude 持續朝 completion condition 工作
claude agents 開啟 Agent View,查看 running、blocked 與 completed sessions
CLAUDE_CODE_WORKFLOWS=1 啟用 Workflow tool,以進行確定性的 multi-agent orchestration
claude -c 繼續最近的 session
claude --print 一次性 CLI invocation(無對話)
# <note> 將 note 加入 memory file
/memory 檢視並管理 auto-memory

檔案位置

Path 用途
~/.claude/CLAUDE.md 個人 global instructions
.claude/CLAUDE.md Project instructions(git-shared)
.claude/settings.json Project hooks 與 permissions
~/.claude/settings.json User hooks 與 permissions
~/.claude/skills/<name>/SKILL.md Personal skills
.claude/skills/<name>/SKILL.md Project skills(git-shared)
~/.claude/agents/<name>.md Personal subagent definitions
.claude/agents/<name>.md Project subagent definitions
.claude/rules/*.md Project rule files
~/.claude/rules/*.md User rule files
~/.claude/projects/{path}/memory/MEMORY.md Auto-memory

變更記錄

日期 變更 來源
2026-08-01 時效性修正:其餘內容早已超越一項「截至2026年7月」的版本聲明。 Python SDK 段落聲稱該套件「已在PyPI上推進至v0.2.111(內含Claude CLI v2.1.202),而TypeScript SDK 則推進至v0.3.203」——兩者均落後17個版本,但同一指南的其他章節已正確記載0.2.128與0.3.220。現已改為v0.2.128(內含CLI v2.1.220,mcp最低版本提高至>=1.23.0)及v0.3.220,並以經過查證的日期取代範圍不明的月份。新增的86引用PyPI、npm及Python SDK變更記錄。此期間沒有上游新版本:Claude Code v2.1.220、Codex v0.146.0穩定版(僅有v0.147.0 Alpha版)、FastAPI 0.141.1、XcodeBuildMCP 2.7.0、MCPVault 0.12.4、hermes-agent 0.19.0、Midjourney Version 8.2、Suno V5.5及Apple 26.6穩定版皆維持不變。 86
2026-07-29 完整性修正:7月21日項目遺漏了TS SDK v0.3.216的3個欄位。claude-agent-sdk-typescript變更記錄與本指南重新比對後,發現v0.3.216的欄位清單少了3項:rewindFiles回應包含選用的skippedLinks計數,用於表示倒轉安全防護機制拒絕還原或刪除的路徑;成功結果訊息則包含選用的user_message_uuidrequest_sent_wall_ms,用於跨主機請求延遲的關聯分析。已同時加入正文清單與75,未新增註腳。v0.3.215至v0.3.220範圍內的其餘內容皆已涵蓋,包括subagents巢狀深度的演變(發布時為5、在v2.1.217降至1、於v2.1.219穩定為3),以及20個並行作業的上限——SDK變更記錄中「深度上限從5降至1」一語只是過時的狀態快照,本指南早已追蹤至其後的數值。已確認Agent SDK npm最新版本為0.3.220(7月24日),PyPI則為0.2.128;此期間沒有更新版本。 75
2026-07-27 呈現修正,內容未變更。此變更記錄的表頭宣告2欄,但資料列實際提供3欄,導致python-markdown將每列截斷為DateChange,並在沒有任何警告的情況下捨棄Source儲存格——連帶移除了9個註腳引用([^83][^84][^85][^103][^105][^107][^108][^110][^111])。由於這9個註腳未在其他位置引用,每個註腳都呈現為參考資料清單項目,其返回箭頭卻指向頁面中不存在的錨點。表頭現已改為Date \| Change \| Source,恢復全部9個引用。驗證方式是透過網站本身的Markdown設定呈現指南,並比較id="fn:N"id="fnref:N"的差異:修正前有77個有效引用,修正後有86個,孤立引用為零。本次處理亦在FastAPI + HTMX及Obsidian指南中發現並修正相同問題;ios-agent-development則有另一項尚未修正的引用缺漏,已記錄於其個別報告。
2026-07-25 指南v1.27:巢狀深度預設值修正(3,而非1)、Claude Opus 5,以及第4項防護軸線。 修正——subagents產生深度已恢復為3(v2.1.219):「subagents如今預設可產生巢狀subagents,深度上限為3(原為1);設定CLAUDE_CODE_MAX_SUBAGENT_SPAWN_DEPTH=1即可停用巢狀功能。」最初發布的預設值為5(v2.1.172),後於v2.1.217降至1,並在v2.1.219穩定為3——後兩次調整發生在短短3天內。遞迴防護小節不再將任何預設值描述為既定不變;現改為強調深度是不穩定的平台參數,應透過CLAUDE_CODE_MAX_SUBAGENT_SPAWN_DEPTH明確固定,而非直接沿用預設值。相關修正:--forward-subagent-text現在也會轉送第2層以上subagents的文字,並以產生它們的Agent tool_use id為鍵——應依該id將轉送文字分組,不可假設每一行都來自直接子層。DirectoryAdded hook(CC v2.1.219 + TS SDK v0.3.219):這是自MessageDisplay(v2.1.152)以來首個新增的生命週期事件;當/add-dir或SDK的register_repo_root控制請求在工作階段中途註冊工作目錄後觸發。啟動時的工作區斷言(信任檢查、機密掃描、路徑範圍規則、各儲存庫政策)必須於此事件觸發時重新執行;事件表現有30項。sandbox.network.strictAllowlist(v2.1.219):針對沙箱化命令,直接拒絕未列入允許清單的主機,且不顯示提示——提供確定性的輸出流量拒絕,並可與v2.1.216的sandbox.filesystem.disabled搭配使用;已加入隔離模式小節,呈現設定介面如何跟上「優先在環境層進行隔離」的原則。協調寬度是第4項防護軸線(v2.1.219):動態工作流程預設採用中等規模指引(「目標控制在15個agents以內」),可透過任何設定檔中的新workflowSizeGuideline鍵設定(亦已納入TS SDK設定型別),並顯示於執行中工作流程的狀態列——原有的3軸架構(產生數量、深度、並行作業數)如今擴充為4軸,而15這個數值終於與本指南的12-agent審議預算處於同一數量級,不再只是任其失控的保險絲。Claude Opus 5(claude-opus-5,7月24日):新一代預設Opus——1M上下文,每MTok為$5/$25(與Opus 4.8同價),快速模式為$10/$50,速度約快2.5倍;在Frontier-Bench v0.1的表現較Opus 4.8提升超過一倍,CursorBench 3.2分數與Fable 5相差不到0.5%,成本卻僅為一半。本指南的建議agentic預設模型從Opus 4.8改為Opus 5;Opus 4.7已移出快速模式(/fast現適用於Opus 5與Opus 4.8),而自動模式分類器的Fable-5後援模型則改為Opus 5。僅列於變更記錄:Py SDK v0.2.127——背景工作會悄然繞過PreToolUse hooks:query()在收到第一個result框架時便關閉stdin,但背景subagents仍在執行,因此其SDK-MCP工具呼叫不僅因"Stream closed"而失敗,還跳過了hook(#1103)。這是繼TS v0.3.208的中止→hook成功問題後,1個月內第2次發生hook強制執行遭繞過的情況;如今已在SDK hook串流注意事項中明確指出此模式——SDK端的強制執行會在生命週期邊界失效而放行,而且悄無聲息,因為遭繞過的hook看起來與核准請求的hook無異。TS SDK v0.3.219:中斷控制請求新增選用的cancel_queued(能力interrupt_cancel_queued_v1);結果與初始化新增fast_mode_disabled_reason;切換模型後,初始化回應不再回報產生時模型的fast_mode_stateCC v2.1.219 MCP診斷:無介面stream-json初始化事件新增mcp_server_errorsclaude mcp list/mcp在連線失敗時會顯示HTTP狀態與錯誤文字;MCP設定值新增隱藏空白字元警告。受管理設定的範圍界定:受管理MCP允許清單/拒絕清單中的${VAR}項目,現在會從啟動環境及受管理設定環境解析,而非設定檔環境——這是與治理密切相關的解析順序變更。其他項目:當回合在串流途中失敗時,claude -p不再捨棄已產生的文字;若CLAUDE_CODE_GIT_BASH_PATH所指向的不是bash/sh二進位檔,系統會忽略該設定並發出警告;內建claude-api skill的預設模型改為Opus 5。CC v2.1.220/TS v0.3.220/Py v0.2.128(7月25日):僅包含錯誤修正與一致性版本更新。MCP:沒有具規範性的合併;無狀態規格仍預定於2026-07-28落地。 84 85 87
2026-07-24 指南v1.26:納入Anthropic的隔離模式文章+Claude Code v2.1.218。根據Anthropic於2026年5月25日發布的工程文章〈How we contain Claude across products〉,在「安全性考量」中新增「跨產品的三種隔離模式」小節:伺服器端使用短暫存在的gVisor容器(claude.ai)、由人員參與監督的作業系統沙箱(Claude Code:Seatbelt/bubblewrap,以及已開放原始碼的sandbox-runtime),以及平台Hypervisor上的密封VM(Claude Cowork:Apple Virtualization framework/Windows HCS;憑證存放於主機鑰匙圈,並由VM內的防禦性MITM Proxy強制執行具範圍且可撤銷的工作階段權杖)——另納入該文章闡述的harness設計原則:優先採用環境層隔離、依使用者監督能力調整隔離方式、採用久經考驗的基礎元件而非自訂隔離程式碼、將專案本機設定與工具輸出視為不受信任的輸入,以及將憑證置於沙箱之外。僅列於變更記錄:CC v2.1.218(7月22日)——auto模式分類器會裁決危險rm、背景&及可疑Windows路徑檢查,不再開啟權限對話框;在auto模式下,若靜態分析器無法證明Bash為唯讀,plan模式會將其交由分類器處理;agent frontmatter hooks要求agent檔案所在的資料夾本身已獲准信任工作區;context: fork skills預設在背景執行(可用background: false停用);/code-review會以背景subagent執行;/deep-research不再自行叫用;無頭/SDK工作階段在壓縮後仍會保留fork工作階段的譜系;以Ctrl+B轉入背景時會遵守背景shell上限。TS SDK v0.3.218(7月22日):SkillToolOutput.background旗標;api_error_status會回報串流中途發生的429/529;modelUsage新增canonicalModelprovider。Py SDK v0.2.126(7月22日):ResultMessage.terminal_reason;具型別的model_usage,包含canonicalModelprovider;隨附CLI v2.1.218。MCP:未合併任何規範性變更;無狀態規格仍預定於2026年7月28日發布。 81 82 83
2026-07-22 指南v1.25:Claude Code v2.1.217——撤回遞迴subagent行為+並行數量上限。預設停用巢狀產生:subagents不再產生自己的subagents——v2.1.172預設的5層遞迴一路延續至v2.1.216;現在若要使用更深層的巢狀結構,必須透過CLAUDE_CODE_MAX_SUBAGENT_SPAWN_DEPTH明確啟用(已改寫「遞迴防護」小節)。並行數量上限:預設最多同時執行20個subagents(CLAUDE_CODE_MAX_CONCURRENT_SUBAGENTS),避免單一訊息無限制地扇出背景agents。第一方防護機制現已涵蓋使用者空間產生配額防護所追蹤的3個面向:每個工作階段的產生總數(v2.1.212,上限200)、巢狀深度(v2.1.217,預設1層),以及並行寬度(v2.1.217,預設20)。僅列於變更記錄:CC v2.1.217的--max-budget-usd現在確實會停止背景subagents(達到上限後,新的產生要求會遭拒,正在執行的背景agents也會停止);背景工作階段隔離會將以符號連結表示的工作目錄正規化。Py SDK v0.2.125隨附CLI v2.1.217,SDK介面沒有變更;TS SDK v0.3.217同步發布。MCP PR #3092(7月21日合併):規範性修正,讓SEP-2575錯誤碼與重新編號的草案結構描述及相容性測試套件一致——7月28日的發布準備持續進行。 78 79 80
2026-07-21 指南v1.24:Claude Code v2.1.214–v2.1.216強化路徑範圍與worktree強制執行機制,Codex v0.145.0 multi-agent V2+跨harness匯入。路徑範圍規則錨定至cwd(v2.1.214):單一路徑區段的dir/** allow規則(例如Edit(src/**))過去會自動核准寫入目錄樹任意深度下的任何dir/;現在只會錨定至<cwd>/dir。使用單一路徑區段dir/**的hook if:條件同樣僅適用於cwd(若要比對任意深度,請寫成**/dir/**);deny/ask規則則刻意維持任意深度比對(非對稱失效安全:allow在失效時應改為提示,deny則不得失效開放)。Worktree隔離已達強制執行等級(v2.1.216):worktree subagents過去可透過git -C--git-dirGIT_DIRGIT_WORK_TREE,將git重新導向共用的checkout——此漏洞已封堵;worktree工作階段不再落入其他專案殘留的worktree;工作流程/排程任務的寫入操作不再跟隨植入.claude的符號連結;/rewind會拒絕符號連結/硬式連結。撤回Skills自動啟用行為(v2.1.215):Claude不再自行叫用隨附的/verify/code-review skills——只能明確叫用。Codex v0.145.0:穩定了選擇性啟用的multi-agent V2(可設定sub-agent模型、推理層級與並行數,並恢復roles);/import現在可移轉Claude Code Cursor設定、MCP伺服器、外掛程式、工作階段、命令與專案範圍的記憶——在v0.140.0基礎上提供完整的跨harness移轉。僅列於變更記錄:CC v2.1.214新增EndConversation工具;一系列失效關閉的Bash/PowerShell強化措施(檔案描述元重新導向採失效關閉、超過10,000字元的命令一律提示、zsh下標運算會提示、取消自動允許helpman、docker/Podman的Daemon重新導向旗標會提示、file -m-f需要權限、修正PowerShell 5.1繞過問題);即使stdout JSON未通過結構描述驗證,hook結束碼2仍會封鎖;memory frontmatter新增ISO modified時間戳記,且不會再於行內#處無聲截斷;OTel新增message.uuidclient_request_idtool_sourceCLAUDE_CODE_OTEL_CONTENT_MAX_LENGTH。CC v2.1.216新增sandbox.filesystem.disabled(無須檔案系統隔離即可控制網路輸出流量);恢復的背景agent工作階段會還原該agent的提示詞/工具限制;工作階段進行期間變更skill/命令後,無須重新啟動即可顯示於斜線選單。TS SDK v0.3.214/v0.3.216:set_permission_mode會拒絕未知模式;因中斷而截斷的訊息會標示aborted: truetool_progress新增subagent_typesubagent_retry;任務通知子類型新增scheduled-triggerSessionStart來源新增"fork";新增tool_result_meta附屬資料(non_execution_kinduser_feedback);rewindFiles會透過skippedLinks回報倒轉安全防護拒絕還原或刪除的路徑;成功結果會包含user_message_uuidrequest_sent_wall_ms,用於跨主機的要求延遲關聯分析。Py SDK v0.2.124:修正Windows BatBadBut類型問題(拒絕產生.bat.cmd;若resumesession_id含有cmd.exe中繼字元,則引發ValueError;以連字號開頭的extra_args會繫結為--flag=value)。Codex v0.145.0強化:MCP啟動逾時、序列化OAuth重新整理、非阻塞式OAuth探索、更強的強制rm偵測、保留拒絕原因,以及實驗性的分頁式對話串歷程。MCP 2026年7月28日發布準備(文件PR #3064/#3066/#3098,於7月21日合併):最終確定規格,將Tasks呈現為選用的io.modelcontextprotocol/tasks擴充功能;HTTP+SSE已棄用,改採Streamable HTTP。 74 75 76 77
2026-07-17 指南 v1.23:Claude Code v2.1.203–v2.1.212 失控迴圈防護措施與注入防護強化、TS SDK 協定介面、MCP 無狀態身分草案、Codex/OpenAI 功能對等。 第一方失控迴圈防護措施(v2.1.212):每個工作階段的 subagent 產生數量上限(預設 200,可透過 CLAUDE_CODE_MAX_SUBAGENTS_PER_SESSION 設定,/clear 會重設)與 WebSearch 上限(200,可透過 CLAUDE_CODE_MAX_WEB_SEARCHES_PER_SESSION 設定)——使用者空間的產生預算模式如今已有原生後備防線;Task 工具的 mode 參數已棄用(subagents 會繼承父工作階段的權限模式);/fork 現在會建立新的背景工作階段(工作階段內的變體已重新命名為 /subtask);執行超過 2 分鐘的 MCP 呼叫會自動轉入背景(CLAUDE_CODE_MCP_AUTO_BACKGROUND_MS)。Hook 與自動模式的優先順序(v2.1.211):PreToolUseask 會將決策下限鎖定為提示確認(自動模式無法覆寫未受沙箱保護的 Bash);stream-json 可使用 --forward-subagent-textCLAUDE_CODE_FORWARD_SUBAGENT_TEXT;「一律允許」規則會跨 worktree 持續儲存於儲存庫根目錄;權限預覽會消除雙向文字、零寬字元與相似字元仿冒的影響。v2.1.210:已修正採用 worktree 隔離的 subagents 變更主要簽出內容的問題;Agent tool 強化防護,避免受到 subagent 所讀內容的間接注入攻擊;自動模式分類器預設採用 Sonnet 5,並在每個工作階段固定;MEMORY.md 超出限制時會回報錯誤,不再無聲截斷。v2.1.207/v2.1.208:自動模式在 Bedrock/Vertex/Foundry 正式推出(可透過 disableAutoMode 選擇退出);災難性移除操作的提示會凌駕 --dangerously-skip-permissions 與自動模式;新增企業啟動器 CLAUDE_CODE_PROCESS_WRAPPER;在 MCP 工具數量龐大時,工具輪次最高快 7 倍,逐字稿體積縮小 79 倍。v2.1.203–v2.1.206:防止捏造(禁止竄改逐字稿檔案;背景工作通知會明確指出未發生任何人為輸入);MCP roots/list 納入額外工作目錄,並提供 roots/list_changed/doctor 會建議精簡可從程式碼庫推導出的 CLAUDE.md 內容。TS SDK v0.3.205–v0.3.208:具型別的中斷回條(still_queuedinterrupt_receipt_v1)、command_lifecycle 框架、AgentToolCompletedOutput,以及無須 updatedInputcanUseTool {behavior:'allow'};v0.3.208 安全性修正——呼叫端在 hook 等待期間中止時,原本會被轉換成 hook 成功,導致受 PreToolUse 管控的工具在中止後仍可執行。MCP 規格草案(PR #3002,於 7 月 16 日合併):可選用自行回報的 io.modelcontextprotocol/serverInfo 回應 _meta 與選用的 clientInfo——僅供顯示與記錄之用,不應用於安全性決策;最終無狀態規格將於 2026年7月28日推出。Codex:v0.143.0 預設透過工具搜尋提供 MCP 工具(延遲載入工具);v0.144.0 正式推出 writes 應用程式核准模式與 MCP 互動式驗證;v0.144.5 擴大危險指令偵測範圍。OpenAI 託管式多代理程式測試版:openai-agents-python v0.18.2(7 月 11 日)與 openai-agents-js v0.13.2(7 月 10 日)。僅列於變更記錄:SDK argv 旗標注入修正(TS 0.3.212/Py 0.2.121——以連字號開頭的 resumesession_id 值現在會以等號形式傳遞);BashToolOutput.timedOutAfterMsSDKAssistantMessage.timestamp;CC v2.1.204 無頭模式的 SessionStart 串流修正;openai-agents 的 GPT-5.6 預設值;MCP 的 Mcp-Param-* 拒絕後重試指引。 68 69 70 71 72 73
2026-07-07 指南 v1.22:Claude Code v2.1.196–v2.1.202。 Sonnet 5 是正式提供的預設模型(v2.1.197)——已重新闡述模型層級說明(本指南仍建議將 Opus 4.8 作為自主 harness 的代理式預設模型)。Subagents 現在預設於背景執行(v2.1.198):background 欄位現在用於固定行為,而非選擇啟用;Explore agent 會繼承工作階段模型(最高為 Opus);subagents 與壓縮流程會繼承延伸思考設定;背景 claude agents 工作階段會自動提交、推送、開啟草稿 PR,並以 agent_needs_inputagent_completed 觸發 Notification hook;/agents 精靈已移除(請直接編輯 .claude/agents/)。v2.1.199:SessionStartSetupSubagentStart hooks 會在結束代碼為 2 時顯示 stderr;跨工作階段權限說明已加入 SendMessage 重複名稱誤路由偵測;堆疊式斜線 skills 最多可載入 5 個。v2.1.200:subagent permissionMode 清單中的 default 權限模式標示為「手動」(manual 別名)。v2.1.196:治理章節已註明全組織的預設模型;MCP 自我核准漏洞已封堵。SDK 版本現況:claude-agent-sdk v0.2.111(Python,內含 CLI v2.1.202)/@anthropic-ai/claude-agent-sdk v0.3.203(TS),在文件所述的 0.1.x 介面基礎上逐步擴充。 67
2026-07-02 指南 v1.21:hook 比對器與分類器治理更新。 Claude Code v2.1.195:含連字號的識別碼比對器改採完全相符,而非子字串比對(請參閱 Hook 架構——比對器語意)。Claude Code v2.1.193:autoMode.classifyAllShell 會將所有 shell 操作交由自動模式分類器處理,拒絕原因則會顯示於逐字稿/快顯通知//permissions(請參閱安全性考量)。Codex v0.142.2:PowerShell 遇到無法檢查的 AST 區域時,現在必須取得核准。本次更新週期中的所有項目均已對照正式變更記錄完成驗證。 66
2026-06-20 指南 v1.20:Claude Code v2.1.183 + Codex v0.141.0——治理與遠端執行安全性。已將自動模式的破壞性指令防護措施(CC v2.1.183 會直接封鎖 git reset --hardcheckout -- .clean -fdstash drop、針對非代理程式提交的 git commit --amend,以及未指定堆疊名稱的 terraformpulumicdk destroy,除非您明確提出要求)加入安全性考量,並將其定位為參數層級規則與產生前審查在意圖層級的互補機制;另將採用加密 Noise 中繼的遠端執行器(Codex v0.141.0:端對端加密的執行器通道、跨平台保留 cwd/shell,以及 P-521 TLS)加入 Codex 功能對等說明。 65
2026-06-16 指南 v1.19:Claude Code v2.1.173–v2.1.179 治理與範圍界定原語,以及 Codex v0.140.0 跨工具匯入。已將 v2.1.178 版本融入正文:安全性 → 權限邊界新增參數層級權限規則 Tool(param:value)* 萬用字元(例如以 Agent(model:opus) 封鎖某個模型層級),以及 enforceAvailableModels 受管理設定(v2.1.175);自動模式現在會在啟動前審查 subagent 的產生作業,封堵利用產生流程繞過管控的缺口(Subagent 模式);Skills 系統新增巢狀 .claude/skills 載入,以及巢狀 .claude/ 樹狀結構中 skills/agents/workflows/output-styles 的就近優先解析機制;並修正 disallowedToolsMCP 伺服器規格比對問題(Subagent 設定欄位)。Codex 功能對等說明新增 Codex /import 跨工具可攜性與永久刪除工作階段功能(v0.140.0)。 63 64
2026-06-10 指南 v1.18:遞迴 sub-agents(Claude Code v2.1.172)。已在遞迴防護小節新增說明:Claude Code sub-agents 現在能產生自己的 sub-agents,巢狀深度最多 5 層——過去委派實際上僅限 1 層(v2.1.172,6 月 10 日)。使用者空間的產生預算/深度上限模式已重新定位為抑制 5 層樹狀結構迅速擴散的控制機制;5 層應視為平台上限,而非預設值。 62
2026-06-09 指南 v1.17:Claude Code v2.1.169–v2.1.170 + Codex v0.138.0–v0.139.0 治理與 multi-agent-v2 強化。已將 5 項經驗證的 harness 架構變更納入正文。Skills 系統新增「將內建介面隱藏為治理手段」小節:disableBundledSkills 設定(以及 CLAUDE_CODE_DISABLE_BUNDLED_SKILLS 環境變數)會對模型隱藏內建 skills、workflows 與內建斜線指令,藉此刻意縮減攻擊面(v2.1.169)。6 月的 Hook 架構小節新增 --safe-mode 旗標(以及 CLAUDE_CODE_SAFE_MODE),讓工作階段在停用所有自訂項目的情況下啟動——包括 CLAUDE.md、plugins、skills、hooks、MCP——以利進行無污染環境的疑難排解與治理(v2.1.169);另新增模型層級說明:Anthropic 的 Claude Fable 5claude-fable-5)於 6 月 9 日推出,屬於高於 Opus 的 Mythos 級模型,可在 v2.1.170 中透過 /model claude-fable-5 選用,而 Opus 4.8 仍是 Claude Code 的代理式預設模型。記憶體與上下文章節新增 /cd 指令(v2.1.169),可將工作階段移至新的工作目錄,同時維持工作階段中途的提示快取不受影響。多代理程式協作/Codex 功能對等已針對正式環境強化:close_agent 重新命名為 interrupt_agent(v0.139.0)、代理程式間訊息承載內容加密、v2 agent 設定目錄、agent 駐留 LRU,以及依作用中執行數量計算並行度(v0.138.0)、AGENTS.md 探索改由環境檔案系統處理並保留邏輯路徑,以便在遠端或使用符號連結的工作區中正確選取檔案(v0.138.0/v0.139.0),以及 subagent 的 MCP 啟動警告僅顯示於其所屬執行緒,不再重複傳至父執行緒(v0.139.0)。 60 61
2026-06-08 指南 v1.16:來自 Claude Code v2.1.162–v2.1.166 與 Codex v0.137.0 的 6 月 agent 架構模式。新增 「Stop-hook 引導、跨 session 權限與 multi-agent v2」小節,涵蓋 4 項與 harness 相關的變更:(1) Stop/SubagentStop hooks 可傳回 hookSpecificOutput.additionalContext,注入「尚未完成,原因如下」的回饋,並在不產生 hook-error 區塊的情況下繼續該 turn(v2.1.163);(2) 跨 session 訊息傳遞已強化,透過 SendMessage 從其他 session 轉送的訊息不再沿用原始使用者的權限——應將傳入的 agent 間訊息視為不受信任的資料(v2.1.166);(3) fallbackModel 設定可串接最多 3 個備援模型,並在發生不可重試的 API 錯誤時執行一次備援重試;claude agents --json 也新增 waitingFor 欄位,提升 agent fleet 的可觀測性(v2.1.162/166);(4) Codex multi-agent v2(v0.137.0)讓 runtime 與各 thread 綁定,將 hide_spawn_agent_metadata 預設設為 true、把 parent events 傳播給 child listeners,並新增 v1 skills 擴充功能,支援每個 turn 的 catalog 解析,以及 thread-start/turn-error 生命週期 contributor events。AGENTS.md 規格並未變更(仍由 Agentic-AI-Foundation 維護,且沒有版本化 changelog)。 59
2026-05-31 指南 v1.15:Claude Code v2.1.157 與 Hermes v0.15.1/v0.15.2 修補程式。新增 .claude/skills/ 中的 Plugin 與 Skill 融合」小節:Claude Code v2.1.157 會將專案 .claude/skills/ 目錄中的任何資料夾自動載入為 plugin,無須向 marketplace 註冊;claude plugin init <name> 則會在該處建立包含 manifest 與 SKILL.md 的全新 plugin 骨架。這對 harness 的影響十分明確——範圍較小的專案工具如今可直接納入版本控制,無須負擔 manifest 的額外成本;plugin 仍負責可封裝、可安裝的 ZIP 形式。同一版本也提供 EnterWorktree,可在 session 進行期間切換 Claude 管理的 worktrees;agent 完成後,背景 worktrees 會維持未鎖定狀態,讓 git worktree remove/prune 能順利運作。Hermes Agent v0.15.1(5月29日)是同日推出的 Velocity 緊急修補:修正 loopback 模式下 dashboard 401 重新載入迴圈、Docker 現在必須明確設定 HERMES_DASHBOARD_INSECURE=1、MCP 裸命令(npxnpmnode)可在 Docker 中解析、恢復 Skills 頁面、Kanban workers 能正確回應 SIGTERM,並透過 sitemap 將 Skills.sh catalog 從 858 筆擴充至 19,932 筆。Hermes v0.15.2(5月29日)則是僅針對封裝的緊急修補,會在 wheel 與 sdist 發行套件中納入 plugin.yaml manifests。 58
2026-05-28 指南 v1.14:Claude Code v2.1.152-v2.1.154、Codex v0.134.0-v0.135.0 與 Hermes v0.15.0 架構模式檢視。Claude Code 調整預設值並新增編排原語:Opus 4.8 現已成為預設模型,預設採用 high effort,另新增 /effort xhighdynamic workflows 透過 /workflows 在背景編排數十至數百個 agents;除 Haiku/Sonnet/Opus 4.7 及更早版本外,所有模型現在皆預設使用精簡 system prompt;新的 MessageDisplay hook event 讓 hooks 能在 assistant 文字顯示時加以轉換或隱藏;skill/command frontmatter 中的 disallowed-tools 會在 skill 啟用期間移除指定工具;/reload-skills 可重新掃描 skill 目錄,無須重新啟動;SessionStart hooks 可傳回 reloadSkills: true,並設定 hookSpecificOutput.sessionTitle;主要模型無法使用時,--fallback-model 可在 session 進行期間切換模型;auto mode 不再需要使用者主動同意加入pluginSuggestionMarketplaces 受管理設定可將組織的 marketplaces 加入允許清單,以提供符合情境的建議;claude agents 接受 ! <command> 背景 shell sessions;plugins 可宣告 defaultEnabled: false;stdio MCP subprocess 環境現在包含 CLAUDE_CODE_SESSION_IDCLAUDECODE=1。Codex v0.134.0 讓 --profile 成為 CLI、TUI 權限與 sandbox 流程的主要 profile 選擇器(舊版設定會遭拒絕,並提供遷移指引)、新增本機對話紀錄搜尋、改善 MCP 設定以支援各伺服器的環境目標與 streamable HTTP 伺服器所用的 OAuth,並且允許宣告 readOnlyHint 的唯讀 MCP 工具並行執行;v0.135.0 新增更豐富的 codex doctor 診斷資訊、/status 遠端詳細資料、vim text-object 編輯、/permissions 中的具名 permission profiles,以及 Python SDK 中的 Sandbox presets。Hermes Agent v0.15.0(5月28日)推出 Velocity 版本:將 run_agent.py 的 76% 重構至 14 個模組、提供具備自動分解與 swarm topology 的 multi-agent Kanban v2、以單一 bootstrap token 的 Bitwarden Secrets Manager 取代各 provider keys、在 3 個安全關卡提供抵禦 Brainworm 類 prompt injection 的 Promptware 防禦、加入 skill bundles、提供可在單一終端機管理多個 sessions 的 TUI session orchestrator,並將 session_search 加速 4,500 倍且移除 LLM 相依套件。對 harness 架構的影響如下:具名 profile 模式(Codex --profile、Claude Code pluginSuggestionMarketplaces)正逐漸成為 multi-tenant agent runtimes 的標準設定原語;並行唯讀 MCP 工具(Codex readOnlyHint)是扇出擷取非變動性 context 的正確模式;MessageDisplay hook 為 operators 提供第一級的轉換介面,這是 PostToolUseStop 過去無法觸及的領域;而精簡 system prompt 的預設設定,則消除了 operator-defined context 與 provider scaffolding 之間長久以來的取捨。 55 56 57
2026-05-24 指南 v1.13:Claude Code v2.1.150 與 OpenAI Agents SDK v0.17.3 的安全性/時效性檢視。本機 claude --version 傳回 2.1.144 (Claude Code),npm 上 @anthropic-ai/claude-code 的最新版本則傳回 2.1.150,GitHub 的最新發行版本為 v2.1.150。新增 v2.1.149 harness 指引,涵蓋 PowerShell 權限繞過修正、PowerShell allow-rule/過期變數權限分析修正,以及 git-worktree sandbox 寫入允許清單修正;另註明 v2.1.150 僅涉及內部基礎架構,沒有已公布的使用者可見變更。PyPI 上 openai-agents 的最新版本為 0.17.3,因此 OpenAI sandbox 小節現在也註明 0.17.1-0.17.3 的後續強化措施,涵蓋封存檔解壓縮、GitRepo 子路徑、sandbox 憑證、相對 workspace roots,以及 provider terminal-state 處理。[^\81]54
2026-05-21 指南 v1.12:Claude Code v2.1.147 Workflow 檢視。本機 claude --version 傳回 2.1.144 (Claude Code),npm 上 @anthropic-ai/claude-code 的最新版本則傳回 2.1.147。新增預設停用的 Workflow 工具,將其作為第一方、具確定性的 multi-agent orchestration 原語;並釐清 hooks、tests、review gates、spawn budgets 與 evidence reports 仍是正確性的邊界。[^\80]
2026-05-15 指南 v1.11:Claude Code v2.1.142 背景 session 與 plugin 可靠性檢視。本機 claude --version 傳回 2.1.141 (Claude Code),npm 上 @anthropic-ai/claude-code 的最新版本則傳回 2.1.142。新增 operator 指引,涵蓋新的 claude agents dispatch flags、Opus 4.7 Fast-mode 預設值、root-level plugin SKILL.md 探索、plugin LSP 可見性、MCP_TOOL_TIMEOUT 遠端 HTTP/SSE 行為,以及背景 session/daemon/plugin cache 可靠性修正。[^\79]
2026-05-14 指南 v1.10:Claude Code v2.1.141 operator signaling 與範圍界定檢視。本機 claude --version 傳回 2.1.141 (Claude Code),npm 上 @anthropic-ai/claude-code 的最新版本則傳回 2.1.141。新增 hook 指引,說明 terminalSequence 是 operator signaling,而非強制執行機制;註明可使用 claude agents --cwd <path> 建立以目錄為範圍的 Agent View;並記錄 CLAUDE_CODE_PLUGIN_PREFER_HTTPSANTHROPIC_WORKSPACE_ID 對 plugin 安裝及 workload-identity federation 範圍界定的架構影響。[^\78]
2026-05-13 指南 v1.9:Claude Code v2.1.140 可靠性檢視。本機 claude --version 傳回 2.1.140 (Claude Code)。在 agent-hook 指引中新增 subagent_type,並針對 v2.1.140 對 ConfigChangedisableAllHooksallowManagedHooksOnly、權限對話框的環境變數顯示、設定同步後的自訂樣式重設、Windows Git Bash 原生套件備援,以及 /scroll-speed 行為所做的修正,更新 hook 治理小節。[^\77]
2026-05-11 指南 v1.8:Claude Code v2.1.139 時效性檢視與聚焦的 agent 安全性/memory 掃描。已驗證本機 claude --version 為 2.1.139,並新增 v2.1.139 的操作變更:透過 claude agents 使用 Agent View、/goal 完成迴圈、command-hook argsPostToolUse continueOnBlock、MCP CLAUDE_PROJECT_DIR,以及 OpenTelemetry active-time 修正。[^\70]4344另新增來自「The Memory Curse」arXiv 預印本的 memory curation 警告、來自 PR lifecycle arXiv 預印本的人工作業合併權限指引,以及來自 Gryph Agents 與 LiteLLM 公告的 agent log/guardrail 安全性指引。[^\73]464748修正 Skills、Hooks 與 Subagents token budget 表格中的過時資料,將 2% 更新為目前的 1%/8,000 字元 skill-description 預算。
2026-05-09 指南 v1.7:Claude Code v2.1.136 + openai-agents-python v0.17.0 發布後第 3 天追蹤。在 Hook 架構中新增 v2.1.136 hook/plugin 修正小節,涵蓋新的無條件封鎖層級、在 VS Code/JetBrains/Agent SDK 中執行 /clear 後 MCP 消失的修正、並行重新整理時 MCP OAuth 遺失重新整理權杖、符合 Edit(...) 允許規則時的計畫模式寫入封鎖修正、plugin Stop/UserPromptSubmit 快取清理競爭條件、skills 項目隱藏預設 skills/ 目錄,以及透過 /resume//clearCLAUDE_ENV_FILE SessionStart-hook 環境變數失效等問題。40在正式環境模式中新增 OTel 意見回饋調查小節,涵蓋 CLAUDE_CODE_ENABLE_FEEDBACK_SURVEY_FOR_OTEL40擴充沙箱小節,加入 openai-agents-python v0.17.0 的鎖定機制:LocalFile.src / LocalDir.src 限制在 base_dir 之內,除非透過 Manifest.extra_path_grants 搭配 SandboxPathGrant 授予存取權。41在受管理與自託管 Harnesses 中新增 RealtimeAgent 預設模型說明(gpt-realtime-2)。41僅列於變更記錄:Claude Code v2.1.137(Windows VSCode 啟用修正)、v2.1.138(內部修正);claude-agent-sdk-python v0.1.78(綁定 CLI v2.1.136)、v0.1.79(綁定 CLI v2.1.137)、v0.1.80(綁定 CLI v2.1.138)。
2026-05-08 指南 v1.6:Claude Code v2.1.132/v2.1.133 + SDK v0.1.77 發布後第 2 天追蹤。在 Skills 系統中新增 SDK Skill 介面小節,涵蓋 ClaudeAgentOptionsskills 選項,以及 allowed_tools"Skill" 的淘汰。37在 Hook 架構中新增投入程度與工作階段來源小節,涵蓋新的 effort.level JSON 欄位、hook 輸入中的 $CLAUDE_EFFORT 環境變數,以及 Bash 子行程中的 CLAUDE_CODE_SESSION_ID 環境變數。3839在 Subagent 設定欄位表格中新增 Subagent skill 探索修正(subagents 現在會透過 Skill 工具探索專案、使用者及 plugin skills;在 v2.1.133 之前,這些 skills 會遭到無聲捨棄)。39在正式環境模式中新增 Worktree 基準、沙箱路徑與管理員設定小節,涵蓋 worktree.baseRef(將造成破壞性變更的預設值從本機 HEAD 恢復為 origin/<default>)、sandbox.bwrapPathsandbox.socatPathparentSettingsBehavior39
2026-05-07 指南 v1.5:Claude Managed Agents,5月6日舊金山擴充內容。在記憶與上下文中新增策略 5(受管理的記憶策展:Dreaming,研究預覽),並以表格比較以檔案系統作為記憶與 Dreaming。35在多 Agent 協調機制開頭新增受管理的 Multiagent 協調機制(公開測試版)與成果(公開測試版),收錄 Anthropic 對共享檔案系統專家的逐字引文及 Claude Console 追蹤,並加入與自託管 deliberation 的比較表。在 SDK 端新增 hook 事件串流小節,涵蓋 claude-agent-sdk-python v0.1.74 的 include_hook_eventsHookEventMessage36僅列於變更記錄:Claude Code v2.1.124-v2.1.131(claude project purge、專案目錄的 --dangerously-skip-permissionsskill_activated invocation_trigger、PostToolUse 儲存時格式化修正、PreToolUse JSON+結束碼 2 封鎖修正、skillOverrides 設定);claude-agent-sdk-python v0.1.72(CLI 2.1.126)、v0.1.73(session_store_flush)、v0.1.75(CLI 2.1.131)、v0.1.76(api_error_status);openai-agents-python v0.15.0-v0.16.1,其中 v0.16.0(5月7日)將預設模型設為 gpt-5.4-mini、移除隱含的 max_turns 上限,並新增 SDK 端的工具執行並行功能。
2026-05-07 指南 v1.4:依據目前的官方文件與本機執行階段證據(claude --version 2.1.132,codex --version 回傳 codex-cli 0.128.0),更新 Claude Code hook 與 skill 機制。將 hook 介面從 22/26+ 更新為 29 個已記載事件,將 skill 說明預算從 2%/16,000 修正為 1%/8,000,加入 mcp_tool 並將 hook 類型數量從 4 種改為 5 種,移除未獲支援的固定「10 個並行 subagents」說法,並新增可公開揭露的 Codex 對等功能小節,涵蓋 AGENTS.md、skills、hooks、plugins 與明確的 subagent 工作流程。
2026-04-29 指南 v1.3:擴充受管理與自託管 Harnesses 小節中的 OpenAI Agents SDK 內容,加入 openai-agents Python v0.14.0(4月15日)具名提供的 SDK 介面——SandboxAgentManifestSandboxRunConfig、採用漸進式揭露的沙箱記憶、工作區掛載(S3/R2/GCS/Azure)、可攜式快照,以及本機/Docker/託管用戶端後端(Blaxel、Cloudflare、Daytona、E2B、Modal、Runloop、Vercel)。以主要來源 v0.14.0 版本資訊取代次要來源 Help Net Security 的引用。新增 claude-agent-sdk-python v0.1.69-v0.1.71(4月28日至29日)的簡短說明,將其列為第 3 種自託管選項(將 Claude Code 執行階段嵌入為 Python 程式庫):綁定的 Claude CLI 升級至 v2.1.123、將 mcp 相依套件最低版本提高至 >=1.19.0(舊版會無聲捨棄處理程序內 MCP 工具傳回的 CallToolResult)、修正 Trio nursery 取消問題,並讓 SandboxNetworkConfig 允許清單欄位與 TS SDK 保持一致。[^58] 記載了 v0.14.7-v0.14.8 的 SDK 改良。
2026-04-25 指南 v1.2:Google Cloud Next 2026(4月22日至24日)——Vertex AI 更名為 Gemini Enterprise Agent Platform;Agentspace 併入統一的 Gemini Enterprise;Workspace Studio(無程式碼 Agent 建構工具);Model Garden 提供 200 多種模型,包括 Anthropic Claude;Box、Workday、Salesforce、ServiceNow 提供合作夥伴 Agents;ADK v1.0 穩定版支援 4 種語言;Project Mariner(網頁瀏覽 Agent);受管理的 MCP 伺服器,並以 Apigee 作為 API 到 Agent 的橋接層;A2A protocol v1.0 已在 150 個組織的正式環境中運作。Microsoft Agent Framework 1.0(2026年4月):穩定的 API、LTS 承諾、完整支援 MCP、.NET + Python。可即時視覺化 Agent 執行與工具呼叫的瀏覽器版 DevUI,以預覽版形式與 1.0 穩定介面一同推出。Salesforce Headless 360(4月15日,TDX):將 Salesforce 的所有功能(CRM、客服、行銷、電子商務)公開為 API/MCP 工具/CLI 指令,讓 Claude Code、Cursor 與 Codex 等 Agents 無須瀏覽器即可在此平台上建構應用。(TDX 2026 於4月15日至16日舉行;Headless 360 公告日期為4月15日。)MetaComp StableX KYA(4月21日):專為受監管金融服務(支付、法規遵循、財富管理)打造的 Know Your Agent 治理框架——由持牌金融機構首創;可用於 Claude、Claude Code、OpenClaw 及其他相容的 AI 平台。Claude Managed Agents 定價:工作階段執行期間,每個工作階段小時收費 $0.08;閒置時不收取執行階段費用——一般 Claude 模型 token 費用另計。(依據 Anthropic 的 Claude 定價頁面;公開測試版於2026年4月8日推出。)Managed Agents 的記憶功能於2026年4月23日在 managed-agents-2026-04-01 beta 標頭下進入公開測試。所有 Managed Agents 端點目前皆須使用此 beta 標頭。
2026-04-16 指南 v1.1:新增受管理與自託管 Harnesses 小節,涵蓋 Claude Managed Agents(4月8日測試版)與 OpenAI Agents SDK 的 harness/運算分離架構(4月16日)。新增 Scion 跨工具多 Agent Hypervisor(4月7日,Google)。記載 M3MAD-Bench 的辯論效益趨於平緩之發現。新增可信賴 Agents 的 5 項原則(Anthropic,4月9日)及 MCP/AGENTS.md Linux Foundation 治理。加入 Permiso SandyClaw skill 沙箱參考資料。新增 Opus 4.7 長時程模式:工具故障韌性、xhigh 投入程度層級、token 預算上限(task_budget beta),以及能減少 CLAUDE.md 鷹架的隱含需求感知能力。
2026-03-24 首次發布

參考資料


  1. Andrej Karpathy 將「claws」視為建立在 LLM agents 之上的新層級。HN 討論(406 點,917 則留言)。 

  2. 作者的實作。84 個 hooks、48 個 skills、19 個 agents,以及約 15,000 行的協調程式碼。詳見 Claude Code 作為基礎設施。 

  3. Anthropic,「Claude Code Hooks:結束代碼」。code.claude.com/docs/en/hooks。對多數事件而言,結束代碼 0 代表允許、2 代表阻擋、1 代表警告;WorktreeCreate 的規則更為嚴格。 

  4. Anthropic,「使用 Skills 擴充 Claude」。code.claude.com/docs/en/skills。涵蓋 Skill 結構、frontmatter 欄位、以 LLM 為基礎的配對機制,以及 1%/8,000 字元的描述預算。 

  5. Anthropic,「Claude Code Sub-agents」。code.claude.com/docs/en/sub-agents。隔離的上下文、worktree 支援、agent 團隊。 

  6. Anthropic,「Claude Code 文件」。docs.anthropic.com/en/docs/claude-code。記憶檔案、CLAUDE.md、自動記憶。 

  7. 作者的多 agent deliberation 系統。10 個研究角色、7 階段狀態機、141 項測試。詳見 Multi-Agent Deliberation。 

  8. Simon Willison,「如今撰寫程式碼已變得廉價」。Agentic Engineering Patterns。 

  9. Laban、Philippe 等人,「LLMs Get Lost In Multi-Turn Conversation」,arXiv:2505.06120,2025年5月。Microsoft Research 與 Salesforce。涵蓋 15 個 LLMs、超過 200,000 段對話,平均效能下降 39%。 

  10. Mikhail Shilkov,「Inside Claude Code Skills: Structure, Prompts, Invocation」。mikhail.io。針對 skill 探索、上下文注入及 available_skills 提示詞區段所做的獨立分析。 

  11. Claude Code 原始碼,SLASH_COMMAND_TOOL_CHAR_BUDGETgithub.com/anthropics/claude-code。 

  12. Anthropic,「Skill 編寫最佳實務」。platform.claude.com。500 行限制、輔助檔案、命名慣例。 

  13. Anthropic,「Claude Code Hooks:生命週期事件」。code.claude.com/docs/en/hooks。30 個有文件記載的生命週期事件、hook 類型、matcher 行為、非同步 hooks、HTTP hooks、prompt hooks、agent hooks,以及 MCP 工具 hooks。 

  14. 作者的 Claude Code hooks 教學。從零開始建構 5 個正式環境 hooks。詳見 Claude Code Hooks 教學。 

  15. 作者橫跨 50 個工作階段的上下文視窗管理實務。詳見 上下文視窗管理。 

  16. 作者的 Ralph Loop 實作。透過檔案系統狀態與啟動預算進行全新上下文迭代。詳見 Ralph Loop。 

  17. 作者的 deliberation 系統架構。3,500 行 Python、12 個模組、信心觸發機制、共識驗證。詳見 建構 AI 系統:從 RAG 到 Agents。 

  18. Nemeth, Charlan,In Defense of Troublemakers: The Power of Dissent in Life and Business,Basic Books,2018。 

  19. Wu, H.、Li, Z. 與 Li, L.,「Can LLM Agents Really Debate?」arXiv:2511.07784,2025。 

  20. Liang, T. 等人,「Encouraging Divergent Thinking in Large Language Models through Multi-Agent Debate」,EMNLP 2024。 

  21. 作者針對真實世界程式碼儲存庫所做的 AGENTS.md 分析。詳見 AGENTS.md 模式。另請參閱:GitHub Blog,「How to Write a Great agents.md: Lessons from Over 2,500 Repositories」。 

  22. 作者的 quality loop 與 evidence gate 方法論。Jiro Craftsmanship 系統的一部分。 

  23. Anthropic,「Claude Managed Agents 概覽」。公開測試版於2026年4月8日推出。這是一項 harness 即服務,提供工作階段檢查點、隨附的 sandbox 與 REST API。定價:標準 token 費用加上每工作階段小時 0.08 美元。測試版標頭為 managed-agents-2026-04-01。 

  24. OpenAI,「openai-agents Python v0.14.0 發行說明」。於2026年4月15日發布,並在4月16日公告。此版本在既有的 AgentRunner 流程之上,導入測試版 Sandbox Agents SDK 介面:SandboxAgentManifest(工作區契約)、SandboxRunConfig、各項能力(shell、檔案系統編輯、影像檢查、skills、sandbox 記憶、壓縮)、工作區掛載(本機、Git、遠端:S3、R2、GCS、Azure Blob、S3 Files)、具備路徑正規化與符號連結保留功能的可攜式快照,以及可供恢復執行的執行狀態序列化。後端包括 UnixLocalSandboxClientDockerSandboxClient,以及透過選用額外套件提供的 Blaxel、Cloudflare、Daytona、E2B、Modal、Runloop、Vercel 託管用戶端。4月16日的公告摘要刊載於 Help Net Security。 

  25. Google Cloud,「Scion:Multi-Agent Hypervisor」。於2026年4月7日開放原始碼。將 Claude Code、Gemini CLI 及其他深度 agents 協調為隔離程序,每個 agent 均配有獨立容器、git worktree 與憑證。支援本機、hub 與 Kubernetes 部署模式。InfoQ 報導。 

  26. 2026年第1至第2季的多 agent 辯論研究群。Wu 等人,「Can LLM Agents Really Debate?」(arXiv 2511.07784);M3MAD-Bench——多模型、多 agent 辯論基準測試,顯示效能會進入高原期,且容易受到誤導性共識影響;Tool-MAD——為每個 agent 分配異質工具,並採用 Faithfulness/Relevance 評審分數。 

  27. Anthropic,「我們用於開發安全且值得信賴之 agents 的框架」。2026年4月9日。5 項原則:人類控制、價值觀一致、安全性、透明度、隱私。向 Linux Foundation 的 Agentic AI Foundation 捐贈 MCP。 

  28. Permiso Security,「SandyClaw:首個 AI Agent Skills 動態 Sandbox」。2026年4月2日。提供 skill 執行 sandbox,搭配 Sigma/YARA/Nova/Snort 偵測與有證據支持的判定結果。 

  29. Anthropic,「推出 Claude Opus 4.7」。2026年4月16日。長期運作 agent 的改進包括:SWE-Bench 正式環境任務解決率較 Opus 4.6 提升 3 倍、工具故障韌性、xhigh effort 層級、任務預算(測試版),以及對隱含需求的感知能力。另請參閱 Opus 4.7 的新功能,瞭解 Messages API 的破壞性變更。 

  30. 綜合參考資料——OpenAI openai-agents-python v0.14.7(2026年4月28日)與 v0.14.8(2026年4月29日);Anthropic claude-agent-sdk-python v0.1.69(4月28日)、v0.1.70(4月28日)及 v0.1.71(4月29日)。v0.14.7 重點:為工具項目新增 tool_namecall_id 便利屬性、提高第2階段記憶整合的回合上限、為沙箱壓縮新增 GPT-5.5 別名、加強 tar/zip 成員驗證、拒絕 LocalFile 來源中的符號連結,以及從 Responses API 呼叫中移除未設定的欄位。v0.14.8 重點:保留 MCP 重新匯出時的匯入錯誤,並明確分隔沙箱提示詞的指示區段。claude-agent-sdk-python v0.1.69 為 ClaudeAgentOptions 欄位新增文件字串,並將隨附的 CLI 升級至 v2.1.121;v0.1.70 將 mcp 相依套件的最低版本提高至 >=1.19.0(舊版會無聲地捨棄同一處理程序內 MCP 工具處理常式傳回的 CallToolResult)、修正設定 options.stderr 後迭代 query() 時,提早取消會破壞 Trio nursery 的問題(stderr 讀取器現改用 spawn_detached()),並將隨附的 CLI 升級至 v2.1.122;v0.1.71 在 SandboxNetworkConfig 中新增網域允許清單欄位(allowedDomainsdeniedDomainsallowManagedDomainsOnlyallowMachLookup),使其與 TypeScript 結構描述一致,並將隨附的 CLI 升級至 v2.1.123。 

  31. OpenAI,“使用 AGENTS.md 自訂指示”。Codex 會在開始工作前讀取全域與專案的 AGENTS.mdAGENTS.override.md 檔案,合併從根目錄到目前目錄的指引,並以 project_doc_max_bytes 限制專案文件大小。 

  32. OpenAI,“Agent Skills”。Codex skills 使用 SKILL.md、漸進式揭露、明確的 $skill 呼叫,以及根據描述進行的隱式啟用。 

  33. OpenAI,“Codex Hooks”。Codex hooks 支援設定中的命令 hooks、外掛 hooks、受管理的 hooks、適用於支援事件的比對器、stdin JSON 輸入,以及 JSON 輸出欄位。 

  34. OpenAI,“Codex Subagents”“Codex CLI 0.128.0 變更日誌”。Codex 支援明確的平行 subagents 工作流程、內建的 defaultworkerexplorer agents、自訂 TOML agents、繼承的沙箱政策、外掛隨附的 hooks、hook 啟用狀態,以及 0.128.0 中可持續保存的 /goal 工作流程。 

  35. Anthropic,“Claude Managed Agents 的新功能”。2026年5月6日。Dreaming(研究預覽):排程執行的背景程序,會檢閱 agent 工作階段與記憶儲存區、擷取模式,並精心整理記憶。Outcomes(公開測試版):以評分準則為基礎的評估,由獨立評分器在其自身的上下文視窗中依據準則為輸出評分,避免受到 agent 推理過程影響。Multiagent Orchestration(公開測試版):主要 agent 將工作拆分並委派給專家;每位專家各自配備模型、提示詞與工具,在共用檔案系統上平行作業,並將成果納入主要 agent 的整體上下文;Claude Console 會完整追蹤每個步驟。 

  36. Anthropic,claude-agent-sdk-python v0.1.74。2026年5月6日。為 ClaudeAgentOptions 新增 include_hook_events;設定後,hook 事件(PreToolUse、PostToolUse、Stop 等)會由 CLI 發出,並以 HookEventMessage 形式從訊息串流產生,與 TypeScript SDK 的 includeHookEvents 相呼應。隨附的 Claude CLI 已升級至 v2.1.129。 

  37. Anthropic,claude-agent-sdk-python v0.1.77。2026年5月8日。棄用 allowed_tools 中的 "Skill" 值,改用 ClaudeAgentOptions 上專用的 skills 選項;讓 Claude Code 能取得更具結構性的可用 skills 資訊、改善 Command failed 例外的錯誤訊息,並隨附 Claude CLI v2.1.133。 

  38. Anthropic,Claude Code v2.1.132。2026年5月6日。為 Bash 工具的子處理程序新增 CLAUDE_CODE_SESSION_ID 環境變數(與 hooks 已能看見的 session_id 一致)、新增 CLAUDE_CODE_DISABLE_ALTERNATE_SCREEN 以將對話保留在終端機原生回捲記錄中、更新 /tui fullscreen 啟動橫幅(降低記憶體用量、支援滑鼠、選取時自動複製),並修正約20項錯誤,涵蓋 SIGINT 正常關閉、代理對 emoji 造成的 --resume 資料損毀、計畫模式的 --permission-mode 旗標、印度文字與 ZWJ 的游標處理、NFD vim 操作、以 / 開頭的貼上內容遭吞掉、MCP 記憶體無上限增長、MCP tools/list 重試、Bedrock + Vertex ENABLE_PROMPT_CACHING_1H 400 錯誤,以及狀態列 context_window 顯示累計 token 等問題。 

  39. Anthropic,Claude Code v2.1.133。2026年5月7日。Hooks 現會收到 effort.level JSON 輸入與 $CLAUDE_EFFORT 環境變數(也可從 Bash 命令讀取)。Subagents 可透過 Skill 工具探索專案、使用者及外掛 skills(迴歸問題修正)。新增管理員設定:worktree.baseReffresh | head)可在 v2.1.128 改用本機 HEAD 後,將工作樹基準改回 origin/<default>sandbox.bwrapPathsandbox.socatPath 可在 Linux/WSL 上固定沙箱二進位檔路徑;parentSettingsBehavior'first-wins' | 'merge')控制 SDK managedSettings 與上層設定的組合方式。其他修正:平行工作階段中更新權杖競爭條件造成的 401 錯誤、磁碟機根目錄允許規則的作用域、MCP OAuth 代理伺服器/mTLS 支援、Remote Control 停止/中斷時完成取消操作、跨工作階段的 /effort 設定外洩,以及在 --help 中列出 --remote-control。 

  40. Anthropic,Claude Code v2.1.136。2026年5月8日。新增 settings.autoMode.hard_deny,用於無論使用者意圖或允許例外為何都會無條件阻擋的自動模式分類器規則;另新增 CLAUDE_CODE_ENABLE_FEEDBACK_SURVEY_FOR_OTEL,讓透過 OpenTelemetry 擷取回應的企業能重新啟用工作階段內的品質問卷。影響操作人員的修正包括:來自 .mcp.json、外掛及 claude.ai 連接器的 MCP 伺服器,在 VS Code、JetBrains 與 Agent SDK 中執行 /clear 後會無聲消失;同時重新整理時遺失 MCP OAuth 更新權杖;存在相符的 Edit(...) 允許規則時,計畫模式未阻擋檔案寫入;快取清理刪除仍在執行的版本後,外掛 StopUserPromptSubmit hooks 執行失敗;plugin.json 中的 skills 項目遮蔽外掛預設的 skills/ 目錄;透過 CLAUDE_ENV_FILE 設定的 SessionStart-hook 環境變數在 /resume/clear 後變成過期值。此外,另有約30項涵蓋 TUI、自動完成與終端機算繪的細節改善及可靠性修正。相關版本:v2.1.137(5月9日,修正 VSCode 擴充功能在 Windows 上的啟用問題)、v2.1.138(5月9日,內部修正);claude-agent-sdk-python v0.1.78v0.1.79v0.1.80 分別將隨附的 Claude CLI 升級至 v2.1.136、v2.1.137 及 v2.1.138。 

  41. OpenAI,openai-agents-python v0.17.0。2026年5月8日。RealtimeAgent 預設使用 gpt-realtime-2。沙箱本機來源實體化功能現會將 LocalFile.srcLocalDir.src 限制在資訊清單的 base_dir 內(套用資訊清單時,SDK 處理程序的目前工作目錄);除非透過 Manifest.extra_path_grants 搭配 SandboxPathGrant 明確授予該來源存取權。相對路徑的本機來源會從 base_dir 解析;絕對路徑來源則必須已位於其中,或位於明確授權的路徑下。遷移方式:在資訊清單層級宣告受信任的主機根目錄,且建議設為唯讀。請將 extra_path_grants 視為受信任的應用程式設定;切勿使用模型輸出或不受信任的資訊清單輸入填入此欄位。此外,也修正 Responses 上下文管理的 extra_args 衝突問題。 

  42. Anthropic,Claude Code v2.1.139。2026年5月。本次工作階段於2026年5月11日取得的本機證據:claude --version 回傳 2.1.139 (Claude Code)。版本說明新增 Agent View(claude agents)、/goal、hook 的 args: string[]PostToolUsecontinueOnBlock、供 MCP stdio 伺服器使用的 CLAUDE_PROJECT_DIR、外掛程式命令中 ${CLAUDE_PROJECT_DIR} 的插值功能,以及多項修正,包括在 --print 模式下發出 claude_code.active_time.total OpenTelemetry 資料。 

  43. Anthropic,“使用 Agent View 管理多個代理”。Agent View 文件說明如何從單一畫面分派及管理多個 Claude Code 工作階段、查看各工作階段正在執行的工作,以及辨識需要操作者輸入的工作階段。該頁面將 Agent View 標示為 Research Preview,並記載本機工作階段的限制。 

  44. Anthropic,“Claude Code Hooks”。Hook 文件涵蓋命令 hook 欄位、PreToolUsePostToolUse、結束代碼行為、hook 輸入/輸出,以及直接展開斜線命令的路徑。 

  45. GitHub Advisory Database,GHSA-f3jg-756w-gm35 / CVE-2026-45046。「Gryph Agents Payload Filter 無法從敏感內容中移除工具酬載。」發布於2026年5月;內容說明在預設記錄行為下,敏感的 file-write 酬載內容仍會保留於本機 SQLite 記錄中,此問題已於 Gryph v0.7.0 修正。 

  46. OSV,GHSA-wxxx-gvqv-xp7p / CVE-2026-40217。「LiteLLM 的自訂程式碼 guardrail 存在沙箱逃逸漏洞。」發布於2026年5月11日;內容說明受管理員保護的 POST /guardrails/test_custom_code 端點會在自行實作的沙箱中執行使用者提供的 Python,並建議升級;若無法升級,則應封鎖該端點。 

  47. Young Jo (seph) Chung 與 Safwat Hassan,“協作者還是助理?AI 程式設計代理如何在提取要求生命週期中劃分工作”,arXiv:2605.08017v1,2026年5月。摘要報告針對 OpenAI、Copilot、Devin、Cursor 與 Claude Code 的29,585個提取要求生命週期所進行的分析,並區分操作自主性與合併治理。 

  48. Jiayuan Liu 等人,“記憶詛咒:擴大的回憶範圍如何侵蝕 LLM 代理的合作意圖”,arXiv:2605.08060v1,2026年5月。摘要報告涵蓋7個 LLM、4款遊戲及500回合的實驗;在28種模型與遊戲組合中,擴大可存取的歷史記錄使其中18種組合的合作程度下降。 

  49. Anthropic,Claude Code v2.1.140。2026年5月12日。新增 subagent_type 至代理 hook 輸入,並修正 ConfigChange hooks、disableAllHooksallowManagedHooksOnly、hook 結果在權限對話框中的環境變數顯示、設定更新後的自訂樣式重設、Windows Git Bash 上的原生套件解析備援機制,以及 /scroll-speed。 

  50. Anthropic,Claude Code v2.1.141。2026年5月13日。新增 terminalSequence 至 hook JSON 輸出,以支援桌面通知、視窗標題與鈴聲;新增 CLAUDE_CODE_PLUGIN_PREFER_HTTPS,以便透過 HTTPS 複製外掛程式來源;新增 ANTHROPIC_WORKSPACE_ID,用於限定工作負載身分聯邦的工作區範圍;新增 claude agents --cwd <path>,以依目錄篩選 Agent View;新增 /feedback 工作階段附件選項,可選擇過去24小時或7天;另包含代理、背景工作、hook、MCP、Remote Control、權限對話框與終端機算繪的相關修正。本次工作階段於2026年5月14日驗證:claude --version 回傳 2.1.141 (Claude Code),而 npm view @anthropic-ai/claude-code version dist-tags.latest time.modified --json 回傳的最新版本為 2.1.141。 

  51. Anthropic,Claude Code v2.1.142。2026年5月14日。為 claude agents 新增用於背景工作階段的分派旗標(--add-dir--settings--mcp-config--plugin-dir--permission-mode--model--effort--dangerously-skip-permissions);將 Fast mode 的預設模型改為 Opus 4.7,並以 CLAUDE_CODE_OPUS_4_6_FAST_MODE_OVERRIDE=1 作為固定版本的覆寫設定;當不存在 skills/ 目錄時,將外掛程式根層級的 SKILL.md 檔案呈現為 skills;在外掛程式詳細資料中顯示外掛程式提供的 LSP 伺服器;替換現有 GitHub App 連線前顯示警告;並修正 MCP_TOOL_TIMEOUT、背景工作階段 worktree、常駐程式睡眠/喚醒、升級後的常駐程式清理、外掛程式快取,以及 Agent View 可靠性問題。本次工作階段於2026年5月15日驗證:claude --version 回傳 2.1.141 (Claude Code),而 npm 最新版本回傳 2.1.142。 

  52. Anthropic,Claude Code v2.1.147。2026年5月21日。新增預設停用的 Workflow 工具,用於確定性的多代理協調(CLAUDE_CODE_WORKFLOWS=1);新增固定的背景工作階段;以 /code-review [effort] --comment 取代 /simplify;強化 REPL 與 Workflow 沙箱;加入自動更新程式診斷、大型差異算繪改進及提示歷史記錄去重;並修正企業登入限制、PowerShell 行為、MCP 分頁、Agent View、外掛程式、hook 條件、貼上文字與影像遭移除後的循環問題。本次工作階段於2026年5月21日驗證:claude --version 回傳 2.1.144 (Claude Code),而 npm view @anthropic-ai/claude-code version dist-tags.latest time.modified --json 回傳的最新版本為 2.1.147time.modified2026-05-21T20:38:35.053Z。 

  53. Anthropic,Claude Code v2.1.148v2.1.149v2.1.150,以及 Claude Code CHANGELOG。v2.1.148 修正 v2.1.147 引入的 Bash 結束代碼迴歸問題。v2.1.149 新增 /usage 各類別限制用量、/diff 鍵盤捲動、GFM 工作清單算繪,以及 Enterprise allowAllClaudeAiMcps;與 harness 相關的修正包括 PowerShell cd 權限繞過、PowerShell 前綴/萬用字元與過期變數的權限分析、git-worktree 沙箱寫入允許清單範圍、macOS 上 Bash find 耗盡 vnode、受管理設定核准時凍結、otelHeadersHelper 路徑空格診斷,以及 Remote Control 工作階段重新命名同步。v2.1.150 僅包含內部基礎架構變更。本次工作階段於2026年5月24日驗證:本機 claude --version 回傳 2.1.144 (Claude Code),而 npm 最新版本回傳 2.1.150time.modified2026-05-23T04:03:10.243Z;GitHub 最新版本回傳 v2.1.150,發布時間為 2026-05-23T04:03:51Z。 

  54. OpenAI,openai-agents-python v0.17.1v0.17.2,以及 v0.17.3。v0.17.1 新增沙箱供應商錯誤詳細資料、封存檔解壓縮限制、GitRepo 子路徑驗證,以及追蹤/工作階段/即時功能修正。v0.17.2 修正 Conversations 推理持續保存、本機核准拒絕原因、AsyncSQLiteSession 設定,以及即時功能遇到未知工具時的行為。v0.17.3 避免將掛載點憑證納入沙箱命令、拒絕相對沙箱工作區根目錄、處理 Vercel 沙箱終止狀態,並修正輸出綱要、guardrail、執行階段與記憶體匯入的邊界情況。本次工作階段於2026年5月24日驗證:python3 -m pip index versions openai-agents 回傳的最新版本為 0.17.3;GitHub 最新版本回傳 v0.17.3,發布時間為 2026-05-19T01:27:36Z。 

  55. Claude Code 變更日誌(正式版本)v2.1.152 版本說明v2.1.153 版本說明v2.1.154 版本說明。v2.1.152(5月27日)新增 MessageDisplay hook 事件、skill/command frontmatter 中的 disallowed-tools/reload-skillsSessionStart hook 的 reloadSkillssessionTitle 輸出、可套用至工作樹的 /code-review --fixpluginSuggestionMarketplaces 受管理設定,並移除自動模式的選用機制,以及加入 --fallback-model 工作階段中途切換功能。v2.1.153(5月28日)讓 /model 將選擇儲存為新工作階段的預設值,並以 s 表示僅限目前工作階段;為外掛市集新增 skipLfs;在狀態列環境中公開 COLUMNSLINES;並保留 macOS 背景代理程式的「隱私權與安全性」授權。v2.1.154(5月28日)將 Opus 4.8 設為預設模型,預設採用高推理強度,並新增 /effort xhigh;透過 /workflows 引入動態 workflows;在 Opus 4.8 上提供 Fast 模式,以 2 倍費率換取 2.5 倍速度;除 Haiku/Sonnet/Opus 4.7 及更早版本外,所有模型預設皆使用精簡系統提示詞;讓 claude agents 接受 ! <command> 以建立背景 shell 工作階段;允許外掛宣告 defaultEnabled: false;將 CLAUDE_CODE_SESSION_IDCLAUDECODE=1 傳入 stdio MCP 子程序環境;並棄用 CLAUDE_CODE_OPUS_4_6_FAST_MODE_OVERRIDE(於6月1日移除)。 

  56. Codex 變更日誌(OpenAI Developers)openai/codex 版本。Codex CLI 0.134.0(2026年5月26日)新增本機對話記錄搜尋功能;將 --profile 設為 CLI/TUI/沙箱流程的主要設定檔選擇器,並支援舊版設定遷移;改善 MCP 設定,加入各伺服器的環境指定功能,以及串流式 HTTP 伺服器的 OAuth;保留本機 $ref$defs,並在公開過大的 schema 前先行壓縮,使 connector 工具 schema 更為可靠;同時允許並行執行宣告 readOnlyHint 的唯讀 MCP 工具。Codex CLI 0.135.0(2026年5月28日)新增更完整的 codex doctor 診斷資訊;在 /status 中顯示遠端連線詳細資料與伺服器版本;新增 vim 文字物件編輯功能,改善單字與行尾行為,並可設定中斷回合;讓 /permissions 能辨識具名權限設定檔;針對支援的 macOS 與 Linux 平台封裝隨附的修補版 zsh 輔助工具;並在 Python SDK 中為執行緒與回合 APIs 新增易於理解的 Sandbox 預設選項。 

  57. Hermes Agent v0.15.0 版本說明。「Velocity 版本。」包含1,302次提交、747個已合併 PR,以及321位社群貢獻者。run_agent.py 重構幅度達76%(從16,083行縮減至分布於14個模組的3,821行)。多代理 Kanban 平台具備自動拆解、群集拓撲、逐任務模型覆寫、排程任務及工作樹管理功能。session_search 經重新設計後快了4,500倍,並移除 LLM 相依套件。於3個安全關卡防禦 Brainworm 類型的提示詞注入攻擊。整合 Bitwarden Secrets Manager,以單一啟動權杖取代各供應商金鑰。skill bundles 可透過一個斜線命令載入多個 skills。TUI 工作階段協調器可在單一終端機中管理多個工作階段。新增 Krea 2 與 FAL 圖像生成供應商;並完成一輪 xAI 整合(網頁搜尋外掛、上游 OAuth、退役模型偵測、自然的 TTS 停頓)。 

  58. Claude Code v2.1.157 版本說明Claude Code 變更日誌(正式版本)。2026年5月29日。放置於專案 .claude/skills/ 目錄中的外掛現在無須透過市集即可自動載入;claude plugin init <name> 可在該目錄中建立全新外掛的基本架構;/plugin 新增引數自動完成功能。此外,EnterWorktree 現可在工作階段中途切換 Claude 管理的工作樹;代理完成後,背景工作樹會維持未鎖定狀態,讓 git worktree removeprune 得以順利執行;當 OTEL_LOG_TOOL_DETAILS=1 時,tool_decision 遙測事件會包含 tool_parameters。此版本也修正無法處理的圖像(現在會降級為文字預留位置)、自動/略過模式下的沙箱網路權限提示、背景工作階段停放後的終止行為,以及 tmux/VS Code/Cursor/Windsurf 中的終端機算繪問題。 

  59. Claude Code 變更日誌(正式版本)Codex CLI v0.137.0 版本說明,2026年6月。Claude Code v2.1.162(6月3日)為 claude agents --json 新增 waitingFor;v2.1.163(6月4日)新增 hookSpecificOutput.additionalContext,用於 StopSubagentStop 的非錯誤回饋;v2.1.166(6月6日)強化跨工作階段 SendMessage 的授權機制(轉送的訊息不再附帶使用者權限),並新增 fallbackModel 設定(最多3個備援模型,遇到不可重試的錯誤時僅重試一次)。Codex CLI v0.137.0(6月4日)推出多代理 v2(執行階段與執行緒整合、hide_spawn_agent_metadata 預設為 true、父代理至子代理的事件傳播)、支援逐回合解析目錄的 v1 skills 擴充功能,以及執行緒啟動/回合錯誤生命週期的 contributor 事件;Codex subagents 文件確認 default/worker/explorer 代理類型,以及 agents.max_threadsmax_depth 並行控制項。AGENTS.md(agents.md)並未發布任何具版本編號的規格變更。已於2026年6月8日在目前工作階段完成驗證。 

  60. Anthropic、Claude Code v2.1.169 版本說明v2.1.170 版本說明,2026年6月8日至9日。v2.1.169 新增 disableBundledSkills 設定與 CLAUDE_CODE_DISABLE_BUNDLED_SKILLS(向模型隱藏隨附的 skills、workflows 及內建斜線命令);新增 --safe-mode 旗標與 CLAUDE_CODE_SAFE_MODE(在停用所有自訂項目的狀態下啟動工作階段,包括 CLAUDE.md、外掛、skills、hooks 及 MCP 伺服器);並新增 /cd 命令(將工作階段移至新的工作目錄,且不會破壞提示詞快取)。v2.1.170 讓使用者可透過 /model claude-fable-5 選用 Claude Fable 5(claude-fable-5),Opus 4.8 則仍是 Claude Code 的代理式預設模型。模型層級發布:Anthropic,「Claude Fable 5」,2026年6月9日——這是高於 Opus 的「Mythos 級」層級,Anthropic 稱其為已達到可安全供一般用途使用標準的最強大模型。 

  61. OpenAI,Codex CLI rust-v0.138.0 版本說明(2026年6月8日)與 rust-v0.139.0 版本說明(2026年6月9日)。v0.138.0 透過加密代理間訊息酬載、v2 代理設定目錄、代理常駐 LRU,以及依活動中的執行工作而非已產生的執行緒計算並行數,進一步強化多代理 v2。v0.139.0 將 close_agent 生命週期 API 重新命名為 interrupt_agent,並將 subagent MCP 啟動警告限定於所屬執行緒,使其不再重複顯示於父執行緒。兩個版本也都強化了 AGENTS.md 探索機制:載入作業會經由環境檔案系統進行,並於探索期間保留邏輯路徑,確保能為遠端及符號連結工作區選取正確檔案。 

  62. Anthropic,Claude Code v2.1.172 版本說明(2026年6月10日)。subagents 現在可產生自己的 subagents,並支援最多5層的遞迴委派;先前的委派實際上僅限1層。 

  63. Anthropic,Claude Code v2.1.175 版本說明v2.1.178 版本說明,2026年6月12日至15日。v2.1.175 新增 enforceAvailableModels 受管理設定(固定 Default 模型,並防止使用者/專案設定擴大受管理的 availableModels 允許清單)。v2.1.178 新增 Tool(param:value) 權限規則語法,可使用 * 萬用字元比對工具的輸入參數(例如 Agent(model:opus));從巢狀 .claude/skills 目錄載入 skills,並於名稱衝突時以 <dir>:<name> 區分;巢狀 .claude/ 中的 agents、workflows 及 output-styles 發生衝突時,會採用最接近目前工作目錄者(儲存專案範圍的 workflow 時,會以最近的現有 .claude/workflows/ 為目標);啟動前會先使用自動模式分類器評估 subagent 產生要求;並修正 subagent disallowedTools 中的 MCP 伺服器層級規格(mcp__servermcp__server__*mcp__*)遭到無聲忽略的問題。 

  64. OpenAI,Codex CLI rust-v0.140.0 版本資訊,2026年6月15日(從 v0.140.0-alpha 系列升格為穩定版)。新增 /import,可選擇性地從 Claude Code 匯入設定、專案組態及近期聊天記錄;透過 codex delete/delete 及 app-server thread/delete 永久刪除工作階段,並設有確認防護機制;為檔案、外掛程式與 skills 提供統一的 @ 提及選單;以及顯示 token 活動的 /usage 檢視畫面。 

  65. Anthropic,Claude Code v2.1.183 版本資訊,2026年6月19日——若您未要求捨棄工作成果,auto mode 會封鎖破壞性的 git 指令(git reset --hardgit checkout -- .git clean -fdgit stash drop);也會封鎖針對非 agent 在本次工作階段所建立之 commit 執行的 git commit --amend,以及未明確指定 stack 時執行的 terraform destroypulumi destroycdk destroy。OpenAI,Codex CLI rust-v0.141.0 版本資訊,2026年6月18日(從 v0.141.0-alpha 系列升格為穩定版)——遠端執行器採用經過驗證、端對端加密的 Noise-relay 通道;跨平台遠端執行會保留執行器原生的工作目錄與 shell;TLS 支援企業 Proxy 使用的 P-521 憑證簽章。 

  66. Claude Code Changelog(正式來源)——v2.1.193(2026年6月25日):autoMode.classifyAllShell 設定;auto-mode 拒絕原因會顯示於逐字記錄、快顯通知及 /permissions。v2.1.195(2026年6月26日):含連字號識別碼的 hook 比對器(例如 code-reviewermcp__brave-search)改為精確比對,而非子字串比對;若要比對含連字號之 MCP 伺服器的所有工具,請使用 mcp__brave-search__.*Codex CLI v0.142.2 版本資訊(2026年6月25日):若 PowerShell 指令包含安全分類器無法檢查的可執行 AST 區域,現在必須取得核准。已於2026年7月1日至2日(PST)依據兩項正式來源完成驗證。 

  67. Claude Code Changelog(正式來源)及 GitHub 版本。v2.1.196(2026年6月29日):組織層級的預設模型(由管理員設定,並在 /model 中顯示為「Org default」);在不受信任的工作區中,claude mcp listget 不再啟動由儲存庫自行核准的 .mcp.json 伺服器。v2.1.197(6月30日):Claude Sonnet 5 成為隨附的預設模型(原生支援 1M 上下文,至8月31日止的促銷價格為 $2/$10)。v2.1.198(7月1日):subagents 預設在背景執行;內建 Explore agent 會繼承工作階段模型(最高以 Opus 為限);subagents 與壓縮作業會繼承工作階段的 extended-thinking 組態;背景 claude agents 工作階段在 worktree 中完成程式碼工作後,會建立 commit、推送並開啟草稿 PR,同時以 agent_needs_inputagent_completed 觸發 Notification hook;/agents 精靈已移除(請直接編輯 .claude/agents/,或詢問 Claude)。v2.1.199(7月2日):堆疊的 slash-skill 呼叫最多載入前 5 個 skills;可偵測 SendMessage 重複使用 agent 名稱所造成的錯誤路由;SessionStartSetupSubagentStart hooks 會在結束代碼為 2 時顯示 stderr。v2.1.200(7月3日):在 CLI、--help、VS Code 及 JetBrains 中,default 權限模式統一標示為「Manual」,同時接受 manual,原有組態值則維持不變;AskUserQuestion 對話方塊預設不再自動繼續。v2.1.202(7月6日):新增「Dynamic workflow size」/config 控制項;/review <pr> 恢復為單次審查,/code-review <level> <pr#> 則執行 multi-agent 審查。Anthropic claude-agent-sdk 已更新至 v0.2.111(2026年7月6日;內含 Claude CLI v2.1.202),TypeScript @anthropic-ai/claude-agent-sdk 則為 v0.3.203;0.2.x/0.3.x 系列是在文件記載的 0.1.x 介面基礎上逐步改良(近期工作著重於子行程清理及 NDJSON 串流可靠性)。已於2026年7月7日(PST)在目前工作階段完成驗證。 

  68. Claude Code Changelog(正式來源)、GitHub 版本 v2.1.207v2.1.208,以及 Claude Code 最新功能。2026年7月。v2.1.203–v2.1.206(7月上旬):auto-mode 規則會封鎖竄改逐字記錄檔案的行為;背景工作通知會明確指出工作執行期間未收到任何人工輸入;MCP roots/list 會納入工作階段的其他工作目錄,並傳送 roots/list_changed 通知;/doctor 會建議刪減可從程式碼庫推導出的 CLAUDE.md 內容;v2.1.204 亦修正了無頭模式下的 SessionStart 串流。v2.1.207:auto mode 已在 Amazon Bedrock、Google Vertex AI 與 Microsoft Foundry 正式推出,可透過受管理的 disableAutoMode 設定選擇停用;新增供企業行程啟動器使用的 CLAUDE_CODE_PROCESS_WRAPPER;當 MCP 工具數量龐大時,工具使用回合速度最高提升 7 倍,工作階段逐字記錄則縮小 79 倍。v2.1.208:即使啟用 --dangerously-skip-permissions 或 auto mode,災難性移除操作仍會顯示確認提示。 

  69. Claude Code Changelog(正式來源)及 GitHub 版本 v2.1.210v2.1.211v2.1.212。2026年7月。v2.1.210:採用 worktree 隔離的 subagents 不再能變更主要 checkout;Agent tool 強化了對 subagent 所讀取內容中間接提示注入的防護;auto-mode 分類器預設使用 Sonnet 5,並於每個工作階段固定;寫入 MEMORY.md 的內容若超過大小限制,將回報錯誤,而不再默默截斷。v2.1.211PreToolUse hook 的 ask 決策會將權限結果的最低層級設為提示確認——對未受沙箱保護的 Bash,auto mode 無法覆寫為允許;--forward-subagent-textCLAUDE_CODE_FORWARD_SUBAGENT_TEXT 會將 subagent 文字轉送至 stream-json 輸出;「always allow」規則會跨 worktrees 保存在儲存庫根目錄;權限預覽會消除雙向文字覆寫、零寬及外觀相似字元的影響。v2.1.212:每個工作階段設有 subagent 產生上限(預設 200,可透過 CLAUDE_CODE_MAX_SUBAGENTS_PER_SESSION 設定,並由 /clear 重設);每個工作階段的 WebSearch 上限為 200(CLAUDE_CODE_MAX_WEB_SEARCHES_PER_SESSION);Task tool 的 mode 參數已棄用,改為繼承父工作階段的權限模式;/fork 會建立新的背景工作階段,工作階段內的原有變體則重新命名為 /subtask;執行超過 2 分鐘的 MCP 呼叫會自動轉至背景(CLAUDE_CODE_MCP_AUTO_BACKGROUND_MS)。 

  70. Anthropic,@anthropic-ai/claude-agent-sdk TypeScript v0.3.205–v0.3.208 版本。2026年7月。具型別的中斷回條(still_queued UUID;在 system/init 中公告 interrupt_receipt_v1 capability);command_lifecycle frame 會回報每則訊息的 queued/started/completed/cancelled/discarded 狀態;新增 AgentToolCompletedOutput 型別;canUseTool 可回傳 {behavior: 'allow'},無須包含 updatedInput。v0.3.208 的安全性修正:若呼叫端在 hook 待處理期間發出中止要求,該要求原先會被轉換為 hook 成功,導致受 PreToolUse hook 管控的工具可能在呼叫端中止後仍繼續執行。 

  71. Model Context Protocol,PR #3002。已於2026年7月16日合併至規格草案。此變更在回應 _meta 中新增選用的 io.modelcontextprotocol/serverInfo 物件,並將請求中的 clientInfo 改為選用;在 SEP-2575 的無狀態核心移除具狀態的 initialize 交握後,藉此恢復伺服器身分資訊。該身分由伺服器自行回報且未經驗證,僅供顯示與記錄使用,絕不應作為安全性決策的依據。最終版無狀態規格修訂預定於2026年7月28日發布。 

  72. OpenAI,Codex CLI 版本 rust-v0.143.0rust-v0.144.0rust-v0.144.5。2026年7月。v0.143.0:MCP 工具預設透過工具搜尋載入(延後載入工具,而非預先載入所有結構描述)。v0.144.0:新增 writes app 核准模式——唯讀操作無須提示即可執行,寫入操作則須取得核准——且 MCP 互動式驗證正式推出。v0.144.5:擴充危險指令偵測範圍。 

  73. OpenAI,openai-agents-python v0.18.2(2026年7月11日)與openai-agents-js v0.13.2(2026年7月10日)。兩個版本皆新增測試版託管多代理支援——由OpenAI以託管服務形式管理多個代理的協調作業,對應於Anthropic的Managed Multiagent Orchestration公開測試版。 

  74. Claude Code變更記錄(標準版本),v2.1.214–v2.1.216,2026年7月。v2.1.214:使用單層級dir/**路徑模式的權限規則與hook if:條件,現在會錨定至<cwd>/dir(若要匹配任意深度,請寫成**/dir/**);先前的行為會將Edit(src/**)等允許規則,自動核准套用至目錄樹中任意巢狀層級的dir/;拒絕與詢問規則仍維持任意深度匹配。另有:EndConversation工具;一批針對Bash/PowerShell權限的失敗關閉式強化措施;即使stdout JSON未通過結構描述驗證,hook結束代碼2仍會阻擋執行;memory frontmatter的ISO modified時間戳記不再遭到無聲截斷;新增OTel message.uuidclient_request_idtool_sourceCLAUDE_CODE_OTEL_CONTENT_MAX_LENGTHv2.1.215:內建的/verify/code-review skills不再自行觸發——僅能明確呼叫。v2.1.216:採用worktree隔離的subagents,無法再透過git -C--git-dirGIT_DIR/GIT_WORK_TREE將git重新導向至共用checkout;worktree工作階段不再解析至其他專案殘留的worktree;若.claude是指向專案外部的符號連結,工作流程與排程任務會拒絕寫入;/rewind不再遍歷符號連結或硬連結;sandbox.filesystem.disabled允許僅限制網路輸出的沙箱;恢復背景代理工作階段時,會還原代理的提示與工具限制;工作階段進行期間若skills/命令有所變更,無須重新啟動即可顯示於斜線選單。已於2026年7月21日(PST)依據標準變更記錄完成驗證。 

  75. Anthropic,@anthropic-ai/claude-agent-sdk TypeScript版本v0.3.214–v0.3.216claude-agent-sdk Python v0.2.124。2026年7月。TypeScript:set_permission_mode會拒絕未知模式;遭中斷而截短的訊息會帶有aborted: truetool_progress會攜帶subagent_typesubagent_retry;任務通知子類型scheduled-triggerSessionStart來源"fork";附帶non_execution_kinduser_feedbacktool_result_meta附屬資料;rewindFiles回應可選擇提供skippedLinks計數;成功結果訊息可選擇提供user_message_uuidrequest_sent_wall_ms。Python v0.2.124(Windows,BatBadBut類型):拒絕啟動.bat.cmd檔案;若resumesession_id值中包含cmd.exe中繼字元,便會引發ValueError;以連字號開頭的extra_args值會繫結為--flag=value。 

  76. OpenAI,Codex CLI rust-v0.145.0版本說明,2026年7月。此版本穩定了選用式多代理V2介面(可設定子代理模型、推理層級與並行數;並恢復代理角色);同時擴充/import,可從Claude Code與Cursor移轉設定、MCP伺服器、外掛程式、工作階段、命令,以及專案範圍的記憶。強化項目包括:MCP啟動逾時、序列化OAuth重新整理、非阻塞式OAuth探索、更嚴格的強制rm偵測、保留拒絕原因,以及實驗性的分頁執行緒歷程。 

  77. Model Context Protocol,規格版本文件PR #3064#3066#3098,於2026年7月21日合併,為7月28日的規格發布預作準備。最終修訂版會將Tasks定位為選用的io.modelcontextprotocol/tasks擴充功能,而非核心功能,並棄用HTTP+SSE傳輸,改採Streamable HTTP。 

  78. Claude Code變更記錄(標準版本),v2.1.217,2026年7月21日。subagents預設不再產生巢狀subagents——設定CLAUDE_CODE_MAX_SUBAGENT_SPAWN_DEPTH即可允許更深層的巢狀結構;新增同時執行subagents的數量上限(預設20,可透過CLAUDE_CODE_MAX_CONCURRENT_SUBAGENTS設定),避免單一訊息無限制地扇出背景代理;--max-budget-usd現在確實會停止背景subagents——達到上限後,系統會拒絕產生新代理,並停止執行中的背景代理;背景工作階段隔離會將符號連結的工作目錄標準化,封堵藉此逸出工作區資料夾的途徑。已於2026年7月22日(PST)依據標準變更記錄完成驗證。 

  79. Anthropic,claude-agent-sdk Python v0.2.125@anthropic-ai/claude-agent-sdk TypeScript v0.3.217,2026年7月21日。Python v0.2.125內含CLI v2.1.217,未變更SDK介面;TS v0.3.217亦同步發布。兩者皆承襲CLI新的subagent巢狀與並行預設值。 

  80. Model Context Protocol,PR #3092,於2026年7月21日合併。此規範性修正讓SEP-2575錯誤代碼與重新編號的規格草案及符合性測試套件一致,是為2026年7月28日規格發布所做的準備之一。 

  81. Anthropic Engineering,〈我們如何在各項產品中隔離Claude〉,2026年5月25日。針對不同產品介面採用3種隔離模式:伺服器端使用具備每工作階段檔案系統的短暫性gVisor容器(claude.ai);採用人機協作的作業系統沙箱(Claude Code:macOS使用Seatbelt、Linux使用bubblewrap,以及開放原始碼的sandbox-runtime);在平台Hypervisor上使用密封VM(Claude Cowork:macOS使用Apple Virtualization framework、Windows使用HCS,僅掛載工作區與.claude)。設計原則:先在環境層隔離,再於模型層引導;隔離強度應配合使用者的監督能力;優先採用久經考驗的基礎元件(Hypervisor、seccomp、容器執行階段),而非自行打造隔離程式碼;將專案本機設定與工具輸出視為不受信任;使用具有限定範圍、可個別撤銷的單一工作階段權杖,將憑證置於沙箱之外。在Cowork中,此原則由VM內的防禦性MITM Proxy強制執行,拒絕任何未攜帶該VM專屬佈建權杖的請求。 

  82. Claude Code變更記錄(標準版本),v2.1.218,2026年7月22日。dangerous-rm、背景&與可疑Windows路徑檢查不再開啟權限對話框——改由自動模式分類器裁決;搭配自動模式的計畫模式,不再針對靜態分析器無法證實為唯讀的Bash命令顯示提示——改由分類器判斷;代理frontmatter hooks要求代理檔案自身所在的資料夾已接受工作區信任;含context: fork的skills預設在背景執行(各skill可透過background: false停用);/code-review會以背景subagent執行;/deep-research僅在手動呼叫時啟動;在無頭與SDK工作階段中,fork工作階段的沿襲關係會在壓縮後保留;透過Ctrl+B切換至背景執行時,會套用與其他途徑相同的背景shell上限。已於2026年7月24日(PST)依據標準變更記錄完成驗證。 

  83. Anthropic,@anthropic-ai/claude-agent-sdk TypeScript v0.3.218claude-agent-sdk Python v0.2.126,2026年7月22日。TypeScript:SkillToolOutput.background旗標;api_error_status會回報串流途中發生的429/529錯誤;modelUsage新增canonicalModelprovider。Python:ResultMessage.terminal_reason;帶有canonicalModelprovider的型別化model_usage項目;內含CLI v2.1.218。 

  84. Claude Code 變更日誌(權威版本)v2.1.219(2026年7月24日)與 v2.1.220(2026年7月25日)。v2.1.219:「subagents 現在預設最多可產生深度為 3 的巢狀 subagents(原為 1);設定 CLAUDE_CODE_MAX_SUBAGENT_SPAWN_DEPTH=1 即可停用巢狀功能」;新增 Claude Opus 5(claude-opus-5)作為預設 Opus 模型——具備 1M context,fast mode 的每百萬 token 費用為 $10/$50;sandbox.network.strictAllowlist 會直接拒絕 sandboxed commands 連線至 allowlist 以外的主機,不顯示提示;新增 DirectoryAdded hook,在 /add-dir 或 SDK register_repo_root 控制要求於工作階段中途註冊工作目錄後觸發;動態 workflows 預設採用中型規模指引(「目標為少於 15 個 agents」),可透過任何設定檔案中的 workflowSizeGuideline 設定(設定後,/config 中的該列會隱藏),並顯示於執行中 workflow 的狀態列;stream-json 支援轉送巢狀 subagent——使用 --forward-subagent-text 時會顯示深度 2 以上的 subagents,並以產生它們的 Agent tool_use ID 作為索引鍵;headless stream-json 初始化事件新增 mcp_server_errors,列出因設定驗證而略過的 --mcp-config 項目,終端機執行時也會顯示啟動警告;claude mcp list/mcp 連線失敗時會顯示 HTTP 狀態與錯誤文字,若 MCP 設定值含有隱藏的前置或尾端空白,也會顯示警告;受管理的 MCP allowlist/denylist ${VAR} 項目改從啟動環境與 managed-settings env 解析,而非 settings-file env;當回合因串流中途發生 API 錯誤而終止時,claude -p 不再捨棄已產生的文字;若 CLAUDE_CODE_GIT_BASH_PATH 指向的路徑並非 bash/sh 執行檔,系統會顯示警告並忽略該設定;fast mode 不再支援 Opus 4.7(/fast 現適用於 Opus 5 與 Opus 4.8);內建 claude-api skill 預設使用 Opus 5,並提供從 Opus 4.8 遷移的途徑。v2.1.220:僅包含錯誤修正與可靠性改善。auto-mode 的 Fable-5 fallback 至「最佳可用 Opus 模型」始於 v2.1.176,目前會解析為 Opus 5。已於2026年7月25日依據權威變更日誌完成驗證。 

  85. Anthropic、@anthropic-ai/claude-agent-sdk TypeScript v0.3.219v0.3.220claude-agent-sdk Python v0.2.127v0.2.128。2026年7月24日至25日。TypeScript v0.3.219:控制協定新增 DirectoryAdded 生命週期 hook 事件;interrupt 控制要求新增選擇性啟用的 cancel_queued(capability 為 interrupt_cancel_queued_v1),中止時會一併取消已排入佇列及等待分派的訊息;result 與 init 訊息新增 fast_mode_disabled_reason;切換模型後,initialize 回應不再回報產生程序時模型的 fast_mode_state;SDK 設定型別新增 sandbox.network.strictAllowlistworkflowSizeGuidelinePython v0.2.127:修正仍有背景工作執行時過早關閉 stdin 的問題——先前 query() 會在收到第一個 result frame 時關閉 stdin,即使背景 subagents 仍在執行,導致其 SDK-MCP 工具呼叫因 "Stream closed" 而失敗,並在未發出警示的情況下繞過 PreToolUse hooks;現在 stdin 會保持開啟,直到所有執行中的工作完成並收到最終 result frame(#1103)。v0.3.220 / v0.2.128:版本同步更新至 CLI v2.1.220。 

  86. PyPI 上的 claude-agent-sdk及其變更日誌npm 上的 @anthropic-ai/claude-agent-sdk。已於2026年8月1日驗證:Python 0.2.128(變更日誌:「已將內建 Claude CLI 更新至 2.1.220 版」;需要 mcp<2.0.0,>=1.23.0)、TypeScript 0.3.220(發布於2026年7月24日,「與 Claude Code v2.1.220 保持一致」)。本段先前所列版本(Python v0.2.111 內建 CLI v2.1.202、TypeScript v0.3.203)各自落後 17 個版本,而本指南其餘內容早已追蹤至 0.2.128 與 0.3.220。 

  87. Anthropic、「Claude Opus 5 正式推出」。2026年7月24日。claude-opus-5;「每百萬個輸入 token 為 $5,每百萬個輸出 token 為 $25」;fast mode 的執行速度「約為預設速度的 2.5 倍」,費用則為「Opus 5 基本價格的兩倍」(依 Claude Code v2.1.219 變更日誌所載,每百萬 token 為 $10/$50;該日誌亦說明 1M context window)。基準測試:「在 Frontier-Bench v0.1 中,Opus 5 超越所有其他模型,效能更達 Opus 4.8 的兩倍以上」;在 CursorBench 3.2 中,其成績「與 Fable 5 的最高分差距不到 0.5%,成本卻僅為一半」;「在 ARC-AGI 3……Opus 5 的分數是次佳模型的三倍」;在 OSWorld 2.0 中,其表現超越「Fable 5 的最佳結果,成本卻僅略高於三分之一」。該模型被描述為「深思熟慮且積極主動」,並且「更擅長驗證自身成果與審慎反覆改進」。 

NORMAL agent-architecture.md EOF