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

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

# 打造正式環境 AI 代理框架的完整系統:涵蓋技能、掛鉤、記憶、子代理,以及確保代理可靠運作的協調模式。

author: words: 9009 read_time: 114m updated: 2026-08-18 20:34

Part 2 of Agentic Engineering

$ less agent-architecture.md

TL;DR: Claude Code不是具有檔案存取權的聊天視窗,而是具備31個已記錄生命週期事件的可程式化執行環境;每個事件都可掛接模型無法略過的Shell指令碼。將hooks堆疊為dispatchers、dispatchers堆疊為skills、skills堆疊為agents、agents堆疊為workflows,您便能建立一套自主開發harness:強制遵循約束、委派工作、跨工作階段保留記憶,並協調多代理人審議。Claude Code的動態workflows(v2.1.154+)讓確定性的多代理人協調成為第一方原生機制——透過/workflows執行數十到數百個背景agents——而平台現在預設會在背景執行subagents(20個並行、深度3層巢狀),讓您的工作階段能以對等身分彼此傳訊(v2.1.224),並可在自架runners上執行雲端工作階段。正確性仍由hooks與evidence gates掌握。525387本指南涵蓋該堆疊的每一層:從單一hook到10-agent共識系統。無須任何framework。全部以Bash與JSON完成。

Andrej Karpathy為圍繞LLMagent成長出的事物創造了一個詞:claws。也就是讓agent能夠抓住其context window之外世界的hooks、指令碼與協調機制。1多數開發者將AI程式設計agents視為互動式助理:輸入prompt、看著它編輯檔案,然後繼續下一件事。這種框架會將生產力上限鎖定在您親自能監督的範圍內。

基礎設施的心智模型則不同:AI程式設計agent是具有LLMkernel的可程式化執行環境。模型採取的每項動作都會經過您所控制的hooks。您定義的是政策,而非prompts。模型在您的基礎設施內運作,就如同web伺服器在nginx規則中運作一般。您不會坐在nginx前手動輸入requests;您會設定、部署並監控它。

這個差異至關重要,因為基礎設施能產生複利效應。一個會攔截Bash指令中憑證的hook,能保護每個工作階段、每個agent及每次自主執行。一項編碼您評估準則的skill,無論由您或agent呼叫,都能一致套用。一個進行程式碼安全審查的agent,無論您是否在旁監看,都會執行相同的檢查。2


重點摘要

  • Hooks能保證執行;prompts則不能。 對於linting、formatting、安全檢查,以及無論模型行為為何都必須每次執行的事項,請使用hooks。結束代碼2會阻擋動作;結束代碼1僅會提出警告。3
  • Skills會編碼可自動啟用的領域專業知識。 description欄位決定一切。Claude使用LLM推理(而非關鍵字比對)來判斷何時應套用skill。4
  • Subagents可避免context膨脹。 供探索與分析使用的隔離context windows,能讓主要工作階段保持精簡。讓彼此獨立的subagents平行執行;當workers需要持續協調時,則使用agent teams。5
  • Memory存在檔案系統中。 檔案可跨context windows保留。CLAUDE.md、MEMORY.md、rules directories與handoff文件共同形成結構化的外部記憶系統。6
  • 多代理人審議能發現盲點。 單一agents無法挑戰自身假設。兩個具備不同評估優先順序的獨立agents,能找出quality gates無法處理的結構性缺陷。7
  • harness pattern本身就是系統。 CLAUDE.md、hooks、skills、agents與memory並非彼此獨立的功能。它們組合成您與模型之間的確定性層,並能隨自動化擴展。

如何使用本指南

經驗 從這裡開始 接著探索
每日使用Claude Code,想進一步提升 Harness Pattern Skills SystemHook Architecture
建立自主workflows Subagent Patterns Multi-Agent OrchestrationProduction Patterns
評估agent架構 Why Agent Architecture Matters Decision FrameworkSecurity Considerations
設定團隊harness CLAUDE.md Design Hook ArchitectureQuick Reference Card

每個章節都以前一章為基礎。文末的Decision Framework提供查詢表,協助您針對各種問題類型選擇適當機制。


五分鐘黃金路徑

在深入探討之前,這是從零到建立可運作 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程式設計代理。元件包括:

┌──────────────────────────────────────────────────────────────┐
│                      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檔案與規則目錄定義代理對您專案的理解。它們會在工作階段啟動及每次壓縮後自動載入。這是代理的長期架構記憶。

擴充層:skills依據內容自動啟用,提供領域專業知識。hooks則在每次符合條件的工具呼叫時提供具確定性的關卡。記憶檔案會跨工作階段保留狀態。自訂代理提供專門的subagent設定。

協調層:多代理模式協調彼此獨立的代理進行研究、審查與研議。產生預算可防止遞迴失控。共識驗證確保品質。

關鍵洞見是:大多數使用者完全在核心層工作,看著內容膨脹、成本攀升。進階使用者會設定指令與擴充層,然後只使用核心層進行協調與最終決策。2

受管理與自建harness(2026年4月)

在2026年初的大部分時間裡,「自行建立harness」是唯一真正可行的途徑。2026年4月,情況改變了。Anthropic於4月8日以公開Beta版推出Claude Managed Agents:harness迴圈+工具執行+sandbox容器+狀態持久化,透過REST API提供,按標準token費用加上每工作階段小時0.08美元計費。OpenAI於4月16日推出的Agents SDK更新,正式確立相同的區分方式——harness與運算為獨立層,並提供原生sandbox供應商(Blaxel、Cloudflare、Daytona、E2B、Modal、Runloop、Vercel),以及可在容器遺失後繼續運作的snapshot/rehydrate機制。2324

OpenAI端更深入的SDK介面,於openai-agents Python v0.14.0中推出(2026年4月15日發布;4月16日公告):其包含AgentSandboxAgent子類別,具備default_manifest、sandbox指令與capabilities;Manifest用於描述全新工作區合約(檔案、目錄、本機檔案、Git儲存庫、env、使用者、mount);SandboxRunConfig則用於每次執行時設定sandbox client、即時工作階段注入、manifest覆寫、snapshots及materialization並行限制。內建capabilities涵蓋shell存取、檔案系統編輯、影像檢視、skills、sandbox memory與compaction。Sandbox memory會跨執行保存擷取出的經驗,並逐步揭露;工作區支援本機檔案、Git儲存庫項目及遠端mount(S3、R2、GCS、Azure Blob、S3 Files);snapshots可跨供應商攜帶。後端包括UnixLocalSandboxClientDockerSandboxClient,以及透過可選extras提供的Blaxel、Cloudflare、Daytona、E2B、Modal、Runloop與Vercel託管client。24

對於希望將Claude Code執行階段作為程式庫嵌入的Python專案——介於「透過shell呼叫claude」與「透過REST API呼叫Managed Agents」之間——claude-agent-sdk-python是第三個選項。4月28日至29日的一系列版本(v0.1.69 → v0.1.71)將內建CLI升級至v2.1.123,將mcp相依套件的最低版本提高至>=1.19.0(舊版會悄悄捨棄來自程序內MCP工具的CallToolResult回傳值,導致模型只收到驗證錯誤blob),並讓SandboxNetworkConfig與TypeScript SDK達成schema對等(allowedDomainsdeniedDomainsallowManagedDomainsOnlyallowMachLookup)。30截至2026-08-12,該套件在PyPI上的版本為v0.2.137,TypeScript SDK則為v0.3.229(兩者皆已根據即時registry驗證);相較於本文所述的0.1.x介面,0.2.x系列屬於漸進式更新——下方的include_hook_eventsskills與sandbox設定選項仍然適用——近期版本主要著重於subprocess清理與NDJSON串流可靠性。9086

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

2026年7月,OpenAI端的受管理選項也新增多代理方案:openai-agents-python v0.18.2(7月11日)與openai-agents-js v0.13.2(7月10日)在Beta版中新增hosted multi-agent support——由OpenAI託管、協調多個代理作為一項服務,直接對應Anthropic的Managed Multiagent Orchestration公開Beta版,詳見多代理協調章節。73兩家供應商如今在多代理層提供與下表單一代理相同的取捨:供應商負責執行委派迴圈,而您放棄hook介面。

架構上的分岔如今已真實存在:

面向 自建harness(本指南預設) 受管理harness(Claude Managed Agents/OpenAI Agents SDK)
營運負擔 您自行執行所有項目 供應商執行迴圈、sandbox、狀態
自訂能力 完整——您的hooks、您的skills、您的memory 有限——由供應商定義的擴充點
成本模式 Token+自建運算資源 Token+執行時間溢價
狀態耐久性 由您設計 供應商會跨斷線建立checkpoint
代理團隊協調 自行建立 供應商提供的多代理協調

何時該選哪一種:對於已有基礎設施能力、想控制skills/hooks,或正在深入最佳化特定工作流程的團隊,自建方案仍然合適。若團隊沒有專職平台工程師、取得價值的速度比自訂更重要,或代理執行必須能在筆記型電腦關閉後可靠地繼續運作,而您不想自行建立持久化層,則適合採用受管理方案。兩者可以相容——您可以執行自建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 可自動啟用的領域專業知識
明確執行相同的指令序列 Slash command 觸發條件明確、由使用者呼叫的動作
需要不應污染主要脈絡的隔離分析 Subagent 供專注工作使用的獨立脈絡視窗
需要具有特定指示的一次性提示 Nothing 直接輸入即可。並非所有事都需要抽象化。

Skills適用於Claude隨時可用的知識。Slash commands則適用於明確觸發的動作。若在兩者之間猶豫,請問自己:「應該讓Claude自動套用,還是由我決定何時執行?」

建立Skill

Skills可存放於4個位置,作用範圍由廣至窄如下:4

範圍 位置 適用對象
Enterprise Managed settings 組織中的所有使用者
Personal ~/.claude/skills/<name>/SKILL.md 您的所有專案
Project .claude/skills/<name>/SKILL.md 僅此專案
Plugin <plugin>/skills/<name>/SKILL.md 啟用該plugin的位置

每個skill都需要一個含有YAMLfrontmatter的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 descriptions會被注入系統提示中的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-reviewskills——它們僅會在明確呼叫時執行。這是刻意收回description驅動啟用的做法,因為未經提示就執行的重量級審查skills,成本高於其帶來的效益。74

脈絡預算

所有skill descriptions共用一份脈絡預算,會依脈絡視窗的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以相對連結參照它們。skill啟用時,Claude會視需要讀取這些檔案。請將SKILL.md控制在500行以內,並把詳細參考資料移至支援檔案。12

透過Git分享Skills

專案skills(儲存在repo根目錄的.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

團隊成員pull後,就會自動取得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都編碼了您專業知識的不同面向。它們共同構成知識庫,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會透過SessionStarthooks自動啟用,將品質限制注入每個工作階段,無須明確呼叫。skill本身是知識;hook則負責落實。兩者結合,即形成一層政策。

常見Skill錯誤

Description過於寬泛。git-rebase-helperskill會在任何與git相關的提示上啟用(rebase、merge、cherry-pick,甚至git status),便會污染80%的工作階段。解法是收緊description,或加入disable-model-invocation: true並要求明確透過/skill-name呼叫。4

太多skills競爭預算。更多skills意味著更多descriptions要競爭1%的脈絡預算。若發現skills沒有啟用,請透過/context查看遭排除的項目。與其建立許多模糊的skills,不如優先保留較少但description寫得完善的skills。

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

SDKSkill介面(2026年5月8日)

使用claude-agent-sdk-pythonv0.1.77+的自架harness,應透過ClaudeAgentOptionsskills選項宣告可用skills,而非使用allowed_tools中舊版的"Skill"值。37"Skill"簡寫已被淘汰,專用選項可讓Claude Code取得更具結構化的可用skills資訊。v0.1.77中內建的CLI為v2.1.133。

.claude/skills/中的Plugin與Skill匯流(2026年5月29日)

Skills一向會從專案的.claude/skills/資料夾載入。Claude Codev2.1.157將該資料夾延伸支援plugins:放置於.claude/skills/的plugin現在會自動載入,無須marketplace註冊;claude plugin init <name>也會在該處建立新的scaffold,並預先串接manifest與SKILL.md。58這填補了兩種原本位於不同位置的專案工具型態之間的落差——直接提交至repo的裸skill,以及將skill、hooks與MCPserver打包在一起、但過去需透過marketplace安裝的plugin。對harness設計的實際影響是:專案範圍的工具不再需要繞經registry才能交付——寫好、提交後,團隊成員只要執行git pull就能取得相同介面。Plugins仍負責可打包安裝的使用情境(在單一ZIP中包含hooks、skills、MCPservers與agents);改變的是,專案不必只為了從自身目錄樹載入plugin而建置marketplace。這項匯流如今也有跨供應商的基礎:Agent Plugins 1.0.0(於2026年8月6日發布)將相同套件結構標準化——plugin.jsonmanifest、包含SKILL.md資料夾的skills/目錄,以及可選的mcp.json——並稱其為「AI agents的可攜式套件格式」。發表時即獲VS Code、Cursor、GitHubCopilot、ChatGPT & Codex與Kiro採用。它明確是Agent Skills與MCP的封裝層,而非替代品;請注意,Agent Skills spec的作者Anthropic尚未加入聯盟——因此,應將Claude-Code向外的可攜性視為格式層級的相容性,而非官方雙向契約。89

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

Skills代表能力,而能力就是攻擊面。Claude Codev2.1.169新增disableBundledSkills設定(以及對應的CLAUDE_CODE_DISABLE_BUNDLED_SKILLS環境變數),可將內建skills、workflows與內建slash commands完全從模型視野中隱藏。60對於強化或受監管的harness而言,這是刻意縮減攻擊面的措施:已稽核並核准一組特定專案與個人skills的操作者,可以抑制Anthropic隨附的一切內容,使模型只會針對操作者審核過的介面進行推理。請以對待工具allowlist的方式看待它——預設提供廣泛能力,而關閉預設值是一項治理決策,不是便利性的切換鈕。

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

Claude Codev2.1.178讓專案工具具備位置感知能力。現在,當您處理該資料夾下的檔案時,巢狀.claude/skills資料夾中的skills也會載入,不再僅限repo根目錄;若名稱衝突,巢狀skill會顯示為<dir>:<name>,使兩者都能存取。63同一版本也讓其餘專案介面依據最接近工作目錄的位置解析:當agent、workflow或output-style名稱在巢狀.claude/資料夾間衝突時,最接近工作目錄的項目優先;而儲存專案範圍workflow時,會寫入最近的既有.claude/workflows/,不再一律寫入根目錄。63對monorepo或repo-of-repos而言,這讓原本單一扁平的全域介面,轉變為會隨情境啟用的每個package工具——services/api/.claude/skills/可承載僅在該目錄樹工作時出現的API專屬skills,而不會與同名的services/web/skill衝突。


Hook 架構

Hooks是由Claude Code生命週期事件觸發的 shell 指令。3它們會以一般腳本的形式在LLM之外執行,而非由模型解讀的提示。模型想執行rm -rf /?只要一個 10 行的 bash 腳本,就能根據封鎖清單檢查該指令,並在 shell 接收到前拒絕它。無論模型意願為何,hook都會觸發。

可用事件

截至本指南更新時,Claude Code在 8 個類別中提供 31 個已記錄的生命週期事件。事件清單會隨版本更新而增加,因此應以參考文件為準,並在串接正式環境 hooks前查看速查表,取得目前完整表格:13

類別 事件 可阻擋?
工作階段 SessionStart, Setup, SessionEnd
使用者/完成 UserPromptSubmit, UserPromptExpansion, Stop, StopFailure, TeammateIdle 提示/擴充/停止/閒置可阻擋;StopFailure不可
工具 PreToolUse, PermissionRequest, PermissionDenied, PostToolUse, PostToolUseFailure, PostToolBatch 事前/權限/批次可阻擋;事後事件不可
Subagent/任務 SubagentStart, SubagentStop, TaskCreated, TaskCompleted 停止/任務事件可阻擋;啟動不可
Context PreCompact, PostCompact, InstructionsLoaded PreCompact可阻擋;事後/載入不可
檔案系統/工作區 CwdChanged, DirectoryAdded, FileChanged, WorktreeCreate, WorktreeRemove Worktree建立可阻擋;其餘不可
設定/通知 ConfigChange, Notification, MessageDisplay 除政策設定外,設定變更可阻擋;通知不可;MessageDisplay僅轉換顯示文字(displayContent,v2.1.152)
MCP Elicitation, ElicitationResult
近期兩項改進對背景與多代理 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觸發。任何在啟動時針對工作區所做的斷言——信任檢查、祕密掃描、由樹狀結構推導的路徑範圍規則、各儲存庫政策載入——都需要在此重新執行,因為工作階段的目錄集合不再於啟動時固定。此事件僅供資訊使用,無法阻擋;因此應將其視為重新推導狀態及記錄來源的觸發點,而非閘門。若某個目錄絕不能新增,應在設定中拒絕它,而非嘗試透過 hook否決。SDK端也在同一版本推出(TypeScript v0.3.219將DirectoryAdded加入控制協定生命週期事件),因此由SDK託管的 harness與CLI的 harness同樣能取得此事件。85

結束代碼語意

結束代碼決定 hooks是否阻擋動作:3

結束代碼 意義 動作
0 成功 作業繼續。Stdout會在詳細模式中顯示。
2 阻擋性錯誤 作業停止。Stderr會成為傳送給Claude的錯誤訊息。
1、3等 非阻擋性錯誤 作業繼續。Stderr僅會在詳細模式(Ctrl+O)中顯示。
關鍵:每個安全性 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值,例如BashEditWriteReadGlobGrep、像mcp__server__tool這類MCP工具名稱,或使用*涵蓋所有工具。單純名稱與以|分隔的清單會進行完全比對;含有其他字元的值則是JavaScript正規表示式。部分事件不支援 matcher,設定後一律觸發。13自Claude Code v2.1.195起,包含連字號識別碼code-reviewermcp__brave-search)的 matcher會進行完全比對,不再意外進行子字串比對——指定給單一代理或伺服器的 hook不會再對所有僅包含該字串的名稱觸發;若要涵蓋來自帶連字號MCP伺服器的所有工具,請明確寫成模式mcp__brave-search__.*66v2.1.214也將相同原則套用至路徑模式:使用單一區段dir/**模式的 hook if:條件,現在只會比對<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包裝器——較舊的頂層decisionreason格式已不再建議用於PreToolUse:

{
  "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."
  }
}

三種類型的保證

撰寫任何 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會執行 linter或測試套件,並在品質檢查失敗時阻擋提交:

#!/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": "..." } 以阻擋。適合用於 regex 無法表達的細緻評估。

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
}

通知、telemetry 與備份可使用 async。切勿將 async 用於格式化、驗證,或任何必須在下一項動作前完成的工作。

Dispatcher 優於獨立 Hooks

在同一事件上同時執行 7 個 hooks,並讓每個 hook 各自讀取 stdin,會造成競態條件。兩個 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. 確認結束碼。 使用 exit 1 的 PreToolUse hook 看似正常運作,實際上完全沒有強制效果。
  5. 保持 hooks 快速。 Hooks 會同步執行。所有 hooks 應控制在 2 秒內,理想情況是低於 500ms。

SDK 端 Hook 事件串流

基於 claude-agent-sdk-python(v0.1.74+,2026年5月6日)的自行託管 harness,現在可直接從訊息串流訂閱 hook 事件,而不必透過 shell 指令碼回呼。36ClaudeAgentOptions 上設定 include_hook_events=True 後,HookEventMessage 物件(PreToolUse、PostToolUse、Stop 等)會與 assistant 訊息及工具結果從同一個 iterator 產生。這與 TypeScript SDK 的 includeHookEvents 選項相呼應;同次發布中,內建 CLI 也升級至 v2.1.129。

若您的 harness 已在 Python 中運作,並希望 hook 訊號與模型輸出處於相同控制流程,事件串流模式是合適選擇。對於組合多個工具、在 Claude Code 與 Codex 之間共用 hooks,或需要以結束碼語意進行阻擋的 harness,shell 指令碼 hook 合約(結束碼、stdin JSON、dispatchers)仍是正確的做法。

TypeScript SDK 在 2026年7月推出的系列版本(v0.3.205–v0.3.208),讓串流協定本身更具合約性。70 中斷現在會回傳具型別的收據:中斷會透過 still_queued UUID 確認哪些佇列訊息仍在等待,且 sessions 會在 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 等待期間中止,卻被轉換為 hook 成功的問題——這代表受 PreToolUse hook 閘控的工具,可能會在呼叫端中止後仍然執行。70 若您的 harness 將 SDK 端 hooks 作為權限閘門,並依賴中止來取消進行中的工作,請將 v0.3.208 視為最低版本;在此版本以下,「已中止」並不可靠地等同於「已阻擋」。Python v0.2.127(2026年7月24日)是當月第二個同類型的繞過問題——query() 在第一個 result frame 出現時便關閉 stdin,但背景 subagents 仍在執行,因此其 SDK-MCP 工具呼叫不僅因 "Stream closed" 失敗,還完全繞過了 PreToolUse hooks。85 請辨識並留意這種模式:SDK 端 hook 強制機制會在生命週期邊緣失效開放——中止、拆除、串流關閉——此時傳輸會在取得 hook 判定前終止;而且會無聲失敗,因為被繞過的 hook 看起來與核准操作的 hook 完全相同。請固定兩項 SDK 版本底線,並保留 shell-hook 層作為可證明的強制機制。

Effort 與 Session 來源資訊(2026年5月7日至8日)

Claude Code v2.1.132 與 v2.1.133 新增了兩項功能,讓 hooks 與 subprocesses 更能掌握其執行內容:3839

  • hook 輸入中的 effort.level Hooks 現在可在同時含有 tool_inputsession_id 的輸入中取得 effort.level JSON 欄位。同一數值也會匯出為 $CLAUDE_EFFORT 環境變數,因此 Bash 命令無須解析 JSON 即可讀取。可依 effort 層級調整 hook 成本:在 low 時略過昂貴驗證,在 xhighmax 時執行完整安全性閘門。
  • Bash subprocesses 的 CLAUDE_CODE_SESSION_ID 環境變數。 Bash 工具 subprocesses 現在可取得 hooks 所見的相同 session_id 值,並以 CLAUDE_CODE_SESSION_ID 公開。這補足了依 session 記錄狀態的工具之來源資訊缺口;過去這些工具無法將 subprocess 事件與 hook 事件建立關聯。

兩項訊號皆無須變更程式碼即可使用;忽略新欄位的既有 hooks 仍可正常運作。

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

Claude Code v2.1.136 為 auto mode 新增硬性拒絕層級,並修正了一組會影響長時間運行 harness 的 plugin 與 MCP 問題:40 - settings.autoMode.hard_deny無論使用者意圖或允許例外為何,Auto mode 分類器規則都會無條件封鎖。它位於既有的允許/拒絕比對器之上,是不可協商的治理槓桿。即使操作人員已在個人設定中核准較廣泛的類別,也應將絕不可覆寫的規則用於此處(強制推送至 main、含有祕密資訊的檔案、正式環境資料庫存取)。 - autoMode.classifyAllShell(v2.1.193)。預設情況下,auto-mode 分類器只會審查符合任意程式碼執行模式的 shell 指令。此設定會讓每一個 Bash/PowerShell 指令都通過分類器——這是受治理 harness 的最大涵蓋範圍立場——同一版本也會在逐字稿、toast 和 /permissions 中顯示拒絕原因,讓無聲封鎖成為可稽核的決策。Codex 在 v0.142.2 收緊了對應範圍:其安全分類器無法檢查的可執行 AST 區域,如出現在 PowerShell 指令中,現在需要核准,而不再悄然放行。66 - Hook ask為分類器設定下限(v2.1.211)。hook 與 auto mode 的優先順序問題如今已有定論:回傳 ask 權限決策的 PreToolUse hook,會將最終結果限制在提示層級——auto mode 無法再將未沙箱化的 Bash 指令升級為允許。69對受治理 harness 而言,這是缺失的保證層:hook 的 ask 是確定的人在迴路停止點,即使採取完全自動的權限立場仍然有效。對於希望由人員決策而非直接拒絕的作業,請使用 ask(不只是 exit-2 封鎖)。 - 分類器模型會在每個工作階段固定(v2.1.210)。auto-mode 分類器預設使用 Sonnet 5,並在整個工作階段內固定,因此在工作階段中途切換模型,不再改變進行權限分類的模型。69分類一致性是一項治理特性;這消除了隱性的漂移來源。 - MCP伺服器不再於/clear後消失。設定於 .mcp.json、plugins 與 claude.ai connectors 的伺服器,過去在 VS Code extension、JetBrains plugin 與 Agent SDK 中執行 /clear 後,會悄然從作用中的集合移除。修正已於 v2.1.136 推出。若您遇過「MCP server X 在工作階段中途消失」,原因就在此。 - 並行重新整理時遺失MCP OAuth refresh token。使用多個遠端 MCP 伺服器的使用者不再需要每天重新驗證。先前並行的重新整理寫入會彼此覆寫。 - Plan mode 現在會正確封鎖檔案寫入。相符的 Edit(...) 允許規則曾繞過 plan-mode 寫入保護。如今無論允許規則為何,都會強制執行 Plan mode。 - Plugin StopUserPromptSubmit hooks 不再於工作階段中途失敗。快取清理會刪除執行中工作階段仍在使用的 plugin 版本檔案,尤其會使這兩個 hook event 失效。修正後會固定仍在使用的版本。 - plugin.json中的skills項目。設定 skills 曾隱藏 plugin 預設的 skills/ 資料夾。現在該項目能正確組合,而將其指向檔案路徑時會明確報錯,不再悄然失敗。 - CLAUDE_ENV_FILE SessionStart hook 環境變數過期。SessionStart hooks 透過 CLAUDE_ENV_FILE 匯出的變數,曾在 /resume/clear 後過期。已在 v2.1.136 修正。工作階段現在會在這些事件時重新載入 env 檔案。

對治理 harness 而言,營運上值得關注的項目是 autoMode.hard_deny(新的槓桿)及 MCP 消失的修正(會破壞長時間工作階段的無聲失敗)。其餘皆屬改善使用體驗的清理工作。

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

Claude Code v2.1.139 新增兩項對正式環境 harness 至關重要的 hook 細節:供指令 hooks 使用的 args: string[] exec 形式,以及供 PostToolUse hooks 使用的 continueOnBlock4244當 hook 需要動態值或路徑預留位置時,建議使用 args。它會直接啟動指令而不經過 shell,避免一整類引號與注入錯誤。

PostToolUse hook 應將拒絕原因回饋給 Claude,並繼續當前回合而非結束流程時,請使用 continueOnBlock。應將其視為操作人員體驗功能,而非安全性繞過機制。封鎖閘門仍應阻止不安全的結果。

同一版本會將 CLAUDE_PROJECT_DIR 傳遞給 MCP stdio 伺服器,並允許 plugin 設定在指令中參照 ${CLAUDE_PROJECT_DIR}42MCP tools 應從該值解析相對於專案的路徑,而非依賴恰巧啟動伺服器的程序工作目錄。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-output terminalSequence 欄位,可在沒有控制終端機時提供桌面通知、視窗標題與鈴聲。50應將其視為操作人員訊號,而非強制執行機制。安全與品質閘門仍應透過正常的封鎖契約傳達失敗:結構化 hook output 加上可阻止不安全動作的 exit 行為。同一版本新增 claude agents --cwd <path>,用於將 Agent View 限定在單一目錄;也新增 CLAUDE_CODE_PLUGIN_PREFER_HTTPS,供缺少 GitHub SSH keys 的環境安裝 plugin,以及 ANTHROPIC_WORKSPACE_ID,供涵蓋多個 workspace 的 workload-identity federation 規則使用。50這些是團隊 harness 的架構細節:更聚焦的操作檢視、更少 plugin 安裝假設,以及明確的企業 token 範圍。

Claude Code v2.1.142 對背景工作階段編排的重要性高於 hook 語意。51claude agents 現在可透過明確的目錄、設定、MCP、plugin、權限、模型與 effort flags 派送背景工作階段,而不必依賴 wrapper 狀態。該版本中,Fast mode 預設使用 Opus 4.7;對於經測量後依賴 Opus 4.6 行為的 harness,則可使用 CLAUDE_CODE_OPUS_4_6_FAST_MODE_OVERRIDE=1 固定版本——截至 v2.1.219,Opus 4.7 已完全退出 fast mode,而 /fast 適用於 Opus 5 與 Opus 4.8。84根層級 plugin SKILL.md 探索與 plugin 提供的 LSP 可見性,降低了封裝上的模糊性。針對 MCP_TOOL_TIMEOUT、既有背景工作階段 worktrees、daemon 睡眠/喚醒與升級後清理,以及 plugin 快取清理的修正,補齊了原本看似編排 bug 的可靠性缺口。

Stop-hook 引導、跨工作階段權限與 multi-agent v2(2026年6月)

6月初的4項變更,對 harness 與 multi-agent 設計至關重要。59

Stop/SubagentStop hooks 新增引導通道。自 Claude Code v2.1.163 起,StopSubagentStop hook 可回傳 hookSpecificOutput.additionalContext,向 Claude 提供回饋並讓回合持續進行,而不會將回應標示為 hook error。在此之前,Stop hook 唯一真正的槓桿是 exit-2 封鎖;這看起來像錯誤,且會計入連續封鎖上限。對品質閘門 harness 而言,這是更乾淨的原語:偵測到「您說已完成,但測試仍失敗」的 Stop hook,現在可以注入「以下項目仍在失敗,請繼續」,而不是硬性封鎖。真正需要停止的情況請使用封鎖;「尚未完成,原因如下」則使用 additionalContext

跨工作階段訊息不再攜帶借用的權限。v2.1.166 強化了多工作階段情境:透過另一個 Claude 工作階段的 SendMessage 轉送的訊息,不再攜帶來源使用者的權限,因此接收工作階段會拒絕轉送的權限請求,auto mode 也會封鎖這些請求。若您的編排讓 agents 彼此傳訊,應將傳入訊息視為不受信任的資料,而非已驗證的指令。這與安全性章節套用於 tool output 的原則相同,只是延伸至 inter-agent messaging。截至 v2.1.199,Claude Code 也會在兩個 agents 共用相同名稱而導致 SendMessage 路由錯誤時偵測並發出警告——這是對此權限邊界的可靠性補強,因為訊息送達錯誤的同名 agent,本身就是另一類編排 bug。 Sessions現在是同級的一等公民(v2.1.224+)。跨 session 訊息傳遞已從 relay 強化邁向完整功能面:SendMessage/ListAgents讓各個 session 能在您的 macOS/Linux 機器之間探索並互傳訊息;接收端則提供crossSessionInbound接受/保留/拒絕控制。而self-hosted runners讓Claude Code網頁與行動 session 能在您掌控的硬體上執行。就 harness 架構而言,這讓「一個 session」成為可定址節點:探索、傳入政策,以及前述權限邊界,如今都是平台原生機制,而非 mailbox scripts(Claude Code guide記錄了完整契約)。87另有一項政策變化:auto mode將於2026年8月14日成為 Pro、Max 與 Team 方案的預設權限模式——若 harness 將 Manual mode 提示視為 human-in-the-loop 的最後防線,應明確釘選defaultMode,而非想當然耳。87

模型韌性成為一等設定。fallbackModel設定現在可串接最多 3 個備援模型;當主要模型過載或無法使用時,會依序嘗試。遇到非預期、不可重試的API錯誤時,該 turn 也會使用備援模型自動重試一次。對長時間執行的自主 harness 而言,這能將短暫的主要模型中斷轉為平順降級,而非直接遺失一次執行。claude agents --json也新增了waitingFor欄位(v2.1.162),可顯示受阻背景 session 正在等待什麼,例如權限提示——對輪詢 agent 群的任何協調器而言,這是可觀測性的一大提升。

適用於 clean-room 治理與疑難排解的 safe mode。Claude Code v2.1.169 新增--safe-mode旗標(以及對應的CLAUDE_CODE_SAFE_MODE環境變數),可在停用所有自訂項目的狀態下一次啟動 session:CLAUDE.md、plugins、skills、hooks 及MCP servers。60這正是 harness 的反面——刻意建立的 clean-room。它可用來回答每位操作人員終將面對的問題:「這個行為來自模型,還是來自我設定的某些東西?」當 hook 誤觸發、skill 在不該啟用時啟用,或MCP server 汙染 context 時,--safe-mode可提供一個已知為空的基準,供您進行差異比對。它也是一種治理原語:讓您在 harness 通常授予的持續權限一概不存在時執行裸模型;當您需要重現結果,且不希望任何操作人員定義的 scaffolding 影響它時,這點格外重要。

關於模型 tier 的說明。截至Claude Code v2.1.197(2026年6月30日),Claude Sonnet 5 已是新 session 隨附的預設模型——原生 1M context、促銷期間每 MTok $2/$10 的定價至 8 月 31 日——取代 Opus 4.8 成為開箱即用的選擇。本指南將Opus 5(claude-opus-5)視為建議的 agentic 預設模型:除非您有意選擇其他模型,否則應以它執行自主 harness;因為長期、高風險的 agent loop,正是 Opus 的推理深度值得其成本的場景。Opus 5 於2026年7月24日隨Claude Code v2.1.219 推出,成為新的預設 Opus——1M context、每 MTok $5/$25(與其取代的 Opus 4.8 價格相同),fast mode 為 $10/$50,速度約為預設速度的 2.5 倍——而Anthropic指出,它在 Frontier-Bench v0.1 的表現超過 Opus 4.8 的兩倍,且以一半成本達到與 Fable 5 的 CursorBench 3.2 分數相差 0.5% 以內的成績。8491同樣價格、更強能力,而且Anthropic形容該模型「在驗證自身工作與謹慎迭代方面強得多」;對 harness 工作而言,這是難得不需要成本論證的升級,從 4.8 遷移只需變更 id。若工作對成本敏感或吞吐量需求高,而其速度與智慧的比例更具優勢,則可降用 Sonnet 5。Opus 之上還有Claude Fable 5claude-fable-5),於2026年6月9日推出——這是一個新 tier,被描述為Anthropic最強大的模型;它是已安全化、可供一般用途的「Mythos-class」系統,且可透過Claude Code v2.1.170 的/model claude-fable-5選用。60應審慎使用更高 tier,只在原始推理深度足以合理化其成本的決策上採用,而不是將它設為整個 agent 群的通用設定。Opus 5 切換還有兩項例行影響:Opus 4.7 已退出 fast mode(/fast現在適用於 Opus 5 與 Opus 4.8),而 auto-mode classifier 的 Fable-5 fallback——自 v2.1.176 起為「可用的最佳 Opus 模型」——現在會解析為 Opus 5。84

Codex 推出了 multi-agent v2。Codex CLI v0.137.0 將 runtime 選擇保留在各個 thread 中,為 spawned agents 提供更乾淨的 follow-up 與 metadata 預設值(hide_spawn_agent_metadata現在預設為 true),並將原始 parent events 傳遞給 child listeners。其 subagent 模型維持明確設計:內建 default/worker/explorer agent types、以 TOML 定義的 custom agents,以及並行控制(agents.max_threads預設為 6,agents.max_depth預設為 1)。同一版本還新增 v1 skills extension,支援每 turn 的 skill-catalog 解析,以及新的 thread-start/turn-error lifecycle contributor events;在維持 kernel-sandbox 姿態作為預設邊界的同時,縮小了與Claude Code hook/skill 功能面的差距。接著 Codex v0.138.0–v0.139.0 針對 production 強化 multi-agent v2:agent 間的訊息 payload 現已加密;v2 agent config catalog 與 agent-residency LRU 用於管理哪些 agents 保持常駐;並行數則依active execution而非 spawned threads 計算,因此閒置 agents 不再占用 slot。61lifecycle API也更趨成熟——close_agent更名為interrupt_agent(v0.139.0),以反映它中斷的是執行中的 agent,而不只是關閉 handle——且由 subagent 觸發的MCP startup warnings,現在會維持在所屬 thread 範圍內,不再重複出現在 parent 的 transcript。61對任何建置 Codex 端 orchestration 的人而言,這些正是 demo 與 fleet 的分水嶺:加密的訊息傳輸、受限的常駐管理、按執行數計算的並行控制,以及不會越過 thread 邊界洩漏的 warnings。Codex v0.140.0 接著開啟跨tool的接點:/import可選擇性地從Claude Code匯入 setup、project config 與近期 chats 至 Codex,而 sessions 也變得可永久刪除(codex delete/delete,並提供確認防護)。64/import是官方首次承認操作人員會在 harness 之間移動——您為其中一個建立的設定,不再被困在那裡。


記憶與上下文

每段 AI 對話都在有限的 context window 中運作。隨著對話增長,系統會壓縮較早的回合,為新內容騰出空間。此壓縮過程會造成資訊遺失。第3回合記錄的架構決策,到了第15回合可能已不復存在。9

多回合崩解的三種機制

MSR/Salesforce 研究指出3種彼此獨立的機制,各自需要不同的介入方式:9

機制 發生情況 介入方式
上下文壓縮 捨棄較早資訊以容納新內容 將狀態 checkpointing 至 filesystem
推理一致性流失 模型跨回合推翻自身先前的決策 使用全新上下文進行迭代(Ralph loop)
協調失敗 多個 agents 持有不同的狀態快照 在 agents 之間採用共用狀態協定

策略1:以 Filesystem 作為記憶

跨越上下文邊界時,最可靠的記憶存在於 filesystem 中。Claude Code 會在每次 session 開始時,以及每次 compaction 後,讀取 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 檔案會跨 sessions 記錄錯誤、決策與模式。當您發現 VAR 為0時,((VAR++)) 在 bash 搭配 set -e 會失敗,便將此情況記錄下來。3個 sessions 後,當您在 Python 遇到類似的整數邊界情況時,MEMORY.md 的項目便會帶出這個模式。15

Auto Memory(v2.1.32+): Claude Code 會自動記錄並回想專案上下文。工作期間,Claude 會將觀察結果寫入 ~/.claude/projects/{project-path}/memory/MEMORY.md。Auto memory 會在 session 開始時,將前200行載入 system prompt。請維持精簡,並將詳細筆記連結至個別主題檔案。6 自 v2.1.210 起,超過大小限制的 MEMORY.md 寫入會直接報錯,而非悄悄截斷69——失敗會在寫入時顯現,而不是讓記憶項目無聲消失。若您的 harness 會自動寫入記憶,請處理該錯誤;這是平台告訴您檔案需要整理,而不是要您重試。

記憶整理優先於記憶容量(2026年5月): 一篇近期探討 LLM-agent 協作的 arXiv preprint,將擴大的 recall 視為可能的失敗模式:在作者的實驗中,較長的可見歷史紀錄使28種模型遊戲設定中的18種協作表現下降。48 請將此視為設計警訊,而非已定論的法則。實務規則已足夠清楚:讓 MEMORY.md 保持精簡、連結至詳細資料,並在 handoffs 中放入可立即據以決策的摘要。原始逐字稿傾印、tool logs 與冗長 recall feeds 應放在可搜尋的儲存空間,而非自動置入目前的 prompt。

策略2:主動 Compaction

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

適合進行 compaction 的時機: - 完成明確的子任務後(功能完成、bug 修正) - 開始處理程式碼庫的新區域之前 - 當 Claude 開始重複或遺忘先前上下文時 - 密集 session 期間約每25至30分鐘

CLAUDE.md 中的自訂 compaction 指示:

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

Compaction 保護對話;/cd command(Claude Code v2.1.169)則保護 prompt cache。它可在不中斷回合中累積 cache 的情況下,將 session 切換至新的工作目錄。60 在此之前,變更目錄意味著必須開啟全新 session,並使用冷 cache。對於從一個 repository 轉向相鄰 repository 的長時間 session——這在 monorepo 與多服務工作中很常見——/cd 可在重新指向 filesystem context 的同時,保留昂貴的 cached prefix。

策略3:Session Handoffs

對於跨越多個 sessions 的任務,請建立能完整記錄狀態的 handoff documents:

## 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 成本,向接手的 session 提供完整上下文。使用 claude -c(continue)開始新 session,或讀取 handoff document,即可直接進入實作。15

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

對於超過60至90分鐘的 sessions,請每次迭代啟動一個全新的 Claude instance。狀態透過 filesystem 持續保存,而非依賴對話記憶。每次迭代都可取得完整的 context budget:16

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

與單一長時間 session 比較:

Minute 0:   [fresh context]        -> productive
Minute 30:  [context filling]      -> somewhat productive
Minute 60:  [mostly consumed]      -> degraded
Minute 90:  [compaction pending]   -> significantly degraded
Minute 120: [compressed, lossy]    -> errors accumulate

每次迭代使用全新上下文的方法,會以15%至20%的 orient step 額外成本(讀取狀態檔案、掃描 git history),換取每次迭代完整的認知資源。16 成本效益的判斷如下:少於60分鐘的 sessions 中,單一對話較有效率。超過90分鐘後,儘管存在額外成本,全新上下文仍可產生品質更高的輸出。

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

Anthropic 的 Claude Managed Agents 於2026年5月6日將 Dreaming 以 Research Preview 形式推出。35 根據 Anthropic 的說明:「Dreaming 是一項排程程序,會檢閱您的 agent sessions 與 memory stores,擷取模式並整理記憶,讓 agents 隨時間持續改善。」35

Dreaming 在 sessions 之間於背景執行,不會位於 critical path 上。它補強而非取代 filesystem-as-memory 模式:您的 MEMORY.md 檔案仍是承重基礎;Dreaming 會將整理過的 memory entries 寫入 Managed Agents memory store,agent 會在 session 開始時讀取該記憶。對於混合自架 filesystem state 與 managed-side curation 的 harnesses,這兩種模式可以並存。

Filesystem Memory Dreaming(Managed)
記憶儲存位置 您的 repo,受 version control 管理 由 Anthropic 管理的 memory store
更新時機 您手動或透過 hooks 寫入項目 sessions 之間的背景程序
擷取內容 您標記的決策、錯誤與模式 從 session history 擷取的模式
最適用於 專案專屬的制度性知識 您無法手動發現的跨 session 模式探索

Dreaming 目前仍是 Research Preview,行為可能變動。上述記錄的 session-handoffs 與 CLAUDE.md 模式,仍是 self-hosted harnesses 的權威記憶機制。

反模式

只需要10行,卻讀取整份檔案。 讀取單一2,000行檔案會消耗15,000至20,000 tokens。使用行位移:Read file.py offset=100 limit=20 可節省絕大多數成本。15

在上下文中保留冗長的錯誤輸出。 完成 bug 除錯後,您的 context 中可能保留40多份失敗迭代的 stack traces。修正 bug 後執行一次 /compact,即可釋放這些無用負擔。

每次 session 開始時都讀取所有檔案。 讓 Claude Code 的 glob 與 grep tools 依需求找出相關檔案,可省下超過100,000 tokens 的不必要預先載入。15


Subagents 模式

Subagents 是專門化的 Claude 執行個體,可獨立處理複雜任務。多數 subagents 會從乾淨的 context 開始(不受主要對話干擾);下文的 fork 類型則是例外,會刻意繼承所有內容。它們使用指定工具執行作業,並以摘要形式回傳結果。探索結果不會讓主要對話變得臃腫,只有結論會回傳。[⁠^5]

內建 Subagent 類型

類型 模型 模式 工具 適用情境
Explore 繼承工作階段模型,上限為 Opus(v2.1.198;在此之前一律使用 Haiku) 唯讀 Glob、Grep、Read、安全的 bash 探索程式碼庫、尋找檔案
General-purpose 繼承 完整讀寫 所有可用工具 複雜研究與修改
Plan 繼承(或 Opus) 唯讀 Read、Glob、Grep、Bash 執行前規劃
Fork 一律使用父項的模型 完整讀寫 與主要工作階段相同 需要完整對話的工作:它會繼承完整歷史記錄、system prompt、工具與 prompt cache,而自身的工具呼叫不會進入您的 context。自 v2.1.232 起,在互動式工作階段中預設啟用;在 -p 與 SDK 中停用88

建立自訂 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 伺服器的拒絕規則完全不起作用。[⁠^91]
model sonnetopushaikuinherit(預設:inherit
permissionMode default(自 v2.1.200 起,在 CLI/IDE 中標示為「Manual」;manual 是仍沿用原設定值的有效別名)、acceptEditsdelegatedontAskbypassPermissionsplan。自 v2.1.212 起,Task tool 每次呼叫使用的 mode 參數已淘汰;subagents 會繼承父工作階段的權限模式,而這個 frontmatter 欄位則用於覆寫個別 agent 的設定69
maxTurns subagent 停止前允許的 agentic turns 上限
memory persistent memory 範圍:userprojectlocal
skills 啟動時自動將 skill 內容載入 subagent context。自 v2.1.133 起,subagents 也會像父工作階段一樣,透過 Skill tool 探索專案、使用者及 plugin skills。舊版會悄然從 subagent context 中捨棄這些內容。[⁠^67]
hooks 僅限此 subagent 執行期間使用的生命週期 hooks
background 強制設為背景任務。自 v2.1.198 起,subagents 預設會在背景執行,lead 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,而這正是此機制原本要防止的問題。[⁠^97] 若您將 isolation: worktree 視為安全邊界,而不只是便利功能,請將 v2.1.210 視為最低版本。另一方面,配套的權限變更則朝相反方向發展:自 v2.1.211 起,「always allow」規則會持續保留在儲存庫根目錄,並且跨越各個 worktrees,因此在某個 worktree 中接受的規則,也會套用到同一儲存庫的其他 worktrees。[⁠^97] 這對並行 worktree agents 而言相當便利,但也表示在拋棄式實驗中授予的允許權限,不會隨實驗結束而消失。授權時應著眼於整個儲存庫,而非只考慮眼前的 worktree。

v2.1.216 完成了最後一塊拼圖,讓 worktree 隔離從單純修正錯誤,提升至足以強制執行的等級。[⁠^102] v2.1.210 的修正可防止 worktree subagents 透過一般 git 呼叫修改主要 checkout,但 git 本身提供明確的重新導向方式,例如 git -C <path>--git-dir,以及 GIT_DIR/GIT_WORK_TREE 環境變數;使用 worktree 隔離的 subagent 仍能藉此指向共用 checkout。如今,這些逃逸途徑已全數封閉。同一版本還修正了 worktree 工作階段偶爾進入其他專案殘留 worktree 的問題;阻止 workflow 與 scheduled-task 寫入作業跟隨置於 .claude、指向專案外部目標的 symlink;並讓 /rewind 拒絕跨越 symlinks 與 hard links。這 4 項修正的共通原則如出一轍:隔離邊界不僅要能防範預設行為,還必須能抵禦蓄意重新導向,例如覆寫 git 環境設定或植入 symlink。若 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 中執行、找出相關程式碼,並回傳摘要。主要 context 因此能保持乾淨。

遞迴防護

若未限制 spawn,agents 會委派給其他 agents,而後者又繼續委派;每一層都會流失 context 並消耗 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"

關鍵教訓:請使用 spawn budgets,而不只是 depth limits。以深度為基礎的限制會追蹤父子鏈(在第 3 層封鎖),卻忽略寬度:第 1 層有 23 個 agents,仍然只是「深度 1」。spawn budget 會追蹤每個父項的活躍子項總數,並將其限制在可設定的上限內。預算模型對應真正的失敗模式(agents 總數過多),而不是替代指標(巢狀層級過多)。[⁠^7]

預設巢狀深度已變動 3 次;請勿以此作為設計基礎。 Claude Code v2.1.172(2026年6月10日)允許 sub-agents 產生自己的 sub-agents,最多可巢狀至 5 層;在此之前,委派實際上僅有 1 層。[⁠^90] 此設定從 v2.1.172 維持到 v2.1.216。v2.1.217(2026年7月21日)將其降至 1,預設關閉巢狀 spawn。接著,v2.1.219(2026年7月24日)取其中道:「Subagents 現在預設最多可產生深度 3 的巢狀 subagents(原為 1);設定 CLAUDE_CODE_MAX_SUBAGENT_SPAWN_DEPTH=1 可停用巢狀功能。」[⁠^112] 從 5 降至 1,再升至 3;後兩次變更更在短短 3 天內發生。

重點並不是其中任何一個數字才正確,而是平台仍在摸索合適的預設值。因此,讓 harness 照單全收「目前版本附帶的預設值」並非明智之舉。請將巢狀深度視為明確的預算項目:把 CLAUDE_CODE_MAX_SUBAGENT_SPAWN_DEPTH 設為架構實際所需的深度;對多數 orchestration 而言,通常是 1 或 2。如此一來,升級就不會悄然改變 agent fleet 的委派深度。無論預設值如何反覆變動,核心論點始終不變:agents 委派給 agents 的鏈狀結構,消耗 context 與 tokens 的速度往往快於產生成果的速度。深度是一項必須編列預算因應的風險,而非值得追求的能力。無論下一次預設值如何漂移,上述遞迴防護都能避免深層樹狀結構擴散成數百個活躍 agents;唯有自行設定限制,才能確保下一版發布後,深度數字仍符合您的原意。

Auto mode 現在會在啟動前審查 spawn。 Claude Code v2.1.178 補上了相應的治理缺口:在 auto mode 中,subagent spawn 會在 subagent 啟動之前接受 permission classifier 評估,而非等到開始採取動作後才評估。[⁠^91] 過去可以產生 subagent,讓它要求執行父工作階段原本會遭封鎖的動作;spawn 本身因而成為繞過限制的手段。在 spawn 階段進行審查,表示遞迴防護與權限模型終於相互銜接:不能再將子項當成漂白步驟,用來執行政策禁止的動作。

平台現在內建原生 spawn budget。 Claude Code v2.1.212(2026年7月)新增第一方失控迴圈防護:每個工作階段預設最多可 spawn 200 個 subagents(使用 CLAUDE_CODE_MAX_SUBAGENTS_PER_SESSION 調整,/clear 會重設計數器),WebSearch 每個工作階段也以 200 次呼叫為上限(CLAUDE_CODE_MAX_WEB_SEARCHES_PER_SESSION)。[⁠^97] 本節自 v1.0 起以 userland scripting 記錄的 spawn-budget 模式,如今已由平台原生提供,證明預算模型比深度模型更切合實際。然而,請留意其尺度:200 次 spawn 比上述設定中的 12-agent 預算高出一個數量級。原生上限是防止迴圈徹底失控的保險絲,而不是依照您的架構調校的預算。請保留 userland guard,用於實施每個父項的預算、追蹤深度,以及設定符合 orchestration 實際需求的限制;平台上限則負責攔下漏網之魚。

第一方 guardrail 現已涵蓋 4 個軸向。 其中 3 個正好支援本節 userland guard 所追蹤的項目:每個工作階段的 spawn 總數(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)。[⁠^106][⁠^112] v2.1.219 新增了 userland guards 通常不具備的第 4 個軸向:orchestration width,也就是單一已規劃 workflow 可包含的 agents 數量。預設指引為「以少於 15 個 agents 為目標」,並可透過任何 settings 檔案中的 workflowSizeGuideline 設定(詳見下方 Workflow Tool 一節)。spawn-budget 模式的每個原始設計軸向,如今都有平台機制支援,還多了一項原先未涵蓋的軸向。

尺度方面的提醒依然適用,但各項程度不一。200 次 spawn 與 20 個並行 agents 都屬於保險絲,其數量比上述設定中的 12-agent deliberation 預算高出一個數量級,目的是攔截失控迴圈,而非塑造架構。width guideline 則是第一個與實際預算位於同一尺度的原生數字:每個 workflow 15 個 agents,與本指南的 12 個相差無幾;採用平台預設幾乎不需付出代價,若不採用,也應有充分理由。請將 3 個保險絲設為您能合理辯護的值,並依照預期的 orchestration 結構設定 width guideline。

Agent Teams(Research Preview)

Agent Teams 會協調多個獨立運作的 Claude Code 執行個體。它們可透過共用 mailbox 與 task list 溝通,也能互相質疑彼此的發現:[⁠^5]

元件 角色
Team lead 建立團隊、產生 teammates 並協調工作的主要工作階段
Teammates 各自處理指派任務的獨立 Claude Code 執行個體
Task list teammates 可認領並完成的共用工作項目(使用檔案鎖定)
Mailbox 供 agents 彼此溝通的訊息系統

啟用方式:export CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS=1

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

Subagents Agent Teams
溝通 僅回報結果 Teammates 可直接互傳訊息
協調 由主要 agent 管理所有工作 透過共用 task list 自主協調
最適合 只重視結果的聚焦型任務 需要討論與協作的複雜工作
Token 成本 較低 較高(每位 teammate 都有獨立的 context window)

Agent View 與 Goal Loops(2026年5月)

Claude Code v2.1.139 新增了 Agent View。這項 research-preview 介面可透過 claude agents 啟動,並在單一畫面中顯示執行中、受阻及已完成的 Claude Code 工作階段。[⁠^70][⁠^71] 官方文件將其定位為可用來分派及管理多個工作階段、查看各工作階段的執行內容,並辨識哪些工作階段需要操作人員介入的工具。[⁠^71] 它為多 agent 工作提供了最終摘要無法取代的作業檢視能力。

推展 subagent 或 team 模式時,請使用 Agent View 檢查哪些工作階段受阻、哪些仍在執行,以及工作分配是否符合預期架構。但別把它當作品質證明。它提供的是 observability;工作是否可靠,仍須由測試、review gates 與 evidence reports 判定。

同一版本也新增了 /goal,可設定完成條件,並讓 Claude 跨越多個 turns 持續執行,直到條件達成;互動模式、-p 與 Remote Control 皆支援此功能。[⁠^70] 請將 /goal 視為工作階段層級的 completion loop,而非 deterministic gates 的替代品。它有助於讓 agent 專注於目標,但凡是失敗時必須阻擋流程的測試、citation checks、deploy checks 與 security hooks,仍應由命令或指令碼支援。

Workflow Tool(v2.1.147+)

Claude Code 的 dynamic workflows 已正式推出,且預設可用:自 v2.1.154 起,它可在背景協調數十至數百個 agents,並透過 /workflows 監控;v2.1.202 加入了「Dynamic workflow size」的 /config 控制項;v2.1.219 則加入 workflowSizeGuideline settings key,預設指引為 medium,也就是除非另有指示,否則以少於 15 個 agents 為目標。此功能早一版在 v2.1.147 首度登場,當時是預設關閉、須透過 CLAUDE_CODE_WORKFLOWS=1 啟用的 Workflow tool;如今該 flag 時代已成歷史,但它揭示的架構意義依然成立。[⁠^80] 對於過去必須仰賴自訂 dispatch scripts、mailbox state 與 subagent 協調慣例的流程,它為 Claude Code 提供了第一方 orchestration primitive。

請勿移除其周邊的 harness。Workflow 能組織執行流程,卻無法取代安全模型。應繼續以 PreToolUse 和 PostToolUse hooks 作為封鎖層,保留 spawn budgets 或 workflow step budgets 以避免寬度失控,讓 filesystem state 保持可稽核,並將最終 evidence reports 置於模型的自我評估之外。實務上,請使用 Workflow 定義 orchestration shape,並以 hooks、測試與 review gates 判定真實結果。

Dynamic workflows 現在對寬度提出了明確主張(v2.1.219)。 Dynamic workflows 的預設 size guideline 為 medium,也就是「以少於 15 個 agents 為目標」;Dynamic workflow size 的 /config 中另有其他大小及不設限選項,執行中的 workflow 狀態列也會顯示目前指引。[⁠^112] 此數字屬於建議而非強制限制;它會引導 planner,而不會封鎖過寬的計畫。值得設定的關鍵在於其傳遞機制:新的 workflowSizeGuideline settings key 可在任何 settings 檔案中設定,包括 managed settings 與 project settings;自 v0.3.219 起,它也已納入 TypeScript SDK settings types。因此,orchestration width 可以由團隊或組織統一規範,而不必讓每位操作人員各自重新摸索。[⁠^113] 請在專案層級設定此值,以反映程式碼庫實際的工作拆分方式。另有 2 項操作注意事項:當 settings 檔案正在控制該值時,/config 中的對應列會自動隱藏;此行為雖然正確,但若不明就裡,看起來會像設定項目遺失。此外,由於這項指引只會引導 planner,而不會阻止執行,因此它屬於形態欄,而非安全欄。寬度失控仍應由 spawn cap 負責防範。

值得保留的觀點是:這是第 4 個第一方 guardrail 軸向,也就是 orchestration width;另外 3 個則是 spawn count、nesting depth 與 concurrent execution。這也是 Anthropic 第一個按照合理工作規模校準,而非當作失控保險絲的軸向。每個 workflow 15 個 agents,與本指南自 v1.0 起採用的 12-agent deliberation 預算位於同一數量級。當平台預設與自訂預算從不同方向殊途同歸時,這幾乎已是此類數字所能得到最接近獨立驗證的結果。

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

Claude Code v2.1.212 重塑了 2 項 orchestration primitives。[⁠^97] /fork 現在會依據目前的對話狀態建立新的背景工作階段;分叉後的執行線會獨立運作,原始工作階段則繼續處理其他工作。先前在同一工作階段內的行為已重新命名為 /subtask。這項區別對 orchestration 設計相當重要:/subtask 是單一工作階段生命週期內、範圍受限的支線任務;/fork 則能以低成本建立繼承完整 context 的並行背景工作階段,其性質更接近 Ralph-loop spawn,而非 subagent。若您的 harness scripts 原本假設 /fork 會留在同一工作階段內,如今它們將改為分派背景工作。

同一版本也會自動將緩慢的 MCP 呼叫轉入背景:執行超過 2 分鐘的 MCP tool call,會自動移至背景執行(可使用 CLAUDE_CODE_MCP_AUTO_BACKGROUND_MS 調整門檻)。[⁠^97] 緩慢的 MCP 伺服器不再阻塞 agentic loop;然而,這也表示「工具已回傳」與「turn 已繼續」不再是同一事件。因此,原本假設 MCP 會同步完成的 hooks 或 scripts,應以工具結果為準,而不是 turn boundary。

針對 headless orchestration,v2.1.211 新增了 --forward-subagent-text(環境變數:CLAUDE_CODE_FORWARD_SUBAGENT_TEXT),可將 subagent assistant 文字轉送至 stream-json 輸出。[⁠^97] 讀取消費父項 stream 的 coordinator process,現在可直接觀察 subagent 進度,不必輪詢 transcripts 或等待最終摘要;這正好補足預設在背景執行的 subagents 所需的 observability。v2.1.219 更將支援範圍延伸至第 1 層之後:在深度 2 或更深處產生的 subagents,如今也會出現在轉送的 stream 中,並以產生它們的 Agent tool_use id 作為索引鍵。[⁠^112] 這個索引鍵才是值得作為設計基礎的部分。如今巢狀功能重新預設啟用,扁平的 subagent 文字 stream 會語意不明;該 id 能讓 coordinator 辨識哪個父項產生了哪個子項,從 stream 重建 delegation tree,而不必依賴推測。若您的 stream consumer 是依照單層 subagents 設計,現在將收到它從未預期存在的 agents 所輸出的文字;請依產生它們的 tool_use id 分組,而不要假設每一行轉送內容都來自直接子項。


多代理協作編排

單一代理的AI系統存在結構性的盲點:它們無法挑戰自身假設。7 多代理審議會在任何決策定案前,強制從多個角度進行獨立評估。

跨工具編排(2026年4月):Google於4月7日開源了Scion——一個多代理 hypervisor,可將Claude Code、Gemini CLI及其他「deep agents」作為並行程序執行;每個程序都有隔離的 container、git worktree與憑證。可在本機、hub或Kubernetes執行。其明確理念是:「isolation over constraints」——代理可在基礎設施層級強制執行的邊界內維持高度自主,而非受限於prompt。25 這直接將 subagent isolation 的論點延伸到不同工具供應商之間。若您的工作流程涵蓋Claude與OpenAI模型,Scion是首個具備每代理 worktree與憑證隔離的跨工具 subagents實際參考實作。

辯論並非萬靈丹:M3MAD-Bench研究群集(2026年初)發現,多代理辯論會停滯,且可能遭誤導性共識顛覆——當其他代理自信地斷言錯誤答案時,合理論點反而會落敗。26 Tool-MAD透過為每個代理提供異質工具存取權,並在評審階段採用 Faithfulness/Relevance分數來改善此問題。若您正在建置辯論式編排,應投入於(a)每個代理的工具異質性,以及(b)量化的評審計分,而不是假設更多代理=更好的答案。

受管多代理編排與Outcomes(公開測試版)

若不想自行建置下文所述的審議基礎設施,Multiagent Orchestration已於2026年5月6日在Claude Managed Agents進入公開測試版。35 根據Anthropic:「當單一代理無法妥善完成過多工作時,多代理編排讓主導代理可將工作拆分,並將每一部分委派給具備自身模型、prompt與工具的專家。」35 專家「會在共用檔案系統中並行工作,並為主導代理的整體 context作出貢獻。」35

Tracing隨附提供。根據Anthropic:「您也可以在Claude Console中追蹤每一步:哪個代理做了什麼、依何順序、為什麼做,完整掌握工作如何被委派與執行。」35

配套的公開測試功能是Outcomes。根據Anthropic:「您撰寫一份描述成功樣貌的 rubric,代理便會朝此目標努力。獨立的 grader會在自己的 context window中,依據您的標準評估輸出,因此不會受到代理推理影響。」35 這是本節後續記錄之雙閘門驗證模式的受管服務版本:rubric取代手寫 gate,獨立 grader取代共識驗證器。

自行託管的審議(本節) 受管Multiagent+Outcomes
專家路由 您撰寫 spawn邏輯 主導代理將工作拆分
驗證 雙閘門 hooks+共識計分 在獨立 context中的rubric+grader
追蹤 您自行埋設追蹤機制 Claude Console
最適合 需要完整控制權或特定工具組合的模式 驗證 rubric即為所需契約的標準委派模式
定價 僅有 Token+harness成本 標準 Token加上Managed Agents session-hour費率(4月8日發布基準;請見23

當驗證必須整合自身 hook surface(PreToolUse阻擋、exit-code語意、自訂 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%的價值。其餘作法都只是漸進式改善。

信心觸發條件

並非每項工作都需要審議。信心計分模組會評估4個面向:17

  1. 模糊性-查詢是否存在多種合理解讀?
  2. 領域複雜度-是否需要專業知識?
  3. 風險程度-決策是否可逆?
  4. context相依性-是否需要理解更廣泛的系統?

分數對應至3個等級:

等級 閾值 動作
HIGH 0.85+ 不經審議直接執行
MEDIUM 0.70-0.84 執行並記錄信心註記
LOW 低於0.70 觸發完整多代理審議

閾值會依工作類型調整。安全性決策需要0.85的共識;文件變更僅需0.50。這可避免為簡單工作過度設計,同時確保高風險決策受到審慎檢視。7

狀態機

共有7個階段,每個階段均以前一階段為閘門:7

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

RESEARCH:獨立代理研究主題。每個代理會獲得不同 persona(Technical Architect、Security Analyst、Performance Engineer等)。context isolation可確保代理在研究期間無法看見彼此的發現。

DELIBERATION:代理可看見所有研究發現,並提出替代方案。Debate代理辨識衝突;Synthesis代理整合不互相矛盾的發現。

RANKING:每個代理依5個加權面向,為每種建議方法計分:

面向 權重
影響力 0.25
品質 0.25
可行性 0.20
可重用性 0.15
風險 0.15

雙閘門驗證架構

兩個驗證閘門會在不同階段捕捉問題:7

Gate 1:共識驗證(PostToolUse hook)。每個審議代理完成後立即執行: 1. 階段至少必須達到RANKING 2. 至少完成2個代理(可設定) 3. 共識分數須達到因應工作調整的閾值 4. 若有任何代理持異議,必須記錄其疑慮

Gate 2:Pride Check(Stop hook)。在 session可結束前執行: 1. 方法多元:必須涵蓋多個不同 persona 2. 衝突透明:異議必須記錄理由 3. 複雜度處理:至少產生2個替代方案 4. 共識信心:歸類為強(高於0.85)或中等(0.70-0.84) 5. 改善證據:最終信心高於初始信心

在不同生命週期節點使用兩個 hooks,符合失敗實際發生的方式:有些問題立即顯現(分數不佳),有些則逐漸累積(多樣性不足、缺少異議文件)。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分以內,表示可能是共用 context遭污染,而非獨立評估。當5個代理評估驗證重構時,全部將安全風險評為7.1至7.4;以全新的 context isolation重新執行後,分數分布擴展至5.8-8.9。

制式異議:代理複製彼此的疑慮措辭,而非產生獨立反對意見。

缺少少數觀點:具有衝突優先事項的 persona一致核准(Security Analyst與Performance Engineer很少會在所有事情上意見相同)。

一致性偵測器能抓到明顯案例(約10-15%的審議中,代理過快趨於一致)。其餘85-90%的情況,則由共識與pride check閘門提供足夠驗證。

審議中未奏效的作法

自由形式的辯論回合。針對資料庫索引討論進行3輪來回文字辯論,產生了7,500個 Token的辯論。第1輪:真正的歧見。第2輪:重述立場。第3輪:用不同文字重複相同論點。結構化面向計分取代自由辯論後,成本降低60%,排名品質也隨之提升。7

單一驗證閘門。第一個實作僅在 session結束時執行一個驗證 hook。某代理以0.52共識分數(低於閾值)完成審議後,仍持續處理不相關工作20分鐘,直到 session-end hook才標示該失敗。拆分為兩個閘門(工作完成時一個、session結束時一個)後,可在不同生命週期節點捕捉相同問題。7

審議成本

每個研究代理約處理5,000個 Token的 context,並產生2,000-3,000個 Token的發現。使用3個代理時,每個決策會增加15,000-24,000個 Token;使用10個代理時,約為50,000-80,000個 Token。7

以目前Opus 5定價(每MTok $5/$25)計算,3代理審議約需$0.23-0.30;10代理審議約需$0.75-1.00。系統僅會在約10%的決策上觸發審議,因此平均分攤至所有決策的成本為每個 session $0.08-0.10。(較早版本引用的數字為此處3倍,係以舊版$15/$75 Opus 4.x定價計算。)這是否值得,取決於錯誤決策的代價。

何時應進行審議

應審議 可略過
安全性架構 文件錯字
資料庫 schema設計 變數重新命名
API契約變更 Log訊息更新
部署策略 Comment改寫
相依性升級 Test fixture更新

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 一同推出,現在由目前的 Opus 模型支援(Opus 4.8 在 v2.1.154 中以 /effort xhigh 推出;Opus 5 亦沿用)。介於 highmax 之間。建議作為程式開發與 agentic 工作負載的預設值。對長時間執行的 subagents 而言,xhigh 的表現明顯優於 high,而 token 成本增幅低於比例。max 仍適合一次性的高難度推理;持續性任務則以 xhigh 更佳。
  • Token 預算上限:可透過 output_config.task_budget(beta header task-budgets-2026-03-13)為每次 agent 執行設定。模型會看見持續倒數的計時,並依預算妥善縮限工作範圍,而非意外耗盡資源。適用於希望 token 支出可預期、又不犧牲短提示品質的 agentic 迴圈。
  • 隱含需求辨識:首個通過「implicit-need」測試的 Claude 模型——能辨識使用者字面要求未充分描述其實際需求的情況。這讓 CLAUDE.md 的「澄清規則」章節不再那麼必要。若您的 CLAUDE.md 有 200 行「使用者要求 Y 時,也要考量 X」這類防護規則,請刪減目前已由原生能力涵蓋的部分。

Worktree Base、Sandbox Paths 與管理員設定(2026年5月7日)

Claude Code v2.1.133 新增了 4 項值得在正式環境 harness 中留意的管理員層級設定:39

設定 功能
worktree.baseRef fresh(預設)| head 新 worktree 再次從 origin/<default> 建立分支。這是對 v2.1.128 使用本機 HEAD破壞性預設值回復。若團隊仰賴未 push 的 commit 可在新 worktree 中使用,請設定 worktree.baseRef: "head"
sandbox.bwrapPath absolute path 在 Linux/WSL 主機上固定 Bubblewrap 二進位檔位置;適用於其未位於 $PATH 中,或您隨附供應版本的情況。
sandbox.socatPath absolute path 與用於 sandbox 網路功能的 socat 二進位檔相同。
parentSettingsBehavior 'first-wins'(預設)| 'merge' 控制 SDK managedSettings 如何與父層企業/團隊設定組合的管理員層級設定。'merge' 讓子工作階段繼承並擴充;'first-wins' 則維持父層的權威性。

worktree.baseRef 的回復是應提醒使用者的一點:仰賴 v2.1.128-v2.1.132 行為(worktree 從本機 HEAD 建立分支)的 agents,除非重新選擇加入,否則會在新的 worktree 中失去未 push 工作的存取權。

企業可觀測性的 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 有兩項變更對正式環境部署很重要。68CLAUDE_CODE_PROCESS_WRAPPER 讓受管理環境透過企業包裝二進位檔啟動 Claude Code 程序——這是端點 agents、啟動時政策檢查,以及每個程序都必須在指定監督程式下執行之環境的整合點。若企業先前以 shell aliases 或分支出的啟動器指令碼模擬此做法,現在已有受支援的銜接點。

同一版本也降低了 harness 最有感的執行階段額外負擔:在 MCP 工具數量很高的工作階段中,工具使用回合最高可快 7 倍,而工作階段逐字記錄可縮小 79 倍68這緩和了——但未推翻——將成本視為架構的指引:CLI-first 對無狀態的一次性作業仍然最具優勢,但攜帶數十個 MCP 工具的 harness,不再承受春季時每回合的代價,逐字記錄儲存也不再是長時間自主執行的隱性成本。

品質迴圈

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

  1. 實作 - 撰寫程式碼
  2. 審查 - 重新閱讀每一行。找出拼字錯誤、邏輯錯誤與不清楚的段落
  3. 評估 - 執行 evidence gate。檢查模式、邊界情況與測試涵蓋率
  4. 精修 - 修正每一個問題。絕不延後到「之後」
  5. 拉高視角 - 檢查整合點、import 與相鄰程式碼是否發生回歸
  6. 重複 - 若任何 evidence gate 準則失敗,回到步驟 4
  7. 報告 - 列出變更內容、驗證方式,並引用具體證據

Evidence Gate

「我相信」與「應該會」都不是證據。請引用檔案路徑、測試輸出或具體程式碼。

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

若無法為任一列提出證據,請回到精修。22

人類合併授權

一項於 2026年5月發布、分析 29,585 個 AI-agent pull-request 生命週期的 arXiv 研究,將作業自主性與合併治理區分開來。47有用的架構啟示很簡單:agents 可以開始工作、持續推進分支、開啟 PR、審查工作並彙整風險,而合併授權仍是另一道治理邊界。

請在 harness 中明確劃定這道邊界。讓 agents 準備 PR 並蒐集證據;除非組織另有經稽核的自動化政策,否則合併、發行與破壞性 repository 操作都必須取得人類核准。自動化執行合併時,應保留能區分執行者與授權該行為之人員或政策的記錄。

錯誤處理模式

原子檔案寫入。多個 agents 同時寫入同一個狀態檔會損毀 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 將其視為 false。啟用 set -e 時,這會終止指令碼。請改用 VAR=$((VAR + 1))16

影響範圍分類

依影響範圍分類每個 agent 動作,並據此設置關卡:2

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

Remote Control(從任何瀏覽器或行動 app 連線至本機 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 撰寫瑣碎測試
可衡量但不完整 「測試通過 AND coverage >80%」 測試涵蓋程式碼行數,卻未測試任何有意義的內容
完整 「所有測試通過 AND coverage >80% AND 無型別錯誤 AND linter 無錯誤 AND 每個測試類別測試不同模組」 符合正式環境品質的輸出

需要留意的失敗模式

失敗模式 說明 預防方式
捷徑螺旋 為了更快完成而跳過品質迴圈步驟 Evidence gate 要求為每項準則提出證明
自信幻象 未執行驗證卻說「我很有信心」 在完成報告中禁止模稜兩可的措辭
幽靈驗證 未在本次工作階段執行測試,卻宣稱測試通過 Stop hook 獨立執行測試
延後債務 已 commit 程式碼中存在 TODO/FIXME/HACK git commit 的 PreToolUse hook 會掃描 diff
檔案系統污染 遭捨棄迭代留下的死路產物 在完成準則中加入清理步驟

具體工作階段追蹤

來自一個處理含有 5 個故事之 PRD 的自主執行工作階段追蹤:2

  1. SessionStart 觸發。Dispatcher 注入:目前日期、專案偵測、哲學限制、成本追蹤初始化。5 個 hooks,合計 180ms。

  2. Agent 讀取 PRD,規劃第一個故事。UserPromptSubmit 觸發。Dispatcher 注入:作用中的專案內容、工作階段漂移基準線。

  3. Agent 呼叫 Bash 執行測試。PreToolUse:Bash 觸發。憑證檢查、sandbox 驗證、專案偵測。90ms。測試執行。PostToolUse:Bash 觸發:記錄活動心跳、進行漂移檢查。

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

  5. Agent 完成故事。Stop 觸發。品質關卡檢查:agent 是否引用證據?是否使用模稜兩可的語言?diff 中是否有 TODO 註解?任一檢查失敗時,結束碼為 2,agent 繼續執行。

  6. 獨立驗證:新的 agent 在不信任前一個 agent 自我報告的情況下執行測試套件。

  7. 3 個程式碼審查 agents 平行啟動。各自獨立審查 diff。只要任一審查者標記為 CRITICAL,該故事就會回到佇列。

  8. 故事通過。載入下一個故事。此循環會重複處理全部 5 個故事。

5 個故事共觸發約 340 個 hooks。hooks 總耗時約 12 秒。這些額外負擔在單次隔夜執行中,防止了 3 次憑證洩漏、1 個破壞性指令,以及 2 項未完成的實作。

案例研究:隔夜 PRD 處理

一個正式環境 harness 在 8 次隔夜工作階段中處理了 12 個 PRD(47 個故事)。指標將前 4 個 PRD(最小 harness:僅 CLAUDE.md)與後 8 個(完整 harness:hooks、skills、品質關卡、多 agent 審查)進行比較。

指標 最小配置(4 個 PRD) 完整 Harness(8 個 PRD) 變化
憑證洩漏 2 次洩漏至 git commit 前阻擋 7 次 從被動轉為預防
破壞性指令 1 次 force-push 至 main 阻擋 4 次 Exit 2 強制執行
錯誤完成率 35% 測試失敗 4% Evidence gate + Stop hook
每個故事的修訂回合 2.1 0.8 Skills + 品質迴圈
內容退化 6 起事件 1 起事件 檔案系統記憶
Token 額外負擔 0% ~3.2% 可忽略不計
每個故事的 Hook 時間 0s ~2.4s 可忽略不計

這 2 次憑證洩漏需要輪替 API keys 並稽核下游服務:約需 4 小時的事件應變。防止同等事件的 harness 額外負擔,則是每個故事 2.4 秒的 bash。錯誤完成率從 35% 降至 4%,因為 Stop hook 會在允許 agent 回報完成前獨立執行測試。

安全性考量

值得信賴的 Agents 五項原則(Anthropic,2026年4月)

Anthropic於2026年4月9日發布了 Agent 值得信賴性的正式框架。27這五項原則與本指南的 Evidence Gate 思維相呼應,並進一步延伸:

原則 意義 此 harness 如何符合
人類控制 在每個決策點皆可進行有意義的人為覆寫 Hooks 管控工具呼叫;PreCompact 封鎖;Auto Mode 分類器作為 check-layer
價值對齊 Agent 行動遵循使用者意圖,而非相鄰目標 CLAUDE.md 作為明確意圖規格;skills 劃定能力範圍
安全性 抵抗對抗性輸入與 prompt injection 在 hook 層提供 Sandbox+deny-rules+輸入驗證
透明度 決策與行動皆有可稽核紀錄 Hook 記錄;工作階段逐字稿;skill 呼叫追蹤
隱私 妥善處理與治理資料 清除認證 env var;於 hook 層偵測秘密資訊

Anthropic也將MCP捐贈給 Linux Foundation 的 Agentic AI Foundation,並與 AGENTS.md(現由 OpenAI、Google、Cursor、Factory、Sourcegraph 共同維護)並列。Agent 互通性標準如今已不再受單一供應商限制。27

MCP的無狀態 turn 與自我回報身分。 MCP規格在2026年7月28日修訂版(現為 Current spec)完成向無狀態核心(SEP-2575)的轉型,移除了過去會攜帶伺服器身分的有狀態 initialize handshake。7月16日合併的 draft-spec 變更(PR #3002)將身分恢復為可選介面:伺服器可在回應 _meta 中加入 io.modelcontextprotocol/serverInfo 物件,而請求中的 clientInfo 則改為可選。71與安全性相關的重點在於規格對信任的說法:此身分為自我回報且未經驗證——僅供顯示與記錄——並且 SHOULD NOT 用於驅動安全性決策。如果您的 harness 依據MCP伺服器宣告的名稱建立 allowlist、權限規則或以記錄為基礎的稽核,該名稱只是一項聲稱,而非認證憑證;信任應固定在傳輸與設定上(在何處設定了哪一部伺服器),絕不可建立在伺服器自稱的身分上。無狀態修訂版已於2026年7月28日如期推出(強制 server/discover、透過 _meta 進行 protocol-version 協商、Streamable HTTP header);上述信任指引描述的是已推出的行為。

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

Sandbox

Claude Code支援選用的 sandbox 模式(透過 settings.json/sandbox 指令啟用),使用作業系統層級隔離來限制網路存取與檔案系統操作(macOS 使用 seatbelt,Linux 使用 bubblewrap)。啟用後,sandbox 可防止模型任意發出網路請求,或存取專案目錄以外的檔案。未使用 sandboxing 時,Claude Code採用以權限為基礎的模型,由您核准或拒絕個別工具呼叫。13

2026年5月安全性底線。 Claude Code v2.1.149 修正了 PowerShell 工作目錄權限繞過、數個 PowerShell allow-rule 與過期變數的權限分析缺口,以及 git-worktree sandbox 寫入 allowlist 錯誤;後者原本涵蓋整個主要儲存庫根目錄,而非僅限共用的 git 內部結構。53若您的 harness 允許 PowerShell 或 worktree 隔離的 Agents,應將 v2.1.149+ 視為最低版本,並維持狹窄的 shell 規則。寬鬆的 PowerShell(*) 與全儲存庫寫入例外是編排上的捷徑,不是安全邊界。

OpenAI Agents SDK sandbox 鎖定(v0.17.0,2026年5月8日)。 在 OpenAI 方面,openai-agents-python v0.17.0 收緊了一條平行邊界:LocalFile.srcLocalDir.src 現在必須位於 materialization base_dir 範圍內(套用 manifest 時SDK程序的目前工作目錄),除非透過 SandboxPathGrant 明確在 Manifest.extra_path_grants 中授予來源存取權。41相對本機來源會從 base_dir 解析;絕對路徑必須已位於其中,或具備授權。這修正了本機 artifact 邊界問題:先前版本允許 manifests 將任意主機路徑帶入 sandbox workspace。遷移方式:對唯讀掛載,使用 SandboxPathGrant(path=..., read_only=True) 在 manifest 層級宣告可信任的主機根目錄。請將 extra_path_grants 視為可信任的應用程式設定;絕不可依據模型輸出或不受信任的 manifest 輸入填入授權。

OpenAI Agents SDK後續版本底線(v0.17.3)。 0.17.1-0.17.3 版本線加入更多 sandbox 與工作階段強化:封存檔解壓縮限制、GitRepo 子路徑驗證、更清楚的 sandbox-provider 錯誤、避免將 mountpoint 認證資訊放入 sandbox 指令、拒絕相對 sandbox workspace 根目錄,以及 Vercel-sandbox 終止狀態處理。54若您使用的是 OpenAI 託管或 provider-backed sandboxes,而非僅使用Claude Code hooks,請將 0.17.3 視為本節模式的目前最低版本。

跨產品的三種隔離模式(Anthropic,2026年5月)

Anthropic的工程文章「How we contain Claude across products」(2026年5月25日)是供應商對本節零星教授原則的完整闡述——上述設定層級 sandbox、worktree-isolation 底線,以及將所有事物視為不受信任的立場。81其核心做法是將隔離強度對應到產品介面,而這項對應本身就是教訓:不存在唯一正確的隔離設計,只有符合監督能力與潛在風險的隔離方式。

  • 短暫的 gVisor containers(claude.ai)。 伺服器端執行在隔離基礎架構上的 gVisor containers 中進行,並使用每個工作階段短暫存在的檔案系統。威脅模型針對基礎架構與租戶隔離——使用者的機器永遠無法存取,因此沒有任何本機資源需要防護。
  • Human-in-the-loop OS sandboxing(Claude Code)。 上述 sandbox 段落所描述的模式,從政策角度來看是:macOS 使用 Seatbelt、Linux 使用 bubblewrap,允許讀取、將寫入限制於 workspace,且預設拒絕網路——人類負責核准邊界未涵蓋的事項。Anthropic已將執行階段開源(sandbox-runtime),讓該邊界可供稽核。該文章坦率指出薄弱環節:大約 93% 的權限提示都會被核准,而 auto-mode 分類器——在執行前攔截約 83% 的過度積極行為,同時減少 84% 的核准提示——正是因為核准疲勞是安全性特性,而不是 UX 抱怨。這正是本指南自 v2.1.193 以來持續追蹤的 check-layer 姿態。
  • 密封 VMs(Claude Cowork)。 在平台 hypervisors 上執行的完整 virtual machines——macOS 使用 Apple Virtualization framework,Windows 使用 HCS——僅掛載選取的 workspace 與 .claude 資料夾;主機上的其他內容一概不可見。認證資訊永不進入 VM:它們保留在主機 keychain,每個工作階段則取得範圍受限、可獨立撤銷的 token。VM 內的防禦性 MITM proxy 會執行此規則,只傳遞攜帶 VM 自身佈建 session token 的請求——嵌入攻擊者的 key 會在邊界遭拒,因為只有 VM 知道其來源。

此分類法底層的設計原則才是可移植的部分。先在環境層級隔離,再在模型層級引導:任何機率性防禦都有非零的漏失率,因此確定性的邊界必須攔截 prompt-level 引導遺漏的項目——這正是本指南的 hooks-guarantee-execution 論點,也是供應商重新表述的結論。讓隔離強度符合使用者的監督能力:開發者可以在核准前評估 bash 指令;知識工作者無法如此——這就是為什麼 Code 使用權限對話方塊,而 Cowork 使用密封 VM。優先使用久經考驗的 primitives,而非自訂隔離程式碼:hypervisors、seccomp 與 container runtimes 經受的對抗性審視,比Anthropic自行撰寫的 allowlist proxies 與設定解析器更嚴苛。將專案本機設定與工具輸出視為不受信任:文章指示應將開啟專案與載入設定,如同處理網際網路上的任何傳入請求;即使工具可信任,工具輸出也應視為攻擊面——這與本指南套用於 inter-agent 訊息、subagent 所讀內容及自我回報MCP身分的立場一致。將認證資訊保留在 sandbox 外:採用範圍受限、可撤銷、每個工作階段各自使用的 tokens,而非 Agent 可能洩漏的環境 keys。

設定介面正逐漸追上第一項原則(v2.1.219)。「先在環境層級隔離」很容易認同,卻一直難以實際設定,因為Claude Code的 sandbox 對規則未涵蓋的事項會透過提問處理——而權限提示正如上述 93% 核准率所承認,是披著確定性外衣的機率性防禦。sandbox.network.strictAllowlist 取消了對外連線的提問:啟用後,sandboxed 指令對不在 allowlist 中主機提出的請求會直接遭拒,而非顯示提示。84將它與 v2.1.216 的 sandbox.filesystem.disabled 搭配,這兩項設定便構成一種安全姿態,而非一堆切換開關——檔案系統與網路隔離可各自選擇,且網路隔離如今可設為確定性。對無人監督的 harness 而言,兩者中這項更為重要,因為對外輸出正是注入指令轉化為資料外洩之處,而核准疲勞的極端情況是鍵盤前根本沒有人可以疲勞。代價就是確定性邊界一貫的代價:allowlist 必須正確,遺漏的主機會以不透明的拒絕失敗,而不是提出問題。請列舉您的 Agents 合理需要的主機,然後移除提示。

這些措施都無法取代 hook 層;它們位於其下。隔離模式構成確定性的底線,而本指南中 worktree-enforcement 的歷史也是同一教訓的縮影:邊界只有在面對蓄意重新導向時仍能守住才算數,而最可能守住的 primitives,往往不是為當下情境臨時寫成的。

權限邊界

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

層級 控制項目 範例
工具權限 可使用哪些工具 將 subagent 限制為 Read、Grep、Glob
檔案權限 可修改哪些檔案 封鎖對 .envcredentials.json 的寫入
指令權限 可執行哪些 bash 指令 封鎖 rm -rfgit push --force
網路權限 可存取哪些網域 為MCP伺服器連線建立 allowlist

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

Claude Code v2.1.178 將權限規則從工具層級延伸至參數層級:Tool(param:value) 會比對工具的輸入參數,並以 * 作為 wildcard。標準範例為 Agent(model:opus)——此規則可封鎖以特定模型層級啟動 subagents。63從架構上看,這填補了上述四層表格無法表達的缺口:先前只能整體允許或拒絕工具,無法限制其呼叫方式。治理政策現在可以規定「可啟動 subagents,但不可使用 Fable 5 層級」或「允許 Bash,但不可使用此 flag」,並作為確定性規則而非 prompt-level 請求。

配套的受管理設定 enforceAvailableModels(v2.1.175)從上而下限制模型選擇:它會固定 Default model,並防止使用者或專案範圍的設定擴大受管理的 availableModels allowlist。63兩者可相互配合——allowlist 定義工作階段中可用的層級,而參數層級規則則限制 subagents 如何取用它們。自 v2.1.196 起,管理員也能從 org console 設定全組織預設模型,並在 /model 顯示為「Org default」,讓整個 fleet 繼承受治理的預設值,而無須每位操作員個別固定——這是補足 allowlist 上限的底線。

路徑範圍 Allow 規則錨定於工作目錄(2026年7月)

Claude Code v2.1.214 修正了路徑範圍權限規則中一項隱微的過度比對:含單一區段 dir/** 模式的 allow 規則——例如 Edit(src/**)——會自動核准對任意深度、任何名為 src 目錄的編輯,包括 vendor/some-package/src/ 與規則作者從未打算允許的所有巢狀 src/。這類規則現在僅錨定於 <cwd>/dir;若您確實希望在任意深度比對,請明確宣告 **/dir/**74Deny 與 ask 規則則刻意保留舊有的任意深度比對。這種不對稱是正確的 fail-safe 設計:比對過窄的 allow 規則會安全失敗(您會收到提示),比對過窄的 deny 規則則會開放失敗(原應封鎖的路徑會漏過)——因此 allows 變得更嚴格,而 denies 維持寬鬆。若您的設定仰賴單一區段 allow patterns 涵蓋巢狀路徑,它們在 v2.1.214 已悄然停止如此運作;這正是修正預期的效果,但仍值得檢查一次您的 allowlists,重新宣告您真正需要的範圍。

Auto-Mode 破壞性指令護欄(2026年6月)

Claude Code v2.1.183 縮小了 auto mode 對會悄然遺失工作或拆除環境之操作的影響範圍。除非您在工作階段中明確要求,auto mode 現在會強制封鎖:破壞性的 git 操作(git reset --hardgit checkout -- .git clean -fdgit stash drop);若該 commit 並非本工作階段由 Agent 建立時的 git commit --amend;以及未指定特定 stack 時的基礎架構拆除(terraform destroypulumi destroycdk destroy)。65從架構上看,這補足了前述 spawn-vetting 與參數層級規則:它並非管控哪一種工具或如何啟動,而是依據意圖管控少數特定不可逆指令——Agent 仍可執行它們,但必須有明確指示,不能自行決定。對自主 harness,請在自己的 PreToolUse hooks 中編碼相同原則:會摧毀狀態的指令應採用預設拒絕規則,僅在操作員發出明確訊號時解除。

2026年7月:auto mode 進入企業版,且有一則提示無法豁免。 Auto mode 在 v2.1.207 於 Amazon Bedrock、Google Vertex AI 和 Microsoft Foundry 達到 GA,並提供 disableAutoMode 受管理設定作為企業退出機制——分類器作為 check-layer 的姿態現已適用於所有第一方企業平台,停用它是明確的治理決策,不再是平台缺口。68接著 v2.1.208 讓災難性移除的護欄成為絕對規則:災難性移除的確認提示如今會穿透兩者 --dangerously-skip-permissions 與 auto mode。68這是值得注意的先例——Claude Code中第一個無論何種權限姿態(包括明確略過的 flag)皆無法豁免的確認。假設 --dangerously-skip-permissions 意味著完全零提示的自主 harness 設計,應將此例外納入考量;它恰恰在無人監督迴圈最可能造成無法挽回損害之處觸發。

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

v2.1.203–v2.1.206 版本封閉了 Agent 可自行捏造稽核軌跡的兩條途徑。68首先,auto-mode 規則現會封鎖對 transcript 檔案的竄改——工作階段紀錄不再能由該工作階段自己的工具呼叫改寫。其次,background-task 通知現在會明確指出,任務執行期間沒有任何人類輸入。第二項針對一種微妙的失敗:模型過去在摘要 background task 時,可能呈現(或捏造)逐字稿中從未發生的「核准」,而通知中沒有任何內容與之矛盾。如今,通知本身就是反證。

這項架構教訓可推廣至 Evidence Gate:transcripts、通知與記錄都是稽核介面,稽核介面不能由受稽核的事物寫入。平台現在已對自身 transcript 強制執行此規則;請將相同規則套用到您的 harness——證據報告、測試輸出與審議紀錄都應置於模型不可寫入的路徑之外。

Prompt Injection 防禦

Skills 與 hooks 針對 prompt injection 提供縱深防禦:

具有工具限制的 skills可防止遭入侵的 prompt 取得寫入權限:

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 即使其 prompt 遭入侵,也無法進行變更。

平台底線在2026年7月提高。 Claude Code v2.1.210 強化了 Agent tool,以防禦由 subagent 所讀內容攜帶的間接 prompt injection——遭污染的檔案、網頁或由 subagent 取得的工具結果,較難操控委派介面本身。69而 v2.1.211 強化了鏈條中的人類環節:權限預覽現在會中和 bidirectional-override、zero-width 與 look-alike Unicode 字元,因此指令再也無法被設計成在核准對話方塊中顯示為無害,實際卻執行其他內容。69第二項修正對於人類在時間壓力下核准呈現預覽的 harness 特別重要——顯示介面本身也是 injection surface。兩項變更都無法取代上述 hook-level 防禦;它們只是提高其下方的底線。

Agent Logs 與 Guardrails 是安全性介面

兩則2026年5月的 advisory 強化了一種模式:Agent 基礎架構創造了新的位置,敏感內容與可執行政策可能在這些位置洩漏或逃逸。GitHub Advisory GHSA-f3jg-756w-gm35 涵蓋 Gryph Agents 的 payload-filter 問題;敏感工具 payload 內容可能在預設記錄行為下保留於本機 SQLite logs。45OSV GHSA-wxxx-gvqv-xp7p 涵蓋 LiteLLM於 admin-protected proxy endpoint 的 custom-code guardrail sandbox escape。46

生產環境規則是:將 Agent transcripts、工具 payloads、SQLite logs 與 guardrail 執行視為敏感基礎架構。在持久化前進行遮罩、套用保留期限限制,並確保 custom guardrail code 置於 sandbox 且可供檢視。僅有 prompt-level 的「不要記錄 secrets」規則並不足夠;記錄與 guardrail 路徑需要確定性測試。

Hook 安全性

將環境變數插入 headers 的 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 責任
問題定義 Pipeline 執行
信心閾值 在閾值內執行
共識需求 共識計算
品質閘門條件 品質閘門強制執行
錯誤分析 錯誤偵測
架構決策 架構選項
領域情境注入 文件產生

模式如下:人類負責需要組織脈絡、倫理判斷或策略方向的決策。Agents 負責需要在大量可能性空間中進行運算搜尋的決策。Hooks 強制執行這條邊界。

遞迴 Hook 強制執行

Hooks 也會對 subagent actions 觸發。13若Claude透過 Agent tool 啟動 subagent,您的 PreToolUse 與 PostToolUse hooks 會針對該 subagent 使用的每項工具執行。若沒有遞迴 hook enforcement,subagent 便可能繞過您的安全閘門。SubagentStop event 可讓您在 subagent 完成時執行清理或驗證。

這不是可選項目。能啟動 subagent、卻未套用您的 security hooks 的 Agent,能在您的閘門只監看主對話而毫無作為時,force-push 到 main、讀取 credential 檔案,或執行破壞性指令。

成本即架構

成本是架構決策,不是營運上的事後考量。2共有三個層級:

Token 層級。System prompt 壓縮。移除教學程式碼範例(模型知道APIs)、合併跨檔案的重複規則,並以約束取代說明。「Reject tool calls matching sensitive paths」與以 15 行說明為何不應讀取認證資訊,達成相同效果。

Agent 層級。相較於長對話,採用 fresh spawns。自主執行中的每個 story 都使用具備乾淨 context 的新 Agent。由於每個 Agent 都重新開始,context 永遠不會膨脹。以 briefing 取代 memory:模型執行清楚 briefing 的效果,優於在累積 30 個步驟的 context 中摸索。

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

決策框架

各機制的適用時機:

問題 使用方式 原因
每次編輯後格式化程式碼 PostToolUse hook 必須每次都發生,且具確定性
封鎖危險的 Bash 指令 PreToolUse hook 必須在執行前封鎖,結束代碼為2
套用安全性審查模式 Skill 可依情境自動啟用的領域專業知識
探索程式碼庫而不汙染主 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) 每次迭代都有完整 context 預算與檔案系統狀態
session 結束時通知 Slack Async Stop hook 非阻塞,不會拖慢 session
commit 前驗證品質 PreToolUse hook on git commit 若 lint/測試失敗,即封鎖 commit
強制完成標準 Stop hook 防止 agent 在任務完成前停止

Skills、Hooks 與 Subagents

面向 Skills Hooks Subagents
呼叫方式 自動(LLM 推理) 確定性(事件驅動) 明確呼叫或自動委派
保證 機率性(由模型決定) 確定性(一定會觸發) 確定性(獨立 context)
Context 成本 注入主 context 0(在 LLM 外部執行) 獨立 context window
Token 成本 說明預算(window 的1%,備援為8,000個字元) 0 每個 subagent 都有完整 context
最適合用於 領域專業知識 政策強制執行 聚焦工作、探索

常見問題

多少 hooks 算太多?

限制因素是效能,而非數量。每個 hook 都會同步執行,因此所有 hook 的總執行時間會累加到每次符合條件的工具呼叫中。使用者層級與專案層級設定合計95個 hooks,只要每個 hook 都在200ms內完成,便不會有明顯延遲。需要留意的門檻是:若 PostToolUse hook 為每次檔案編輯增加超過500ms,session 便會顯得遲緩。部署前請用 time 分析 hooks 的效能。14

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

可以。PreToolUse hooks 會以結束代碼2封鎖任何工具動作。Claude Code 會取消待執行的動作,並將 hook 的 stderr 輸出顯示給模型。Claude 會看到拒絕原因,並建議更安全的替代方案。結束代碼1則是非阻塞警告,動作仍會繼續執行。3

應將 hook 設定檔放在哪裡?

專案層級 hooks 的設定放在 .claude/settings.json(commit 至儲存庫並與團隊共享);使用者層級 hooks 則放在 ~/.claude/settings.json(個人使用,套用至每個專案)。兩者同時存在時,專案層級 hooks 優先。請為指令碼檔案使用絕對路徑,以避免工作目錄問題。14

每個決策都需要 deliberation 嗎?

不需要。信心模組會從4個面向為決策評分(模糊性、複雜度、風險、context 相依性)。只有整體信心低於0.70的決策會觸發 deliberation,約占所有決策的10%。文件修正、變數重新命名與例行編輯會完全略過 deliberation;安全性架構、資料庫 schema 變更及不可逆部署則會穩定觸發。7

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

同時測試成功路徑與失敗路徑。成功路徑:agents 進行有建設性的分歧,並達成共識。失敗路徑:agents 過快收斂、永遠無法收斂,或超出 spawn 預算。端對端測試會以確定性的 agent 回應模擬各種情境,驗證兩個驗證閘門能捕捉所有已記錄的失敗模式。一套正式環境的 deliberation 系統會跨3個層次執行141項測試:48項 Bash 整合測試、81項 Python 單元測試,以及12項端對端 pipeline 模擬。7

deliberation 對延遲有何影響?

3-agent deliberation 會增加30至60秒的實際經過時間(此 deliberation 設計會透過 Agent tool 依序執行 agents;自v2.1.198起,平台本身會在背景並行執行 subagents)。10-agent deliberation 則會增加2至4分鐘。共識與 pride check hooks 各自都能在200ms內執行完畢。主要瓶頸是每個 agent 的 LLM 推論時間,而非編排額外負擔。7

CLAUDE.md 檔案應有多長?

每個段落應控制在50行內,整個檔案則不超過150行。過長的檔案會遭 context windows 截斷,因此應將最關鍵的指示置於前方:先放指令與完成定義,再放風格偏好。21

這套方法能搭配 Claude Code 以外的工具嗎?

架構原則(hooks 作為確定性閘門、skills 作為領域專業知識、subagents 作為獨立 contexts、檔案系統作為記憶)在概念上適用於任何 agentic system。具體實作則使用 Claude Code 的生命週期事件、matcher patterns 與 Agent tool。AGENTS.md 將相同模式延伸至 Codex、Cursor、Copilot、Amp 與 Windsurf。21 即使實作細節因工具而異,harness 模式仍不受工具限制。


快速參考卡

Hook 設定

{
  "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 定義

---
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.

結束代碼

代碼 含義 用途
0 成功 允許操作
2 封鎖 安全性閘門、品質閘門
1 非阻塞警告 記錄、提示訊息

重要指令

指令 用途
/compact 壓縮 context,保留決策
/context 檢視 context 配置與啟用中的 skills
edit .claude/agents/ 管理 subagents——/agents 精靈已於v2.1.198移除;請直接建立或編輯定義,或請 Claude 執行
/goal <condition> 讓 Claude 持續朝完成條件推進
claude agents 開啟 Agent View,查看執行中、受阻與已完成的 sessions
CLAUDE_CODE_WORKFLOWS=1 歷史資訊:啟用v2.1.147的 Workflow-tool 預覽版;自v2.1.154起,可透過 /workflows 使用預設提供的動態 workflows
claude -c 繼續最近一次 session
claude --print 單次 CLI 呼叫(不進行對話)
# <note> 將備註加入 memory 檔案
/memory 檢視與管理 auto-memory

檔案位置

路徑 用途
~/.claude/CLAUDE.md 個人全域指示
.claude/CLAUDE.md 專案指示(透過 Git 共享)
.claude/settings.json 專案 hooks 與權限
~/.claude/settings.json 使用者 hooks 與權限
~/.claude/skills/<name>/SKILL.md 個人 skills
.claude/skills/<name>/SKILL.md 專案 skills(透過 Git 共享)
~/.claude/agents/<name>.md 個人 subagent 定義
.claude/agents/<name>.md 專案 subagent 定義
.claude/rules/*.md 專案規則檔案
~/.claude/rules/*.md 使用者規則檔案
~/.claude/projects/{path}/memory/MEMORY.md Auto-memory

變更記錄

日期 變更 來源
2026-08-18 納入 fork subagents(v2.1.232),並全面檢視 v2.1.233/234 的差異。 subagent 類型表新增 fork:「繼承目前為止的完整對話,而非從全新狀態開始……fork 會取得與主 session 相同的 system prompt、工具、模型與訊息歷程」,共用 prompt cache,但工具呼叫仍彼此隔離——自 v2.1.232 起,在互動式 session 中預設啟用,在 -p/SDK 中則停用;「subagents 會從乾淨的 context 開始」的說法也已補上 fork 例外。合併納入的差異僅記載於 changelog:v2.1.233 在當代模型上預設停用 task tools(TaskCreate/Get/Update/List、TodoWrite;設定 CLAUDE_CODE_ENABLE_TODO_TOOLS=1 可恢復),因此預設設定中的 TaskCreated/TaskCompleted hooks 也不會執行;依 agent-teams 文件所述,沒有 task tools 的 teammates 將「透過訊息協調,而非使用共用 task list」;v2.1.234 移除 teammateDefaultModel 設定(除非 spawn prompt 或 CLAUDE_CODE_SUBAGENT_MODEL 指定模型,否則 teammates 會使用 lead 的模型),並在不同 turn 之間,以 <system-reminder> 標籤傳遞 background-task 通知。 88
2026-08-12 首次整體 evidence gate 稽核——evaluator 通讀完整指南;R1 得分 8.83,發現 6 項 MAJOR 問題,皆已於本列修正。 這批問題屬於同一缺陷類別(各版本列本身正確,較舊層次卻從未更新):hook event 數量寫成 30,但表格遺漏 MessageDisplay——正文恰好將此 event 列為穩定性里程碑(現已改為 31,並新增該列);Built-In Subagent Types 表仍稱 Explore 使用 Haiku,與本 changelog 自身在 v2.1.198 所記載的「繼承 session 模型」內容相互矛盾;標示為「目前」的 deliberation 成本仍以舊版 Opus 4.x 每百萬 token 15/75 美元的價格計算——相較 Opus 5 的 5/25 美元高估了 3 倍(已重新計算,並註明舊數字);在 v2.1.154 已讓 Opus 4.8 支援 xhigh 數月後,內容仍標示「(僅限 Opus-4.7)」;MCP 的 stateless 修訂版在發布兩週後仍寫著「預定於 2026年7月28日推出」(現已改用過去式,並重新驗證註腳);Workflow 章節仍以 v2.1.147 預設停用的 env flag 開場,但自 v2.1.154 起,dynamic workflows 已透過 /workflows 預設提供(已同步調整該章節、TL;DR 與 env 表格列)。內容漂移更新:重新即時驗證 SDK 版本(Python 0.2.137、TS 0.3.229,並更新錨點日期);新增 sessions-as-peers 的相關內容(v2.1.224 的 SendMessage/ListAgents、self-hosted runners,以及 8月14日 auto-mode 預設值與固定 defaultMode 的建議);在 skills 與 plugins 匯流處註明 Agent Plugins 1.0.0,並補充缺少 Anthropic 的注意事項;Ralph 圖表重新標示為 fresh-context(目前模型原生支援 1M context);FAQ 的 latency 回答限縮至 deliberation 設計;meta description 縮短至 155 個字元。標題刻意維持 61 個字元——這是排名資產,僅比顯示寬度多 1 個字元。 86 87 89
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,並標明實際驗證日期,不再籠統標示整個月份。新增的 90 引用 PyPI、npm 與 Python SDK changelog。此期間沒有上游新版本:Claude Code v2.1.220、Codex v0.146.0 stable(僅有 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 stable 皆維持不變。 90
2026-07-29 完整性修正:補上 7月21日條目遺漏的 3 個 TS SDK v0.3.216 欄位。 對照本指南重新掃描 claude-agent-sdk-typescript changelog 後,發現 v0.3.216 欄位清單少了 3 項:rewindFiles 回應包含選用的 skippedLinks 計數,代表 rewind 安全防護拒絕還原或刪除的路徑數量;成功結果訊息則包含選用的 user_message_uuidrequest_sent_wall_ms,可用於跨主機關聯請求延遲。已將這些欄位加入正文清單與 75,未新增註腳。v0.3.215-v0.3.220 範圍內的其他內容原先皆已涵蓋,包括 subagent 巢狀深度的變更歷程(發布時為 5、v2.1.217 降至 1、v2.1.219 最終定為 3)以及 20 的並行上限——SDK changelog 中「深度上限從 5 降至 1」這一行只是過時快照,本指南早已追蹤到後續數值。已確認 Agent SDK npm 最新版本為 0.3.220(7月24日),PyPI 則為 0.2.128;此期間沒有更新版本。 75
2026-07-27 顯示修正,內容未變。此 changelog 的表頭宣告 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 個,孤立引用為 0。同一輪檢查也在 FastAPI + HTMX 與 Obsidian 指南中發現並修正相同缺陷;ios-agent-development 則存在另一種尚未修正的引用缺口,已記載於其自身報告中。
2026-07-25 指南 v1.27:巢狀深度預設值修正(3,而非 1)、Claude Opus 5,以及第 4 個防護軸線。 修正——subagents 產生深度恢復為 3(v2.1.219):「subagents 現在預設最多可產生深度為 3 的巢狀 subagents(原為 1);設定 CLAUDE_CODE_MAX_SUBAGENT_SPAWN_DEPTH=1 即可停用巢狀功能。」預設值最初在 v2.1.172 設為 5,於 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 context、每 MTok $5/$25(價格與 Opus 4.8 相同),fast mode 為 $10/$50,速度約快 2.5 倍;在 Frontier-Bench v0.1 上的成績超過 Opus 4.8 的 2 倍,CursorBench 3.2 分數與 Fable 5 相差不到 0.5%,成本卻只有一半。本指南建議的 agentic 預設值從 Opus 4.8 改為 Opus 5;Opus 4.7 已退出 fast mode(/fast 現在適用於 Opus 5 與 Opus 4.8),auto-mode 分類器的 Fable-5 後援模型也改為 Opus 5。僅列於變更記錄:Py SDK v0.2.127——背景任務會無聲略過 PreToolUse hooks:背景 subagents 仍在執行時,query() 一收到第一個 result frame 就關閉 stdin,導致其 SDK-MCP 工具呼叫以 "Stream closed" 失敗,同時略過 hook(#1103)。這是繼 TS v0.3.208 的 abort→hook-success 之後,一個月內第 2 次 hook 強制執行遭繞過;此模式現已明確列入 SDK hook 串流注意事項——SDK 端的強制執行會在生命週期邊界失效開放,而且悄無聲息,因為被略過的 hook 看起來與核准的 hook 無異。TS SDK v0.3.219:interrupt 控制要求新增選用的 cancel_queued(capability interrupt_cancel_queued_v1);result 與 init 新增 fast_mode_disabled_reason;切換模型後,init 回應不再回報產生時模型的 fast_mode_stateCC v2.1.219 MCP 診斷功能:headless stream-json init 事件新增 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 91
2026-07-24 指南 v1.26:納入 Anthropic 的圍堵模式文章 + Claude Code v2.1.218。 在安全性考量中新增「跨產品的 3 種圍堵模式」小節,內容取自 Anthropic 的工程文章〈我們如何跨產品圍堵 Claude〉(2026年5月25日):伺服器端使用短暫存續的 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-mode 分類器會裁決危險的 rm、背景 & 及可疑 Windows 路徑檢查,不再開啟權限對話框;plan mode 搭配 auto 時,若靜態分析器無法證明 Bash 是唯讀操作,便會交由分類器判定;agent frontmatter hooks 要求 agent 檔案本身所在的資料夾已接受工作區信任;context: fork skills 預設在背景執行(可用 background: false 停用);/code-review 會以背景 subagent 執行;/deep-research 不再自行呼叫;headless/SDK 工作階段壓縮後仍會保留 fork-session 沿襲關係;Ctrl+B 背景化會遵守背景 shell 上限。TS SDK v0.3.218(7月22日):SkillToolOutput.background 旗標;api_error_status 會回報串流途中的 429/529;modelUsage 新增 canonicalModel + provider。Py SDK v0.2.126(7月22日):ResultMessage.terminal_reason;具型別的 model_usage,包含 canonicalModelprovider;隨附 CLI v2.1.218。MCP:沒有規範性合併;無狀態規格仍預定於 2026-07-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 選擇啟用(已重寫遞迴防護小節)。並行上限:同時執行的 subagents 預設上限為 20(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/** 允許規則(例如Edit(src/**))原本會自動核准寫入目錄樹中任何深度的dir/,如今僅限於<cwd>/dir;使用單一區段dir/**的hook if:條件同樣改為僅限cwd(如需匹配任意深度,請寫成**/dir/**);拒絕/詢問規則則刻意保留任意深度匹配(非對稱的失效安全機制:允許規則失效時應轉為提示,拒絕規則則不得失效放行)。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模型、推理層級與並行數,並恢復角色);/import現在可移轉Claude Code與Cursor的設定、MCP伺服器、plugins、工作階段、命令及專案範圍的記憶,將v0.140.0擴展為完整的跨harness移轉。僅列於變更記錄:CC v2.1.214新增EndConversation工具;失效關閉的Bash/PowerShell強化批次(檔案描述元重新導向採失效關閉、超過10,000字元的命令一律提示、zsh下標操作會提示、關閉helpman自動允許、docker/Podman守護程式重新導向旗標會提示、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回報rewind安全防護拒絕還原或刪除的路徑;成功結果會包含user_message_uuidrequest_sent_wall_ms,以便關聯跨主機的請求延遲。Py SDK v0.2.124:修正Windows BatBadBut類型漏洞(拒絕啟動.bat.cmdresumesession_id中的cmd.exe中繼字元會引發ValueError;以連字號開頭的extra_args會繫結為--flag=value)。Codex v0.145.0強化:MCP啟動逾時、序列化OAuth重新整理、非阻塞式OAuth探索、更可靠的強制rm偵測、保留拒絕原因,以及實驗性的分頁執行緒歷程記錄。MCP 2026-07-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修改主要checkout的問題;強化Agent工具,防止來自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託管的multi-agent測試版: 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.timedOutAfterMs;新增SDKAssistantMessage.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的agentic預設模型)。Subagents預設在背景執行(v2.1.198):background欄位現在用於固定此行為,而非選擇性啟用;Explore agent會繼承工作階段模型(最高為Opus);subagents與compaction會繼承延伸思考設定;背景claude agents工作階段會自動commit/push/建立草稿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 --hard/checkout -- ./clean -fd/stash drop、針對非 agent 提交的 git commit --amend,以及未指定 stack 名稱的 terraform/pulumi/cdk destroy,除非這些操作是您主動要求的),並將其定位為參數層級規則與生成審查之外,在意圖層級提供的補強;另於 Codex 對等性說明中加入採用 Noise 中繼加密的遠端執行器(Codex v0.141.0:端對端加密的執行器通道、跨平台保留 cwd/shell,以及 P-521 TLS)。 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);自動模式現在會在啟動前審查 subagents 的生成,補上透過生成繞過限制的缺口(Subagent 模式);支援巢狀 .claude/ 樹狀結構中 skills/agents/workflows/output-styles 的巢狀 .claude/skills 載入與最接近者優先解析(Skills 系統);以及 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 的 agentic 預設模型。「記憶與情境」新增 /cd 命令(v2.1.169),可將工作階段移至新的工作目錄,且不會破壞工作階段進行期間的提示快取。「Multi-Agent 協調/Codex 對等性」則針對正式環境進行強化:close_agent 已重新命名為 interrupt_agent(v0.139.0);加入加密的 agent 間訊息承載內容、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 引導、跨工作階段權限與 multi-agent v2」小節,涵蓋 4 項與 harness 相關的變更:(1) Stop/SubagentStop hooks 可回傳 hookSpecificOutput.additionalContext,注入「尚未完成,原因如下」的回饋,並在不產生 hook 錯誤區塊的情況下繼續該輪次(v2.1.163);(2) 強化跨工作階段通訊,透過 SendMessage 從其他工作階段轉送的訊息不再承接原始使用者的權限——請將傳入的 agent 間訊息視為不受信任的資料(v2.1.166);(3) fallbackModel 設定可串接最多 3 個備援模型,並在發生不可重試的 API 錯誤時執行一次性備援重試;claude agents --json 則新增 waitingFor 欄位,以提高對 agent 叢集的可觀測性(v2.1.162/166);(4) Codex multi-agent v2(v0.137.0)讓 runtime 隨各執行緒保留、將 hide_spawn_agent_metadata 預設為 true、把父層事件傳播至子層監聽器,並新增 v1 skills 擴充功能,支援逐輪解析目錄,以及執行緒啟動/輪次錯誤的生命週期貢獻者事件。AGENTS.md 規格並未變更(仍由 Agentic-AI-Foundation 維護,且沒有版本化變更紀錄)。 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 的額外負擔;plugins 仍負責隨附且可安裝的 ZIP 形式。同一版本也提供 EnterWorktree,可在工作階段進行期間於 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;Skills.sh 目錄透過 sitemap 從 858 筆擴增至 19,932 筆。Hermes v0.15.2(5月29日)則是僅涉及封裝的緊急修正,將 plugin.yaml manifests 納入 wheel 與 sdist 發行套件。 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;精簡system prompt現已成為除Haiku/Sonnet/Opus 4.7及更早版本外所有模型的預設值;新的MessageDisplay hook事件可讓hooks在顯示assistant文字時加以轉換或隱藏;skill/command frontmatter中的disallowed-tools會在skill啟用期間移除工具;/reload-skills無須重新啟動即可重新掃描skill目錄;SessionStart hooks可回傳reloadSkills: true並設定hookSpecificOutput.sessionTitle;主要模型不可用時,--fallback-model會在工作階段中途切換模型;auto mode不再需要使用者主動同意pluginSuggestionMarketplaces受管理設定會將組織marketplaces列入允許清單,以提供情境感知建議;claude agents支援! <command>背景shell工作階段;plugins可宣告defaultEnabled: false;stdio MCP子程序環境現已包含CLAUDE_CODE_SESSION_IDCLAUDECODE=1。Codex v0.134.0將--profile設為CLI、TUI權限與sandbox流程的主要profile選擇器(舊版設定會遭拒絕,並提供遷移指引),新增本機對話記錄搜尋,改善MCP設定,加入個別伺服器的環境指定功能及streamable HTTP伺服器的OAuth,並且當唯讀MCP工具宣告readOnlyHint時,允許其並行執行;v0.135.0新增更詳盡的codex doctor診斷資訊、/status遠端詳細資料、vim文字物件編輯、/permissions中的具名權限profiles,以及Python SDK中的Sandbox預設組態。Hermes Agent v0.15.0(5月28日)推出Velocity版本run_agent.py在14個模組中重構76%、具備自動分解與swarm拓撲的multi-agent Kanban v2、以單一bootstrap token取代各provider金鑰的Bitwarden Secrets Manager、在3個安全關卡抵禦Brainworm類別prompt injection的Promptware defense、skill bundles、可在單一終端機中管理多個工作階段的TUI session orchestrator,以及移除LLM相依套件後速度提升4,500倍的session_search。對harness架構的影響:具名profile模式(Codex --profile、Claude Code pluginSuggestionMarketplaces)正成為multi-tenant agent runtimes的標準設定原語;並行唯讀MCP工具(Codex readOnlyHint)是扇出非變動性情境擷取的正確模式;MessageDisplay hook為操作者提供了第一級的轉換介面,這是過去無法透過PostToolUseStop觸及的能力;而精簡system prompt預設值則消除了操作者自訂情境與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允許規則與過期變數的權限分析修正,以及git-worktree sandbox寫入允許清單修正;並註明v2.1.150僅涉及內部基礎設施,未公布任何面向使用者的變更。PyPI上的openai-agents最新版本回傳0.17.3,因此OpenAI sandbox一節現已註明0.17.1至0.17.3的後續強化措施,涵蓋封存檔解壓縮、GitRepo子路徑、sandbox憑證、相對workspace根目錄,以及provider終止狀態處理。[^\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協調原語,並釐清hooks、測試、審查閘門、spawn budgets及evidence reports仍是正確性的邊界。[^\80]
2026-05-15 指南v1.11:Claude Code v2.1.142背景工作階段與plugin可靠性更新。 本機執行claude --version回傳2.1.141 (Claude Code),npm上的@anthropic-ai/claude-code最新版本則回傳2.1.142。新增操作者指引,涵蓋新的claude agents分派flags、Opus 4.7 Fast-mode預設值、根層級plugin SKILL.md探索、plugin LSP可見性、MCP_TOOL_TIMEOUT遠端HTTP/SSE行為,以及背景工作階段、daemon與plugin快取的可靠性修正。[^\79]
2026-05-14 指南v1.10:Claude Code v2.1.141操作者訊號與範圍界定更新。 本機執行claude --version回傳2.1.141 (Claude Code),npm上的@anthropic-ai/claude-code最新版本亦回傳2.1.141。新增將terminalSequence視為操作者訊號而非強制措施的hook指引;註明可使用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,並更新hook治理一節,納入v2.1.140對ConfigChangedisableAllHooksallowManagedHooksOnly、權限對話框中的環境變數顯示、設定同步後的自訂樣式重設、Windows Git Bash原生套件fallback,以及/scroll-speed行為的修正。[^\77]
2026-05-11 指南v1.8:Claude Code v2.1.139時效性更新與聚焦的agent安全性/記憶體掃描。 已驗證本機claude --version為2.1.139,並新增v2.1.139營運變更:透過claude agents使用Agent View、/goal完成迴圈、command-hook argsPostToolUse continueOnBlock、MCP CLAUDE_PROJECT_DIR,以及OpenTelemetry有效時間修正。[^\70]4344 新增取自「The Memory Curse」arXiv預印本的記憶策展警告、取自PR生命週期arXiv預印本的人工合併權限指引,以及取自Gryph Agents與LiteLLM公告的agent記錄/guardrail安全性指引。[^\73]464748 將Skills vs Hooks vs Subagents的過期token預算列從2%修正為目前的1%/8,000字元skill描述預算。
2026-05-09 指南v1.7:Claude Code v2.1.136 + openai-agents-python v0.17.0的第3天後續更新。 在Hook Architecture中新增autoMode.hard_deny與v2.1.136 hook/plugin修正小節,涵蓋新的無條件封鎖層級、修正VS Code/JetBrains/Agent SDK中執行/clear後MCP消失的問題、修正並行重新整理時遺失MCP OAuth refresh token的問題、修正符合Edit(...)允許規則時plan mode寫入封鎖的問題、plugin Stop/UserPromptSubmit快取清理競爭條件、skills項目隱藏預設skills/目錄的問題,以及CLAUDE_ENV_FILE SessionStart-hook環境變數在/resume//clear後過期的問題。[^\68] 在Production Patterns中新增OTel Feedback Survey小節,涵蓋CLAUDE_CODE_ENABLE_FEEDBACK_SURVEY_FOR_OTEL。[^\68] 擴充The Sandbox小節,納入openai-agents-python v0.17.0的封鎖強化:LocalFile.srcLocalDir.src僅能指向base_dir內,除非透過使用SandboxPathGrantManifest.extra_path_grants授權。[^\69] 在Managed vs. Self-Hosted Harnesses中新增RealtimeAgent預設模型註記(gpt-realtime-2)。[^\69] 僅列於變更記錄: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 System中新增SDK Skill Surface小節,涵蓋ClaudeAgentOptionsskills選項,以及allowed_tools中的"Skill"已遭棄用。[^\65] 在Hook Architecture中新增Effort and Session Provenance小節,涵蓋新的effort.level JSON欄位、hook輸入中的$CLAUDE_EFFORT環境變數,以及Bash子程序中的CLAUDE_CODE_SESSION_ID環境變數。[^\66]39 在Subagent Configuration Fields表格中新增subagent skill探索修正(subagents現在會透過Skill工具探索專案、使用者及plugin skills;在v2.1.133之前會被無聲捨棄)。[^\67] 在Production Patterns中新增Worktree Base, Sandbox Paths, and Admin Settings小節,涵蓋worktree.baseRef(將具破壞性的預設值從本機HEAD改回origin/<default>)、sandbox.bwrapPathsandbox.socatPathparentSettingsBehavior。[^\67]
2026-05-07 指南v1.5:Claude Managed Agents、5月6日舊金山擴展。在「記憶與上下文」中新增策略5(受管記憶策展:Dreaming、Research Preview),並加入比較「以檔案系統作為記憶」與Dreaming的表格。35在「多代理程式編排」開頭新增Managed Multiagent Orchestration(公開測試版)與Outcomes(公開測試版),逐字引用Anthropic對共用檔案系統專家的說明,以及Claude Console追蹤功能的說明,另加入與自行託管審議機制的比較表。新增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_activatedinvocation_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 Code hook與skill機制(claude --version為2.1.132,codex --version傳回codex-cli 0.128.0)。將hook範圍從22/26+項更新為29項已記載事件;將skill說明預算從2%/16,000修正為1%/8,000;把hook類型數量從4種改為5種,納入mcp_tool;移除未獲支援的固定「10個平行subagents」說法;並新增可公開揭露的Codex對等功能小節,涵蓋AGENTS.md、skills、hooks、plugins與明確的subagent工作流程。
2026-04-29 指南v1.3:擴充「受管與自行託管Harness」一節中的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維持一致。v0.14.7-v0.14.8的SDK改良記載於[^58]
2026-04-25 指南v1.2:Google Cloud Next 2026(4月22日至24日)——Vertex AI更名為Gemini Enterprise Agent Platform;Agentspace整合至統一的Gemini Enterprise;推出Workspace Studio(無程式碼代理程式建構工具);Model Garden提供200多個模型,包括Anthropic Claude;Box、Workday、Salesforce、ServiceNow提供合作夥伴代理程式;ADK v1.0穩定版橫跨4種語言;Project Mariner(網頁瀏覽代理程式);由Apigee擔任API至代理程式橋接器的受管MCP伺服器;A2A protocol v1.0已在150個組織中投入正式環境。Microsoft Agent Framework 1.0(2026年4月):穩定版API、LTS承諾、完整支援MCP、.NET + Python。可即時視覺化代理程式執行與工具呼叫的瀏覽器式DevUI,與1.0穩定版介面同步以預覽版推出。Salesforce Headless 360(4月15日,TDX):將Salesforce的每項功能(CRM、服務、行銷、電子商務)公開為API/MCP工具/CLI命令,讓Claude Code、Cursor與Codex等代理程式不必透過瀏覽器,也能在該平台上進行建構。(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的Memory已於2026年4月23日在managed-agents-2026-04-01測試版標頭下進入公開測試。如今所有Managed Agents端點皆須使用此測試版標頭。
2026-04-16 指南v1.1:新增「受管與自行託管Harness」一節,涵蓋Claude Managed Agents(4月8日測試版)與OpenAI Agents SDK的harness/運算分離(4月16日)。新增Scion跨工具多代理程式hypervisor(4月7日,Google)。記載M3MAD-Bench的辯論效益趨於平緩發現。新增「可信賴代理程式的5項原則」(Anthropic,4月9日)及MCP/AGENTS.md的Linux Foundation治理。加入Permiso SandyClaw skill沙箱參考資料。新增Opus 4.7長期任務模式:工具失敗韌性、xhigh投入程度層級、token預算上限(task_budget測試版),以及可減少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。涵蓋隔離的 context、worktree 支援與 agent teams。 

  6. Anthropic,〈Claude Code 文件〉。docs.anthropic.com/en/docs/claude-code。涵蓋記憶檔案、CLAUDE.md 與自動記憶。 

  7. 作者的多 agent deliberation 系統。包含 10 種研究 persona、7 階段 state machine 與 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 探索、context 注入與 available_skills prompt 區段所進行的獨立分析。 

  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。涵蓋 31 個已記載的生命週期事件、hook 類型、matcher 行為、非同步 hooks、HTTP hooks、prompt hooks、agent hooks,以及 MCP tool hooks。 

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

  15. 作者橫跨 50 個 session 的 context window 管理實務。詳見 Context Window 管理。 

  16. 作者的 Ralph Loop 實作。運用檔案系統狀態與 spawn 預算進行全新 context 迭代。詳見 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. 作者針對實際 repository 中 AGENTS.md 的分析。詳見 AGENTS.md Patterns。另請參閱: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 概覽〉。公開 beta 於 2026年4月8日推出。這是一項 harness 即服務,提供 session checkpointing、內建 sandbox 與 REST API。定價:標準 token 費用加上每 session 小時 0.08 美元。Beta header 為 managed-agents-2026-04-01。 

  24. OpenAI,〈openai-agents Python v0.14.0 版本說明〉。於 2026年4月15日發布,並在 4月16日公告。此版本在既有 AgentRunner 流程上加入 Sandbox Agents SDK 介面作為 beta 層:SandboxAgentManifest(workspace 契約)、SandboxRunConfig、各項 capabilities(shell、檔案系統編輯、影像檢查、skills、sandbox memory、compaction)、workspace mounts(本機、Git、遠端:S3、R2、GCS、Azure Blob、S3 Files)、具備路徑正規化與 symlink 保留能力的可攜式 snapshots,以及供 resume 使用的 run-state serialization。Backends 包含 UnixLocalSandboxClientDockerSandboxClient,以及透過 optional extras 提供的 Blaxel、Cloudflare、Daytona、E2B、Modal、Runloop、Vercel hosted clients。4月16日的公告摘要可見 Help Net Security。 

  25. Google Cloud,〈Scion:Multi-Agent Hypervisor〉。於 2026年4月7日開放原始碼。將 Claude Code、Gemini CLI 與其他 deep agents 編排為隔離程序,每個 agent 均擁有各自的 container、git worktree 與憑證。支援本機、hub 與 Kubernetes 部署模式。InfoQ 報導。 

  26. Multi-agent debate 研究群集,2026年第1至第2季。Wu 等人,〈Can LLM Agents Really Debate?〉(arXiv 2511.07784);M3MAD-Bench——一項 multi-model multi-agent debate benchmark,顯示效能會進入平台期,且容易受到誤導性共識影響;Tool-MAD——為每個 agent 分派異質工具,並採用 Faithfulness/Relevance judge scores。 

  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 倍、具備 tool failure 韌性、xhigh effort tier、task budgets(beta),以及對隱含需求的察覺能力。Messages API 的重大變更另請參閱 Opus 4.7 的新功能。 

  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 欄位新增 docstring,並將隨附的 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 支援明確的平行 subagent 工作流程、內建的 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,每個 agent 均有自己的模型、提示詞與工具;這些專門 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 後,將 worktree 的基準還原為 origin/<default>sandbox.bwrapPathsandbox.socatPath 可在 Linux/WSL 上固定沙箱二進位檔路徑;parentSettingsBehavior'first-wins' | 'merge')可控制 SDK managedSettings 與父層設定的組合方式。其他修正包括:平行工作階段因重新整理 token 的競爭條件而出現 401、磁碟根目錄允許規則的範圍問題、MCP OAuth Proxy/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 更新 token;存在相符的 Edit(...) 允許規則時,規劃模式未封鎖檔案寫入;快取清理刪除仍在執行的版本後,外掛 StopUserPromptSubmit hooks 執行失敗;plugin.json 中的 skills 項目隱藏外掛預設的 skills/ 目錄;透過 /resume/clear 後,CLAUDE_ENV_FILE SessionStart-hook 環境變數未能更新。此外,另有約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 管理多個 agents」。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 Coding Agents 如何在 Pull Request 生命週期中分配工作」,arXiv:2605.08017v1,2026年5月。摘要報告針對 OpenAI、Copilot、Devin、Cursor 與 Claude Code 的29,585個 PR 生命週期所做的分析,並區分作業自主權與合併治理。 

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

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

  50. Anthropic,Claude Code v2.1.141。2026年5月13日。為 hook JSON 輸出新增 terminalSequence,可用於桌面通知、視窗標題與提示鈴聲;新增 CLAUDE_CODE_PLUGIN_PREFER_HTTPS,用於透過 HTTPS 複製外掛程式來源;新增 ANTHROPIC_WORKSPACE_ID,用於限定工作負載身分同盟的工作區範圍;新增 claude agents --cwd <path>,用於 Agent View 目錄篩選;新增 /feedback 工作階段附件選項,可附加過去24小時或7天的內容;另有 agent、背景工作、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 模式預設改用 Opus 4.7,並以 CLAUDE_CODE_OPUS_4_6_FAST_MODE_OVERRIDE=1 作為固定版本的覆寫設定;當 skills/ 目錄不存在時,將外掛程式根目錄層級的 SKILL.md 檔案顯示為 skills;在外掛程式詳細資料中顯示其提供的 LSP 伺服器;替換現有 GitHub App 連線前顯示警告;並修正 MCP_TOOL_TIMEOUT、背景工作階段 worktree、daemon 睡眠/喚醒、升級後 daemon 清理、外掛程式快取及 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 工具,用於確定性的多 agent orchestration(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 工作清單呈現,以及企業版 allowAllClaudeAiMcps;與 harness 相關的修正包括 PowerShell cd 權限繞過、PowerShell 前綴/萬用字元與過期變數的權限分析、git-worktree 沙箱寫入允許清單範圍、Bash find 在 macOS 上耗盡 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;在狀態列環境中公開 COLUMNS/LINES;並持續保留 macOS 背景代理程式的「隱私權與安全性」授權。v2.1.154(5月28日)將 Opus 4.8 設為預設模型,預設採用 high effort,並新增 /effort xhigh;透過 /workflows 導入動態工作流程;讓 Opus 4.8 的 Fast mode 以 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,並在公開前壓縮過大的結構描述,使連接器工具結構描述更加可靠;此外,也允許並行執行宣告 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 類型提示注入的 Promptware 防護。整合 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 remove/prune 得以順利執行;當 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,供 Stop/SubagentStop 提供非錯誤回饋;v2.1.166(6月6日)強化跨工作階段的 SendMessage 權限控管(轉送的訊息不再攜帶使用者權限),並新增 fallbackModel 設定(最多可設定 3 個備援模型,遇到不可重試的錯誤時僅重試一次)。Codex CLI v0.137.0(6月4日)推出多代理 v2(具備執行緒的執行階段、hide_spawn_agent_metadata 預設為 true、父代理→子代理事件傳播)、具備每回合目錄解析功能的 v1 skills 擴充,以及執行緒啟動/回合錯誤生命週期貢獻者事件;Codex subagents 文件證實 default/worker/explorer 代理類型,以及 agents.max_threads/max_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、工作流程及斜線命令);新增 --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日——此「Mythos-class」級別高於 Opus,並被描述為 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日)。Sub-agents 現在可產生自己的 sub-agents,支援最深達 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、工作流程與輸出樣式發生衝突時,解析至最接近目前工作目錄者(專案範圍的工作流程會儲存至最接近的現有 .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 及具備確認防護機制的應用程式伺服器 thread/delete 永久刪除工作階段;為檔案、外掛程式與 skills 提供統一的 @ 提及選單;以及 /usage 權杖活動檢視畫面。 

  65. Anthropic,Claude Code v2.1.183 版本說明,2026年6月19日——若您未要求捨棄工作內容,自動模式會封鎖破壞性的 git 指令(git reset --hardgit checkout -- .git clean -fdgit stash drop)、針對本次工作階段中非由代理程式建立之提交執行的 git commit --amend,以及未明確指定堆疊時執行的 terraform destroy/pulumi destroy/cdk destroy。OpenAI,Codex CLI rust-v0.141.0 版本說明,2026年6月18日(從 v0.141.0-alpha 系列升級為穩定版)——遠端執行器使用經過驗證、端對端加密的 Noise 中繼通道;跨平台遠端執行會保留執行器原生的工作目錄與 shell;TLS 支援企業代理伺服器所使用的 P-521 憑證簽章。 

  66. Claude Code 變更記錄(正式來源)——v2.1.193(2026年6月25日):autoMode.classifyAllShell 設定;在逐字記錄、快顯通知與 /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 變更記錄(正式來源)與 GitHub 版本。v2.1.196(2026年6月29日):全組織預設模型(由管理員設定,並在 /model 中顯示為「Org default」);在不受信任的工作區中,claude mcp list/get 不再啟動儲存庫自行核准的 .mcp.json 伺服器。v2.1.197(6月30日):Claude Sonnet 5 成為隨附的預設模型(原生支援 1M 上下文,至8月31日止採用 $2/$10 優惠定價)。v2.1.198(7月1日):subagents 預設在背景執行;內建 Explore 代理程式沿用工作階段模型(上限為 Opus);subagents 與壓縮會沿用工作階段的延伸思考組態;背景 claude agents 工作階段完成工作樹中的程式碼工作後,會提交、推送並開啟草稿 PR,且以 agent_needs_input/agent_completed 觸發 Notification hook;/agents 精靈已移除(請直接編輯 .claude/agents/ 或詢問 Claude)。v2.1.199(7月2日):堆疊的斜線 skills 呼叫最多載入前 5 個 skills;可偵測 SendMessage 因重複使用代理程式名稱所造成的錯誤路由;SessionStart/Setup/SubagentStart hooks 會在結束代碼為 2 時顯示 stderr。v2.1.200(7月3日):default 權限模式在 CLI、--help、VS Code 與 JetBrains 中統一標示為「Manual」,並接受 manual,原有組態值則維持不變;AskUserQuestion 對話框預設不再自動繼續。v2.1.202(7月6日):新增「Dynamic workflow size」/config 控制項;/review <pr> 恢復為單輪審查,而 /code-review <level> <pr#> 則執行多代理程式審查。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 變更記錄(正式來源)、GitHub 版本 v2.1.207v2.1.208,以及 Claude Code 的最新功能。2026年7月。v2.1.203–v2.1.206(7月上旬):自動模式規則會封鎖篡改逐字記錄檔案的行為;背景任務通知會明確指出任務執行期間未發生任何人工輸入;MCP roots/list 納入工作階段的其他工作目錄,並提供 roots/list_changed 通知;/doctor 會建議刪減可從程式碼庫推導出的 CLAUDE.md 內容;v2.1.204 亦修正無頭模式下的 SessionStart 串流。v2.1.207:自動模式在 Amazon Bedrock、Google Vertex AI 與 Microsoft Foundry 正式推出,並以受管理的 disableAutoMode 設定提供退出選項;新增供企業行程啟動器使用的 CLAUDE_CODE_PROCESS_WRAPPER;當 MCP 工具數量很多時,工具使用輪次最高加快 7 倍,工作階段逐字記錄縮小 79 倍。v2.1.208:重大移除操作的確認提示可穿透 --dangerously-skip-permissions 與自動模式。 

  69. Claude Code 變更記錄(正式來源)與 GitHub 版本 v2.1.210v2.1.211v2.1.212。2026年7月。v2.1.210:使用工作樹隔離的 subagents 不再能修改主要簽出內容;Agent tool 強化防護,避免受到 subagent 所讀內容中的間接提示詞注入攻擊;自動模式分類器預設採用 Sonnet 5,並於每個工作階段固定;寫入 MEMORY.md 的內容超過大小限制時會回報錯誤,不再無聲截斷。v2.1.211PreToolUse hook 的 ask 決策會將權限結果下限設為必須提示——自動模式無法覆寫為允許執行未受沙箱限制的 Bash;--forward-subagent-text / CLAUDE_CODE_FORWARD_SUBAGENT_TEXT 會將 subagent 文字轉送至 stream-json 輸出;「一律允許」規則會跨工作樹保留於儲存庫根目錄;權限預覽會消除雙向文字覆寫、零寬度字元與相似字元的影響。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 能力);command_lifecycle 框架會針對每則訊息回報 queued/started/completed/cancelled/discarded 狀態;新增 AgentToolCompletedOutput 型別;canUseTool 可在不含 updatedInput 的情況下回傳 {behavior: 'allow'}。v0.3.208 的安全性修正:呼叫者在尚待處理的 hook 執行期間發出的中止要求,原本會被轉換為 hook 成功,導致受 PreToolUse hook 管控的工具可能在呼叫者中止後仍繼續執行。 

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

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

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

  74. Claude Code 變更記錄(正式版本),v2.1.214–v2.1.216,2026年7月。v2.1.214:權限規則與 hook 的 if: 條件若使用單一路徑區段的 dir/** 模式,現在會錨定至 <cwd>/dir(若要比對任意深度,請寫成 **/dir/**);先前的行為會讓 Edit(src/**) 之類的允許規則自動核准目錄樹中任何巢狀 dir/;拒絕與詢問規則仍維持任意深度比對。另新增:EndConversation 工具;一批採失敗關閉機制的 Bash/PowerShell 權限強化措施;即使 stdout JSON 未通過結構描述驗證,hook 結束代碼2仍會封鎖操作;記憶體 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 重新導向共用的簽出目錄;worktree 工作階段不再解析至其他專案遺留的 worktree;若 .claude 是指向專案外部的符號連結,工作流程與排程任務將拒絕寫入;/rewind 不再穿越符號連結或硬式連結;sandbox.filesystem.disabled 允許僅對網路流出套用沙箱;繼續執行的背景代理工作階段會還原該代理的提示與工具限制;工作階段期間變更 skill/命令後,無須重新啟動即可在斜線選單中顯示。已於2026年7月21日(PST)依正式變更記錄完成驗證。 

  75. Anthropic,@anthropic-ai/claude-agent-sdk TypeScript v0.3.214–v0.3.216 版本claude-agent-sdk Python v0.2.124。2026年7月。TypeScript:set_permission_mode 會拒絕未知模式;因中斷而截短的訊息會標示 aborted: truetool_progress 會攜帶 subagent_typesubagent_retry;任務通知子類型 scheduled-triggerSessionStart 來源 "fork"tool_result_meta 附屬資料包含 non_execution_kinduser_feedbackrewindFiles 回應可選擇包含 skippedLinks 計數;成功結果訊息可選擇包含 user_message_uuidrequest_sent_wall_ms。Python v0.2.124(Windows,BatBadBut 類別):拒絕產生 .bat/.cmd 檔案;若 resume/session_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日。危險 rm、背景 & 與可疑 Windows 路徑檢查不再開啟權限對話框,改由自動模式分類器裁定;使用自動模式的計畫模式,不再針對靜態分析器無法證明為唯讀的 Bash 命令顯示提示,而是交由分類器判斷;代理 frontmatter hooks 必須確認代理檔案所屬資料夾已接受工作區信任;具有 context: fork 的 skills 預設會在背景執行(可為個別 skill 設定 background: false 以停用);/code-review 會以背景 subagent 執行;/deep-research 僅在手動叫用時啟動;在無頭與 SDK 工作階段中,壓縮後仍會保留分支工作階段的系譜;使用 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;具有 canonicalModel/provider 的強型別 model_usage 項目;內含 CLI v2.1.218。 

  84. Claude Code Changelog(權威版本)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 的價格為每 MTok $10/$50;sandbox.network.strictAllowlist 會拒絕沙箱命令連線至不在允許清單內的主機,且不會顯示提示;新增 DirectoryAdded hook,在 /add-dir 或 SDK 的 register_repo_root 控制要求於工作階段途中註冊工作目錄後觸發;動態工作流程預設採用中等規模準則(「目標是少於15個 agents」),可透過任何設定檔中的 workflowSizeGuideline 設定(設定後,/config 中的該列會隱藏),並顯示於執行中工作流程的狀態列;stream-json 支援巢狀 subagent 轉送——深度2以上的 subagents 會出現在 --forward-subagent-text 下,並以產生它們的 Agent tool_use ID 作為索引鍵;無頭模式的 stream-json 初始化事件新增 mcp_server_errors,列出因設定驗證而略過的 --mcp-config 項目,終端機執行時也會顯示啟動警告;claude mcp list/mcp 現在會在連線失敗時顯示 HTTP 狀態與錯誤文字,並針對含有隱藏前置或尾隨空白的 MCP 設定值發出警告;受管理的 MCP 允許清單/拒絕清單 ${VAR} 項目,現在會從啟動環境與受管理設定的環境解析,而非設定檔環境;當回合因串流途中的 API 錯誤而中止時,claude -p 不再捨棄已產生的文字;若路徑並非 bash/sh 二進位檔,系統會忽略 CLAUDE_CODE_GIT_BASH_PATH 並發出警告;Opus 4.7 已從 fast mode 移除(/fast 現在適用於 Opus 5 與 Opus 4.8);隨附的 claude-api skill 預設使用 Opus 5,並提供從 Opus 4.8 遷移的途徑。v2.1.220:僅包含錯誤修正與可靠性改進。auto-mode 的 Fable-5 備援機制會改用「最佳可用的 Opus 模型」,此行為始於 v2.1.176,目前會解析為 Opus 5。已於2026年7月25日依權威 changelog 驗證。 

  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 事件;中斷控制要求新增選用的 cancel_queued(能力為 interrupt_cancel_queued_v1),可在中止的同時取消已排入佇列及等待分派的訊息;結果與初始化訊息新增 fast_mode_disabled_reason;切換模型後,初始化回應不再回報產生時模型的 fast_mode_state;SDK 設定型別新增 sandbox.network.strictAllowlistworkflowSizeGuidelinePython v0.2.127:修正仍有背景工作執行時過早關閉 stdin 的問題——背景 subagents 尚在執行時,query() 會在收到第一個 result frame 後關閉 stdin,導致其 SDK-MCP 工具呼叫因 "Stream closed" 而失敗,並在無聲無息間略過 PreToolUse hooks;現在 stdin 會保持開啟,直到所有執行中的工作完成並收到最終結果 frame(#1103)。v0.3.220 / v0.2.128:同步升級至 CLI v2.1.220。 

  86. 套件庫驗證,2026年8月12日:pypi.org/pypi/claude-agent-sdk/json 回傳版本0.2.137;registry.npmjs.org/@anthropic-ai/claude-agent-sdk 回傳 dist-tags latest 0.3.229。 

  87. Claude Code v2.1.224 版本說明,2026年8月7日(跨工作階段的 SendMessageListAgentscrossSessionInbound、自架 runners),功能契約請參閱 code.claude.com/docs/en/cross-session-messaging;另見Pro、Max 與 Team 方案的 Claude Code 現已預設使用 Auto mode,Anthropic,2026年8月7日——自2026年8月14日起生效;可按 Shift+Tab 於個別工作階段退出、透過 defaultMode 固定模式,或使用 disableAutoMode 在整個組織停用。 

  88. Subagents 文件Claude Code v2.1.232 版本說明。文件原文:「fork 是繼承截至目前為止完整對話的 subagent,而非從頭開始。這會移除 subagents 原本具備的輸入隔離:fork 會看到與主工作階段相同的系統提示、工具、模型及訊息歷程」;「fork 自身的工具呼叫仍不會出現在您的對話中,只有其最終結果會傳回」;「Claude Code 預設會在互動式工作階段啟用 fork mode,但在使用 -p 的非互動模式與 Agent SDK 中預設停用。此互動模式預設值需要 Claude Code v2.1.232 或更新版本。」隊友模型的備援行為依據agent teams 文件:「teammateDefaultModel 已於 v2.1.234 移除……請在提示中指定模型,或改為設定 CLAUDE_CODE_SUBAGENT_MODEL」,否則隊友會使用「負責人的目前模型」。擷取日期:2026年8月18日。 

  89. Agent Plugins:可攜式 Agent Plugin 標準,規格版本1.0.0,於2026年8月6日發布。其自述為:「適用於 AI agents 的可攜式套件格式。」必須具備 plugin.json manifest;可選用 skills/(每個直接子目錄只要包含 SKILL.md,即構成一個 Agent Skill);可選用 mcp.json(stdio、Streamable HTTP、舊版 HTTP+SSE);採用反向網域格式的用戶端命名空間。首發支援的用戶端包括:VS Code、Cursor、GitHub Copilot、ChatGPT 與 Codex、Kiro;規格由 Amazon、Anysphere、GitHub、Microsoft、OpenAI、Vercel 共同制定,Google 並於發布當日加入維護者行列。Anthropic 並未加入此聯盟。 

  90. PyPI 上的 claude-agent-sdk 及其 CHANGELOG;npm 上的 @anthropic-ai/claude-agent-sdk。已於2026年8月1日驗證:Python 0.2.128(changelog:「將隨附的 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。 

  91. 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 changelog,每 MTok 為 $10/$50;該 changelog 亦載明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