エージェントアーキテクチャ:AIを活用した開発ハーネスの構築
# 本番環境向けのAIエージェントハーネスを構築するための包括的なシステムです。スキル、フック、メモリ、サブエージェント、マルチエージェントオーケストレーションに加え、AIコーディングエージェントを信頼性の高いインフラにする設計パターンを解説します。
要約: Claude Code は、ファイルにアクセスできるチャットボックスではありません。文書化された30のライフサイクルイベントを備え、各イベントにモデルが回避できないシェルスクリプトの hooks を設定できる、プログラム可能なランタイムです。hooks を dispatcher に、dispatcher を skills に、skills をエージェントに、エージェントをワークフローに積み重ねることで、制約の適用、作業の委任、セッションをまたぐメモリの永続化、multi-agent deliberation のオーケストレーションを行う自律開発 harness が完成します。Claude Code v2.1.147 では、デフォルトで無効な
Workflowツール(CLAUDE_CODE_WORKFLOWS=1)が追加され、決定論的な multi-agent オーケストレーションは、純粋なユーザーランドスクリプトからファーストパーティのランタイムプリミティブへと移行し始めました。v2.1.149 では、PowerShell の権限回避に関する修正と git-worktree サンドボックスの許可リスト修正により、セキュリティ面からも同じ教訓が強調されています。正確性を担うのは、引き続き hooks と evidence gate です。5253 このガイドでは、単一の hook から10エージェントによる合意形成システムまで、このスタックの全レイヤーを解説します。フレームワークは一切不要です。すべて bash と JSON だけで構築できます。
Andrej Karpathy は、LLM エージェントの周囲に成長するものを表す言葉として、claws(爪)を提唱しました。これは、エージェントがコンテキストウィンドウの外側にある世界をつかむための hooks、スクリプト、オーケストレーションを指します。1 多くの開発者は、AI コーディングエージェントを対話型アシスタントとして扱っています。プロンプトを入力し、ファイルが編集される様子を確認して、次へ進みます。しかし、この捉え方では、自分で監督できる範囲が生産性の上限になってしまいます。
インフラストラクチャとして捉えると、見え方は変わります。AI コーディングエージェントとは、LLM カーネルを備えたプログラム可能なランタイムです。モデルが行うすべてのアクションは、制御下にある hooks を通過します。定義するのはプロンプトではなく、ポリシーです。Web サーバーが nginx のルール内で動作するのと同じように、モデルも構築したインフラストラクチャ内で動作します。nginx の前に座ってリクエストを入力することはありません。設定し、デプロイし、監視するものです。
この違いが重要なのは、インフラストラクチャの効果が積み重なるためです。bash コマンドに認証情報が含まれるのをブロックする hook は、すべてのセッション、すべてのエージェント、すべての自律実行を保護します。評価基準を組み込んだ skill は、自分で呼び出してもエージェントが呼び出しても、一貫して適用されます。セキュリティの観点からコードをレビューするエージェントは、監視の有無にかかわらず同じチェックを実行します。2
要点
- hooks は実行を保証しますが、プロンプトは保証しません。 lint、フォーマット、セキュリティチェックなど、モデルの振る舞いにかかわらず毎回必ず実行すべき処理には hooks を使用します。終了コード2はアクションをブロックします。終了コード1は警告のみです。3
- skills は、自動的に有効化されるドメイン知識を組み込みます。 すべてを左右するのは
descriptionフィールドです。Claude は、キーワード一致ではなく LLM reasoning を用いて、skill を適用するタイミングを判断します。4 - subagents はコンテキストの肥大化を防ぎます。 調査と分析に独立したコンテキストウィンドウを使うことで、メインセッションを軽量に保てます。独立した subagents は並列実行し、ワーカー同士に継続的な連携が必要な場合はエージェントチームを使用します。5
- メモリはファイルシステムに保存されます。 ファイルはコンテキストウィンドウをまたいで保持されます。CLAUDE.md、MEMORY.md、rules ディレクトリ、引き継ぎ文書によって、構造化された外部メモリシステムが形成されます。6
- multi-agent deliberation は見落としを発見します。 単一のエージェントは、自らの前提を自力で覆すことができません。評価の優先順位が異なる2つの独立したエージェントを使えば、quality loop では対処できない構造的な問題を発見できます。7
- harness パターンそのものがシステムです。 CLAUDE.md、hooks、skills、エージェント、メモリは、それぞれ独立した機能ではありません。これらを組み合わせることで、ユーザーとモデルの間に決定論的なレイヤーが形成され、自動化の拡大に合わせてスケールします。
このガイドの使い方
| 経験 | まず読むセクション | 次に読むセクション |
|---|---|---|
| Claude Code を毎日使っており、さらに活用したい | Harness パターン | Skills システム、Hook アーキテクチャ |
| 自律ワークフローを構築したい | Subagent パターン | Multi-Agent オーケストレーション、本番環境向けパターン |
| エージェントアーキテクチャを評価したい | エージェントアーキテクチャが重要な理由 | 判断フレームワーク、セキュリティ上の考慮事項 |
| チーム用 harness を設定したい | CLAUDE.md のデザイン | Hook アーキテクチャ、クイックリファレンスカード |
各セクションは、それ以前の内容を土台として構成されています。最後の判断フレームワークには、問題の種類ごとに適切な仕組みを選ぶための参照表があります。
5分間のゴールデンパス
詳細に入る前に、ゼロから動作する__TERM_1__を構築する最短の道のりをご紹介します。1つのhook、1つのskill、1つのsubagent、そして1つの成果。
ステップ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をフロントマター(name: reviewer、description: Review code for security issues, bugs, and quality problems. Use when examining changes, reviewing PRs, or auditing code.、allowed-tools: Read, Grep, Glob)とチェックリスト(SQLインジェクション、XSS、ハードコードされたシークレット、エラーハンドリングの欠如、50行を超える関数)とともに作成します。
結果: review、check、auditについて言及するたびに、Claudeがこの専門知識を自動的に有効化します。
ステップ3:subagentの生成(30秒)
任意のClaude Codeセッションで、別のエージェントを使って直近の3つのコミットをセキュリティ問題についてレビューするようClaudeに依頼します。ClaudeはExploreエージェントを生成し、差分を読み、レビューskillを適用し、サマリーを返します。メインコンテキストはクリーンに保たれます。
これで手に入るもの
3層の__TERM_1__です。決定論的なセキュリティゲート(hook)、自動的に有効化されるドメイン専門知識(skill)、そしてコンテキストを保護する隔離された分析(subagent)。以下の各セクションでは、この3層のいずれかを掘り下げていきます。
なぜAgent Architectureが重要なのか
Simon Willisonは現在の状況を1つの観察で捉えています。コードを書くことは今や安価になったのです。8 そのとおりです。しかし、その裏返しとして、検証こそが高価な作業となりました。検証インフラのない安価なコードは、バグを大量生産します。投資の見返りをもたらすのは、より良いプロンプトではありません。モデルが見逃すものを捕捉する、モデルを取り巻くシステムなのです。
Agent Architectureを必要とする3つの力があります。
コンテキストウィンドウは有限かつ劣化する。 ファイル読み込み、ツール出力、会話のターンはすべてトークンを消費します。Microsoft ResearchとSalesforceは15種類のLLMを20万件以上のシミュレーション会話でテストし、シングルターンからマルチターンへの移行で平均39%の性能低下を確認しました。9 劣化はわずか2ターンで始まり、予測可能な曲線をたどります。最初の30分で正確だった複数ファイル編集が、90分後には単一ファイルへの視野狭窄へと退化していくのです。コンテキストウィンドウが長くなってもこの問題は解決しません。同じ研究の「Concat」条件(会話全体を1つのプロンプトとして扱う)では、同一内容でシングルターンの95.1%の性能を達成しました。劣化はトークン制限ではなく、ターンの境界から生じているのです。
モデルの挙動は確率的であり、決定論的ではない。 「ファイル編集後は必ずPrettierを実行する」とClaudeに指示しても、およそ80%の確率でしか機能しません。3 モデルは忘れるかもしれないし、速度を優先するかもしれないし、変更が「小さすぎる」と判断するかもしれません。コンプライアンス、セキュリティ、チーム標準において、80%は許容できません。hookは実行を保証します。EditやWriteが起きるたびにフォーマッタが起動し、例外はありません。決定論は確率論に勝るのです。
単一の視点は多次元の問題を見落とす。 単一のエージェントがAPIエンドポイントをレビューし、認証を確認し、入力サニタイズを検証し、CORSヘッダーを確認しました。問題なしとの診断です。2番目のエージェントが、別途ペネトレーションテスターとしてプロンプトされ、そのエンドポイントが無制限のクエリパラメータを受け付けており、データベースクエリ増幅によってサービス拒否を引き起こしうることを発見しました。7 最初のエージェントが確認しなかったのは、その評価フレームワークの中にクエリの複雑さをセキュリティ面として扱う仕組みがなかったからです。このギャップは構造的なものです。どれほどプロンプトエンジニアリングを積み重ねても解消されません。
Agent Architectureは、この3つすべてに対処します。hookは決定論的な制約を強制し、subagentはコンテキスト分離を管理し、マルチエージェントのオーケストレーションは独立した視点を提供します。これらが合わさって__TERM_1__を形作るのです。
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 │
└──────────────────────────────────────────────────────────────┘
Instruction レイヤー: CLAUDE.md ファイルと rules ディレクトリは、エージェントがプロジェクトについて把握する内容を定義します。セッション開始時と compaction のたびに自動で読み込まれます。これはエージェントの長期的なアーキテクチャ記憶となります。
Extension レイヤー: skills は、コンテキストに基づいて自動的に有効化される専門知識を提供します。hooks は、一致するツール呼び出しのたびに発動する決定論的なゲートとして機能します。メモリファイルはセッションをまたいで状態を保持します。カスタムエージェントでは、専用の subagents 設定を定義できます。
Orchestration レイヤー: マルチエージェントパターンは、調査、レビュー、審議に取り組む独立したエージェントを連携させます。spawn の上限により、制御不能な再帰を防ぎます。合意検証によって品質を確保します。
重要なのは、ほとんどのユーザーが Core レイヤーだけで作業し、コンテキストの肥大化とコストの増加を見守ることになっている点です。熟練したユーザーは Instruction レイヤーと Extension レイヤーを設定し、Core レイヤーはオーケストレーションと最終判断にだけ使用します。2
マネージド harness とセルフホスト型 harness(2026年4月)
2026年初頭までは、「独自の harness を構築する」方法が事実上唯一の選択肢でした。しかし、2026年4月に状況が変わりました。Anthropic は、Claude Managed Agents のパブリックベータを4月8日にリリースしました。harness ループ、ツール実行、サンドボックスコンテナ、状態の永続化を REST API として提供し、標準のトークン料金に加えてセッション時間あたり $0.08 が課金されます。OpenAI の Agents SDK アップデート(4月16日)でも同じ分離が正式化され、harness とコンピューティングが別々のレイヤーになりました。ネイティブのサンドボックスプロバイダー(Blaxel、Cloudflare、Daytona、E2B、Modal、Runloop、Vercel)に加え、コンテナ消失後も処理を継続するためのスナップショットと再ハイドレーションも提供されます。2324
OpenAI 側のより充実した SDK 機能は、openai-agents Python v0.14.0(2026年4月15日リリース、4月16日発表)で導入されました。Agent のサブクラスである SandboxAgent には、default_manifest、サンドボックス向けの指示、ケイパビリティが用意されています。Manifest は、新規ワークスペースの契約(ファイル、ディレクトリ、ローカルファイル、Git リポジトリ、環境、ユーザー、マウント)を記述します。SandboxRunConfig は、サンドボックスクライアント、ライブセッションの注入、マニフェストのオーバーライド、スナップショット、マテリアライズの並行処理上限を実行ごとに設定するためのものです。組み込みのケイパビリティとして、シェルアクセス、ファイルシステム編集、画像検査、skills、サンドボックスメモリ、compaction が用意されています。サンドボックスメモリは、抽出した知見を実行間で保持し、段階的に開示します。ワークスペースでは、ローカルファイル、Git リポジトリエントリ、リモートマウント(S3、R2、GCS、Azure Blob、S3 Files)を使用でき、スナップショットはプロバイダー間で移植可能です。バックエンドには、UnixLocalSandboxClient、DockerSandboxClient のほか、オプションの追加パッケージを介して利用できる Blaxel、Cloudflare、Daytona、E2B、Modal、Runloop、Vercel 向けのホスト型クライアントがあります。24
Python プロジェクトで、Claude Code ランタイムをライブラリとして組み込みたい場合には、claude-agent-sdk-python という3つ目の選択肢があります。これは、「claude をシェルから呼び出す」方法と「Managed Agents の REST API を利用する」方法の中間に位置します。4月28〜29日の一連のリリース(v0.1.69 → v0.1.71)では、同梱の CLI が v2.1.123 に更新され、mcp 依存関係の最低バージョンが >=1.19.0 に引き上げられました。旧バージョンでは、プロセス内の MCP ツールが返す CallToolResult が通知なく破棄され、モデルには検証エラーの塊しか渡されませんでした。また、SandboxNetworkConfig が TypeScript SDK のスキーマ(allowedDomains、deniedDomains、allowManagedDomainsOnly、allowMachLookup)と同等になりました。30 2026-08-01 時点で、このパッケージは PyPI の v0.2.128(Claude CLI v2.1.220 を同梱し、mcp の最低バージョンは現在 >=1.23.0)で、TypeScript SDK は v0.3.220 です。0.2.x 系列は、ここで説明した 0.1.x の機能を段階的に拡張したものです。以下の include_hook_events、skills、サンドボックス設定オプションは現在も有効で、最近のリリースではサブプロセスのクリーンアップと NDJSON ストリームの信頼性向上に重点が置かれています。86
harness に音声またはリアルタイムレイヤーが含まれる場合、openai-agents-python v0.17.0(2026年5月8日)では、RealtimeAgent のデフォルトが gpt-realtime-2 に更新されています。41 既存のリアルタイムセッションにも新しいデフォルトが自動的に適用されます。評価のために従来の動作を維持する必要がある場合は、以前のモデルを明示的に固定してください。
2026年7月には、OpenAI 側のマネージドサービスにもマルチエージェント機能が加わりました。openai-agents-python v0.18.2(7月11日)と openai-agents-js v0.13.2(7月10日)では、ベータ版の ホスト型マルチエージェントサポート が追加されています。これは複数のエージェントのオーケストレーションを OpenAI がホスト型サービスとして管理するもので、マルチエージェントオーケストレーションのセクションで取り上げる、Anthropic の Managed Multiagent Orchestration パブリックベータに直接対応する機能です。73 両ベンダーは、単一エージェントについて下表で示すのと同じトレードオフを、マルチエージェント層でも提供するようになりました。ベンダーが委任ループを実行する代わりに、hooks を利用できる範囲は狭まります。
アーキテクチャ上の分岐は、今や明確なものとなっています。
| 観点 | セルフホスト型 harness(本ガイドのデフォルト) | マネージド harness(Claude Managed Agents / OpenAI Agents SDK) |
|---|---|---|
| 運用負荷 | すべて自分たちで運用します | ベンダーがループ、サンドボックス、状態を運用します |
| カスタマイズ性 | 完全に制御可能 — 独自の hooks、skills、メモリ | 制限あり — ベンダー定義の拡張ポイント |
| コストモデル | トークン料金 + セルフホストのコンピューティング費用 | トークン料金 + ランタイム時間の追加料金 |
| 状態の永続性 | 自分たちで設計します | ベンダーが切断をまたいでチェックポイントを保持します |
| エージェントチームのオーケストレーション | 独自に構築します | ベンダー提供のマルチエージェント連携 |
どちらを選ぶべきか: すでにインフラストラクチャの運用能力があり、自分たちで制御できる 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 を介して共有されます。この2つを合わせたものが、完全な harness です。
Skills システム
skills はモデルが呼び出す拡張機能です。Claude は、明示的に呼び出さなくても、コンテキストに基づいて skills を自動的に検出し適用します。4 セッションをまたいで同じコンテキストを繰り返し説明していることに気づいたら、skill を作るべきタイミングです。
Skill を作るタイミング
| 状況 | 作るもの | 理由 |
|---|---|---|
| セッションのたびに同じチェックリストを貼り付けている | Skill | 自動的に有効化されるドメイン知識 |
| 毎回同じコマンド列を明示的に実行している | スラッシュコマンド | 予測可能なトリガーでユーザーが呼び出すアクション |
| コンテキストを汚さず、分離された分析が必要 | Subagent | 集中的な作業に使える独立したコンテキストウィンドウ |
| 特定の指示を含むプロンプトが1回だけ必要 | 何も作らない | そのまま入力しましょう。すべてを抽象化する必要はありません。 |
skills は、Claude が常に利用できる知識のためのものです。スラッシュコマンドは、明示的に実行するアクションのためのものです。どちらにするか迷ったら、「Claude が自動的に適用すべきか、それとも実行するタイミングを自分で決めるべきか」と考えてください。
Skill の作成
skills は、適用範囲が広い順に、次の4か所へ配置できます。4
| 適用範囲 | 場所 | 適用対象 |
|---|---|---|
| エンタープライズ | 管理対象の設定 | 組織内の全ユーザー |
| 個人 | ~/.claude/skills/<name>/SKILL.md |
自分のすべてのプロジェクト |
| プロジェクト | .claude/skills/<name>/SKILL.md |
このプロジェクトのみ |
| プラグイン | <plugin>/skills/<name>/SKILL.md |
プラグインが有効になっている環境 |
すべての skill には、YAML frontmatter を含む SKILL.md ファイルが必要です。
---
name: code-reviewer
description: Review code for security vulnerabilities, performance issues,
and best practice violations. Use when examining code changes, reviewing
PRs, analyzing code quality, or when asked to review, audit, or check code.
allowed-tools: Read, Grep, Glob
---
# Code Review Expertise
## Security Checks
When reviewing code, verify:
### Input Validation
- All user input sanitized before database operations
- Parameterized queries (no string interpolation in SQL)
- Output encoding for rendered HTML content
### Authentication
- Session tokens validated on every protected endpoint
- Permission checks before data mutations
- No hardcoded credentials or API keys in source
Frontmatter リファレンス
| フィールド | 必須 | 目的 |
|---|---|---|
name |
はい | 一意の識別子(小文字、ハイフン、最大64文字) |
description |
はい | 検出トリガー(最大1024文字)。Claude は、この内容を基に skill を適用するかどうかを判断します |
allowed-tools |
いいえ | Claude の機能を制限します(例:読み取り専用にする場合は Read, Grep, Glob) |
disable-model-invocation |
いいえ | 自動有効化を無効にし、/skill-name からのみ skill を有効化します |
user-invocable |
いいえ | false に設定すると、/ メニューに一切表示されなくなります |
model |
いいえ | skill が有効なときに使用するモデルを上書きします |
context |
いいえ | fork に設定すると、分離されたコンテキストウィンドウで実行されます |
agent |
いいえ | 独自の分離されたコンテキストを持つ subagent として実行します |
hooks |
いいえ | この skill に限定されたライフサイクル hooks を定義します |
$ARGUMENTS |
いいえ | 文字列置換:/skill-name の後に入力されたユーザーの内容で置き換えられます |
Description フィールドがすべてを左右する
セッション開始時に、Claude Code は各 skill の name と description を抽出し、Claude のコンテキストへ注入します。メッセージを送信すると、Claude は言語モデルの推論を使って、関連する skill があるかどうかを判断します。Claude Code のソースを独立して分析した結果からも、この仕組みが確認されています。skill の description はシステムプロンプトの available_skills セクションに注入され、モデルは通常の言語理解によって関連する skills を選択します。10
不適切な description:
description: Helps with code
効果的な description:
description: Review code for security vulnerabilities, performance issues,
and best practice violations. Use when examining code changes, reviewing
PRs, analyzing code quality, or when asked to review, audit, or check code.
効果的な description には、何をするのか(コードの具体的な問題の種類をレビューする)、いつ使うのか(変更、PR、品質分析を調べるとき)、そしてユーザーが自然に入力するトリガーフレーズ(review、audit、check)が含まれています。
なお、自動有効化は調整できる仕組みであり、絶対的なルールではありません。v2.1.215以降、Claude は同梱の /verify と /code-review skills を自動呼び出ししなくなり、明示的に呼び出した場合にのみ実行されます。これは、要求されていない実行では得られる価値よりコストが上回る重量級のレビュー skillsについて、description 主導の有効化を意図的に後退させた変更です。74
コンテキスト予算
すべての skill の description は、コンテキストウィンドウの1%に動的に調整される共通のコンテキスト予算を使用し、フォールバックは8,000文字です。4 多数の skills がある場合は、各 description を簡潔にし、主要なユースケースを最初に記載してください。SLASH_COMMAND_TOOL_CHAR_BUDGET 環境変数で予算を上書きできますが、11 よりよい解決策は、description を短く正確にすることです。セッション中に /context を実行し、除外されている skills がないか確認してください。
補助ファイルと構成
skills から、同じディレクトリ内の追加ファイルを参照できます。
~/.claude/skills/code-reviewer/
├── SKILL.md # Required: frontmatter + core expertise
├── SECURITY_PATTERNS.md # Referenced: detailed vulnerability patterns
└── PERFORMANCE_CHECKLIST.md # Referenced: optimization guidelines
SKILL.md から相対リンクで参照してください。skill が有効になると、Claude は必要に応じてこれらのファイルを読み取ります。SKILL.md は500行未満に抑え、詳細な参照資料は補助ファイルへ移してください。12
Git による Skills の共有
プロジェクトの skills(リポジトリルートの .claude/skills/)は、バージョン管理を通じて共有されます。4
mkdir -p .claude/skills/domain-expert
# ... write SKILL.md ...
git add .claude/skills/
git commit -m "feat: add domain-expert skill for payment processing rules"
git push
チームメンバーが 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 には、その skill の実行中にのみ有効になる独自の hooks を定義できます。これにより、ほかのセッションを汚さずに、ドメイン固有の動作を実現できます。2
---
name: deploy-checker
description: Verify deployment readiness. Use when preparing to deploy,
release, or push to production.
hooks:
PreToolUse:
- matcher: Bash
hooks:
- type: command
command: "bash -c 'INPUT=$(cat); CMD=$(echo \"$INPUT\" | jq -r \".tool_input.command\"); if echo \"$CMD\" | grep -qE \"deploy|release|publish\"; then echo \"DEPLOYMENT COMMAND DETECTED. Running pre-flight checks.\" >&2; fi'"
---
哲学を定めた skills は SessionStart hooks を通じて自動的に有効になり、明示的に呼び出さなくても、すべてのセッションへ品質上の制約を注入します。skill 自体が知識であり、hook はその強制手段です。両者を組み合わせることで、ポリシーレイヤーが形成されます。
Skill でよくある間違い
description が広すぎる。 git 関連のあらゆるプロンプト(rebase、merge、cherry-pick、さらには git status)で有効になる git-rebase-helper skill は、セッションの80%でコンテキストを汚してしまいます。description の対象を絞るか、disable-model-invocation: true を追加して、明示的な /skill-name の呼び出しを必須にすることで解決できます。4
コンテキスト予算を奪い合う skills が多すぎる。 skills が増えるほど、1%のコンテキスト予算をめぐって競合する description も増えます。skills が有効にならない場合は、/context で除外されているものを確認してください。曖昧な skills を多数用意するより、適切な description を持つ少数の skills を優先しましょう。
重要な情報が補助ファイルに埋もれている。 Claude は SKILL.md をすぐに読み取りますが、補助ファイルには必要になったときだけアクセスします。重要な情報が補助ファイルにあると、Claude が見つけられない可能性があります。不可欠な情報は SKILL.md に直接記載してください。4
SDK の Skill サーフェス(2026年5月8日)
claude-agent-sdk-python v0.1.77以降を利用するセルフホスト型 harness では、利用可能な skills を宣言する際に、allowed_tools の従来の "Skill" 値ではなく、ClaudeAgentOptions の skills オプションを使用してください。37 "Skill" という短縮表記は非推奨です。専用オプションを使うことで、利用可能な skills について、より構造化された情報を Claude Code に提供できます。v0.1.77に同梱される CLI はv2.1.133です。
.claude/skills/ におけるプラグインと Skill の統合(2026年5月29日)
skills は以前から、プロジェクトの .claude/skills/ ディレクトリから読み込まれていました。Claude Code v2.1.157では、このディレクトリがプラグインにも拡張されています。.claude/skills/ に配置したプラグインは、マーケットプレイスへ登録しなくても自動的に読み込まれるようになりました。また、claude plugin init <name> を実行すると、manifest と SKILL.md があらかじめ接続された新しいプラグインが、この場所に生成されます。58 これにより、以前は別々の場所に存在していた2種類のプロジェクトツール構成の隔たりが解消されます。一方はリポジトリへ直接コミットする単体の skill、もう一方は skill、hooks、MCP サーバーをまとめて提供できるものの、これまではインストールにマーケットプレイスが必要だったプラグインです。harness のデザインに与える実務的な効果として、プロジェクト単位のツールを提供するためにレジストリを経由する必要がなくなりました。作成してコミットすれば、チームメンバーも git pull で同じサーフェスを利用できます。プラグインは引き続き、まとめてインストールできるユースケース(hooks + skills + MCP サーバー + agents を1つの ZIP に格納)を担います。今回の変更点は、プロジェクトが自身のツリーからプラグインを1つ読み込むだけのために、マーケットプレイスを用意する必要がなくなったことです。
ガバナンスとして同梱サーフェスを非表示にする(2026年6月8日)
skills は機能であり、機能は攻撃対象領域でもあります。Claude Code v2.1.169では、同梱の skills、workflows、組み込みスラッシュコマンドをモデルから完全に隠す disableBundledSkills 設定(および対応する CLAUDE_CODE_DISABLE_BUNDLED_SKILLS 環境変数)が追加されました。60 セキュリティを強化した harness や規制対象の harness にとって、これは意図的な攻撃対象領域の縮小です。特定のプロジェクト skills と個人 skills を監査・承認した運用者は、Anthropic に標準搭載されているすべての機能を抑制できます。これにより、モデルが推論対象とするのは、運用者が検証したサーフェスだけになります。ツールの allowlist と同様に扱ってください。デフォルトでは幅広い機能が有効であり、それを無効にすることは、利便性のための切り替えではなくガバナンス上の判断です。
ネストされた .claude/skills と最寄り優先の解決(2026年6月16日)
Claude Code v2.1.178では、プロジェクトツールが配置場所を認識するようになりました。リポジトリルートだけでなく、ネストされた .claude/skills ディレクトリ内の skills も、そのディレクトリ配下のファイルを扱っているときに読み込まれます。同名の skill が競合した場合は、ネストされた skill が <dir>:<name> として表示されるため、どちらにもアクセスできます。63 同じリリースでは、プロジェクトサーフェスのほかの要素も、作業ディレクトリに最も近いものを解決するようになりました。ネストされた .claude/ ディレクトリ間で agent、workflow、output-style の名前が競合した場合、作業ディレクトリに最も近いものが優先されます。また、プロジェクトスコープの workflow を保存すると、常にルートではなく、最も近い既存の .claude/workflows/ が保存先になります。63 monorepo や複数のリポジトリを内包するリポジトリでは、これにより、単一のフラットなグローバルサーフェスから、コンテキストに応じて有効になるパッケージごとのツール構成へ移行できます。たとえば、services/api/.claude/skills/ に API 固有の skills を配置すれば、そのツリーで作業している間だけ表示され、同名の services/web/ skill とも競合しません。
Hook Architecture
hooksは、Claude Codeのライフサイクルイベントによってトリガーされるシェルコマンドです。3 LLMの外部で、モデルが解釈するプロンプトではなく、通常のスクリプトとして実行されます。モデルがrm -rf /を実行しようとした場合はどうなるでしょうか。10行のbashスクリプトがコマンドをブロックリストと照合し、シェルに渡る前に拒否します。モデルの意向にかかわらず、hookは発火します。
利用可能なイベント
このガイドの更新時点で、Claude Codeは8つのカテゴリーにわたる30個の文書化されたライフサイクルイベントを公開しています。イベントの一覧はリリースとともに増えるため、リファレンスドキュメントを信頼できる唯一の情報源として扱い、本番環境用のhooksを組み込む前に、チートシートで最新の完全な表を確認してください。13
| カテゴリー | イベント | ブロック可能? |
|---|---|---|
| セッション | SessionStart, Setup, SessionEnd |
いいえ |
| ユーザー/完了 | UserPromptSubmit, UserPromptExpansion, Stop, StopFailure, TeammateIdle |
プロンプト/展開/停止/アイドルはブロック可能。StopFailureは不可 |
| ツール | PreToolUse, PermissionRequest, PermissionDenied, PostToolUse, PostToolUseFailure, PostToolBatch |
事前処理/権限/バッチはブロック可能。事後イベントは不可 |
| subagents/タスク | SubagentStart, SubagentStop, TaskCreated, TaskCompleted |
停止/タスクイベントはブロック可能。開始は不可 |
| コンテキスト | PreCompact, PostCompact, InstructionsLoaded |
PreCompactはブロック可能。事後処理/読み込みは不可 |
| ファイルシステム/ワークスペース | CwdChanged, DirectoryAdded, FileChanged, WorktreeCreate, WorktreeRemove |
ワークツリーの作成はブロック可能。その他は不可 |
| 設定/通知 | ConfigChange, Notification |
ポリシー設定を除き、設定変更はブロック可能。通知は不可 |
| MCP | Elicitation, ElicitationResult |
はい |
バックグラウンド処理とマルチエージェントharnessでは、最近の2つの改善が重要です。v2.1.198以降、バックグラウンドのclaude agentsセッションは、トリガー値agent_needs_inputおよびagent_completedを指定してNotification hookを発火します。これにより、フリート内のメンバーがプロンプト待ちで停止した瞬間や、処理を完了した瞬間にコーディネーターが対応できます。これは、claude agents --jsonによるポーリングを通知駆動に置き換えたものです。また、v2.1.199以降、SessionStart、Setup、SubagentStart hooksは、終了コード2で終了するとstderrを表示します(以前はこの出力が通知されずに破棄されていました)。そのため、起動時またはsubagents起動時のhookが失敗しても、理由が分からないまま失敗するのではなく、原因が示されるようになりました。 |
DirectoryAdded(v2.1.219)は、セッション途中で生じるワークスペースの監視漏れを解消します。 v2.1.152でMessageDisplayが追加されて以来、イベント一覧は変わっていませんでした。DirectoryAddedはそれ以降で初めて追加されたライフサイクルイベントであり、/add-dir、またはSDKのregister_repo_root制御リクエストによって、セッション途中に新しい作業ディレクトリが登録された後に発火します。84 これまで、この監視漏れは現実的な問題でした。harnessがSessionStartでワークスペースを徹底的に検証しても、その後hookが一切発火しないまま2つ目のリポジトリが追加される可能性があったのです。起動時にワークスペースについて検証した内容(信頼性チェック、シークレットのスキャン、ディレクトリツリーから導出したパススコープのルール、リポジトリ単位のポリシー読み込みなど)は、ここで再実行する必要があります。セッションが扱うディレクトリの集合は、起動時に固定されるものではなくなったためです。このイベントはブロック用ではなく情報提供用です。そのため、ゲートとしてではなく、状態を再導出して出所を記録するトリガーとして扱ってください。決して追加を許可してはならないディレクトリがある場合は、hookで拒否しようとせず、設定で拒否します。SDK側の対応も同じリリースで導入されました(TypeScript v0.3.219では、制御プロトコルのライフサイクルイベントにDirectoryAddedが追加されています)。これにより、SDKでホストされるharnessでも、CLIと同様にこのイベントを利用できます。85
終了コードのセマンティクス
hooksがアクションをブロックするかどうかは、終了コードによって決まります。3
| 終了コード | 意味 | アクション |
|---|---|---|
| 0 | 成功 | 処理を続行します。詳細表示モードではstdoutが表示されます。 |
| 2 | ブロッキングエラー | 処理を停止します。stderrは、Claudeに渡されるエラーメッセージになります。 |
| 1、3など | 非ブロッキングエラー | 処理を続行します。stderrは詳細表示モード(Ctrl+O)でのみ表示されます。 |
重要: すべてのセキュリティhookでは、exit 1ではなくexit 2を使用する必要があります。終了コード1は非ブロッキングの警告です。危険なコマンドはそのまま実行されます。これは、チームを問わず最もよく見られるhookのミスです。14 |
Hookの設定
hooksは設定ファイルに記述します。共有hooksにはプロジェクトレベル(.claude/settings.json)、個人用hooksにはユーザーレベル(~/.claude/settings.json)を使用します。
{
"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フィールドは、イベント固有の値をフィルタリングします。ツールイベントの場合は、Bash、Edit、Write、Read、Glob、Grep、mcp__server__toolのようなMCPツール名、または全ツールを表す*などのtool_name値と照合します。単純な名前と|区切りのリストは完全一致として扱われ、それ以外の文字を含む値はJavaScript正規表現になります。一部のイベントはmatchersに対応しておらず、設定されていれば必ず発火します。13 Claude Code v2.1.195以降、ハイフンを含む識別子(code-reviewer、mcp__brave-search)を指定したmatchersは、誤って部分一致するのではなく完全一致するようになりました。これにより、特定のエージェントやサーバーを対象とするhookが、その文字列を含むだけの名前すべてに発火することはなくなりました。ハイフンを含むMCPサーバーの全ツールを対象にするには、明示的なパターンmcp__brave-search__.*を記述してください。66 v2.1.214では、同じ厳密さがパスパターンにも適用されました。単一セグメントのdir/**パターンを使用するhookのif:条件は、ツリー内のあらゆる場所にあるdirという名前のディレクトリではなく、<cwd>/dirだけに一致するようになりました。深さを問わず一致させたい場合は、**/dir/**と記述してください。v2.1.195の変更と同様、この修正では意図しない広範な一致を避け、宣言した意図を優先しています。従来の任意階層への一致動作に暗黙的に依存していたhook条件がないか、監査してください。
Hookの入出力プロトコル
hooksは、完全なコンテキストを含むJSONをstdinで受け取ります。
{
"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ラッパーを使用してください。従来のトップレベルdecision/reason形式は、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."
}
}
3種類の保証
hookを作成する前に、どのような保証が必要なのかを考えてください。14
フォーマットの保証は、処理後の一貫性を確保します。Write/Editに対するPostToolUse hooksは、ファイルが変更されるたびにフォーマッターを実行します。フォーマッターがすべてを正規化するため、モデルがどのような出力を生成したかは問題になりません。
{
"hooks": {
"PostToolUse": [
{
"matcher": "Write|Edit",
"hooks": [
{
"type": "command",
"command": "bash -c 'if [[ \"$FILE_PATH\" == *.py ]]; then black --quiet \"$FILE_PATH\" 2>/dev/null; elif [[ \"$FILE_PATH\" == *.js ]] || [[ \"$FILE_PATH\" == *.ts ]]; then npx prettier --write \"$FILE_PATH\" 2>/dev/null; fi'"
}
]
}
]
}
}
安全性の保証は、危険なアクションが実行される前に防止します。Bashに対するPreToolUse hooksはコマンドを検査し、破壊的なパターンを終了コード2でブロックします。
#!/bin/bash
# validate-bash.sh — block dangerous commands
INPUT=$(cat)
CMD=$(echo "$INPUT" | jq -r '.tool_input.command')
if echo "$CMD" | grep -qE "rm\s+-rf\s+/|git\s+push\s+(-f|--force)\s+(origin\s+)?main|git\s+reset\s+--hard|DROP\s+TABLE"; then
echo "BLOCKED: Dangerous command detected: $CMD" >&2
exit 2
fi
品質の保証は、判断を下す時点で状態を検証します。git commitコマンドに対するPreToolUse hooksは、リンターまたはテストスイートを実行し、品質チェックに失敗した場合はコミットをブロックします。
#!/bin/bash
# quality-gate.sh — lint before commit
INPUT=$(cat)
CMD=$(echo "$INPUT" | jq -r '.tool_input.command')
if echo "$CMD" | grep -qE "^git\s+commit"; then
if ! LINT_OUTPUT=$(ruff check . --select E,F,W 2>&1); then
echo "LINT FAILED -- fix before committing:" >&2
echo "$LINT_OUTPUT" >&2
exit 2
fi
fi
シェルコマンド以外のHookタイプ
Claude Codeは5種類のhookタイプに対応しています。13
Command hooks(type: "command")はシェルスクリプトを実行します。高速かつ決定論的で、トークンコストもかかりません。
MCP ツール hooks(type: "mcp_tool")は、接続済みの MCP サーバー上のツールを呼び出します。検証ロジックがすでに MCP 境界の内側にあり、別のシェルスクリプトを必要としない場合に使用します。
Prompt hooks(type: "prompt")は、高速な Claude モデルに単一ターンのプロンプトを送信します。モデルは、許可する場合に { "ok": true }、ブロックする場合に { "ok": false, "reason": "..." } を返します。正規表現では表現できない、微妙な判断を伴う評価に使用します。
Agent hooks(type: "agent")は、ツール(Read、Grep、Glob)へのアクセス権を持つ subagent を起動し、複数ターンにわたる検証を行います。これは実験的な機能です。production の gate には 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 hooks(type: "http")は、イベントの JSON 入力を POST リクエストとして URL に送信し、応答として JSON を受け取ります。webhook、外部通知サービス、または 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: true を追加します。13
{
"type": "command",
"command": ".claude/hooks/notify-slack.sh",
"async": true
}
非同期処理は、通知、テレメトリー、バックアップに使用します。フォーマット、検証、または次のアクションまでに完了する必要がある処理には、決して使用しないでください。
個別の Hooks より Dispatchers
同じイベントで7つの hooks を実行し、それぞれが独立して stdin を読み取ると、競合状態が発生します。2つの hooks が同じ JSON 状態ファイルへ同時に書き込むと、JSON が途中で切り詰められます。そのファイルを解析する後続の hooks は、すべて動作しなくなります。2
解決策は、イベントごとに1つの 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 のデバッグ
何も通知せずに失敗する hooks をデバッグするための5つのテクニックです。14
- スクリプトを単独でテストします。 サンプルの JSON をパイプで渡します:
echo '{"tool_input":{"command":"git commit -m test"}}' | bash your-hook.sh - デバッグ出力には stderr を使用します。 終了コード2の stderr は、エラーメッセージとして Claude に返されます。ブロックしない stderr(終了コード1、3など)は、詳細モード(Ctrl+O)でのみ表示されます。
- jq の失敗に注意します。 JSON のパスが間違っていると、通知されずに
nullが返されます。実際のツール入力を使ってjq式をテストしてください。 - 終了コードを確認します。
exit 1を使用する PreToolUse hook は、動作しているように見えても、強制力がまったくありません。 - Hooks を高速に保ちます。 Hooks は同期的に実行されます。すべての hooks を2秒未満、理想的には500ms未満に抑えてください。
SDK 側の Hook イベントストリーミング
claude-agent-sdk-python(v0.1.74 以降、2026年5月6日)上に構築されたセルフホスト型 harness では、シェルスクリプトのコールバックを介さず、メッセージストリームから hook イベントを直接購読できます。36 ClaudeAgentOptions に include_hook_events=True を設定すると、HookEventMessage オブジェクト(PreToolUse、PostToolUse、Stop など)が、アシスタントメッセージやツール結果と同じイテレーターから返されます。これは TypeScript SDK の includeHookEvents オプションに相当します。同じリリースで、同梱の CLI も v2.1.129 に更新されました。
イベントストリームのパターンは、harness がすでに Python 上で動作しており、モデル出力と同じ制御フローで hook のシグナルを扱いたい場合に適しています。一方、複数のツールを組み合わせる harness、Claude Code と Codex の間で hooks を共有する harness、またはブロックに終了コードのセマンティクスが必要な harness では、シェルスクリプトによる hook の契約(終了コード、stdin の JSON、dispatchers)が引き続き適切です。
TypeScript SDK の2026年7月シリーズ(v0.3.205〜v0.3.208)では、ストリーミングプロトコル自体の契約がより明確になりました。70 割り込みは、型付きの receipt を返すようになりました。割り込み時にまだ待機中のキューメッセージが still_queued UUID で通知され、セッションは system/init で interrupt_receipt_v1 capability を提示します。これにより coordinator は、「割り込みが受理された」場合と「割り込みが、すでに処理中のメッセージに間に合わなかった」場合を区別できます。command_lifecycle frame は、メッセージごとに queued/started/completed/cancelled/discarded を報告します。これは、transcript から推測せずに「送信したメッセージに何が起きたのか」を把握できる、初のファーストパーティーによる仕組みです。より小規模な機能も追加されました。subagent の完了 payload 用の AgentToolCompletedOutput 型と、updatedInput フィールドなしで {behavior: 'allow'} を返せる canUseTool callback です。
このシリーズに含まれる1つの変更は、機能ではなくセキュリティの最低基準です。v0.3.208 では、保留中の hook の実行中に呼び出し元から abort が届くと、hook の成功として扱われる問題が修正されました。この問題により、PreToolUse hook で gate されているツールが、呼び出し元による abort の後に実行される可能性がありました。70 SDK 側の hooks を permission gate として使用し、処理中の作業をキャンセルするために abort に依存している場合は、v0.3.208 を最低バージョンとしてください。それより前のバージョンでは、「aborted」が「blocked」を確実に意味するとは限りませんでした。Python v0.2.127(2026年7月24日)は、1か月以内に発生した同種の2つ目の bypass です。query() が最初の result frame で stdin を閉じましたが、その時点でもバックグラウンドの subagents は実行中でした。その結果、subagents による SDK-MCP ツール呼び出しが "Stream closed" で失敗したうえ、PreToolUse hooks を完全に bypass しました。85 このパターンを認識し、警戒してください。SDK 側の hook による強制は、abort、teardown、stream close といったライフサイクルの境界で、フェイルオープンになります。hook の判定結果が回収される前に通信が切断されるためです。しかも、bypass された hook は承認した hook とまったく同じように見えるため、通知なしに失敗します。両方の SDK の最低バージョンを固定し、実効性を証明できる強制レイヤーとして shell-hook 層を維持してください。
Effort とセッションの Provenance(2026年5月7〜8日)
Claude Code v2.1.132 と v2.1.133 で追加された2つの機能により、hooks と subprocesses は実行コンテキストをより正確に把握できるようになりました。3839
- hook 入力の
effort.level。 Hooks は、tool_inputとsession_idを含む入力と同じ場所に、effort.levelJSON フィールドも受け取るようになりました。同じ値が$CLAUDE_EFFORTenv var としてエクスポートされるため、Bash commands は JSON を解析せずに値を読み取れます。これを使って、effort tier に応じて hook のコストを調整できます。lowでは高コストな検証を省略し、xhighまたはmaxでは完全な security gate を実行します。 - Bash subprocesses の
CLAUDE_CODE_SESSION_IDenv var。 Bash ツールの subprocesses でも、hooks が参照するものと同じsession_id値をCLAUDE_CODE_SESSION_IDとして利用できるようになりました。これにより、セッション単位の状態を記録するツールが subprocess イベントと hook イベントを関連付けられなかった provenance の欠落が解消されます。
どちらのシグナルもコードを変更せずに利用できます。新しいフィールドを無視する既存の hooks も、そのまま動作します。
autoMode.hard_deny と v2.1.136 の Hook/Plugin 修正(2026年5月8日)
Claude Code v2.1.136 では、auto mode に新しい hard-deny tier が追加され、長時間稼働する harness に影響していた plugin と MCP に関する一連の問題が修正されました。40
- settings.autoMode.hard_deny。 ユーザーの意図や許可の例外にかかわらず、無条件でブロックする auto mode classifier ルールです。既存の許可/拒否マッチャーより上位に位置し、妥協できないガバナンスの制御手段として機能します。個人設定でオペレーターがより広いカテゴリーを許可している場合でも、決して上書きされてはならないルール(main への force-push、シークレットを含むファイル、本番データベースへのアクセス)に使用してください。
- autoMode.classifyAllShell(v2.1.193)。 デフォルトでは、auto-mode classifier は任意コード実行パターンに一致するシェルコマンドのみを審査します。この設定を使うと、すべての Bash/PowerShell コマンドが classifier を経由します。これは、統制された harness において最大限の範囲をカバーする構成です。また、同じリリースで拒否の理由がトランスクリプト、トースト、/permissions に表示されるようになり、理由の見えないブロックが監査可能な判断に変わりました。Codex も v0.142.2 で同等の仕組みを強化しています。安全性 classifier が検査できない実行可能な AST 領域を含む PowerShell コマンドは、黙って通過するのではなく承認を要求するようになりました。66
- Hook の ask が classifier の下限を設定(v2.1.211)。 hook と auto mode の優先順位に関する問題は、これで決着しました。ask という権限判断を返す PreToolUse hook は、最終結果の下限を確認プロンプトに設定します。つまり、サンドボックス化されていない Bash コマンドを auto mode が許可へ引き上げることはできません。69 統制された harness にとって、これは欠けていた保証レベルです。完全自動の権限構成でも、hook の ask は確実に人間を判断ループへ介在させる停止点として機能します。拒否ではなく人間の判断を求めたい操作には、exit-2 によるブロックだけでなく ask を使用してください。
- classifier モデルはセッション単位で固定(v2.1.210)。 auto-mode classifier のデフォルトは Sonnet 5 で、セッション中はこのモデルに固定されます。そのため、セッション途中でモデルを切り替えても、権限分類を行うモデルは変わりません。分類の一貫性はガバナンス上の特性であり、この変更により目立たないドリフト要因が取り除かれました。
- 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 の Stop および UserPromptSubmit hooks がセッション途中で失敗しなくなりました。 キャッシュのクリーンアップ処理が、実行中のセッションでまだ使用されている plugin バージョンのファイルを削除し、特にこの2つの hook イベントを壊していました。修正後は、使用中のバージョンが固定されます。
- plugin.json の skills エントリ。 skills を設定すると、plugin のデフォルトの skills/ ディレクトリが表示されなくなっていました。現在はエントリが正しく合成され、ファイルパスを指定した場合も黙って失敗せず、明示的なエラーが表示されます。
- CLAUDE_ENV_FILE の SessionStart hook 環境変数が古くなる問題。 SessionStart hooks が CLAUDE_ENV_FILE 経由でエクスポートした変数は、/resume または /clear の後に古い状態となっていました。v2.1.136 で修正されています。現在は、これらのイベント時にセッションが環境変数ファイルを再度読み込みます。
ガバナンス用 harness の運用面で特に注目すべき項目は、autoMode.hard_deny(新しい制御手段)と MCP が消える問題の修正(長時間のセッションを壊していた目立たない障害)です。それ以外は、使い勝手を向上させるための整理です。
構造化された Hook 引数とブロック後の継続(2026年5月11日)
Claude Code v2.1.139 では、本番環境の harness にとって重要な hook の詳細が2つ追加されました。コマンド hooks 向けの args: string[] exec 形式と、PostToolUse hooks 向けの continueOnBlock です。4244 hook で動的な値やパスのプレースホルダーが必要な場合は、args を使用してください。シェルを介さずコマンドを直接起動するため、クォートやインジェクションに関する一連のミスを排除できます。
PostToolUse hook がフローを終了するのではなく、拒否理由を Claude に返してターンを続行させる場合は、continueOnBlock を使用してください。これはオペレーター体験を改善する機能であり、セキュリティを迂回する手段ではありません。ブロッキングゲートは、引き続き安全でない結果を阻止する必要があります。
同じリリースでは、CLAUDE_PROJECT_DIR が MCP stdio サーバーへ渡され、plugin 設定のコマンド内で ${CLAUDE_PROJECT_DIR} を参照できるようになりました。42 MCP ツールは、たまたまサーバーを起動したプロセスの作業ディレクトリではなく、この値を基準にプロジェクト相対パスを解決する必要があります。2026年7月上旬のリリース(v2.1.203〜v2.1.206)では、同じ原則がプロトコルレベルにも拡張されました。MCP roots/list にセッションの追加作業ディレクトリが含まれ、変更時には roots/list_changed 通知が送られるようになっています。これにより、MCP roots に対応するサーバーは単一のプロジェクトディレクトリを前提とせず、実際の複数ディレクトリからなるワークスペース構成を追跡できます。68
Claude Code v2.1.140 は、主に harness オペレーター向けの信頼性向上リリースです。設定変更時に ConfigChange hooks が発火しない問題、設定レベルをまたいだ disableAllHooks と allowManagedHooksOnly の組み合わせが正しく機能しないエッジケース、hook の結果として返された意図しない環境変数が権限ダイアログに表示される問題を修正しています。49 このセクションで説明している既存のガバナンスパターンがより確実に機能するようになりますが、新しい hook architecture は必要ありません。
Claude Code v2.1.141 では、制御端末がない場合でもデスクトップ通知、ウィンドウタイトル、ベルを扱える hook 出力の terminalSequence フィールドが追加されました。50 これはオペレーターへのシグナルとして扱い、強制手段には使用しないでください。セキュリティゲートと品質ゲートでは、通常のブロック契約を通じて障害を伝える必要があります。つまり、構造化された hook 出力と、安全でない操作を防ぐ終了動作を使用します。同じリリースでは、Agent View の対象を1つのディレクトリに限定する claude agents --cwd <path>、GitHub SSH キーがない環境で plugin をインストールするための CLAUDE_CODE_PLUGIN_PREFER_HTTPS、複数のワークスペースを対象とする workload-identity federation ルール向けの ANTHROPIC_WORKSPACE_ID も追加されました。50 これらはチーム用 harness に関する architecture 上の詳細です。運用ビューを絞り込み、plugin インストール時の前提を減らし、エンタープライズトークンの適用範囲を明示できます。
Claude Code v2.1.142 は、hook のセマンティクスよりも、バックグラウンドセッションのオーケストレーションにとって重要です。51 claude agents では、ラッパーの状態に依存せず、ディレクトリ、設定、MCP、plugin、権限、モデル、effort の各フラグを明示してバックグラウンドセッションをディスパッチできるようになりました。このリリースでは 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 キャッシュのクリーンアップに関する修正により、オーケストレーションのバグに見えかねない信頼性の問題も解消されました。
Stop-hook によるステアリング、セッションをまたぐ権限、multi-agent v2(2026年6月)
6月上旬の4つの変更は、harness と multi-agent のデザインにとって重要です。59
Stop/SubagentStop hooks にステアリングチャネルが追加されました。 Claude Code v2.1.163 以降、Stop または SubagentStop hook は hookSpecificOutput.additionalContext を返すことで、応答が hook エラーとして扱われることなく Claude にフィードバックを渡し、ターンを続行できるようになりました。これまでは、Stop hook が実質的に使える唯一の制御手段は exit-2 ブロックでした。しかし、これはエラーとして表示され、連続ブロック回数の上限にも加算されます。品質ゲート用 harness では、今回追加された仕組みのほうが適しています。「完了したと言っているが、テストは失敗している」と検出した Stop hook は、ハードブロックする代わりに「まだ失敗している項目はこれです。続行してください」と指示できるようになりました。本当に停止すべき条件にはブロックを使い、「まだ完了していません。その理由はこれです」という場合には additionalContext を使用してください。
セッションをまたぐメッセージが、借用した権限を引き継がなくなりました。 v2.1.166 では、複数セッションを使うケースが強化されました。別の Claude セッションから SendMessage 経由で中継されたメッセージは、送信元ユーザーの権限を引き継ぎません。そのため、受信側セッションは中継された権限リクエストを拒否し、auto mode もブロックします。agents 同士がメッセージを送るオーケストレーションでは、受信メッセージを認証済みの指示ではなく、信頼できないデータとして扱ってください。これは、セキュリティセクションでツール出力に適用している原則を、agents 間のメッセージングへ拡張したものです。v2.1.199 以降、同名の agents が2つ存在するために SendMessage が誤ってルーティングされた場合も、Claude Code が検出して警告します。これは権限境界を信頼性の面から補完する変更です。メッセージが誤った同名の agent に届くこと自体が、オーケストレーションにおける独立した種類のバグだからです。
モデルのレジリエンスが正式な設定項目になりました。 fallbackModel 設定では最大3つのバックアップモデルを連鎖させ、プライマリモデルが過負荷または利用不能になった場合に、指定した順序で試せるようになりました。また、予期しない再試行不能の API エラーが発生した場合、フォールバックモデルでターンが1回自動再試行されます。長時間稼働する自律型 harness では、プライマリモデルの一時的な障害によって実行が失われるのではなく、機能を穏やかに縮退させて継続できます。claude agents --json には、ブロック中のバックグラウンドセッションが何を待っているのか(権限プロンプトなど)を示す waitingFor フィールドも追加されました(v2.1.162)。エージェント群をポーリングするあらゆるコーディネーターにとって、可観測性の向上につながります。
クリーンルームでのガバナンスとトラブルシューティングに使えるセーフモード。 Claude Code v2.1.169では、すべてのカスタマイズを一括で無効化してセッションを開始する --safe-mode フラグ(および対応する CLAUDE_CODE_SAFE_MODE 環境変数)が追加されました。無効になるのは、CLAUDE.md、プラグイン、skills、hooks、MCP サーバーです。60 これは harness の対極にある、意図的なクリーンルームです。すべての運用者がいずれ抱く「この挙動はモデルによるものなのか、それとも自分の設定によるものなのか」という疑問に答えるために使えます。hook が誤作動したとき、skill が意図せず有効になったとき、あるいは MCP サーバーによってコンテキストが汚染されたとき、--safe-mode を使えば、比較対象となる既知の空のベースラインを得られます。ガバナンスの基本要素としても有用です。通常は harness によって付与される永続的な権限を一切持たない素のモデルを実行できるため、運用者が定義した足場の影響を排除して結果を再現する必要がある場合に重要となります。
モデル階層について。 Claude Code v2.1.197(2026年6月30日)以降、Claude Sonnet 5が新規セッションに同梱されるデフォルトモデルとなりました。ネイティブの1Mコンテキストを備え、8月31日までは100万トークンあたり$2/$10のプロモーション価格が適用され、初期設定の選択肢としてOpus 4.8を置き換えています。このガイドでは、Opus 5(claude-opus-5)を推奨するエージェント向けデフォルトとして扱います。意図的に別のモデルを選ばない限り、自律型 harness を実行するモデルです。長期間にわたる高リスクなエージェントループは、まさにOpusの深い推論がコストに見合う領域だからです。Opus 5は2026年7月24日、Claude Code v2.1.219の新しいデフォルトOpusとしてリリースされました。1Mコンテキストを備え、価格は100万トークンあたり$5/$25(置き換え対象のOpus 4.8と同額)、fast modeは約2.5倍の速度で$10/$50です。さらにAnthropicによると、Frontier-Bench v0.1ではOpus 4.8のスコアを2倍以上に伸ばし、CursorBench 3.2では半分のコストでFable 5のスコアとの差を0.5%以内に収めています。8487 同じ価格で能力が高まり、Anthropicが「自身の作業を検証し、慎重に反復する能力がはるかに高い」と評するモデルです。harness 用途ではコスト面の説明すら不要な、まれに見るアップグレードといえます。4.8からの移行に必要なのはIDの変更だけです。コスト重視の作業や大量処理では、速度と知能のバランスに優れるSonnet 5へ切り替えてください。Opusの上位には、2026年6月9日に登場したClaude Fable 5(claude-fable-5)があります。Anthropicが最も強力なモデルであり、一般利用に向けて安全性を確保した「Mythos-class」システムと説明する新しい階層で、Claude Code v2.1.170では/model claude-fable-5から選択できます。60 この上位階層はエージェント群の一律設定にするのではなく、生の推論力がコストに見合う意思決定で、意図を持って選びましょう。Opus 5への移行には、運用上の変更が2点あります。Opus 4.7はfast modeの対象外となり(/fastはOpus 5とOpus 4.8に適用されます)、v2.1.176以降「利用可能な最良のOpusモデル」とされてきたauto-mode分類器のFable-5フォールバックは、今後Opus 5に解決されます。84
Codexでmulti-agent v2がリリースされました。 Codex CLI v0.137.0では、ランタイムの選択を各スレッドに持たせたまま、生成されたエージェント向けのフォローアップとメタデータのデフォルトが整理されました(hide_spawn_agent_metadataのデフォルトはtrueになりました)。また、未加工の親イベントが子リスナーへ伝播されます。subagentモデルは引き続き明示的です。組み込みのdefault/worker/explorerエージェントタイプ、TOMLで定義するカスタムエージェント、同時実行制御(agents.max_threadsのデフォルトは6、agents.max_depthのデフォルトは1)で構成されます。同じリリースには、ターンごとのskillカタログ解決と、スレッド開始時およびターンエラー時に発生する新しいライフサイクルコントリビューターイベントを備えたv1 skills拡張も追加されました。これにより、カーネルサンドボックスをデフォルトの境界とする姿勢を維持しつつ、Claude Codeのhook/skillサーフェスとの差を縮めています。続くCodex v0.138.0〜v0.139.0では、multi-agent v2が本番運用向けに強化されました。エージェント間のメッセージペイロードが暗号化され、v2エージェント設定カタログとエージェント常駐用LRUによって常駐するエージェントが管理されるようになりました。また、同時実行数は生成されたスレッド数ではなく、実行中の処理を基準に計測されるため、アイドル中のエージェントはスロットを消費しません。61 ライフサイクルの API も成熟しました。close_agentは、単にハンドルを閉じるのではなく、実行中のエージェントを中断するという実態を反映してinterrupt_agentへ改名されました(v0.139.0)。また、subagentが発した MCP 起動警告は、その所有スレッド内に限定されるようになり、親のトランスクリプトへ重複して表示されることもありません。61 Codex側でオーケストレーションを構築する場合、これらはデモとエージェント群を分ける重要な要素です。暗号化されたメッセージ転送、上限付きの常駐管理、実行数に基づく同時実行制御、そしてスレッド境界を越えて漏れない警告が揃います。続くCodex v0.140.0では、異なるツールをつなぐ接点が開かれました。/importを使うと、セットアップ、プロジェクト設定、最近のチャットをClaude CodeからCodexへ選択的に取り込めます。また、セッションを完全に削除できるようになりました(確認による安全対策を備えたcodex delete / /delete)。64 /importは、運用者が複数のharness間を移動するという事実を公式に認めた初めての機能です。一方のために構築した設定が、そこに閉じ込められることはもうありません。
メモリとコンテキスト
すべての AI の会話は、有限のコンテキストウィンドウ内で行われます。会話が長くなるにつれて、新しい内容のための領域を確保するために、以前のやり取りが圧縮されます。この圧縮では情報が失われます。3 ターン目に記録したアーキテクチャ上の決定が、15 ターン目まで残るとは限りません。9
複数ターンで崩壊を招く 3 つのメカニズム
MSR/Salesforce の研究では、互いに独立した 3 つのメカニズムが特定されており、それぞれに異なる対策が必要です。9
| メカニズム | 発生すること | 対策 |
|---|---|---|
| コンテキスト圧縮 | 新しい内容を収めるため、以前の情報が破棄される | ファイルシステムへの状態チェックポイント |
| 推論の一貫性喪失 | 複数のターンにわたり、モデルが以前の自身の決定と矛盾する | 新しいコンテキストでの反復(Ralph loop) |
| 協調の失敗 | 複数のエージェントが異なる状態スナップショットを保持する | エージェント間の共有状態プロトコル |
戦略 1:メモリとしてのファイルシステム
コンテキストの境界を越えて最も確実に保持できるメモリは、ファイルシステムにあります。Claude Code は、各セッションの開始時と圧縮のたびに CLAUDE.md とメモリファイルを読み込みます。6
~/.claude/
├── configs/ # 14 JSON configs (thresholds, rules, budgets)
│ ├── deliberation-config.json
│ ├── recursion-limits.json
│ └── consensus-profiles.json
├── hooks/ # 95 lifecycle event handlers
├── skills/ # 44 reusable knowledge modules
├── state/ # Runtime state (recursion depth, agent lineage)
├── handoffs/ # 49 multi-session context documents
├── docs/ # 40+ system documentation files
└── projects/ # Per-project memory directories
└── {project}/memory/
└── MEMORY.md # Always loaded into context
MEMORY.md ファイルには、セッションをまたいでエラー、決定、パターンを記録します。bash で VAR が 0 のとき、set -e のもとでは ((VAR++)) が失敗すると判明したら、それを記録します。3 セッション後に Python で同様の整数のエッジケースに遭遇すると、MEMORY.md のエントリによってそのパターンを把握できます。15
Auto Memory(v2.1.32 以降): Claude Code は、プロジェクトのコンテキストを自動的に記録し、呼び出します。作業中、Claude は観察結果を ~/.claude/projects/{project-path}/memory/MEMORY.md に書き込みます。Auto memory はセッション開始時に、先頭の 200 行をシステムプロンプトへ読み込みます。簡潔に保ち、詳細なメモはトピック別のファイルへリンクしてください。6 v2.1.210 以降では、サイズ制限を超える MEMORY.md への書き込みは、警告なく切り捨てられるのではなく、エラーになります69。そのため、メモリエントリがひそかに消えるのではなく、書き込み時に失敗が表面化します。harness でメモリへの書き込みを自動化している場合は、このエラーを処理してください。これは再試行を求めるものではなく、ファイルの整理が必要だというプラットフォームからの通知です。
メモリ量よりもメモリの整理(2026年5月): LLM エージェント間の協力に関する最近の arXiv プレプリントでは、呼び出せる情報の拡大が失敗要因になり得ると指摘されています。著者らの実験では、モデルを用いたゲームの 28 設定中 18 設定で、表示される履歴が長くなるほど協力の質が低下しました。48 これは確立された法則ではなく、デザイン上の警告として受け止めてください。本番環境での原則は、すでに十分明確です。MEMORY.md は短く保ち、詳細へリンクし、引き継ぎには意思決定にすぐ使える要約を含めます。未加工の会話記録、ツールログ、長大な呼び出し情報は検索可能なストレージに保存し、アクティブなプロンプトへ自動的に含めないようにします。
戦略 2:先回りした圧縮
Claude Code の /compact コマンドは、重要な決定、ファイル内容、タスクの状態を保持しながら会話を要約し、コンテキストの空き領域を確保します。15
圧縮するタイミング: - 独立したサブタスクを完了した後(機能の実装、バグの修正) - コードベースの新しい領域に着手する前 - Claude が同じ内容を繰り返したり、以前のコンテキストを忘れ始めたりしたとき - 集中的なセッションでは、おおよそ 25〜30 分ごと
CLAUDE.md に記述するカスタム圧縮指示:
# Summary Instructions
When using compact, focus on:
- Recent code changes
- Test results
- Architecture decisions made this session
圧縮が会話を守るのに対し、/cd コマンド(Claude Code v2.1.169)はプロンプトキャッシュを守ります。このコマンドを使うと、ターンを通じて蓄積されたキャッシュを壊さずに、セッションの途中で新しい作業ディレクトリへ移動できます。60 以前は、ディレクトリを変更すると新しいセッションと空のキャッシュが必要でした。長時間実行しているセッションで、あるリポジトリから同階層の別リポジトリへ移る場合、特にモノレポや複数サービスを扱う作業では、/cd によってコストの高いキャッシュ済みプレフィックスを維持しながら、ファイルシステムのコンテキストを切り替えられます。
戦略 3:セッションの引き継ぎ
複数のセッションにまたがるタスクでは、状態全体を記録した引き継ぎドキュメントを作成します。
## Handoff: Deliberation Infrastructure PRD-7
**Status:** Hook wiring complete, 81 Python unit tests passing
**Files changed:** hooks/post-deliberation.sh, hooks/deliberation-pride-check.sh
**Decision:** Placed post-deliberation in PostToolUse:Task, pride-check in Stop
**Blocked:** Spawn budget model needs inheritance instead of depth increment
**Next:** PRD-8 integration tests in tests/test_deliberation_lib.py
Status/Files/Decision/Blocked/Next という構成により、後続のセッションへ最小限のトークンコストで完全なコンテキストを渡せます。新しいセッションを claude -c(continue)で開始するか、引き継ぎドキュメントを読み込めば、すぐに実装へ進めます。15
戦略 4:新しいコンテキストでの反復(Ralph Loop)
60〜90 分を超えるセッションでは、反復ごとに新しい Claude インスタンスを起動します。状態は会話メモリではなく、ファイルシステムを通じて保持されます。各反復でコンテキスト容量を最大限に利用できます。16
Iteration 1: [200K tokens] -> writes code, creates files, updates state
Iteration 2: [200K tokens] -> reads state from disk, continues
Iteration 3: [200K tokens] -> reads updated state, continues
...
Iteration N: [200K tokens] -> reads final state, verifies criteria
単一の長時間セッションと比較してみましょう。
Minute 0: [200K tokens available] -> productive
Minute 30: [150K tokens available] -> somewhat productive
Minute 60: [100K tokens available] -> degraded
Minute 90: [50K tokens available] -> significantly degraded
Minute 120: [compressed, lossy] -> errors accumulate
反復ごとに新しいコンテキストを使う手法では、各反復で認知リソースを最大限に利用できる代わりに、状況把握のステップ(状態ファイルの読み込み、git 履歴の確認)に 15〜20% のオーバーヘッドが生じます。16 費用対効果で見ると、60 分未満のセッションでは単一の会話のほうが効率的です。90 分を超える場合は、オーバーヘッドがあっても、新しいコンテキストを使うほうが質の高い出力を得られます。
戦略 5:管理されたメモリの整理(Dreaming)
Anthropic の Claude Managed Agents は、2026年5月6日に Research Preview として Dreaming を追加しました。35 Anthropic は次のように説明しています。「Dreaming は、エージェントのセッションとメモリストアを確認し、パターンを抽出してメモリを整理することで、時間の経過とともにエージェントを改善するスケジュール済みプロセスです。」35
Dreaming はセッション間にバックグラウンドで実行され、クリティカルパスには含まれません。これはメモリとしてファイルシステムを使うパターンを置き換えるものではなく、補完するものです。MEMORY.md ファイルは引き続き中核を担い、Dreaming は整理したメモリエントリを Managed Agents のメモリストアへ書き込みます。エージェントはそれをセッション開始時に読み込みます。セルフホスト型のファイルシステム状態と、管理サービス側の整理機能を組み合わせる harness では、この 2 つのパターンを併用できます。
| ファイルシステムのメモリ | Dreaming(Managed) | |
|---|---|---|
| メモリの保存場所 | バージョン管理されたリポジトリ | Anthropic が管理するメモリストア |
| 更新のタイミング | 手動または hooks を通じてエントリを書き込むとき | セッション間のバックグラウンドプロセス |
| 記録する内容 | 明示的に指定した決定、エラー、パターン | セッション履歴から抽出されたパターン |
| 最適な用途 | プロジェクト固有の組織的な知識 | 手作業では見つけにくい、セッションをまたぐパターンの発見 |
Dreaming は Research Preview のため、動作が変更される可能性があります。前述したセッション引き継ぎと CLAUDE.md のパターンは、セルフホスト型 harness における正式なメモリメカニズムであり続けます。
アンチパターン
10 行しか必要ないのに、ファイル全体を読み込むこと。 2,000 行のファイルを 1 つ読み込むだけで、15,000〜20,000 トークンを消費します。行オフセットを使用してください。Read file.py offset=100 limit=20 なら、そのコストの大部分を削減できます。15
冗長なエラー出力をコンテキストに残すこと。 バグのデバッグ後、失敗した反復による 40 件以上のスタックトレースがコンテキストに残ることがあります。バグを修正した後に /compact を 1 回実行すれば、その不要な情報を取り除けます。
各セッションの開始時に、すべてのファイルを読み込むこと。 Claude Code の glob と grep ツールを使って必要なファイルを必要なときに探せば、不要な事前読み込みによる 100,000 トークン以上の消費を防げます。15
Subagent パターン
Subagents は、複雑なタスクを独立して処理する特化型の Claude インスタンスです。汚染されていない新しいコンテキスト(メインの会話からの影響がない状態)で開始し、指定されたツールを使用して、結果を要約として返します。調査結果によってメインの会話が肥大化することはなく、結論だけが返されます。5
組み込みの Subagent タイプ
| タイプ | モデル | モード | ツール | 用途 |
|---|---|---|---|---|
| Explore | Haiku(高速) | 読み取り専用 | Glob, Grep, Read, 安全な bash | コードベースの調査、ファイルの検索 |
| General-purpose | 継承 | 完全な読み書き | 利用可能なすべて | 複雑な調査と変更 |
| Plan | 継承(または Opus) | 読み取り専用 | Read, Glob, Grep, Bash | 実行前の計画 |
カスタム Subagents の作成
Subagents は .claude/agents/(プロジェクト)または ~/.claude/agents/(個人)で定義します。
---
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) に対応しています |
disallowedTools |
いいえ | 拒否するツール。継承または指定されたリストから除外されます。v2.1.178 以降では、MCP のサーバーレベル指定(mcp__server、mcp__server__*、mcp__*)もここで正しく照合されます。以前のバージョンでは暗黙に無視されていたため、MCP サーバーをブロックするための拒否ルールが機能していませんでした。63 |
model |
いいえ | sonnet、opus、haiku、inherit(デフォルト:inherit) |
permissionMode |
いいえ | default(v2.1.200 以降、CLI/IDE では「Manual」と表示されます。設定値は変更されておらず、manual も別名として使用できます)、acceptEdits、delegate、dontAsk、bypassPermissions、plan。v2.1.212 以降、Task tool の呼び出しごとの mode パラメーターは非推奨です。subagents は親セッションの権限モードを継承し、この frontmatter フィールドがエージェント単位のオーバーライドになります69 |
maxTurns |
いいえ | subagent が停止するまでの agentic ターンの最大数 |
memory |
いいえ | 永続メモリのスコープ:user、project、local |
skills |
いいえ | 起動時に skill の内容を subagent のコンテキストへ自動的に読み込みます。v2.1.133 以降、subagents は親セッションと同様に、Skill tool を通じてプロジェクト、ユーザー、プラグインの skills も検出します。以前のバージョンでは、これらが subagent のコンテキストから暗黙に除外されていました。39 |
hooks |
いいえ | この subagent の実行に限定されたライフサイクル hooks |
background |
いいえ | バックグラウンドタスクとして強制的に実行します。v2.1.198 以降、subagents はデフォルトでバックグラウンド実行され、リードセッションは作業を続けながら完了通知を受け取ります。そのため現在は、バックグラウンド実行を有効にする設定ではなく、その動作を明示的に固定する設定です |
isolation |
いいえ | 分離された git worktree コピーを使用するには worktree に設定します |
Worktree による分離
Subagents は一時的な git worktree で動作でき、リポジトリの完全に分離されたコピーを利用できます。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 がメインのチェックアウトを変更できてしまう不具合が修正されました。これは、まさにこの仕組みが防ぐために存在する問題です。69 isolation: worktree を単なる利便性ではなく安全境界として利用する場合は、v2.1.210 を最低要件としてください。一方、同時期の権限変更は反対方向に作用します。v2.1.211 以降、「常に許可」ルールは worktree をまたいでリポジトリルートに保持されるため、ある worktree 内で承認されたルールは、同じリポジトリの兄弟 worktree にも適用されます。69 並列 worktree エージェントにとっては適切な操作性ですが、使い捨ての実験中に与えた許可が実験終了後も残ることを意味します。目の前の worktree だけではなく、リポジトリ全体を念頭に置いて許可してください。
v2.1.216 でこの対応が完了し、worktree による分離は不具合修正の域を越えて、強制力のある仕組みになりました。74 v2.1.210 の修正では、通常の git 呼び出しを通じて worktree の subagents がメインのチェックアウトを変更することを防ぎました。しかし、git 自体には明示的なリダイレクト手段があります。git -C <path>、--git-dir、そして GIT_DIR/GIT_WORK_TREE 環境変数を使えば、worktree で分離された subagent でも共有チェックアウトを指定できました。現在では、これらの抜け道はすべて塞がれています。同じリリースでは、worktree セッションが別のプロジェクトに残された worktree へ誤って入ることがある問題、.claude に置かれたプロジェクト外へのシンボリックリンクを workflow やスケジュール済みタスクの書き込みがたどる問題も修正され、/rewind はシンボリックリンクとハードリンクをたどらないようになりました。4つの修正に共通する原則は同じです。分離境界は、デフォルトの動作だけでなく、git 環境変数によるオーバーライドやシンボリックリンクの設置といった意図的なリダイレクトに対しても維持されなければなりません。harness において isolation: worktree が利便性ではなく安全境界である場合、現在の最低要件は v2.1.216 です。
並列 Subagents
互いに連携する必要のない独立した調査タスクには、並列 subagents を使用します。5
> Have three explore agents search in parallel:
> 1. Authentication code
> 2. Database models
> 3. API routes
各エージェントは固有のコンテキストウィンドウで実行され、関連するコードを見つけて要約を返します。メインコンテキストはクリーンなまま保たれます。
再帰ガード
生成数に制限がなければ、エージェントがエージェントへ、さらにそのエージェントが別のエージェントへと委任し、そのたびにコンテキストが失われ、トークンが消費されます。再帰ガードのパターンでは、予算を強制します。16
#!/bin/bash
# recursion-guard.sh — enforce spawn budget
CONFIG_FILE="${HOME}/.claude/configs/recursion-limits.json"
STATE_FILE="${HOME}/.claude/state/recursion-depth.json"
MAX_DEPTH=2
MAX_CHILDREN=5
DELIB_SPAWN_BUDGET=2
DELIB_MAX_AGENTS=12
# Read current depth
current_depth=$(jq -r '.depth // 0' "$STATE_FILE" 2>/dev/null)
if [[ "$current_depth" -ge "$MAX_DEPTH" ]]; then
echo "BLOCKED: Maximum recursion depth ($MAX_DEPTH) reached" >&2
exit 2
fi
# Increment depth using safe arithmetic (not ((VAR++)) with set -e)
new_depth=$((current_depth + 1))
jq --argjson d "$new_depth" '.depth = $d' "$STATE_FILE" > "${STATE_FILE}.tmp"
mv "${STATE_FILE}.tmp" "$STATE_FILE"
重要な教訓: 深さの制限だけでなく、生成予算を使用してください。深さベースの制限は親子チェーンを追跡しますが(深さ3でブロック)、幅を捉えられません。深さ1に23体のエージェントがいても、依然として「深さ1」です。生成予算では、親ごとのアクティブな子の総数を追跡し、設定可能な上限を適用します。予算モデルは、代理指標(ネストレベルが多すぎること)ではなく、実際の障害モード(エージェント総数が多すぎること)に対応しています。7
ネスト深度のデフォルト値は3回変わっています。これを前提に構築してはいけません。 Claude Code v2.1.172(2026年6月10日)では、sub-agents が自身の sub-agents を生成できるようになり、以前は実質1階層だった委任が最大5階層までネスト可能になりました。62 この状態は v2.1.172 から v2.1.216 まで続きました。v2.1.217(2026年7月21日)では1に減らされ、ネストした生成がデフォルトで無効になりました。その後、v2.1.219(2026年7月24日)では中間に落ち着きました。「Subagents はデフォルトで深さ3までネストした subagents を生成できるようになりました(従来は1)。ネストを無効にするには CLAUDE_CODE_MAX_SUBAGENT_SPAWN_DEPTH=1 を設定します」。84 5、1、3と変わり、直近2回の変更は3日以内に行われています。
ここから読み取るべきなのは、いずれかの数値が正しいということではありません。プラットフォームが適切なデフォルトをまだ模索しているため、harness が「出荷時の値」をそのまま継承するのは誤りだということです。ネスト深度は明示的な予算項目として扱ってください。CLAUDE_CODE_MAX_SUBAGENT_SPAWN_DEPTH には、アーキテクチャで実際に必要な深度(多くのオーケストレーションでは1または2)を設定し、アップグレードによってフリートの委任深度がひそかに変わらないようにします。こうした変更があっても、基本的な主張は変わりません。エージェントからエージェントへ委任するチェーンは、結果を生み出す以上の速さでコンテキストとトークンを消費します。深度は積極的に活用すべき機能ではなく、予算化すべきリスクです。上記の再帰ガードは、今後デフォルトがどちらへ動いても、深いツリーが数百体のアクティブなエージェントへ扇状に広がるのを防ぎます。また、次のリリース後も想定どおりの意味を保つ深度の数値は、自分で設定した制限だけです。
Auto mode では、生成前の審査が行われるようになりました。 Claude Code v2.1.178 では、対応するガバナンス上の抜け穴が塞がれました。auto mode では、subagent が動作を開始してからだけでなく、起動する前に権限分類器によって生成が評価されます。63 以前は、親セッションではブロックされる動作を要求するために subagent を生成でき、生成自体が迂回手段になっていました。生成時に審査することで、再帰ガードと権限モデルがようやく接続されました。ポリシーで禁止された動作を実行するためのロンダリング手段として、子を利用することはできません。
プラットフォームにネイティブの生成予算が搭載されました。 Claude Code v2.1.212(2026年7月)では、暴走ループに対するファーストパーティのガードレールが追加されました。セッションごとの subagent 生成数はデフォルトで200に制限され(CLAUDE_CODE_MAX_SUBAGENTS_PER_SESSION で調整でき、/clear でカウンターがリセットされます)、WebSearch もセッションごとに200回までとなります(CLAUDE_CODE_MAX_WEB_SEARCHES_PER_SESSION)。69 このセクションで v1.0 からユーザーランドスクリプトとして説明してきた生成予算パターンが、プラットフォームから提供されるようになりました。これは、深度モデルより予算モデルが適切であることの裏付けです。ただし、調整値には注意してください。200回という生成数は、上記設定の12体という予算より1桁多い値です。ネイティブの上限は、アーキテクチャに合わせて調整された予算ではなく、実際に暴走したループを止めるためのヒューズです。親ごとの予算、深度の追跡、オーケストレーションが実際に行うべきことに即した制限には、引き続きユーザーランドのガードを使用してください。プラットフォームの上限には、そこをすり抜けたものを捕捉させます。
ファーストパーティのガードレール群は、現在4つの軸を網羅しています。 そのうち3つは、このセクションのユーザーランドガードが追跡する項目をそのまま補完します。セッションごとの総生成数(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。1つのメッセージから無制限にバックグラウンドエージェントを展開できなくなりました)です。7884 v2.1.219 では、ユーザーランドガードには通常なかった4つ目の軸、オーケストレーションの幅が追加されました。これは1つの計画済み workflow に含められるエージェント数で、デフォルトのガイドラインとして「エージェント数は15体未満を目指す」が提供され、任意の設定ファイルから workflowSizeGuideline で指定できます(後述の Workflow Tool セクションで説明します)。生成予算パターンは、設計対象だったすべての軸に加え、対象外だった1つの軸でも補完されるようになりました。
調整値に関する注意は依然として当てはまりますが、均一ではありません。200回の生成と20体の同時実行エージェントはヒューズです。上記設定にある12体の deliberation 予算より1桁多く、アーキテクチャを形作るのではなく、暴走ループを捕捉するために設定されています。幅のガイドラインは、実際の予算と同じ尺度にある初めてのネイティブな数値です。workflow ごとの15体という値は、このガイドの12体と隣り合う水準です。プラットフォームのデフォルトを採用しても問題がないほど近く、異なる値を選ぶなら明確な理由が必要になります。3つのヒューズには説明可能な値を設定し、幅のガイドラインには意図したオーケストレーションの形を反映してください。
Agent Teams(Research Preview)
Agent Teams は、独立して動作しながら共有 mailbox とタスクリストを通じてやり取りし、互いの調査結果に異議を唱えることもできる複数の Claude Code インスタンスを連携させます。5
| コンポーネント | 役割 |
|---|---|
| Team lead | チームを作成し、teammates を生成して作業を調整するメインセッション |
| Teammates | 割り当てられたタスクに取り組む個別の Claude Code インスタンス |
| Task list | teammates が取得して完了する共有作業項目(ファイルロックあり) |
| Mailbox | エージェント間通信用のメッセージングシステム |
有効化:export CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS=1
agent teams と subagents の使い分け:
| Subagents | Agent Teams | |
|---|---|---|
| コミュニケーション | 結果のみを返す | Teammates が互いに直接メッセージを送る |
| 調整 | メインエージェントがすべての作業を管理 | 共有タスクリストを使って自律的に調整 |
| 最適な用途 | 結果だけが重要な、焦点を絞ったタスク | 議論と共同作業が必要な複雑な作業 |
| トークンコスト | 低い | 高い(teammate ごとに個別のコンテキストウィンドウを使用) |
Agent View と Goal Loops(2026年5月)
Claude Code v2.1.139 では Agent View が追加されました。これは claude agents で起動する Research Preview のインターフェースで、実行中、ブロック中、完了済みの Claude Code セッションを1つの画面に表示します。4243 公式ドキュメントでは、多数のセッションを割り当てて管理し、各セッションの動作を確認しながら、オペレーターの入力が必要なものを特定する手段と説明されています。43 これにより、最終要約だけでは得られない運用ビューをマルチエージェント作業に提供できます。
subagent や team のパターンを本格導入するときは Agent View を使用し、ブロックされているセッション、まだ実行中のセッション、作業分担が意図したアーキテクチャに合っているかを確認してください。ただし、品質の証明として扱ってはいけません。これは可観測性のための機能です。作業が健全かどうかは、引き続きテスト、レビューゲート、エビデンスレポートで判断します。
同じリリースでは /goal も追加されました。完了条件を設定すると、その条件を満たすまで Claude が複数のターンにわたって処理を継続できます。対話モード、-p、Remote Control でも利用できます。42 /goal は、決定論的なゲートの代替ではなく、セッションスコープの完了ループとして扱ってください。エージェントを目標へ集中させるのには役立ちますが、失敗時に処理をブロックする必要があるテスト、引用チェック、デプロイチェック、セキュリティ hooks は、引き続きコマンドまたはスクリプトで実行すべきです。
Workflow Tool(v2.1.147以降)
Claude Code v2.1.147 では、決定論的なマルチエージェントオーケストレーションに使用する Workflow tool が追加されました。デフォルトでは無効で、CLAUDE_CODE_WORKFLOWS=1 を設定すると有効になります。52 アーキテクチャ上、この機能は重要です。以前はカスタムのディスパッチスクリプト、mailbox の状態、subagent の連携規約が必要だったフローに対し、Claude Code がファーストパーティのオーケストレーションプリミティブを提供するためです。
ただし、その周囲にある harness を削除してはいけません。Workflow は実行を構造化できますが、安全モデルの代わりにはなりません。ブロック層として PreToolUse と PostToolUse hooks を維持し、幅の暴走を防ぐために生成予算または workflow ステップ予算を残し、ファイルシステムの状態を監査可能に保ち、最終的なエビデンスレポートはモデルの自己評価から切り離してください。実際には、オーケストレーションの形には Workflow を、真偽の判定には hooks、テスト、レビューゲートを使用します。
Dynamic workflows には、幅に関する方針が組み込まれるようになりました(v2.1.219)。 Dynamic workflows のデフォルトは中規模のガイドライン、つまり「エージェント数は15体未満を目指す」です。/config の Dynamic workflow size では、ほかのサイズや無制限のオプションも選択でき、実行中の workflow のステータス行には現在のガイドラインが表示されます。84 この数値は強制ではなく助言であり、幅の広い計画をブロックするのではなく、プランナーを誘導します。設定する価値があるのは、その提供方法です。新しい workflowSizeGuideline 設定キーは、managed settings やプロジェクト設定を含む任意の設定ファイルから指定でき、v0.3.219 以降は TypeScript SDK の設定型にも含まれています。そのため、オーケストレーションの幅を、オペレーターごとに再発見するものではなく、チームや組織で標準化できるようになります。85 プロジェクトレベルで設定し、コードベースの作業が実際にどのように分解されるかを表現してください。オペレーター向けの注意点が2つあります。設定ファイルによって値が指定されている間は /config の行が非表示になります。これは正しい動作ですが、理由を知らなければ設定項目が欠落しているように見えます。また、このガイドラインは実行を制限するのではなくプランナーを誘導するものなので、安全性ではなく形の項目に属します。幅の暴走を止める役割は、引き続き生成数の上限が担います。
重要なのは、これがファーストパーティのガードレールにおける4つ目の軸、つまり生成数、ネスト深度、同時実行数に並ぶオーケストレーションの幅であり、Anthropic が暴走防止用のヒューズではなく、現実的な作業規模として初めて調整した数値だという点です。workflow ごとの15体は、このガイドが v1.0 から使用している12体の deliberation 予算と同じ桁です。プラットフォームのデフォルトと独自の予算が別々の方向から収束したなら、こうした数値としては独立した裏付けに最も近いものと言えるでしょう。
セッションの Fork と MCP の自動バックグラウンド化(2026年7月)
Claude Code v2.1.212 では、2つのオーケストレーションプリミティブが再構成されました。69 /fork は現在、会話の現時点の状態から新しいバックグラウンドセッションを作成します。fork された分岐は独立して実行され、元のセッションも作業を継続します。以前のセッション内での動作は /subtask に改名されました。この違いは、オーケストレーションの設計で重要です。/subtask は1つのセッションのライフサイクル内で行う範囲限定の寄り道ですが、/fork は完全なコンテキストを継承する並列バックグラウンドセッションを低コストで生成する手段であり、subagent より Ralph-loop の生成に近いものです。harness のスクリプトが /fork をセッション内に留まるものと想定していた場合、現在はバックグラウンド作業をディスパッチすることになります。
同じリリースでは、遅い MCP 呼び出しも自動的にバックグラウンド化されます。2分を超えて実行される MCP tool の呼び出しは、自動的にバックグラウンド実行へ移されます(しきい値は CLAUDE_CODE_MCP_AUTO_BACKGROUND_MS で調整できます)。69 遅い MCP サーバーが agentic ループを停止させることはなくなりました。しかし同時に、「ツールが結果を返したこと」と「ターンが続行されたこと」は同じイベントではなくなります。MCP の同期的な完了を前提としていた hooks やスクリプトは、ターンの境界ではなくツールの結果を基準にしてください。
ヘッドレスなオーケストレーション向けには、v2.1.211 で --forward-subagent-text(環境変数:CLAUDE_CODE_FORWARD_SUBAGENT_TEXT)が追加され、subagent のアシスタントテキストを stream-json 出力へ転送できるようになりました。69 親のストリームを処理するコーディネータープロセスは、トランスクリプトをポーリングしたり最終要約を待ったりせずに、subagent の進捗を直接観測できます。これは、デフォルトでバックグラウンド実行される subagents を可観測性の面で補完する機能です。v2.1.219 では、この機能が第1階層より先にも拡張されました。深さ2以降で生成された subagents のテキストも、生成元の Agent tool_use id をキーとして転送ストリームに表示されます。84 実装の基盤とすべきなのは、このキーです。ネストが再びデフォルトで有効になったことで、subagent のテキストを平坦なストリームに流すだけでは曖昧になります。この id があれば、どの親がどの子を生成したのかをコーディネーターが把握でき、委任ツリーを推測せずにストリームから再構築できます。ストリームの処理側が1階層の subagents を前提に作られている場合、存在を認識していなかったエージェントのテキストも受け取るようになります。転送されたすべての行が直接の子に属すると仮定せず、生成元の tool_use id ごとにグループ化してください。
マルチエージェントオーケストレーション
シングルエージェントのAIシステムには構造的な盲点があります。自身の前提を検証できないという点です。7 マルチエージェントによる審議では、意思決定が確定する前に、複数の視点から独立した評価を強制的に行います。
クロスツール・オーケストレーション(2026年4月): Googleは4月7日に Scion をオープンソース化しました。Claude Code、Gemini CLI、その他の「ディープエージェント」を並行プロセスとして実行するマルチエージェント・ハイパーバイザーで、各エージェントには分離されたコンテナ、git worktree、認証情報が割り当てられます。ローカル、ハブ、またはKubernetesで動作します。明示的な思想は「制約よりも分離」というもので、エージェントはプロンプト内ではなくインフラ層で強制される境界の内側で、高い自律性を持って動作します。25 これは subagent-isolation の主張を異なるツールベンダー間にまで直接拡張するものです。ワークフローが Claude とOpenAIモデルにまたがる場合、Scion はエージェント単位の worktree と認証情報の分離を備えたクロスツール subagent の最初の実用的なリファレンス実装です。
ディベートは万能薬ではありません: M3MAD-Bench研究クラスター(2026年初頭)では、マルチエージェント・ディベートには頭打ちがあり、誤解を招くコンセンサスによって覆される可能性があることが判明しました。妥当な議論であっても、他のエージェントが自信たっぷりに誤った答えを主張すると敗れてしまうのです。26 Tool-MADはこの点を改善しており、各エージェントに異種のツールアクセスを与え、判定段階でFaithfulness(忠実度)/Relevance(関連性)スコアを使用します。ディベート型のオーケストレーションを構築する場合は、(a)エージェントごとのツールの異質性と、(b)「エージェントを増やせば答えが良くなる」と仮定するのではなく定量的な判定スコアリング、この2点に投資しましょう。
マネージド・マルチエージェント・オーケストレーションとOutcomes(パブリックベータ)
以下に述べる審議インフラを自前で構築したくない場合、Multiagent Orchestration が2026年5月6日に Claude Managed Agents でパブリックベータに入りました。35 Anthropic によれば「単一エージェントではうまくこなせないほどの作業がある場合、マルチエージェント・オーケストレーションでは、リードエージェントがジョブを分割し、それぞれを独自のモデル、プロンプト、ツールを持つスペシャリストに委譲できます」とのことです。35 スペシャリストは「共有ファイルシステム上で並行して作業し、リードエージェントの全体的なコンテキストに貢献します」。35
トレーシングは標準で組み込まれています。Anthropic によれば「Claude Console ですべてのステップをトレースすることもできます。どのエージェントが、どの順序で、なぜ何を行ったのかが分かり、タスクがどのように委譲・実行されたかを完全に可視化できます」。35
これと組み合わさるパブリックベータ機能が Outcomes です。Anthropic によれば「成功とは何かを記述したルーブリックを書くと、エージェントはそれに向けて作業します。別個のグレーダー(採点者)が、独立したコンテキストウィンドウであなたの基準に照らして出力を評価するため、エージェントの推論に影響を受けることがありません」。35 これは、本セクションの後半で説明する2ゲート検証パターンのマネージドサービス版です。手書きのゲートをルーブリックが置き換え、コンセンサス・バリデーターを別個のグレーダーが置き換えます。
| セルフホスト型審議(本セクション) | Managed Multiagent + Outcomes | |
|---|---|---|
| スペシャリストのルーティング | spawn ロジックを自分で書く | リードエージェントがジョブを分割 |
| 検証 | 2ゲートのフック + コンセンサススコアリング | 別コンテキストでのルーブリック + グレーダー |
| トレーシング | 自分で計装する | Claude Console |
| 適している用途 | 完全な制御や特定のツール構成が必要なパターン | 検証ルーブリックが契約となる標準的な委譲パターン |
| 料金 | トークン + harness のコストのみ | 標準のトークンに加えて Managed Agents のセッション時間料金(4月8日ローンチのベース。23 参照) |
セルフホスト型審議が正解となるのは、検証を自前のフック面(PreToolUse のブロッキング、終了コードのセマンティクス、カスタムディスパッチャー)と統合する必要がある場合や、harness が外部依存なしで動作しなければならない場合です。Managed Multiagent が正解となるのは、標準的な委譲とルーブリックによる採点こそが実際に必要な契約である場合です。
最小実用審議(Minimum Viable Deliberation)
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
- 曖昧さ - クエリには複数の有効な解釈があるか?
- ドメインの複雑さ - 専門知識を必要とするか?
- 重要度(Stakes) - 意思決定は可逆か?
- コンテキスト依存性 - より広範なシステムへの理解を必要とするか?
スコアは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: 独立したエージェントがトピックを調査します。各エージェントには異なるペルソナ(Technical Architect、Security Analyst、Performance Engineer、その他)が割り当てられます。コンテキストの分離により、リサーチ中にエージェントが互いの発見を見られないようにします。
DELIBERATION: エージェントはすべてのリサーチ結果を見て、代替案を生成します。Debate エージェントが矛盾を特定します。Synthesis エージェントが矛盾しない発見を統合します。
RANKING: 各エージェントは、提案されたすべてのアプローチを5つの加重次元で採点します。
| 次元 | 重み |
|---|---|
| Impact | 0.25 |
| Quality | 0.25 |
| Feasibility | 0.20 |
| Reusability | 0.15 |
| Risk | 0.15 |
2ゲート検証アーキテクチャ
2つの検証ゲートが、異なる段階で問題を捕捉します。7
ゲート1:コンセンサス検証(PostToolUse フック)。各審議エージェントが完了した直後に実行されます。 1. フェーズが少なくともRANKINGに到達していること 2. 最低2エージェントが完了していること(設定可能) 3. コンセンサススコアがタスク適応型のしきい値を満たすこと 4. 反対したエージェントがいた場合、その懸念が文書化されていること
ゲート2:プライドチェック(Stop フック)。セッションが終了する前に実行されます。 1. 多様な手法:複数のユニークなペルソナが代表されている 2. 矛盾の透明性:反対意見には文書化された理由がある 3. 複雑性への対応:少なくとも2つの代替案が生成されている 4. コンセンサスの確信度:strong(0.85超)またはmoderate(0.70-0.84)に分類されている 5. 改善のエビデンス:最終コンフィデンスが初期コンフィデンスを上回っている
ライフサイクルの異なる時点に2つのフックを置く構成は、実際に発生する障害の在り方に合致しています。瞬時に分かるもの(スコアの低さ)もあれば、徐々に明らかになるもの(多様性の欠如、反対意見の文書化漏れ)もあります。7
なぜ合意は危険なのか
Charlan Nemeth は1986年から少数派の異議について研究を続け、2018年の著書 In Defense of Troublemakers に結実させました。反対者がいるグループは、すぐに合意に至るグループよりも優れた意思決定を行います。反対者は正しくある必要はありません。異議を唱えるという行為そのものが、多数派に対し本来なら飛ばしてしまう前提の検証を強いるのです。18
Wu らは LLM エージェントが本当にディベートできるかを検証し、不一致への構造的なインセンティブがなければ、エージェントは正しさにかかわらず最も自信ありげに聞こえる初期回答へ収束していくことを発見しました。19 Liang らはその根本原因を「Degeneration-of-Thought(思考の退化)」と特定しました。一度 LLM がある立場に確信を抱くと、自己内省では新しい反論を生成できなくなり、マルチエージェント評価が構造的に必要となるのです。20
独立性こそが決定的な設計上の制約です。同じデプロイ戦略を、互いの発見が見える状態で評価した2つのエージェントのスコアは0.45と0.48でした。同じエージェントを互いに見えない状態で動かすと、スコアは0.45と0.72に広がりました。0.48と0.72の差こそ、群れ行動(herding)のコストなのです。7
偽の合意を検出する
コンフォーミティ検出モジュールは、エージェントが本物の評価なしに同意していることを示すパターンを追跡します。7
スコアのクラスタリング: 10点満点のスケールで全エージェントのスコアが0.3ポイント以内に収まるのは、独立した評価ではなく共有コンテキストの汚染を示すシグナルです。認証リファクタリングを評価した5エージェント全員のセキュリティリスクスコアが7.1〜7.4に収まっていた事例で、新鮮なコンテキスト分離で再実行したところ、スコアは5.8〜8.9に分散しました。
ボイラープレート反対意見: エージェントが独立した異論を生成する代わりに、互いの懸念表現をコピーしている状態です。
少数派視点の不在: 優先順位が衝突するペルソナ(Security Analyst と Performance Engineer がすべてに同意することは稀です)からの全会一致の承認。
コンフォーミティ検出は分かりやすいケース(エージェントが早く収束しすぎる審議のおよそ10〜15%)を捕捉します。残りの85〜90%については、コンセンサスゲートとプライドチェックゲートが十分な検証を提供します。
審議でうまくいかなかったこと
自由形式のディベートラウンド。 データベースのインデックス設計議論で3ラウンドの往復テキストを行ったところ、7,500トークン分のディベートが生まれました。ラウンド1:本物の不一致。ラウンド2:立場の言い直し。ラウンド3:同じ主張を別の言葉で。構造化された次元スコアリングが自由形式のディベートを置き換え、コストを60%削減しつつランキング品質を向上させました。7
単一の検証ゲート。 最初の実装ではセッション終了時に1つの検証フックを実行していました。あるエージェントは0.52のコンセンサススコア(しきい値以下)で審議を完了し、その後20分間も無関係なタスクを続けてからセッション終了フックが失敗を検知しました。これを2つのゲート(タスク完了時と、セッション終了時)に分割することで、同じ問題を異なるライフサイクル時点で捕捉できるようになりました。7
審議のコスト
各リサーチエージェントは約5,000トークンのコンテキストを処理し、2,000〜3,000トークンの調査結果を生成します。3エージェントなら、意思決定あたり追加で15,000〜24,000トークン。10エージェントならおよそ50,000〜80,000トークンとなります。7
現行のOpus料金では、3エージェント審議のコストはおよそ $0.68〜0.90、10エージェント審議は $2.25〜3.00 です。本システムは意思決定のおよそ10%で審議をトリガーするため、全意思決定にわたって平均化したコストはセッションあたり $0.23〜0.30 となります。これに見合うかどうかは、誤った意思決定がどれだけのコストを生むかに依存します。
審議すべき場面
| 審議する | 省略する |
|---|---|
| セキュリティアーキテクチャ | ドキュメントの誤字 |
| データベーススキーマ設計 | 変数名の変更 |
| API 契約の変更 | ログメッセージの更新 |
| デプロイ戦略 | コメントの言い換え |
| 依存関係のアップグレード | テストフィクスチャの更新 |
CLAUDE.md の設計
CLAUDE.md は、人間向けの README ではなく、AI agent の運用ポリシーです。21 conventional commits を使用する「理由」を agent が理解する必要はありません。実行すべき正確なコマンドと、何をもって「完了」とするかを把握する必要があります。
優先順位
| 場所 | 適用範囲 | 共有 | 用途 |
|---|---|---|---|
| Enterprise managed settings | 組織 | 全ユーザー | 会社の標準 |
./CLAUDE.md または ./.claude/CLAUDE.md |
プロジェクト | git 経由 | チームのコンテキスト |
~/.claude/CLAUDE.md |
ユーザー | 全プロジェクト | 個人の設定 |
./CLAUDE.local.md |
プロジェクトローカル | 共有しない | 個人用のプロジェクトメモ |
.claude/rules/*.md |
プロジェクトルール | git 経由 | 分類されたポリシー |
~/.claude/rules/*.md |
ユーザールール | 全プロジェクト | 個人のポリシー |
Rules ファイルは自動的に読み込まれ、CLAUDE.md を煩雑にすることなく、構造化されたコンテキストを提供します。6
無視されるもの
次のパターンを記述しても、agent の動作には一貫して目に見える変化が現れません。21
コマンドを含まない説明文。 「クリーンで十分にテストされたコードを重視します」は運用指示ではなく、単なる説明です。実行可能な指示がないため、agent はこれを読んでもテストを書かずにコーディングを進めます。
曖昧な指示。 「データベースのマイグレーションには注意してください」は制約になりません。「マイグレーションを適用する前に alembic check を実行してください。ダウングレード手順がない場合は中止してください」なら制約として機能します。
矛盾する優先事項。 「素早く開発してリリースする」「包括的なテストカバレッジを確保する」「実行時間を5分未満に抑える」「コミットの前に毎回、完全な統合テストを実行する」。agent はこの4つを同時に満たせないため、デフォルトでは検証を省略します。21
強制手段のないスタイルガイド。 「Google Python Style Guide に従ってください」と記載しても、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
- ビルドおよびテストコマンド(有用な作業を始める前に必要です)
- 完了の定義(誤った完了報告を防ぎます)
- エスカレーションルール(破壊的な回避策を防ぎます)
- タスク別に整理されたセクション(無関係な指示の解析を減らします)
- ディレクトリごとの適用範囲(monorepos:サービスごとの指示を分離します)
最初の4つが機能するまでは、スタイルの好みに関する指示を省いてください。
現在では、プラットフォームが CLAUDE.md を監査してくれます。 2026年7月上旬のリリース(v2.1.203〜v2.1.206)以降、/doctor は CLAUDE.md を分析し、コードベース自体からモデルが推測できる内容を削るよう提案します。たとえば、ディレクトリ構成の言い換え、コードにすでに表れているフレームワークの規約、package scripts と重複するコマンド一覧などです。68 これは、このセクションの主張を公式に裏付けるものです。指示にトークンを割く価値があるのは、agent が推測「できない」内容(ポリシー、しきい値、完了条件)を記述するときであり、ディスクから読み取れる内容ではありません。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 のパターン(コマンド優先、完了条件の定義、タスク別の整理)は、ツールを問わず、どの指示ファイルでも機能します。内容が徐々に食い違うような指示セットを並行して管理しないでください。信頼できる情報源を1つ作成し、そこから反映しましょう。
Codex との対応に関する注意事項
Codex には主要な harness レイヤーに対応する第一級の機能が揃っていますが、移行はファイルのコピーではなく、パターンの変換として行う必要があります。Codex は作業開始前に AGENTS.md を読み込み、~/.codex のグローバルな指示に、プロジェクトおよびリポジトリ内の階層ごとの指示を重ねます。31 Codex skills も、段階的開示を採用した同じ SKILL.md の考え方を使用します。Codex はまず skill の名前、説明、ファイルパスを確認し、その skill を使用すると判断した場合にのみ全文を読み込みます。32 Codex には、ネイティブ hooks、プラグインに同梱された hooks、managed hooks、MCP のサポート、明示的な subagents ワークフローもあります。3334
Codex v0.138.0〜v0.139.0 では、複雑なワークスペースにおける AGENTS.md の検出が強化されました。読み込みが環境のファイルシステム抽象化を経由するようになり、検出時の走査でも論理パスが維持されます。そのため、ワークスペースがリモートファイルシステムやシンボリックリンクを使用したツリーでも、適切なファイルが選択されます。61 正規の AGENTS.md を信頼できる情報源とし、agent がマウント済み、コンテナ内に展開済み、またはシンボリックリンクされたチェックアウト上で動作する場合には、これが重要です。単純なパス走査では、誤った指示ファイルを選んだり、何も見つけられなかったりするケースだからです。信頼できる1つの AGENTS.md を複数のサービスへ反映する場合、agent が実際に読み込んだファイルと作成したファイルが一致すると信頼するための最低条件として、このバージョンを扱ってください。
続く Codex v0.141.0 では、リモート実行パス自体が強化されました。リモート executor は、認証済みでエンドツーエンド暗号化された Noise-relay channels を介して接続するようになり、コントロールプレーンと executor は、その間にある relay を信頼する必要がなくなりました。また、クロスプラットフォームのリモート実行では executor 固有の作業ディレクトリとシェルが維持され、TLS は企業プロキシ向けの P-521 証明書署名を受け入れます。65 オーケストレーションによって Codex executor をネットワーク境界の外側で動作させる場合、これは信頼済み relay を前提とする構成と、エンドツーエンド暗号化された構成を分ける重要な違いです。リモート executor を使用するあらゆるトポロジーの基準として扱ってください。
2026年7月のリリースを見ると、2つのランタイムが異なる方向から同じ基本要素へ収束していることが分かります。72 Codex v0.143.0 では、MCP ツールがデフォルトで tool search 経由で読み込まれるようになりました。ツールスキーマを最初からコンテキストへ投入せず、必要になった時点で取得します。これは、Claude Code が ToolSearch サーフェスで提供する遅延ツール読み込みと同じパターンであり、MCP ツールが多い場合のコンテキスト肥大化に対する、両ランタイム共通の適切な解決策です。Codex v0.144.0 では、writes app-approval mode が追加されました。読み取り専用の操作は確認なしで実行され、書き込みには承認が必要となります。これは、読み取り専用と自動承認の中間に位置する、まったく新しい権限モードの基本要素です。Claude Code のモード一覧には直接対応するものがありません。最も近いのは plan mode ですが、書き込みごとに確認するのではなく、書き込みを完全にブロックします。同じリリースで、MCP の対話型認証が GA となりました。さらに v0.144.5 では危険なコマンドの検出範囲が拡大され、Claude Code が v2.1.183 と v2.1.208 で導入した破壊的コマンドに対するガードレールと同様の仕組みが実装されました。ランタイムをまたぐ harness の設計で重要なのは、この収束です。ツールの遅延読み込み、段階的な書き込み承認、意図レベルでの危険なコマンドのブロックは、ベンダーごとの差別化要素ではなく、当然備えるべき機能になりつつあります。
Codex v0.145.0 では、2つの側面でこの収束がさらに進みました。76 オプトインの multi-agent V2 サーフェスが安定化し、sub-agent のモデル、推論レベル、同時実行数を設定できるようになりました。以前削除された agent ロールも復元されています。これは、.claude/agents/ の frontmatter で subagent ごとにモデルと effort を設定する仕組みに対する、Codex 側の回答です。また、/import は harness 間の完全な移行機能へと発展しました。v0.140.0 で導入された Claude Code の設定インポートに加え、Claude Code と Cursor の両方から設定を移行できるようになりました。MCP サーバー、プラグイン、セッション、コマンド、プロジェクト固有のメモリも対象です。両方のランタイムを運用するチームにとって、一方向の移行コストは低下し続けています。Claude Code 上で構築した harness レイヤー(サーバー、コマンドとしての skills、メモリ)は、ベンダーロックインではなく、持ち運び可能な状態へと変わりつつあります。
実際の対応関係は次のとおりです。
| Claude Code harness レイヤー | Codex での対応機能 | 移行ルール |
|---|---|---|
CLAUDE.md / .claude/rules/ |
AGENTS.md / 階層ごとの AGENTS.override.md |
コマンドと完了条件は正規の情報源に集約し、ディレクトリごとに適用範囲が実際に異なる場合のみ分割する |
.claude/skills/<name>/SKILL.md |
.agents/skills/<name>/SKILL.md またはプラグインの skill |
再利用可能なワークフローを移植しつつ、Codex の起動条件の表現とコンテキスト予算に合わせて説明を書き直す |
.claude/settings.json hooks |
Codex config.toml、プラグインの hooks、または managed requirements hooks |
まず決定論的な gates を移植し、実際のツールイベントで各 hook をテストしてから広範囲に有効化する |
.claude/agents/*.md |
~/.codex/agents/*.toml、.codex/agents/*.toml、または組み込みの worker / explorer |
繰り返し価値を生む agents のみを移植する。Codex subagents は明示的に使用するため、明示的な委任を優先する |
| プラグイン | Codex プラグイン | ローカルの hooks と skills を検証した後、配布単位としてプラグインを使用する |
重要な違いは、Claude subagents は説明に基づいて自動的に選択される可能性がある一方、Codex では現在、subagent ワークフローを明示的に実行するものとして文書化している点です。そのため、Codex で常時適用する harness の動作には、skills と hooks をデフォルトとして使用するのが適切です。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 にビルドコマンドを説明させてください。そのまま正確に再現できなければ、指示が冗長すぎる(コンテキストから内容が押し出されている)、曖昧すぎる(実行可能な指示を抽出できない)、または検出されていないかのいずれかです。2,500件のリポジトリを対象とした GitHub の分析では、ほとんどの失敗は曖昧さが原因だと判明しています。21
本番環境のパターン
Opus 4.7の長期実行パターン(2026年4月)
Claude Opus 4.7(2026年4月16日)では、harnessで対策すべき対象を変える特有の機能が導入されました。29
- ツール障害への耐性: Opus 4.7は、Opus 4.6ではセッションが停止していたツール障害が発生しても処理を継続します。subagentsのコードに含まれる防御的な再試行ラッパーは減らせますが、完全には排除できません。hookレベルのガードは維持しつつ、プロンプト内の「ツールが失敗した場合は3回再試行する」といった足場は削減してください。
xhigheffort階層(Opus-4.7のみ):highとmaxの中間に位置し、コーディングやエージェント型ワークロードの推奨デフォルトです。長時間実行するsubagentsでは、xhighはhighを明確に上回る性能を発揮しながら、トークンコストの増加は性能向上率よりも小さく抑えられます。単発の難しい推論には引き続きmaxが適していますが、継続的なタスクにはxhighのほうが適しています。- トークン予算の上限: エージェントの実行ごとに
output_config.task_budget(ベータヘッダーtask-budgets-2026-03-13)で設定できます。モデルには残り予算のカウントダウンが表示されるため、予期せぬトークン切れを起こす代わりに、予算内に収まるよう作業範囲を適切に調整できます。短いプロンプトの品質を犠牲にせず、トークン消費量を予測可能にしたいエージェント型ループで使用してください。 - 暗黙的なニーズの認識: ユーザーの明示的な依頼だけでは実際のニーズが十分に表現されていないことを認識する「implicit-need」テストに初めて合格したClaudeモデルです。これにより、CLAUDE.mdの「確認ルール」セクションの必要性が低下します。CLAUDE.mdが「ユーザーがYを依頼した場合はXも考慮する」といったガードレールで200行に及ぶなら、モデルがネイティブに対応できるようになったものは削除してください。
Worktreeのベース、Sandboxのパス、管理者設定(2026年5月7日)
Claude Code v2.1.133では、本番環境のharnessで把握しておくべき4つの管理者階層設定が追加されました。39
| 設定 | 値 | 動作 |
|---|---|---|
worktree.baseRef |
fresh(デフォルト) | head |
新しいworktreeは、再びorigin/<default>からブランチを作成します。ローカルのHEADを使用していたv2.1.128からの破壊的なデフォルト動作の差し戻しです。新しいworktreeで未pushのcommitを利用する運用に依存しているチームは、worktree.baseRef: "head"を設定してください。 |
sandbox.bwrapPath |
絶対パス | $PATHにBubblewrapが含まれていないLinux/WSLホストや、同梱版を配布している環境で、Bubblewrapバイナリの場所を固定します。 |
sandbox.socatPath |
絶対パス | Sandboxのネットワーク機能で使用するsocatバイナリについて、同様に場所を固定します。 |
parentSettingsBehavior |
'first-wins'(デフォルト) | 'merge' |
SDKのmanagedSettingsと親のエンタープライズ/チーム設定をどのように合成するかを管理者階層で制御します。'merge'では子セッションが設定を継承して拡張でき、'first-wins'では親の設定が優先されます。 |
ユーザーに注意喚起すべきなのは、worktree.baseRefの差し戻しです。v2.1.128~v2.1.132の動作(ローカルのHEADからworktreeを分岐)に依存していたエージェントは、明示的に元の動作へ戻さない限り、新しいworktreeから未pushの作業へアクセスできなくなります。
エンタープライズ可観測性向けOTelフィードバック調査(2026年5月8日)
Claude Code v2.1.136では、OpenTelemetryを通じて回答を収集する企業向けに、セッション内の品質調査を再有効化するCLAUDE_CODE_ENABLE_FEEDBACK_SURVEY_FOR_OTELが追加されました。40 組織がOTelイベントを中央の可観測性スタックへ送信している場合、この環境変数によって調査がデータ経路へ戻され、品質シグナルがレイテンシーやエラーの指標と同じパイプラインを流れるようになります。オプトインとして扱ってください。デフォルトでは調査が抑制されており、OTelを使用しないデプロイではこの動作が適切です。
企業向けランチャーとMCP規模のパフォーマンス(2026年7月)
v2.1.207では、本番環境へのデプロイに影響する変更が2つあります。68 CLAUDE_CODE_PROCESS_WRAPPERを使用すると、管理対象環境で企業指定のラッパーバイナリを介してClaude Codeプロセスを起動できます。エンドポイントエージェント、起動時のポリシーチェック、すべてのプロセスを指定されたスーパーバイザーの配下で実行しなければならない環境との統合ポイントです。これまでシェルエイリアスやフォークしたランチャースクリプトで代用していた企業には、正式にサポートされる接続点となります。
同じリリースでは、harnessへの影響が最も大きいランタイムオーバーヘッドも削減されました。MCPツールの数が多いセッションでは、ツール使用ラウンドが最大7倍高速化され、セッションのトランスクリプトは79分の1に縮小されています。68 これにより、アーキテクチャとしてのコストの指針は覆らないものの、影響が緩和されます。ステートレスな単発処理では引き続きCLI優先が有利ですが、多数のMCPツールを抱えるharnessでも、春先ほどのラウンド単位のペナルティは発生しなくなりました。また、長時間の自律実行でトランスクリプトの保存が隠れたコストになることもなくなります。
quality loop
重要な変更すべてに必須となるレビュープロセスです。
- 実装 - コードを記述します
- レビュー - すべての行を読み直し、誤字、ロジックエラー、不明瞭な箇所を見つけます
- 評価 - evidence gateを実行し、パターン、エッジケース、テストカバレッジを確認します
- 改善 - すべての問題を修正します。「後で」に先送りしてはいけません
- 俯瞰 - 統合ポイント、import、隣接するコードにリグレッションがないか確認します
- 反復 - evidence gateの基準を1つでも満たさない場合は、手順4へ戻ります
- 報告 - 変更内容と検証方法を列挙し、具体的なevidenceを示します
evidence gate
「そう思う」や「そのはず」はevidenceではありません。ファイルパス、テスト出力、具体的なコードを示してください。
| 基準 | 必要なevidence |
|---|---|
| コードベースのパターンに従っている | パターンの名前と、それが存在するファイルを示します |
| 動作する最も単純な解決策である | より単純な代替案を却下した理由を説明します |
| エッジケースに対応している | 具体的なエッジケースと、それぞれへの対応方法を列挙します |
| テストに合格している | 失敗が0件であることを示すテスト出力を貼り付けます |
| リグレッションがない | 確認したファイルや機能を示します |
| 実際の問題を解決している | ユーザーのニーズと、それにどう対応したかを説明します |
いずれかの行についてevidenceを提示できない場合は、改善へ戻ってください。22
人間によるマージ権限
2026年5月に発表された29,585件のAIエージェントによるプルリクエストのライフサイクルを対象としたarXivの研究では、運用上の権限とマージのガバナンスを分けています。47 アーキテクチャ上の教訓は明快です。エージェントは作業を開始し、ブランチで作業を進め、PRを作成し、成果物をレビューし、リスクを要約できます。一方、マージ権限は独立したガバナンス境界として維持します。
harnessでは、この境界を明示してください。エージェントにはPRの準備とevidenceの収集を許可しますが、組織に別途監査済みの自動化ポリシーがない限り、マージ、リリース、リポジトリに対する破壊的操作には人間の承認を必須とします。自動化によってマージを実行する場合は、実行主体と、承認した人間またはポリシーを区別できるログを保存してください。
エラー処理パターン
アトミックなファイル書き込み。 複数のエージェントが同じ状態ファイルへ同時に書き込むと、JSONが破損します。.tmpファイルへ書き込み、続いてmvでアトミックに移動してください。同じファイルシステム内では、OSによって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の場合、0++の評価結果が0になり、bashではfalseとして扱われるため、((VAR++))は終了コード1を返します。set -eが有効だと、これによってスクリプトが終了します。代わりにVAR=$((VAR + 1))を使用してください。16
影響範囲の分類
エージェントによるすべての操作を影響範囲ごとに分類し、それに応じたゲートを設けます。2
| 分類 | 例 | ゲート |
|---|---|---|
| ローカル | ファイルへの書き込み、テスト実行、lint | 自動承認 |
| 共有 | Git commit、ブランチ作成 | 警告して続行 |
| 外部 | Git push、API呼び出し、デプロイ | 人間の承認を必須にする |
Remote Control(任意のブラウザやモバイルアプリからローカルのClaude Codeへ接続する機能)を使うと、「外部」ゲートは処理を停止させる待機から非同期通知へ変わります。スマートフォンで前のタスクをレビューしている間も、エージェントは次のタスクを進められます。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ステータスコード、ファイルの存在確認など、機械的に検証できるものでなければなりません。初期のタスクでエージェントに「合格するテストを書く」よう依頼したところ、assert Trueとassert 1 == 1が生成されました。技術的には正解ですが、実用上は無価値です。16
| 基準の品質 | 例 | 結果 |
|---|---|---|
| 曖昧 | 「テストに合格する」 | エージェントが形だけのテストを作成します |
| 測定可能だが不完全 | 「テストに合格し、かつカバレッジが80%を超える」 | 行はカバーしますが、意味のある内容を何もテストしません |
| 包括的 | 「すべてのテストに合格し、かつカバレッジが80%を超え、型エラーがなく、linterがクリーンで、各テストクラスが異なるモジュールをテストする」 | 本番品質の出力 |
注意すべき失敗パターン
| 失敗パターン | 説明 | 防止策 |
|---|---|---|
| Shortcut Spiral | 早く終わらせるためにquality loopの手順を省略する | evidence gateで各基準の証明を必須にする |
| Confidence Mirage | 検証を実行せずに「自信があります」と述べる | 完了報告で曖昧な表現を禁止する |
| Phantom Verification | 現在のセッションで実行していないのに、テストに合格したと主張する | Stop hookがテストを独立して実行する |
| Deferred Debt | commitされたコードにTODO/FIXME/HACKが含まれる | git commitのPreToolUse hookでdiffをスキャンする |
| Filesystem Pollution | 放棄した反復作業による不要な成果物が残る | 完了基準にクリーンアップ手順を含める |
具体的なセッショントレース
5件のストーリーを含むPRDを処理した自律実行のセッショントレースです。2
-
SessionStartが発火します。 dispatcherが、現在の日付、プロジェクト検出、哲学的制約、コスト追跡の初期化を注入します。hookは5つで、合計180msです。
-
エージェントがPRDを読み、最初のストーリーを計画します。
UserPromptSubmitが発火します。dispatcherが、アクティブなプロジェクトのコンテキストとセッションドリフトのベースラインを注入します。 -
エージェントがBashを呼び出してテストを実行します。
PreToolUse:Bashが発火し、認証情報のチェック、Sandboxの検証、プロジェクト検出を行います。所要時間は90msです。テストが実行されます。続いてPostToolUse:Bashが発火し、アクティビティのハートビートを記録してドリフトを確認します。 -
エージェントがWriteを呼び出してファイルを作成します。
PreToolUse:Writeが発火し、ファイルのスコープを確認します。PostToolUse:Writeが発火し、lintチェックとcommitの追跡を行います。 -
エージェントがストーリーを完了します。
Stopが発火します。品質ゲートでは、エージェントがevidenceを示したか、曖昧な表現がないか、diffにTODOコメントがないかを確認します。いずれかのチェックに失敗すると終了コード2を返し、エージェントは作業を継続します。 -
独立検証: 新しいエージェントが、前のエージェントによる自己申告を信用せずにテストスイートを実行します。
-
3つのコードレビューエージェントが並列で起動します。 それぞれが独立してdiffをレビューします。いずれかのレビュアーがCRITICALを報告した場合、ストーリーはキューへ戻されます。
-
ストーリーが合格し、次のストーリーが読み込まれます。 5件すべてのストーリーについて、このサイクルを繰り返します。
5件のストーリー全体で発火したhookの合計は約340回、hookの合計所要時間は約12秒でした。このオーバーヘッドにより、一晩の実行だけで3件の認証情報漏洩、1件の破壊的コマンド、2件の不完全な実装を防止できました。
ケーススタディ:一晩でのPRD処理
本番環境のharnessで、8回の夜間セッションにわたり12件のPRD(47件のストーリー)を処理しました。最初の4件のPRD(最小構成のharness:CLAUDE.mdのみ)と、後半8件(完全なharness:hooks、skills、品質ゲート、マルチエージェントレビュー)の指標を比較します。
| 指標 | 最小構成(4件のPRD) | 完全なHarness(8件のPRD) | 変化 |
|---|---|---|---|
| 認証情報の漏洩 | 2件がgitへ漏洩 | 7件をpre-commitでブロック | 事後対応から予防へ |
| 破壊的コマンド | mainへのforce-pushが1件 | 4件をブロック | 終了コード2による強制 |
| 誤った完了報告率 | 35%でテスト失敗 | 4% | evidence gate + Stop hook |
| ストーリーあたりの修正回数 | 2.1 | 0.8 | skills + quality loop |
| コンテキストの劣化 | 6件 | 1件 | ファイルシステムメモリ |
| トークンのオーバーヘッド | 0% | 約3.2% | 無視できる水準 |
| ストーリーあたりのhook実行時間 | 0s | 約2.4s | 無視できる水準 |
2件の認証情報漏洩では、APIキーのローテーションと下流サービスの監査が必要となり、インシデント対応に約4時間を要しました。同等の漏洩を防いだharnessのオーバーヘッドは、ストーリーあたり2.4秒のbash実行にすぎません。Stop hookがエージェントの完了報告を許可する前に独立してテストを実行したことで、誤った完了報告率は35%から4%へ低下しました。
セキュリティ上の考慮事項
信頼できるエージェントの5原則(Anthropic、2026年4月)
Anthropicは2026年4月9日、エージェントの信頼性に関する正式なフレームワークを公開しました。27 5つの原則は、このガイドのEvidence Gateの考え方と共通しつつ、さらに発展させたものです。
| 原則 | 意味 | このharnessでの実現方法 |
|---|---|---|
| 人間による制御 | あらゆる意思決定時点で、人間が実質的に介入できること | hooksによるツール呼び出しの制御、PreCompactによるブロック、チェックレイヤーとしてのAuto Mode分類器 |
| 価値観との整合 | エージェントの行動が、隣接する別の目標ではなくユーザーの意図に沿うこと | 明示的な意図の仕様としてのCLAUDE.md、機能範囲を定めるskills |
| セキュリティ | 敵対的入力やプロンプトインジェクションへの耐性 | サンドボックス、拒否ルール、hookレイヤーでの入力検証 |
| 透明性 | 意思決定と行動を監査できる記録 | hookログ、セッショントランスクリプト、skill呼び出しトレース |
| プライバシー | 適切なデータ処理とガバナンス | 認証情報を含む環境変数の除去、hookレイヤーでのシークレット検出 |
AnthropicはさらにMCPをLinux FoundationのAgentic AI Foundationへ寄贈し、AGENTS.md(現在はOpenAI、Google、Cursor、Factory、Sourcegraphと共同管理)に加わりました。これにより、エージェント相互運用性の標準はベンダー中立となっています。27
MCPのステートレスなターンと自己申告ID(2026年7月)。 MCP仕様は現在、ステートレスなコア(SEP-2575)への移行途中にあります。これにより、従来サーバーIDを伝えていたステートフルな初期化ハンドシェイクが廃止されます。7月16日にマージされたドラフト仕様の変更(PR #3002)では、IDが任意のサーフェスとして復活しました。サーバーはレスポンスの_metaにio.modelcontextprotocol/serverInfoオブジェクトを含められ、リクエストのclientInfoは任意となります。71 セキュリティ上重要なのは、仕様が信頼について述べている内容です。このIDは自己申告であり、検証されていません。表示とログ記録のみに使用し、セキュリティ上の判断には使用すべきではありません。harnessの許可リスト、権限ルール、ログベースの監査をMCPサーバーの申告名に基づかせている場合、その名前は認証情報ではなく、単なる主張です。信頼は、サーバー自身が名乗る名前ではなく、トランスポートと設定(どのサーバーをどのエンドポイントに設定したか)に固定してください。最終版のステートレス仕様改訂は2026年7月28日に予定されています。このセクションのプロトコルレベルの詳細は、次回の更新で固まる見込みです。
Skillサンドボックスツール: skillsを攻撃対象として扱うチーム向けに、PermisoのSandyClaw(2026年4月2日公開)はskillsを専用サンドボックス内で実行し、Sigma/YARA/Nova/Snortによる検出に基づいた証拠付きの判定を提供します。skillサンドボックスというカテゴリ初の製品です。28
サンドボックス
Claude Codeは、OSレベルの分離(macOSではseatbelt、Linuxではbubblewrap)によってネットワークアクセスとファイルシステム操作を制限する、任意のサンドボックスモードをサポートしています(settings.jsonまたは/sandboxコマンドで有効化)。有効にすると、モデルによる任意のネットワークリクエストや、プロジェクトディレクトリ外のファイルへのアクセスを防止できます。サンドボックスを使用しない場合、Claude Codeは個々のツール呼び出しを承認または拒否する権限ベースのモデルを使用します。13
2026年5月時点のセキュリティ下限。 Claude Code v2.1.149では、PowerShellの作業ディレクトリ権限を回避できる問題、PowerShellの許可ルールと古い変数に関する複数の権限分析上の不備、共有されるgit内部データだけでなくメインリポジトリのルート全体を対象としていたgit worktreeサンドボックスの書き込み許可リストのバグが修正されました。53 harnessでPowerShellまたはworktree分離型エージェントを許可する場合は、v2.1.149以降を最低ラインとし、シェルルールを狭く保ってください。広範なPowerShell(*)やリポジトリ全体への書き込み例外は、オーケストレーション上の近道にすぎず、安全境界ではありません。
OpenAI Agents SDKのサンドボックス強化(v0.17.0、2026年5月8日)。 OpenAI側では、openai-agents-python v0.17.0によって並列する境界も強化されました。LocalFile.srcとLocalDir.srcは、マニフェスト適用時のマテリアライズ用base_dir(SDKプロセスの現在の作業ディレクトリ)内に制限されます。ただし、Manifest.extra_path_grantsでSandboxPathGrantを使用し、ソースを明示的に許可した場合は除きます。41 相対パスのローカルソースはbase_dirを基準に解決されます。絶対パスは、すでにその内部にあるか、許可が付与されていなければなりません。これはローカルアーティファクト境界の問題を解消するものです。以前のバージョンでは、マニフェストを通じてホスト上の任意のパスをサンドボックスのワークスペースへ取り込めました。移行時には、読み取り専用マウントとして信頼するホストルートを、マニフェストレベルでSandboxPathGrant(path=..., read_only=True)を使って宣言してください。extra_path_grantsは信頼済みのアプリ設定として扱い、モデルの出力や信頼できないマニフェスト入力から許可を設定してはいけません。
OpenAI Agents SDKの追加下限(v0.17.3)。 0.17.1~0.17.3では、サンドボックスとセッションがさらに強化されました。アーカイブ展開の制限、GitRepoサブパスの検証、より明確なサンドボックスプロバイダーエラー、サンドボックスコマンドからのマウントポイント認証情報の分離、相対パスによるサンドボックスワークスペースルートの拒否、Vercelサンドボックスの終了状態処理などです。54 Claude Code hooksだけでなく、OpenAIホスト型またはプロバイダー提供のサンドボックスを使用している場合は、このセクションのパターンにおける現時点の最低ラインを0.17.3としてください。
製品横断の3つの封じ込めパターン(Anthropic、2026年5月)
Anthropicのエンジニアリング記事「How we contain Claude across products」(2026年5月25日)は、このセクションで個別に説明してきた原則、つまり前述の設定レベルのサンドボックス、worktree分離の最低ライン、あらゆるものを信頼できないものとして扱う姿勢について、ベンダー自身が体系的に示したものです。81 その中核は、封じ込めの強度を製品のサーフェスに対応づけることにあります。この対応関係自体が重要な教訓です。唯一の正しい分離設計があるわけではなく、監視する人と起こり得る問題に応じた分離が必要なのです。
- 一時的なgVisorコンテナ(claude.ai)。 サーバー側の実行は、分離されたインフラストラクチャ上のgVisorコンテナで行われ、セッションごとに一時的なファイルシステムが用意されます。脅威モデルはインフラストラクチャとテナントの分離です。ユーザーのマシンには到達できないため、ローカル環境を防御する必要はありません。
- 人間参加型のOSサンドボックス(Claude Code)。 前述のサンドボックスで説明したパターンを、ポリシーとして明文化したものです。macOSではSeatbelt、Linuxではbubblewrapを使用し、読み取りは許可、書き込みはワークスペース内に限定、ネットワークはデフォルトで拒否します。境界でカバーできない操作は人間が承認します。Anthropicはランタイム(
sandbox-runtime)をオープンソース化し、境界を監査可能にしました。この記事は弱点についても率直です。権限プロンプトのおよそ93%が承認されています。実行前に過剰な動作の約83%を検出しながら、承認プロンプトを84%削減するauto-mode分類器が存在するのは、承認疲れがUX上の不満ではなく、セキュリティ特性そのものだからです。これは、このガイドがv2.1.193以降追跡してきたチェックレイヤーの姿勢です。 - 封印されたVM(Claude Cowork)。 プラットフォームのハイパーバイザー(macOSではApple Virtualizationフレームワーク、WindowsではHCS)上で完全な仮想マシンを実行し、選択したワークスペースと
.claudeフォルダーだけをマウントします。ホスト上のそれ以外のデータは一切見えません。認証情報がVMに入ることもありません。認証情報はホストのキーチェーンに保持され、各セッションにはスコープが限定され、個別に取り消し可能なトークンが渡されます。VM内の防御的なMITMプロキシがこれを強制し、VM自身にプロビジョニングされたセッショントークンを含むリクエストだけを通過させます。攻撃者が埋め込んだキーは境界で拒否されます。出所を把握しているのはVMだけだからです。
この分類体系の根底にあるデザイン原則こそ、別の環境にも応用できる部分です。まず環境レイヤーで封じ込め、次にモデルレイヤーで誘導してください。 確率的な防御には必ずゼロではない見逃し率があるため、プロンプトレベルの誘導が見逃したものを、決定論的な境界で捕捉しなければなりません。このガイドの「hooksは実行を保証する」という主張を、ベンダー自身が言い換えたものです。分離の強度は、ユーザーの監督能力に合わせてください。 開発者ならbashコマンドを承認前に評価できますが、ナレッジワーカーにはできません。そのため、Codeには権限ダイアログがあり、Coworkには封印されたVMがあります。独自の分離コードではなく、実績あるプリミティブを優先してください。 ハイパーバイザー、seccomp、コンテナランタイムは、Anthropic独自の許可リストプロキシや設定パーサーよりも、敵対的な検証に耐えてきました。プロジェクトローカルの設定とツール出力を、信頼できないものとして扱ってください。 記事では、プロジェクトを開く処理や設定を読み込む処理を、インターネットから届くあらゆる受信リクエストと同様に扱い、ツール自体が信頼できる場合でもツール出力を攻撃対象として扱うよう求めています。これは、このガイドがエージェント間メッセージ、subagentが読み取ったコンテンツ、自己申告されたMCPのIDに適用している姿勢と同じです。認証情報はサンドボックスの外に置いてください。 エージェントが漏えいさせ得る常設キーではなく、スコープが限定され、取り消し可能なセッション単位のトークンを使用します。
設定サーフェスも第1原則に追いつきつつあります(v2.1.219)。 「まず環境レイヤーで封じ込める」という方針には賛同しやすい一方、実際の設定は扱いにくいものでした。Claude Codeのサンドボックスは、ルールでカバーされない操作について確認を求めていたからです。前述の93%という承認率が示すとおり、権限プロンプトは決定論的な衣装をまとった確率的防御にすぎません。sandbox.network.strictAllowlistは、外向き通信におけるこの確認をなくします。これを設定すると、サンドボックス化されたコマンドから許可リストにないホストへのリクエストは、プロンプトを表示せず即座に拒否されます。84 v2.1.216のsandbox.filesystem.disabledと組み合わせれば、2つの設定は単なるトグルの寄せ集めではなく、一貫したセキュリティ態勢を構成します。ファイルシステムとネットワークの封じ込めを個別に選択でき、ネットワークの封じ込めは決定論的に設定できるようになりました。無人のharnessでは、この2つのうちネットワークの方が重要です。外向き通信によって、注入された命令が情報流出へと変わるからです。また、承認疲れの究極の状態とは、疲れる人すらキーボードの前にいないことです。代償として、決定論的な境界には通常どおり正確な許可リストが必要になります。登録し忘れたホストへのアクセスは質問されず、不透明な拒否として失敗します。エージェントが正当に必要とするホストを列挙したうえで、プロンプトをなくしてください。
これらはいずれもhookレイヤーの代替ではなく、その下層に位置します。封じ込めパターンは決定論的な最低ラインです。このガイドで扱ってきたworktree強制の歴史も、同じ教訓を小さく示しています。境界と呼べるのは意図的な迂回に耐えられるものだけであり、最も耐えられる可能性が高いのは、その場しのぎで作られたものではないプリミティブです。
権限境界
権限システムは、複数のレベルで操作を制御します。
| レベル | 制御対象 | 例 |
|---|---|---|
| ツール権限 | 使用できるツール | subagentをRead、Grep、Globに制限 |
| ファイル権限 | 変更できるファイル | .env、credentials.jsonへの書き込みをブロック |
| コマンド権限 | 実行できるbashコマンド | rm -rf、git push --forceをブロック |
| ネットワーク権限 | アクセスできるドメイン | MCPサーバー接続用の許可リスト |
パラメータレベルの権限ルール(2026年6月)
Claude Code v2.1.178では、権限ルールがツールレベルからパラメータレベルまで拡張されました。Tool(param:value)はツールの入力パラメータと照合し、*をワイルドカードとして使用します。代表的な例はAgent(model:opus)で、特定のモデル階層を使用したsubagentsの起動をブロックするルールです。63 アーキテクチャ上、これは前述の4段階の表では表現できなかった隙間を埋めます。以前はツール全体を許可または拒否できても、どのように呼び出すかまでは制限できませんでした。現在は、「subagentsの起動は許可するが、Fable 5階層では許可しない」や「Bashは許可するが、このフラグ付きでは許可しない」といったガバナンスポリシーを、プロンプトレベルの要求ではなく、決定論的なルールとして指定できます。
付随する管理設定enforceAvailableModels(v2.1.175)は、モデル選択を上位から制限します。Defaultモデルを固定し、ユーザーまたはプロジェクトスコープの設定によって、管理対象のavailableModels許可リストが拡張されるのを防ぎます。63 この2つは組み合わせて機能します。許可リストはセッション内に存在できる階層を定義し、パラメータレベルのルールはsubagentsがそこからモデルを選ぶ方法を制限します。v2.1.196以降、管理者は組織コンソールから組織全体のデフォルトモデルも設定できます。これは/modelに「Org default」と表示され、各オペレーターが個別に固定しなくても、組織全体に管理されたデフォルトが適用されます。許可リストの上限を補完する最低ラインとなります。
パススコープの許可ルールは作業ディレクトリを基準とする(2026年7月)
Claude Code v2.1.214では、パススコープの権限ルールにおける目立ちにくい過剰一致が修正されました。Edit(src/**)のような、単一セグメントのdir/**パターンを持つ許可ルールは、以前は任意の深さにあるsrcという名前のあらゆるディレクトリへの編集を自動承認していました。これには、ルール作成者が許可するつもりのなかったvendor/some-package/src/や、その他すべてのネストされたsrc/も含まれていました。現在、こうしたルールは<cwd>/dirだけを基準とします。本当に深さを問わず一致させたい場合は、**/dir/**で宣言してください。74 拒否ルールと確認ルールは、意図的に従来の深さを問わない一致を維持しています。この非対称性は、フェイルセーフ設計として正しいものです。許可ルールの一致範囲が狭すぎても安全側に失敗し、プロンプトが表示されます。一方、拒否ルールの一致範囲が狭すぎると危険側に失敗し、ブロック対象のパスがすり抜けます。そのため、許可は厳格化され、拒否は広いまま維持されました。単一セグメントの許可パターンでネストされたパスまでカバーしていた設定は、v2.1.214で暗黙に機能しなくなっています。これは修正が意図どおり機能している結果ですが、許可リストを見直し、実際に必要な範囲を改めて宣言する価値があります。
Auto Modeの破壊的コマンドに対するガードレール(2026年6月)
Claude Code v2.1.183では、作業内容を暗黙に失わせたり環境を破棄したりする操作について、auto modeの影響範囲が狭められました。セッション内で明示的に要求しない限り、auto modeは次の操作を強制的にブロックします。破壊的なgit操作(git reset --hard、git checkout -- .、git clean -fd、git stash drop)、そのセッションでエージェントが作成したものではないコミットへのgit commit --amend、特定のスタックを指定していないインフラストラクチャの破棄(terraform destroy、pulumi destroy、cdk destroy)です。65 アーキテクチャ上、これは前述の起動時の検査とパラメータレベルのルールを補完します。どのツールを使うか、またはどのように起動するかを制御するのではなく、少数の具体的で取り消せないコマンドを意図に基づいて制御します。エージェントは引き続き実行できますが、自発的には実行できず、明示的な指示が必要です。自律型harnessでも、同じ原則を独自のPreToolUse hooksに組み込んでください。状態を破壊するコマンドには、明示的なオペレーターの合図がある場合にのみ解除される、デフォルト拒否ルールが必要です。
2026年7月:auto modeがエンタープライズ対応となり、1つのプロンプトが回避不能に。 v2.1.207では、auto modeがAmazon Bedrock、Google Vertex AI、Microsoft FoundryでGAとなり、エンタープライズ向けのオプトアウトとしてdisableAutoMode管理設定が追加されました。分類器をチェックレイヤーとして使用する姿勢が、すべてのファーストパーティエンタープライズプラットフォームで利用可能になりました。無効化はプラットフォーム上の制約ではなく、明示的なガバナンス判断となります。68 続くv2.1.208では、壊滅的な削除に対するガードが絶対的なものになりました。壊滅的な削除に対する確認プロンプトは、--dangerously-skip-permissionsとauto modeの両方を貫通して表示されます。68 これは注目すべき先例です。明示的なバイパスフラグを含め、どのような権限態勢でも回避できない、Claude Code初の確認となります。--dangerously-skip-permissionsが文字どおりプロンプトを完全になくすと想定していた自律型harnessの設計では、この例外を考慮してください。無人ループが最も回復不能な損害を与え得る場面でのみ発動します。
捏造防止ガードレール(2026年7月)
v2.1.203~v2.1.206のリリースでは、エージェントが自身の監査証跡を捏造できる2つの経路が閉じられました。68 まず、auto-modeのルールによってトランスクリプトファイルの改ざんがブロックされるようになり、セッション記録を同じセッションのツール呼び出しで書き換えられなくなりました。次に、バックグラウンドタスクの通知には、タスクの実行中に人間からの入力がなかったことが明記されるようになりました。後者は巧妙な失敗を対象としています。以前は、バックグラウンドタスクを要約するモデルが、実際には存在しなかったトランスクリプト内の「承認」を提示(または捏造)しても、通知側にそれを否定する情報がありませんでした。現在は、通知そのものが反証となります。
このアーキテクチャ上の教訓は、Evidence Gate全般に当てはまります。トランスクリプト、通知、ログは監査サーフェスであり、監査対象自身が監査サーフェスへ書き込めてはいけません。プラットフォームは現在、独自のトランスクリプトに対してこれを強制しています。同じルールをharnessにも適用し、証拠レポート、テスト出力、deliberationの記録をモデルが書き込めるパスの外に置いてください。
プロンプトインジェクション対策
Skillsとhooksは、プロンプトインジェクションに対する多層防御を提供します。
ツール制限付きのskillsは、侵害されたプロンプトによる書き込みアクセスの獲得を防ぎます。
allowed-tools: Read, Grep, Glob
PreToolUse hooksは、モデルがどのようなプロンプトを受けたかにかかわらず、すべてのツール呼び出しを検証します。
# Block credential file access regardless of prompt
if echo "$FILE_PATH" | grep -qE "\.(env|pem|key|credentials)$"; then
echo "BLOCKED: Sensitive file access" >&2
exit 2
fi
Subagentの分離により、影響範囲を限定できます。permissionMode: planが設定されたsubagentは、プロンプトが侵害されても変更を加えられません。
2026年7月にプラットフォームの最低ラインが引き上げられました。 Claude Code v2.1.210では、subagentが読み取ったコンテンツを経由する間接的なプロンプトインジェクションに対してAgent toolが強化されました。subagentが取り込んだ汚染ファイル、Webページ、ツール結果によって、委任サーフェス自体が誘導されにくくなっています。69 また、v2.1.211では人間が関わる部分も強化されました。権限プレビューで、双方向テキストの上書き、ゼロ幅文字、類似したUnicode文字を無害化するようになり、承認ダイアログでは無害に見えながら、実際には別の処理を実行するコマンドを作れなくなりました。69 2つ目の修正は、時間的なプレッシャーのもとで人間がレンダリングされたプレビューを承認するharnessにとって特に重要です。表示自体もインジェクションの攻撃対象だったのです。どちらの変更も前述のhookレベルの防御を置き換えるものではなく、その下にある最低ラインを引き上げます。
エージェントログとガードレールはセキュリティサーフェス
2026年5月の2件のアドバイザリは、あるパターンを改めて示しています。エージェントインフラストラクチャは、機密コンテンツや実行可能なポリシーが漏えいしたり、境界を脱したりする新たな場所を生み出します。GitHub Advisory GHSA-f3jg-756w-gm35は、Gryph Agentsのペイロードフィルターに関する問題を扱っており、デフォルトのログ動作では、機密性の高いツールペイロードの内容がローカルのSQLiteログに残る可能性がありました。45 OSV GHSA-wxxx-gvqv-xp7pは、管理者によって保護されたプロキシエンドポイントにおける、LiteLLMのカスタムコードガードレールのサンドボックスエスケープを扱っています。46
本番環境での原則は、エージェントのトランスクリプト、ツールペイロード、SQLiteログ、ガードレールの実行を機密インフラストラクチャとして扱うことです。永続化する前に機密情報を編集し、保持期間を制限して、カスタムガードレールコードをサンドボックス内でレビュー可能な状態に保ってください。プロンプトレベルの「シークレットをログに記録しない」というルールだけでは不十分です。ログとガードレールの経路には、決定論的なテストが必要です。
Hookのセキュリティ
環境変数をヘッダーへ展開するHTTP hooksでは、任意の環境変数が外部へ漏えいするのを防ぐため、明示的なallowedEnvVarsリストが必要です。13
{
"type": "http",
"url": "https://api.example.com/notify",
"headers": {
"Authorization": "Bearer $MY_TOKEN"
},
"allowedEnvVars": ["MY_TOKEN"]
}
人間とエージェントの責任分担
エージェントアーキテクチャのセキュリティには、人間とエージェントの責任を明確に分ける必要があります。17
| 人間の責任 | エージェントの責任 |
|---|---|
| 問題の定義 | パイプラインの実行 |
| 信頼度のしきい値 | しきい値内での実行 |
| 合意形成の要件 | 合意の算出 |
| 品質ゲートの基準 | 品質ゲートの強制 |
| エラー分析 | エラー検出 |
| アーキテクチャ上の意思決定 | アーキテクチャの選択肢 |
| ドメインコンテキストの注入 | ドキュメントの生成 |
基本となるパターンは、人間が組織的なコンテキスト、倫理的判断、戦略的方向性を必要とする意思決定を担い、エージェントが広大な可能性空間に対する計算的探索を必要とする意思決定を担うことです。hooksがその境界を強制します。
再帰的なHookの強制
hooksはsubagentの操作に対しても発火します。13 ClaudeがAgent toolを介してsubagentを起動すると、subagentが使用するすべてのツールに対してPreToolUseとPostToolUse hooksが実行されます。再帰的なhookの強制がなければ、subagentは安全ゲートを迂回できてしまいます。SubagentStopイベントを使用すると、subagentの完了時にクリーンアップや検証を実行できます。
これは任意ではありません。セキュリティhooksを適用せずにsubagentを起動するエージェントは、メインの会話を監視するゲートが何もできない間に、mainへのforce-push、認証情報ファイルの読み取り、破壊的コマンドの実行を行えるエージェントです。
アーキテクチャとしてのコスト
コストはアーキテクチャ上の意思決定であり、運用時に後から考えるものではありません。2 3つのレベルがあります。
トークンレベル。 システムプロンプトを圧縮します。チュートリアル形式のコード例は削除してください(モデルはAPIsを理解しています)。ファイル間で重複するルールを統合し、説明を制約へ置き換えます。「機密パスに一致するツール呼び出しを拒否する」という一文で、認証情報を読み取るべきでない理由を15行で説明するのと同じ効果を得られます。
エージェントレベル。 長い会話よりも新規起動を優先します。自律実行では、各ストーリーにクリーンなコンテキストを持つ新しいエージェントを割り当てます。各エージェントが新しい状態から開始するため、コンテキストが膨れ上がることはありません。メモリではなくブリーフィングを使用してください。モデルは、蓄積された30ステップのコンテキストをたどるよりも、明確なブリーフィングを正確に実行できます。
アーキテクチャレベル。 操作がステートレスな場合は、MCPよりもCLIを優先します。1回限りの評価にclaude --printを呼び出す方が低コストで、接続オーバーヘッドも発生しません。MCPが適しているのは、ツールに永続的な状態またはストリーミングが必要な場合です。
判断フレームワーク
各仕組みを使う場面は次のとおりです。
| 問題 | 使うもの | 理由 |
|---|---|---|
| 編集のたびにコードをフォーマットする | PostToolUse hook | 毎回、決定的に実行する必要があります |
| 危険な bash コマンドをブロックする | PreToolUse hook | 実行前にブロックする必要があり、exit code 2 を使います |
| セキュリティレビューのパターンを適用する | Skill | コンテキストに応じて自動起動するドメイン知識です |
| コンテキストを汚さずにコードベースを探索する | Explore subagent | コンテキストが分離され、要約だけが返ります |
| 実験的なリファクタリングを安全に実行する | Worktree-isolated subagent | 失敗した場合に変更を破棄できます |
| 複数の観点からコードをレビューする | Parallel subagents または Agent Team | 独立した評価により、見落としを防げます |
| 取り返しのつかないアーキテクチャを判断する | Multi-agent deliberation | 信頼度トリガーと合意検証を使います |
| セッションをまたいで判断を保持する | MEMORY.md | ファイルシステムはコンテキスト境界を越えて残ります |
| チーム標準を共有する | Project CLAUDE.md + .claude/rules/ | Git で配布され、自動的に読み込まれます |
| プロジェクトのビルド/テストコマンドを定義する | CLAUDE.md | エージェントが検証できる、コマンド優先の指示です |
| 長時間の自律開発を実行する | Ralph loop(fresh-context iteration) | 各イテレーションで完全なコンテキスト予算とファイルシステム状態を使えます |
| セッション終了時に Slack へ通知する | Async Stop hook | ノンブロッキングで、セッションを遅くしません |
| コミット前に品質を検証する | git commit に対する PreToolUse hook | lint/テストが失敗した場合にコミットをブロックします |
| 完了基準を強制する | Stop hook | タスクが終わる前にエージェントが停止するのを防ぎます |
Skills vs Hooks vs Subagents
| 観点 | Skills | Hooks | Subagents |
|---|---|---|---|
| 呼び出し | 自動(LLM reasoning) | 決定的(イベント駆動) | 明示的、または自動委任 |
| 保証 | 確率的(モデルが判断) | 決定的(常に発火) | 決定的(コンテキスト分離) |
| コンテキストコスト | メインコンテキストに注入 | ゼロ(LLM の外で実行) | 別のコンテキストウィンドウ |
| トークンコスト | 説明予算(ウィンドウの1%、フォールバックは8,000文字) | ゼロ | subagent ごとに完全なコンテキスト |
| 最適な用途 | ドメイン知識 | ポリシー強制 | 集中的な作業、探索 |
FAQ
hooks はいくつあると多すぎますか?
制約になるのは数ではなく、パフォーマンスです。各 hook は同期的に実行されるため、hook の合計実行時間が、マッチしたすべてのツール呼び出しに加算されます。各 hook が200ms未満で完了するなら、ユーザーレベルとプロジェクトレベルの設定にまたがって95個の hooks があっても、目立つ遅延なく動作します。注意すべきしきい値は、PostToolUse hook がファイル編集のたびに500msを超える遅延を追加する場合です。この場合、セッションがもたついて感じられます。デプロイ前に time で hooks をプロファイルしてください。14
hooks で Claude Code のコマンド実行をブロックできますか?
はい。PreToolUse hooks は code 2 で終了することで、あらゆるツール操作をブロックします。Claude Code は保留中の操作をキャンセルし、hook の stderr 出力をモデルに表示します。Claude は拒否理由を確認し、より安全な代替案を提案します。Exit 1 はノンブロッキングの警告であり、操作はそのまま続行されます。3
hook 設定ファイルはどこに置くべきですか?
hook 設定は、プロジェクトレベルの hooks なら .claude/settings.json(リポジトリにコミットし、チームで共有)、ユーザーレベルの hooks なら ~/.claude/settings.json(個人用で、すべてのプロジェクトに適用)に置きます。両方が存在する場合は、プロジェクトレベルの hooks が優先されます。作業ディレクトリの問題を避けるため、スクリプトファイルには絶対パスを使ってください。14
すべての判断に deliberation が必要ですか?
いいえ。confidence module は、判断を4つの次元(曖昧さ、複雑さ、重要度、コンテキスト依存性)でスコアリングします。全体の信頼度が0.70を下回る判断だけが deliberation をトリガーし、これは全判断のおよそ10%です。ドキュメント修正、変数名変更、定型的な編集では deliberation を完全にスキップします。セキュリティアーキテクチャ、データベーススキーマ変更、取り返しのつかないデプロイでは、一貫してトリガーされます。7
意見の不一致を生み出すよう設計されたシステムは、どうテストすればよいですか?
成功パスと失敗パスの両方をテストします。成功とは、agents が生産的に意見を分け、合意に到達することです。失敗とは、agents が早すぎる収束をする、まったく収束しない、または spawn 予算を超えることです。エンドツーエンドテストでは、決定的な agent 応答を使って各シナリオをシミュレートし、両方の検証ゲートが文書化されたすべての失敗モードを検出することを確認します。本番の deliberation system は3層で141個のテストを実行します。内訳は、48個の bash integration tests、81個の Python unit tests、12個の end-to-end pipeline simulations です。7
deliberation のレイテンシへの影響はどれくらいですか?
3-agent deliberation は、実時間で30〜60秒追加します(agents は Agent tool を通じて順番に実行されます)。10-agent deliberation では2〜4分追加されます。consensus hooks と pride check hooks は、それぞれ200ms未満で実行されます。主なボトルネックは orchestration overhead ではなく、agent ごとの LLM 推論時間です。7
CLAUDE.md ファイルの長さはどれくらいが適切ですか?
各セクションは50行未満、ファイル全体は150行未満に保ってください。長いファイルはコンテキストウィンドウで切り詰められるため、最も重要な指示を先頭に置きます。スタイルの好みより前に、コマンドと完了定義を配置してください。21
これは Claude Code 以外のツールでも使えますか?
アーキテクチャ上の原則(決定的なゲートとしての hooks、ドメイン知識としての skills、分離コンテキストとしての subagents、memory としてのファイルシステム)は、概念的にはあらゆる agentic system に適用できます。具体的な実装では、Claude Code のライフサイクルイベント、matcher patterns、Agent tool を使っています。AGENTS.md は同じパターンを Codex、Cursor、Copilot、Amp、Windsurf に持ち込みます。21 実装の詳細がツール固有であっても、harness pattern 自体はツール非依存です。
クイックリファレンスカード
Hook Configuration
{
"hooks": {
"PreToolUse": [{"matcher": "Bash", "hooks": [{"type": "command", "command": "script.sh"}]}],
"PostToolUse": [{"matcher": "Write|Edit", "hooks": [{"type": "command", "command": "format.sh"}]}],
"Stop": [{"matcher": "", "hooks": [{"type": "agent", "prompt": "Verify tests pass. $ARGUMENTS"}]}],
"SessionStart": [{"matcher": "", "hooks": [{"type": "command", "command": "setup.sh"}]}]
}
}
Skill Frontmatter
---
name: my-skill
description: What it does and when to use it. Include trigger phrases.
allowed-tools: Read, Grep, Glob
---
Subagent Definition
---
name: my-agent
description: When to invoke. Include PROACTIVELY for auto-delegation.
tools: Read, Grep, Glob, Bash
model: opus
permissionMode: plan
---
Instructions for the subagent.
Exit Codes
| Code | 意味 | 用途 |
|---|---|---|
| 0 | 成功 | 操作を許可します |
| 2 | ブロック | セキュリティゲート、品質ゲート |
| 1 | ノンブロッキング警告 | ログ記録、助言メッセージ |
主要コマンド
| Command | 目的 |
|---|---|
/compact |
コンテキストを圧縮し、判断を保持します |
/context |
コンテキスト割り当てと有効な skills を表示します |
edit .claude/agents/ |
subagents を管理します。/agents ウィザードは v2.1.198 で削除されました。定義を直接作成または編集するか、Claude に依頼してください |
/goal <condition> |
Claude が完了条件に向けて作業を続けるようにします |
claude agents |
実行中、ブロック中、完了済みセッションの Agent View を開きます |
CLAUDE_CODE_WORKFLOWS=1 |
決定的な multi-agent orchestration のために Workflow tool を有効化します |
claude -c |
直近のセッションを続行します |
claude --print |
1回限りの CLI 呼び出し(会話なし) |
# <note> |
memory ファイルにメモを追加します |
/memory |
auto-memory を表示、管理します |
ファイルの場所
| Path | 目的 |
|---|---|
~/.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-01 | 古くなった記述を修正:ガイドのほかの部分ではすでに更新されていたにもかかわらず、バージョン情報に「2026年7月時点」と記載されていました。 Python SDK の段落では、パッケージが「PyPI で v0.2.111(Claude CLI v2.1.202 を同梱)に、TypeScript SDK が v0.3.203 に進んだ」としていました。しかし、どちらも17リリース分古く、同じガイドのほかのセクションでは0.2.128と0.3.220が正しく記載されていました。現在はv0.2.128(CLI v2.1.220を同梱し、mcp の下限を >=1.23.0 に引き上げ)とv0.3.220に修正し、期限を定めない月単位の表記ではなく、確認済みの日付を記載しています。新しい 86 では、PyPI、npm、Python SDK の変更履歴を引用しています。この期間中、上流の新しいリリースはありません。Claude Code v2.1.220、Codex v0.146.0安定版(v0.147.0はアルファ版のみ)、FastAPI 0.141.1、XcodeBuildMCP 2.7.0、MCPVault 0.12.4、hermes-agent 0.19.0、Midjourney Version 8.2、Suno V5.5、Apple 26.6安定版はいずれも変更されていません。 |
86 |
| 2026-07-29 | 完全性を修正:7月21日の項目で抜けていたTS SDK v0.3.216の3つのフィールド。 claude-agent-sdk-typescript の変更履歴とこのガイドを再照合したところ、v0.3.216のフィールド一覧に3つの不足が見つかりました。rewindFiles のレスポンスには、巻き戻しの安全対策によって復元または削除を拒否されたパスの件数を示すオプションの skippedLinks が含まれます。また、成功結果のメッセージには、ホスト間でリクエストのレイテンシを関連付けるためのオプションの user_message_uuid と request_sent_wall_ms が含まれます。本文の一覧と 75 の両方に追加しました。新しい脚注はありません。v0.3.215〜v0.3.220の範囲にあるほかの変更は、subagents のネスト深度の履歴(初期リリースでは5、v2.1.217で1に縮小、v2.1.219で3に確定)や同時実行数の上限20を含め、すでに網羅していました。SDK の変更履歴にある「深度の上限を5から1に引き下げた」という記述は、このガイドですでにその先まで追跡している値についての古いスナップショットです。Agent SDK のnpm最新版が0.3.220(7月24日)、PyPI版が0.2.128であることを確認しました。この期間中に新しいリリースはありません。 |
75 |
| 2026-07-27 | レンダリングの修正であり、内容の変更はありません。この変更履歴のヘッダーでは2列しか宣言されていなかった一方、各行には3列あったため、python-markdownがすべての行を Date と Change までで切り詰め、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:ネスト深度のデフォルトを修正(1ではなく3)、Claude Opus 5、および第4のガードレール軸。 訂正 — subagent の生成深度は3に戻りました(v2.1.219):「デフォルトでは、Subagents が深度3までネストしたsubagentsを生成できるようになりました(以前は1)。ネストを無効にするには、CLAUDE_CODE_MAX_SUBAGENT_SPAWN_DEPTH=1 を設定します」。デフォルトは当初5でリリースされ(v2.1.172)、1に縮小され(v2.1.217)、最終的に3に落ち着きました(v2.1.219)。後者2回の変更は3日以内に行われています。Recursion Guardのサブセクションでは、どのデフォルト値も確定済みとして扱わないようにしました。深度は不安定なプラットフォームパラメーターであり、継承するのではなく、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未満を目安とする」)が適用されます。新しい workflowSizeGuideline キーにより、任意の設定ファイルから変更でき(TS SDK の設定型にも追加)、実行中ワークフローのステータス行にも表示されます。これまでの3軸(生成数、深度、同時実行数)は4軸となりました。また、15という値は暴走時の単なるヒューズではなく、このガイドで定める12エージェントのdeliberation予算と同程度の規模です。Claude Opus 5(claude-opus-5、7月24日): 新しいデフォルトのOpusです。コンテキストは1M、料金はMTokあたり$5/$25(Opus 4.8と同額)、fast modeでは約2.5倍の速度で$10/$50です。Frontier-Bench v0.1ではOpus 4.8のスコアを2倍以上上回り、CursorBench 3.2では半額でFable 5のスコアとの差を0.5%以内に抑えています。このガイドの推奨するエージェント向けデフォルトを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 フレームでstdinを閉じていたため、それらのSDK-MCP tool呼び出しが "Stream closed" で失敗し、さらにhookもスキップされていました(#1103)。TS v0.3.208のabort→hook成功に続き、1か月で2件目となるhook適用の迂回です。SDK のhookストリーミングに関する注意事項で、このパターンを明記しました。ライフサイクルの境界ではSDK 側の適用がフェイルオープンになり、しかも通知されません。迂回されたhookは、承認したhookと見分けがつかないためです。TS SDK v0.3.219: interrupt制御リクエストにオプトインの cancel_queued(ケイパビリティは interrupt_cancel_queued_v1)、resultとinitに fast_mode_disabled_reason が追加されました。また、モデルを切り替えた後、initレスポンスが生成時のモデルから取得した fast_mode_state を報告しなくなりました。CC v2.1.219 MCP の診断機能: ヘッドレスのstream-json initイベントに mcp_server_errors、接続失敗時の claude mcp list / /mcp にHTTPステータスとエラーテキスト、MCP 設定値に不可視の空白がある場合の警告が追加されました。managed-settingsのスコープ: managed MCP のallowlist/denylistにある ${VAR} エントリは、設定ファイルの環境ではなく、起動時の環境とmanaged-settingsの環境から解決されるようになりました。これはガバナンスに関わる解決順序の変更です。その他:ターンがストリーム途中で終了しても、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:規範的なマージはありません。stateless仕様は引き続き2026年7月28日に導入されます。 |
84 85 87 |
| 2026-07-24 | ガイド v1.26:Anthropicのcontainment patternsに関する投稿を反映 + Claude Code v2.1.218。 Security Considerationsに、Anthropicのエンジニアリング投稿「製品全体でClaudeを封じ込める方法」(2026年5月25日)を基にした「製品横断の3つのContainment Patterns」サブセクションを追加しました。内容は、サーバー側(claude.ai)の一時的なgVisorコンテナ、人間が介在するOSサンドボックス(Claude Code:Seatbelt/bubblewrap、オープンソース化されたsandbox-runtime)、プラットフォームのハイパーバイザー上に構築する密閉型VM(Claude Cowork:Apple Virtualization framework / Windows HCS、認証情報はホストのキーチェーンに保存し、スコープ付きで取り消し可能なセッショントークンをVM内の防御的MITMプロキシで強制)です。さらに、同投稿が示すharness設計原則も取り上げています。まず環境レイヤーで封じ込めること、ユーザーによる監督能力に合わせて分離すること、独自の分離コードより実戦で検証されたプリミティブを選ぶこと、プロジェクトローカルの設定とツール出力を信頼できない入力として扱うこと、認証情報をサンドボックス外に置くことです。Changelogのみ:CC v2.1.218(7月22日)— auto modeの分類器が、dangerous-rm、バックグラウンド&、不審なWindowsパスの各チェックを、権限ダイアログを開く代わりに裁定するようになりました。autoを使用するplan modeでは、静的解析で読み取り専用と証明できないBashを分類器へ送ります。agent frontmatterのhooksを使用するには、agentファイル自体が置かれたフォルダーでworkspace trustが承認されている必要があります。context: fork skillsはデフォルトでバックグラウンド実行されます(background: falseで無効化)。/code-reviewはバックグラウンドsubagentとして実行されます。/deep-researchは自己呼び出しを行わなくなりました。headless/SDKセッションでは、compaction後もfork-sessionの系譜が保持されます。Ctrl+Bによるバックグラウンド化では、background-shellの上限が適用されます。TS SDK v0.3.218(7月22日):SkillToolOutput.backgroundフラグ。ストリーム途中の429/529をapi_error_statusで報告。modelUsageにcanonicalModel + providerを追加。Py SDK v0.2.126(7月22日):ResultMessage.terminal_reason。canonicalModel/providerを含む型付きmodel_usage。CLI v2.1.218を同梱。MCP:規範部分のマージはありません。ステートレス仕様は引き続き2026年7月28日に公開予定です。 |
81 82 83 |
| 2026-07-22 | ガイド v1.25:Claude Code v2.1.217 — recursive-subagentの巻き戻し + 同時実行数の上限。 ネストした生成をデフォルトで無効化: subagentsは自身のsubagentsを生成しなくなりました。v2.1.172で導入されたデフォルト5階層の再帰はv2.1.216まで続きましたが、さらに深いネストはCLAUDE_CODE_MAX_SUBAGENT_SPAWN_DEPTHで明示的に有効化する方式となりました(Recursion Guardサブセクションを書き直しました)。同時実行数の上限: 同時に実行できるsubagentsはデフォルトで20に制限され(CLAUDE_CODE_MAX_CONCURRENT_SUBAGENTS)、1つのメッセージからバックグラウンドagentが無制限に展開されることを防ぎます。ファーストパーティのガードレール群は、ユーザー側のspawn-budget guardが追跡する3つの軸をすべてカバーするようになりました。セッションあたりの総生成数(v2.1.212、上限200)、ネストの深さ(v2.1.217、デフォルト1階層)、同時実行の幅(v2.1.217、デフォルト20)です。Changelogのみ:CC v2.1.217では、--max-budget-usdがバックグラウンドsubagentsを実際に停止するようになりました(上限に達すると新規生成を拒否し、実行中のバックグラウンドagentを停止)。バックグラウンドセッションの分離では、シンボリックリンクされた作業ディレクトリを正規化します。Py SDK v0.2.125は、SDK側の変更なしでCLI v2.1.217を同梱。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間インポート。 パススコープ付きrulesをcwdに固定(v2.1.214): 単一セグメントのdir/** allow rules(例:Edit(src/**))では、ツリー内の任意の深さにあるdir/への書き込みが自動承認されていました。現在は<cwd>/dirのみに固定されています。単一セグメントのdir/**を使用するhookのif:条件も同様にcwd限定となりました(任意の深さを対象にする場合は**/dir/**と記述)。deny/ask rulesでは、意図的に任意の深さでの一致を維持しています(非対称なfail-safeです。allowはプロンプト表示にフォールバックし、denyは誤って許可されてはなりません)。Worktree分離を強制適用レベルに強化(v2.1.216): worktree subagentsは、git -C、--git-dir、またはGIT_DIR/GIT_WORK_TREEを使ってgitの参照先を共有チェックアウトへ変更できましたが、この経路を封じました。worktreeセッションが別プロジェクトに残されたworktreeへ入ることもなくなりました。workflow/scheduled-taskによる書き込みは、.claudeに仕込まれたシンボリックリンクをたどらなくなり、/rewindはシンボリックリンクとハードリンクを拒否します。Skillsの自動起動を巻き戻し(v2.1.215): Claudeは、同梱された/verifyおよび/code-review skillsを自己呼び出ししなくなりました。明示的な呼び出しのみとなります。Codex v0.145.0: オプトインのmulti-agent V2が安定化されました(sub-agentのモデル、reasoningレベル、同時実行数を設定可能になり、rolesも復元)。/importではClaude Codeに加えてCursorの設定、MCP servers、plugins、sessions、commands、プロジェクトスコープのmemoriesも移行できるようになりました。v0.140.0を拡張した、harnessをまたぐ完全な移行機能です。Changelogのみ:CC v2.1.214にEndConversationツールを追加。fail-closed方式のBash/PowerShell堅牢化を一括実施(fdリダイレクトはfail closed、10,000文字を超えるコマンドは常に確認、zshの添字は確認、help/manの自動許可経路を閉鎖、docker/Podmanのデーモンリダイレクトフラグは確認、file -m/-fには権限が必要、PowerShell 5.1のバイパスを修正)。stdout JSONがスキーマ検証に失敗した場合でも、終了コード2のhookは処理をブロックします。memory frontmatterにISO形式のmodifiedタイムスタンプを追加し、インライン#で暗黙に切り詰められなくなりました。OTelにmessage.uuid/client_request_id/tool_source + CLAUDE_CODE_OTEL_CONTENT_MAX_LENGTHを追加。CC v2.1.216にsandbox.filesystem.disabledを追加(ファイルシステムを分離せずにネットワーク送信を制御)。再開されたバックグラウンドagentセッションでは、そのagentのプロンプト/ツール制限が復元されます。セッション途中でskills/commandsを変更しても、再起動せずにスラッシュメニューへ反映されます。TS SDK v0.3.214/v0.3.216:set_permission_modeは未知のモードを拒否。割り込みで切り詰められたメッセージにaborted: trueを設定。tool_progressにsubagent_type/subagent_retryを追加。task-notificationのサブ種別にscheduled-triggerを追加。SessionStartのsourceに"fork"を追加。tool_result_metaサイドカー(non_execution_kind、user_feedback)。rewindFilesは、rewindの安全ガードが復元または削除を拒否したパスをskippedLinksで報告。成功結果にuser_message_uuidとrequest_sent_wall_msを含め、ホスト間でリクエスト遅延を関連付けられるようになりました。Py SDK v0.2.124:WindowsのBatBadBut系の問題を修正(.bat/.cmdの生成を拒否。resume/session_idにcmd.exeのメタ文字が含まれる場合はValueErrorを発生。ハイフンで始まるextra_argsを--flag=value形式でバインド)。Codex v0.145.0の堅牢化:MCPの起動タイムアウト、OAuth更新の直列化、ノンブロッキングなOAuth検出、強化された強制rm検出、拒否理由の保持、実験的なページネーション対応スレッド履歴。MCPの2026年7月28日リリース準備(docs 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ステートレスID仕様のドラフト、Codex/OpenAIとの機能同等性。 ファーストパーティの暴走ループ防止策(v2.1.212): セッション単位のsubagent生成上限(デフォルト200、CLAUDE_CODE_MAX_SUBAGENTS_PER_SESSION、/clearでリセット)とWebSearch上限(200、CLAUDE_CODE_MAX_WEB_SEARCHES_PER_SESSION)が導入され、ユーザーランドの生成予算パターンにネイティブの安全策が加わりました。Task toolのmodeパラメーターは非推奨となり(subagentsは親セッションの権限モードを継承)、/forkは新しいバックグラウンドセッションを作成するようになりました(セッション内で動作する従来版は/subtaskに改名)。2分を超えるMCP呼び出しは自動的にバックグラウンドへ移行します(CLAUDE_CODE_MCP_AUTO_BACKGROUND_MS)。Hookと自動モードの優先順位(v2.1.211): PreToolUseのaskでは、最低でも確認プロンプトが必要です(サンドボックス外のBashに対して自動モードで上書き不可)。stream-json向けに--forward-subagent-text / CLAUDE_CODE_FORWARD_SUBAGENT_TEXTを追加。「常に許可」ルールはworktree間でリポジトリルートに永続化されます。権限プレビューでは、双方向制御文字、ゼロ幅文字、類似文字を使った偽装を無効化します。v2.1.210: worktree分離されたsubagentsがメインのチェックアウトを変更する問題を修正。subagentが読み取った内容を介する間接的なインジェクションに対してAgent toolを強化。自動モードの分類器はデフォルトでSonnet 5となり、セッションごとに固定されます。上限を超えるMEMORY.mdへの書き込みは、暗黙に切り詰めずエラーになります。v2.1.207/v2.1.208: Bedrock/Vertex/Foundryで自動モードがGA(disableAutoModeでオプトアウト可能)。致命的な削除操作では、--dangerously-skip-permissionsや自動モードを使用していても確認プロンプトが表示されます。企業向けランチャーとしてCLAUDE_CODE_PROCESS_WRAPPERを追加。MCP tool数が多い場合、ツールラウンドが最大7倍高速化し、トランスクリプトは79分の1に縮小。v2.1.203〜v2.1.206: 捏造防止策(トランスクリプトファイルの改ざんをブロックし、バックグラウンドタスクの通知には人間による入力がなかったことを明記)。MCPのroots/listに追加の作業ディレクトリが含まれ、roots/list_changedにも対応。/doctorは、コードベースから導出できるCLAUDE.mdの内容を削減するよう提案します。TS SDK v0.3.205〜v0.3.208: 型付き割り込み受領情報(still_queued、interrupt_receipt_v1)、command_lifecycleフレーム、AgentToolCompletedOutput、updatedInputを伴わないcanUseToolの{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では、tool searchを介したMCP toolsがデフォルトに(ツールの遅延読み込み)。v0.144.0ではwritesアプリ承認モードとMCP対話型認証がGA。v0.144.5では危険なコマンドの検出範囲を拡大。OpenAIホスト型multi-agentベータ: openai-agents-python v0.18.2(7月11日)とopenai-agents-js v0.13.2(7月10日)。changelogのみ:SDKのargvフラグインジェクション修正(TS 0.3.212 / Py 0.2.121。ハイフンで始まるresume/session_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)。モデル階層に関する注記を改訂しました(本ガイドでは、自律型harnessのagenticデフォルトとして引き続きOpus 4.8を推奨します)。Subagentsはデフォルトでバックグラウンド実行されます(v2.1.198)。backgroundフィールドはオプトインではなく、動作を固定するためのものになりました。Explore agentはセッションのモデルを継承します(上限はOpus)。subagentsとコンパクションは拡張思考の設定を継承します。バックグラウンドのclaude agentsセッションは、自動的にコミット、プッシュ、ドラフトPRの作成を行い、agent_needs_input/agent_completedを指定してNotification hookを発火します。/agentsウィザードは削除されました(.claude/agents/を直接編集してください)。v2.1.199: SessionStart/Setup/SubagentStart hooksは、終了コード2の場合にstderrを表示します。SendMessageで再利用された名前による誤配送の検出を、セッション間の権限に関する注記へ追加。積み重ねたスラッシュskillsは最大5個まで読み込まれます。v2.1.200: subagentのpermissionMode一覧では、default権限モードが「Manual」と表示されます(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 matcherと分類器のガバナンスを更新。 Claude Code v2.1.195:ハイフンを含む識別子のmatcherは、部分一致ではなく完全一致するようになりました(Hook Architectureのmatcherセマンティクスを参照)。Claude Code v2.1.193:autoMode.classifyAllShellは、すべてのシェル操作を自動モードの分類器へ送り、拒否理由をトランスクリプト、トースト、/permissionsに表示します(Security Considerationsを参照)。Codex v0.142.2:ASTを検査できない領域を含むPowerShellは、承認が必要になりました。すべての項目について、今回の更新時に公式changelogと照合して確認済みです。 |
66 |
| 2026-06-20 | ガイド v1.20:Claude Code v2.1.183 + Codex v0.141.0 — ガバナンスとリモート実行のセキュリティ。 Security Considerationsに自動モードの破壊的コマンド防止策を追加しました(CC v2.1.183では、明示的に依頼しない限り、git reset --hard/checkout -- ./clean -fd/stash drop、agent以外が作成したコミットに対するgit commit --amend、および名前付きスタックを指定しないterraform/pulumi/cdk destroyを強制的にブロック)。これは、パラメーター単位のルールと生成前の審査を、意図のレベルで補完する仕組みとして位置付けています。また、Codex Parity Notesには暗号化されたNoiseリレー方式のリモートexecutorを追加しました(Codex v0.141.0:executorチャネルのエンドツーエンド暗号化、プラットフォームをまたいだcwd/シェルの保持、P-521 TLS)。 |
65 |
| 2026-06-16 | ガイド v1.19:Claude Code v2.1.173〜v2.1.179のガバナンスとスコープ制御プリミティブ、およびCodex v0.140.0のツール間インポート。 v2.1.178のリリース内容を本文へ反映しました。Security → Permission Boundariesには、*ワイルドカードを使用できるパラメーター単位の権限ルールTool(param:value)(例:モデル階層をブロックするAgent(model:opus))と、enforceAvailableModels管理設定(v2.1.175)を追加。Subagent Patternsでは、自動モードがsubagentの生成を起動前に審査するようになり、生成を迂回手段として利用できる抜け穴を解消しました。Skills Systemには、ネストされた.claude/ツリー内のskills/agents/workflows/output-stylesを対象とするネストされた.claude/skillsの読み込みと最も近い定義を優先する解決方式を追加。Subagent Configuration Fieldsには、disallowedToolsのMCPサーバー仕様照合に関する修正を反映しました。Codexの機能同等性に関する注記には、ツール間の移植性を実現する/importとセッションの完全削除(v0.140.0)を追加しました。 |
63 64 |
| 2026-06-10 | ガイド v1.18:再帰的sub-agents(Claude Code v2.1.172)。 Recursion Guardのサブセクションに注記を追加しました。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の強化。 検証済みのharnessアーキテクチャ変更5件を本文へ反映しました。Skills Systemには、「ガバナンスのために同梱機能を非表示にする」サブセクションを追加。disableBundledSkills設定(およびCLAUDE_CODE_DISABLE_BUNDLED_SKILLS環境変数)により、意図的な攻撃対象領域の縮小策として、同梱されたskills、workflows、組み込みスラッシュコマンドをモデルから隠せます(v2.1.169)。6月のHook Architectureサブセクションには、クリーンルーム環境でのトラブルシューティングとガバナンスのため、CLAUDE.md、plugins、skills、hooks、MCPというすべてのカスタマイズを無効にしてセッションを開始する--safe-modeフラグ(およびCLAUDE_CODE_SAFE_MODE)を追加しました(v2.1.169)。さらにモデル階層に関する注記も追加。AnthropicのClaude Fable 5(claude-fable-5)は6月9日にOpusより上位のMythosクラスとして登場し、v2.1.170では/model claude-fable-5で選択できます。Opus 4.8は引き続きClaude Codeのagenticデフォルトです。Memory and Contextには/cdコマンド(v2.1.169)を追加しました。セッション途中のプロンプトキャッシュを損なわず、新しい作業ディレクトリへ移動できます。Multi-Agent Orchestration / Codex Parityは本番環境向けに強化されました。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月のエージェントアーキテクチャパターン。 harnessに関係する4つの変更を扱う「Stop-hookによるステアリング、セッションをまたぐ権限、multi-agent v2」サブセクションを追加しました。(1)Stop/SubagentStop hooksがhookSpecificOutput.additionalContextを返せるようになり、hookエラーブロックを発生させずに「まだ完了していない理由」をフィードバックとして注入し、ターンを継続できます(v2.1.163)。(2)セッションをまたぐメッセージングが強化され、別セッションからSendMessage経由で転送されたメッセージは、送信元ユーザーの権限を引き継がなくなりました。受信したエージェント間メッセージは、信頼できないデータとして扱ってください(v2.1.166)。(3)fallbackModel設定では最大3つのバックアップモデルを連鎖させ、再試行不能なAPIエラーが発生した際にフォールバックを1回だけ再試行できます。また、claude agents --jsonにはフリートの可観測性を高めるwaitingForフィールドが追加されました(v2.1.162/166)。(4)Codex multi-agent v2(v0.137.0)では、各スレッドにランタイムが保持され、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/におけるプラグインとSkillの統合」サブセクションを追加しました。Claude Code v2.1.157では、プロジェクトの.claude/skills/ディレクトリにある任意のフォルダーが、マーケットプレイスへの登録なしでプラグインとして自動読み込みされます。また、claude plugin init <name>を実行すると、マニフェストとSKILL.mdを含む新しいプラグインがその場所に生成されます。harnessへの影響は明確です。対象範囲の小さいプロジェクトツールをバージョン管理下に置くためだけに、マニフェスト作成の負担を負う必要がなくなりました。一方、バンドルしてインストールできるZIP形式は、引き続きプラグインが担います。同じリリースでは、セッションの途中でClaude管理のworktree間を切り替えられるEnterWorktreeも導入されました。エージェントの終了後もバックグラウンドworktreeのロックが解除された状態になるため、git worktree remove/pruneを問題なく実行できます。Hermes Agent v0.15.1(5月29日)は、同日公開されたVelocityのホットフィックスです。ループバックモードで発生していたダッシュボードの401再読み込みループを修正し、Dockerでは明示的なHERMES_DASHBOARD_INSECURE=1が必須になりました。MCPの直接コマンド(npx、npm、node)がDockerで解決されるようになり、Skillsページも復旧しました。KanbanワーカーはSIGTERMに正常応答し、Skills.shカタログはサイトマップ経由で858件から19,932件へ拡大しました。Hermes v0.15.2(5月29日)はパッケージングのみのホットフィックスで、wheelおよびsdist配布物にplugin.yamlマニフェストが同梱されます。 |
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がデフォルトとなり、effortもデフォルトでhighに設定され、新たに/effort xhighが加わりました。dynamic workflowsでは、/workflowsを通じて数十から数百のエージェントをバックグラウンドでオーケストレーションできます。lean system promptは、Haiku/Sonnet/Opus 4.7以前を除くすべてのモデルでデフォルトになりました。新しいMessageDisplay hookイベントにより、表示時にhooksでアシスタントのテキストを変換または非表示にできます。skill/commandのfrontmatterにあるdisallowed-toolsは、skillが有効な間、指定したツールを除外します。/reload-skillsでは、再起動せずにskillディレクトリを再スキャンできます。SessionStart hooksはreloadSkills: trueを返し、hookSpecificOutput.sessionTitleを設定できます。--fallback-modelは、プライマリモデルが利用できない場合にセッション途中でモデルを切り替えます。auto modeでオプトイン同意が不要になりました。管理設定pluginSuggestionMarketplacesでは、コンテキストに応じた提案に使用できる組織のマーケットプレイスを許可リストに登録できます。claude agentsは! <command>によるバックグラウンドシェルセッションに対応しました。プラグインではdefaultEnabled: falseを宣言できます。stdio MCPサブプロセスの環境には、CLAUDE_CODE_SESSION_IDとCLAUDECODE=1が含まれるようになりました。Codex v0.134.0では、CLI、TUIの権限、sandboxフロー全体で--profileが主要なプロファイルセレクターになりました(従来の設定は移行ガイダンスとともに拒否されます)。さらに、ローカルの会話履歴検索が追加され、サーバー単位の環境指定とストリーミング対応HTTPサーバー向けのOAuthによってMCPのセットアップが改善されました。また、読み取り専用のMCPツールは、readOnlyHintを宣言すると並行実行できるようになりました。v0.135.0では、codex doctorの診断情報と/statusのリモート詳細が拡充され、vimのテキストオブジェクト編集、/permissionsの名前付き権限プロファイル、Python SDKのSandboxプリセットが追加されました。Hermes Agent v0.15.0(5月28日)は、Velocityリリースです。run_agent.pyの76%を14のモジュールへリファクタリングし、自動分解とswarmトポロジーを備えたmulti-agent Kanban v2、プロバイダーごとのキーを単一のブートストラップトークンに置き換えるBitwarden Secrets Manager、3つのセキュリティ上の要所でBrainworm級のプロンプトインジェクションを防御するPromptware防御、skillバンドル、1つのターミナルで複数セッションを管理できるTUIセッションオーケストレーターを提供します。また、LLM依存関係を削除し、session_searchを4,500倍高速化しました。harnessアーキテクチャへの示唆として、名前付きプロファイルのパターン(Codexの--profile、Claude CodeのpluginSuggestionMarketplaces)は、マルチテナント型エージェントランタイムにおける標準的な設定プリミティブになりつつあります。読み取り専用MCPツールの並行実行(CodexのreadOnlyHint)は、状態を変更しないコンテキスト取得を並列化する際に適したパターンです。MessageDisplay hookは、PostToolUseやStopからは利用できなかった、オペレーター向けの第一級の変換ポイントを提供します。そしてlean-system-promptのデフォルト化により、オペレーター定義のコンテキストとプロバイダー側の足場との間に長年存在していたトレードオフが解消されます。 |
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)を返し、@anthropic-ai/claude-codeのnpm最新バージョンは2.1.150、GitHubの最新リリースはv2.1.150でした。PowerShellの権限バイパス修正、PowerShellの許可ルール/古い変数に関する権限分析の修正、git-worktreeのsandbox書き込み許可リスト修正について、v2.1.149向けのharnessガイダンスを追加しました。また、v2.1.150は内部インフラストラクチャのみの更新であり、ユーザー向けの変更は発表されていないことも明記しました。openai-agentsのPyPI最新バージョンは0.17.3だったため、OpenAI sandboxのセクションに、アーカイブ展開、GitRepoサブパス、sandbox認証情報、相対workspaceルート、プロバイダーの終端状態処理に対する0.17.1〜0.17.3の追加強化を追記しました。5354 |
|
| 2026-05-21 | ガイド v1.12:Claude Code v2.1.147のWorkflow検証。 ローカルのclaude --versionは2.1.144 (Claude Code)を返し、@anthropic-ai/claude-codeのnpm最新バージョンは2.1.147でした。デフォルトでは無効なWorkflowツールを、ファーストパーティの決定論的multi-agentオーケストレーションプリミティブとして追加しました。また、hooks、テスト、レビューゲート、生成予算、エビデンスレポートが、引き続き正しさを担保する境界であることを明確にしました。52 |
|
| 2026-05-15 | ガイド v1.11:Claude Code v2.1.142のバックグラウンドセッションおよびプラグイン信頼性検証。 ローカルのclaude --versionは2.1.141 (Claude Code)を返し、@anthropic-ai/claude-codeのnpm最新バージョンは2.1.142でした。新しいclaude agentsディスパッチフラグ、Opus 4.7 Fast-modeのデフォルト化、ルートレベルのプラグインSKILL.md検出、プラグインLSPの可視性、MCP_TOOL_TIMEOUTのリモートHTTP/SSE動作、バックグラウンドセッション/デーモン/プラグインキャッシュの信頼性修正について、オペレーター向けガイダンスを追加しました。51 |
|
| 2026-05-14 | ガイド v1.10:Claude Code v2.1.141のオペレーター通知およびスコープ検証。 ローカルのclaude --versionは2.1.141 (Claude Code)を返し、@anthropic-ai/claude-codeのnpm最新バージョンも2.1.141でした。terminalSequenceは強制手段ではなくオペレーターへの通知として使うというhookガイダンスを追加し、ディレクトリ単位のAgent Viewに使用するclaude agents --cwd <path>について記載しました。また、プラグインのインストールおよびワークロードIDフェデレーションのスコープ設定に対する、CLAUDE_CODE_PLUGIN_PREFER_HTTPSとANTHROPIC_WORKSPACE_IDのアーキテクチャ上の影響を文書化しました。50 |
|
| 2026-05-13 | ガイド v1.9:Claude Code v2.1.140の信頼性検証。 ローカルのclaude --versionは2.1.140 (Claude Code)を返しました。エージェントhookのガイダンスにsubagent_typeを追加し、v2.1.140におけるConfigChange、disableAllHooks、allowManagedHooksOnly、権限ダイアログでの環境変数表示、設定同期後のカスタムスタイルのリセット、Windows Git Bashのネイティブパッケージへのフォールバック、/scroll-speedの動作に関する修正を反映して、hookガバナンスのセクションを更新しました。49 |
|
| 2026-05-11 | ガイド v1.8:Claude Code v2.1.139の最新性検証 + エージェントのセキュリティ/メモリに関する重点調査。 ローカルのclaude --versionが2.1.139であることを確認し、claude agentsによるAgent View、/goalの完了ループ、command-hookのargs、PostToolUseのcontinueOnBlock、MCPのCLAUDE_PROJECT_DIR、OpenTelemetryのアクティブ時間修正など、v2.1.139の運用上の変更を追加しました。424344 「The Memory Curse」のarXivプレプリントに基づくメモリ選別の注意事項、PRライフサイクルに関するarXivプレプリントに基づく人間のマージ権限ガイダンス、Gryph AgentsおよびLiteLLMのアドバイザリに基づくエージェントログ/ガードレールのセキュリティガイダンスも追加しました。45464748 Skills、Hooks、Subagentsのトークン予算を比較する行に残っていた古い2%という値を、現在のskill-description予算である1%/8,000文字へ修正しました。 |
|
| 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 のリフレッシュトークンが失われる問題、Edit(...) の許可ルールに一致した場合に plan モードの書き込みブロックが機能しない問題、plugin の Stop/UserPromptSubmit におけるキャッシュ削除の競合、skills エントリによってデフォルトの skills/ ディレクトリが非表示になる問題、/resume//clear 後に CLAUDE_ENV_FILE の SessionStart-hook 環境変数が古いままになる問題を取り上げています。40 Production Patterns に OTel Feedback Survey のサブセクションを追加し、CLAUDE_CODE_ENABLE_FEEDBACK_SURVEY_FOR_OTEL を解説しました。40 The Sandbox のサブセクションに openai-agents-python v0.17.0 のロックダウンを追記しました。LocalFile.src / LocalDir.src は、SandboxPathGrant を指定した Manifest.extra_path_grants で許可しない限り、base_dir 内に制限されます。41 Managed vs. Self-Hosted Harnesses に RealtimeAgent のデフォルトモデル(gpt-realtime-2)に関する注記を追加しました。41 Changelog のみ:Claude Code v2.1.137(Win 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 のサブセクションを追加し、ClaudeAgentOptions の skills オプションと、allowed_tools における "Skill" の非推奨化を取り上げました。37 Hook Architecture に Effort and Session Provenance のサブセクションを追加し、新しい effort.level JSON フィールド、hook 入力の $CLAUDE_EFFORT 環境変数、Bash サブプロセスの CLAUDE_CODE_SESSION_ID 環境変数を解説しました。3839 Subagent Configuration Fields の表に subagent の skill 検出修正を追加しました(subagents は Skill ツールを通じてプロジェクト、ユーザー、plugin の skills を検出できるようになりました。v2.1.133 より前は通知なく除外されていました)。39 Production Patterns に Worktree Base, Sandbox Paths, and Admin Settings のサブセクションを追加し、worktree.baseRef(ローカルの HEAD から origin/<default> へ、破壊的変更となったデフォルトを差し戻し)、sandbox.bwrapPath、sandbox.socatPath、parentSettingsBehavior を取り上げました。39 |
|
| 2026-05-07 | ガイド v1.5:Claude Managed Agents、5月6日のサンフランシスコ発表内容を追加。 Memory and Context に Strategy 5(Managed Memory Curation:Dreaming、Research Preview)を追加し、filesystem-as-memory と Dreaming の比較表を掲載しました。35 Multi-Agent Orchestration の冒頭に Managed Multiagent Orchestration(Public Beta)と Outcomes(Public Beta)を追加しました。共有ファイルシステムを利用するスペシャリストと Claude Console のトレースに関する Anthropic の引用を原文のまま掲載し、self-hosted deliberation との比較表も追加しています。SDK 側の hook イベントストリーミングに関するサブセクションを追加し、claude-agent-sdk-python v0.1.74 の include_hook_events と HookEventMessage を取り上げました。36 Changelog のみ:Claude Code v2.1.124-v2.1.131(claude project purge、プロジェクトディレクトリ向けの --dangerously-skip-permissions、skill_activated の invocation_trigger、PostToolUse の保存時フォーマット修正、PreToolUse の JSON+exit-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 の description 予算を 2%/16,000 から 1%/8,000 に修正しました。また、mcp_tool の追加に伴い hook タイプ数を4から5へ変更し、裏付けのない固定値「10 parallel subagents」という記述を削除しました。さらに、AGENTS.md、skills、hooks、plugins、明示的な subagent ワークフローを扱う、公開しても安全な Codex の機能対応セクションを追加しました。 |
|
| 2026-04-29 | ガイド v1.3:Managed vs. Self-Hosted Harnesses セクションの OpenAI Agents SDK に関する説明を拡充し、openai-agents Python v0.14.0(4月15日)で名称が明示された SDK の機能群を追加しました。対象は SandboxAgent、Manifest、SandboxRunConfig、段階的開示を備えた sandbox memory、ワークスペースマウント(S3/R2/GCS/Azure)、移植可能なスナップショット、local/Docker/hosted クライアントバックエンド(Blaxel、Cloudflare、Daytona、E2B、Modal、Runloop、Vercel)です。二次情報である Help Net Security の引用を、一次情報の v0.14.0 リリースノートに置き換えました。3つ目の self-hosted オプションとして、claude-agent-sdk-python v0.1.69-v0.1.71(4月28〜29日)に関する短い注記も追加しました(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(ノーコードの agent ビルダー)、Anthropic Claude を含む Model Garden の200以上のモデル、Box、Workday、Salesforce、ServiceNow のパートナー agents、4言語で正式版となった ADK v1.0 stable、Project Mariner(ウェブ閲覧 agent)、API と agent をつなぐ Apigee を備えたマネージド MCP サーバー、150組織で本番稼働する A2A protocol v1.0 が発表されました。Microsoft Agent Framework 1.0(2026年4月):安定版 APIs、LTS の提供保証、完全な MCP サポート、.NET + Python。agent の実行とツール呼び出しをリアルタイムで可視化するブラウザベースの DevUI は、1.0 の安定版機能と同時に preview として提供されます。Salesforce Headless 360(4月15日、TDX):Salesforce のあらゆる機能(CRM、サービス、マーケティング、eコマース)が API/MCP tool/CLI command として公開され、Claude Code、Cursor、Codex などの agents がブラウザを使わずにプラットフォーム上で構築できるようになりました。(TDX 2026 は4月15〜16日に開催され、Headless 360 の発表日は4月15日です。)MetaComp StableX KYA(4月21日):規制対象の金融サービス(決済、コンプライアンス、資産管理)向けの Know Your Agent ガバナンスフレームワークです。認可を受けた金融機関による世界初の取り組みで、Claude、Claude Code、OpenClaw、その他の互換 AI プラットフォームで利用できます。Claude Managed Agents の料金:セッションの実行中は1セッション時間あたり $0.08、アイドル中はランタイム料金がかかりません。通常の Claude モデルトークン料金に加算されます。(Anthropic の Claude 料金ページによるものです。Public Beta は2026年4月8日に開始されました。)Memory for Managed Agents は、managed-agents-2026-04-01 beta header のもと、2026年4月23日に Public Beta へ移行しました。現在、すべての Managed Agents エンドポイントでこの beta header が必須です。 |
|
| 2026-04-16 | ガイド v1.1:Claude Managed Agents(4月8日 beta)と OpenAI Agents SDK の harness/compute 分離(4月16日)を扱う Managed vs. Self-Hosted Harnesses セクションを追加しました。ツール横断型の multi-agent ハイパーバイザー Scion(4月7日、Google)を追加し、M3MAD-Bench で議論の性能向上が頭打ちになるという知見を記載しました。The Five Principles of Trustworthy Agents(Anthropic、4月9日)と、MCP/AGENTS.md の Linux Foundation によるガバナンスを追加しました。Permiso SandyClaw の skill-sandbox を参照として追加しました。新しい Opus 4.7 Long-Horizon Patterns として、ツール障害への耐性、xhigh effort tier、トークン予算の上限(task_budget beta)、暗黙的なニーズの認識による CLAUDE.md の scaffolding 削減を追加しました。 |
|
| 2026-03-24 | 初版公開 | |
| — |
参照
-
Andrej Karpathyによる、LLM エージェントの上に重なる新たなレイヤーとしての「claws」についての発言。HNでの議論(406ポイント、917件のコメント)。 ↩
-
著者による実装。84個のhooks、48個のskills、19個のエージェント、約15,000行のオーケストレーション。インフラストラクチャとしてのClaude Codeに記載。 ↩↩↩↩↩↩↩↩
-
Anthropic、「Claude Code Hooks:終了コード」。code.claude.com/docs/en/hooks。ほとんどのイベントでは、終了コード0は許可、2はブロック、1は警告を意味します。
WorktreeCreateには、より厳格な条件が適用されます。 ↩↩↩↩↩ -
Anthropic、「SkillsによるClaudeの拡張」。code.claude.com/docs/en/skills。Skillの構造、frontmatterフィールド、LLMベースのマッチング、説明文に対する1%/8,000文字の上限。 ↩↩↩↩↩↩↩
-
Anthropic、「Claude Code Sub-agents」。code.claude.com/docs/en/sub-agents。分離されたコンテキスト、worktreeのサポート、エージェントチーム。 ↩↩↩↩↩
-
Anthropic、「Claude Codeドキュメント」。docs.anthropic.com/en/docs/claude-code。メモリファイル、CLAUDE.md、auto-memory。 ↩↩↩↩↩
-
著者によるマルチエージェント審議システム。10種類のリサーチペルソナ、7フェーズのステートマシン、141件のテスト。マルチエージェント審議に記載。 ↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩
-
Simon Willison、「コードを書くコストは、今や低くなった」。エージェント型エンジニアリングのパターン。 ↩
-
Laban, Philippe, et al.、「LLMs Get Lost In Multi-Turn Conversation」、arXiv:2505.06120、2025年5月。Microsoft ResearchおよびSalesforce。15のLLMs、200,000件以上の会話、平均39%のパフォーマンス低下。 ↩↩↩
-
Mikhail Shilkov、「Claude Code Skillsの内部:構造、プロンプト、呼び出し」。mikhail.io。skillの検出、コンテキスト注入、
available_skillsプロンプトセクションに関する独立分析。 ↩ -
Claude Codeのソース、
SLASH_COMMAND_TOOL_CHAR_BUDGET。github.com/anthropics/claude-code。 ↩ -
Anthropic、「Skill作成のベストプラクティス」。platform.claude.com。500行の上限、補助ファイル、命名規則。 ↩
-
Anthropic、「Claude Code Hooks:ライフサイクルイベント」。code.claude.com/docs/en/hooks。文書化された30種類のライフサイクルイベント、hookの種類、matcherの動作、非同期hooks、HTTP hooks、prompt hooks、agent hooks、MCP tool hooks。 ↩↩↩↩↩↩↩
-
著者によるClaude Code hooksチュートリアル。実運用向けの5つのhooksをゼロから構築。Claude Code Hooksチュートリアルに記載。 ↩↩↩↩↩
-
著者によるRalph Loopの実装。ファイルシステムの状態とspawn予算を使用した、新規コンテキストによる反復処理。Ralph Loopに記載。 ↩↩↩↩↩↩↩
-
著者による審議システムのアーキテクチャ。3,500行のPython、12個のモジュール、信頼度トリガー、合意の検証。AIシステムの構築:RAGからエージェントへに記載。 ↩↩↩
-
Nemeth, Charlan、In Defense of Troublemakers: The Power of Dissent in Life and Business、Basic Books、2018年。 ↩
-
Wu, H., Li, Z., and Li, L.、「LLMエージェントは本当に議論できるのか?」arXiv:2511.07784、2025年。 ↩
-
Liang, T. et al.、「マルチエージェント討論による大規模言語モデルの発散的思考の促進」、EMNLP 2024。 ↩
-
著者による、実際のリポジトリを対象としたAGENTS.md分析。AGENTS.mdのパターンに記載。あわせてGitHub Blogの「優れたagents.mdの書き方:2,500以上のリポジトリから得た教訓」も参照。 ↩↩↩↩↩↩↩↩
-
著者によるquality loopとevidence gateの方法論。Jiro Craftsmanshipシステムの一部。 ↩
-
Anthropic、「Claude Managed Agentsの概要」。2026年4月8日にパブリックベータを開始。セッションのチェックポイント機能、同梱sandbox、REST APIを備えたHarness-as-a-Service。料金:標準トークン料金+セッション1時間あたり$0.08。ベータヘッダーは
managed-agents-2026-04-01。 ↩↩ -
OpenAI、「openai-agents Python v0.14.0リリースノート」。2026年4月15日にリリースされ、4月16日に発表されました。既存の
Agent/Runnerフロー上のベータレイヤーとして、Sandbox Agents SDKサーフェスを導入しています。これには、SandboxAgent、Manifest(ワークスペース契約)、SandboxRunConfig、各種機能(シェル、ファイルシステム編集、画像検査、skills、sandboxメモリ、compaction)、ワークスペースのマウント(ローカル、Git、リモート:S3、R2、GCS、Azure Blob、S3 Files)、パス正規化とシンボリックリンク保持に対応したポータブルスナップショット、再開用の実行状態シリアル化が含まれます。バックエンドは、UnixLocalSandboxClient、DockerSandboxClientのほか、オプションのextrasを介してBlaxel、Cloudflare、Daytona、E2B、Modal、Runloop、Vercel向けのホステッドクライアントを利用できます。4月16日の発表は、Help Net Securityで要約されています。 ↩↩ -
Google Cloud、「Scion:マルチエージェントハイパーバイザー」。2026年4月7日にオープンソース化。Claude Code、Gemini CLI、その他のdeep agentsを、エージェントごとのコンテナ、git worktree、認証情報を備えた分離プロセスとしてオーケストレーションします。ローカル、ハブ、Kubernetesの各デプロイモードに対応。InfoQの記事。 ↩
-
2026年第1〜第2四半期のマルチエージェント討論研究群。Wu et al.、「LLMエージェントは本当に議論できるのか?」(arXiv 2511.07784)、M3MAD-Bench(パフォーマンスの頭打ちと、誤解を招く合意への脆弱性を示す、マルチモデル・マルチエージェント討論ベンチマーク)、Tool-MAD(エージェントごとの異種ツール割り当て+Faithfulness/Relevanceのjudgeスコア)。 ↩
-
Anthropic、「安全で信頼できるエージェントを開発するためのフレームワーク」。2026年4月9日。5つの原則:人間による制御、価値観との整合、安全性、透明性、プライバシー。Linux FoundationのAgentic AI FoundationにMCPを寄贈。 ↩↩
-
Permiso Security、「SandyClaw:AI Agent Skills向け初の動的sandbox」。2026年4月2日。Sigma/YARA/Nova/Snortによる検出と、evidence-backedな判定を備えたskill実行sandbox。 ↩
-
Anthropic、「Claude Opus 4.7の紹介」。2026年4月16日。長期タスクを担うエージェントの改善:SWE-Benchの実運用タスク解決率がOpus 4.6比で3倍、ツール障害への耐性、
xhigheffort tier、タスク予算(ベータ)、暗黙のニーズを察知する能力。Messages APIの破壊的変更については、Opus 4.7の新機能も参照してください。 ↩ -
複合参照 — OpenAI
openai-agents-pythonv0.14.7(2026年4月28日)および v0.14.8(2026年4月29日)、Anthropicclaude-agent-sdk-pythonv0.1.69(4月28日)、v0.1.70(4月28日)、v0.1.71(4月29日)。v0.14.7の主な変更点:ツール項目へのtool_name/call_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では、TypeScriptスキーマとの整合性を確保するため、ドメイン許可リスト用フィールド(allowedDomains、deniedDomains、allowManagedDomainsOnly、allowMachLookup)をSandboxNetworkConfigに追加し、同梱のCLIをv2.1.123へ更新しました。 ↩ -
OpenAI、“AGENTS.mdによるカスタム指示”。Codexは作業前にグローバルおよびプロジェクトの
AGENTS.md/AGENTS.override.mdファイルを読み込み、ルートから現在のディレクトリまでの指示を統合します。また、プロジェクトドキュメントの上限はproject_doc_max_bytesで設定されます。 ↩ -
OpenAI、“Agent Skills”。Codex skillsでは、
SKILL.md、段階的開示、明示的な$skill呼び出し、説明文に基づく暗黙的な有効化を使用します。 ↩ -
OpenAI、“Codex Hooks”。Codex hooksは、設定内のコマンドhooks、プラグインhooks、管理対象hooks、対応イベント用のマッチャー、標準入力からのJSON入力、JSON出力フィールドをサポートします。 ↩
-
OpenAI、“Codex Subagents”および“Codex CLI 0.128.0変更履歴”。Codexは、明示的な並列subagentsワークフロー、組み込みの
default、worker、explorerエージェント、カスタムTOMLエージェント、継承されるサンドボックスポリシー、プラグイン同梱hooks、hooksの有効化状態、0.128.0で永続化された/goalワークフローをサポートします。 ↩ -
Anthropic、“Claude Managed Agentsの新機能”。2026年5月6日。Dreaming(リサーチプレビュー): エージェントセッションとメモリストアを確認し、パターンを抽出して記憶を整理する、スケジュール実行型のバックグラウンドプロセスです。Outcomes(パブリックベータ): 別の採点エージェントが独自のコンテキストウィンドウでルーブリックに照らして出力を評価する仕組みです。エージェントの推論に影響されずに採点できます。Multiagent Orchestration(パブリックベータ): リードエージェントがジョブの各部分を専門エージェントへ委任します。各専門エージェントは固有のモデル、プロンプト、ツールを持ち、共有ファイルシステム上で並列に作業して、リードエージェントの全体的なコンテキストに寄与します。Claude Consoleでは、各ステップを完全に追跡できます。 ↩↩↩↩↩↩↩↩
-
Anthropic、
claude-agent-sdk-pythonv0.1.74。2026年5月6日。ClaudeAgentOptionsにinclude_hook_eventsを追加しました。設定すると、hookイベント(PreToolUse、PostToolUse、Stopなど)がCLIから発行され、TypeScript SDKのincludeHookEventsと同様に、メッセージストリームからHookEventMessageとして返されます。同梱のClaude CLIはv2.1.129へ更新されました。 ↩↩ -
Anthropic、
claude-agent-sdk-pythonv0.1.77。2026年5月8日。allowed_toolsの"Skill"値を非推奨とし、代わりにClaudeAgentOptions専用のskillsオプションを導入しました。利用可能なskillsについて、より構造化されたシグナルをClaude Codeへ提供し、Command failed例外のエラーメッセージを改善しています。また、Claude CLI v2.1.133を同梱しています。 ↩↩ -
Anthropic、Claude Code v2.1.132。2026年5月6日。Bashツールのサブプロセスに
CLAUDE_CODE_SESSION_ID環境変数を追加し(hooksがすでに参照できるsession_idと一致)、会話をネイティブのスクロールバックに保持するCLAUDE_CODE_DISABLE_ALTERNATE_SCREEN、刷新された/tui fullscreen起動バナー(メモリ使用量の削減、マウス対応、選択時の自動コピー)を追加しました。さらに、SIGINTによる正常終了、サロゲート絵文字による--resumeの破損、プランモードの--permission-modeフラグ、インド系文字およびZWJのカーソル処理、NFDでのvim操作、/で始まる貼り付けが無視される問題、MCPの無制限なメモリ使用、MCPのtools/list再試行、Bedrock+VertexでのENABLE_PROMPT_CACHING_1Hの400エラー、ステータスラインのcontext_windowに累積トークン数が表示される問題など、約20件のバグを修正しました。 ↩↩ -
Anthropic、Claude Code v2.1.133。2026年5月7日。hooksが
effort.levelのJSON入力と$CLAUDE_EFFORT環境変数を受け取るようになりました(Bashコマンドからも参照できます)。subagentsはSkillツールを通じて、プロジェクト、ユーザー、プラグインのskillsを検出できるようになりました(リグレッション修正)。新しい管理者設定:worktree.baseRef(fresh|head)では、v2.1.128でworktreeのベースがローカルHEADに変更された後、再びorigin/<default>をベースに設定できます。sandbox.bwrapPathとsandbox.socatPathでは、Linux/WSL上のサンドボックスバイナリを固定できます。parentSettingsBehavior('first-wins' | 'merge')では、SDKのmanagedSettingsと親設定をどのように合成するかを制御できます。その他の修正:並列セッションでのリフレッシュトークン競合後の401エラー、ドライブルートの許可ルールのスコープ、MCP OAuthのプロキシ/mTLS対応、Remote Controlの停止/割り込み時にキャンセルが完了しない問題、セッションをまたぐ/effort設定の漏出、--helpへの--remote-controlの掲載。 ↩↩↩↩↩↩ -
Anthropic、Claude Code v2.1.136。2026年5月8日。ユーザーの意図や許可例外に関係なく無条件でブロックする、自動モード分類器ルール向けの
settings.autoMode.hard_denyを追加しました。また、OpenTelemetry経由で回答を収集する企業がセッション内の品質アンケートを再び有効化できるよう、CLAUDE_CODE_ENABLE_FEEDBACK_SURVEY_FOR_OTELを追加しています。運用に影響する修正:.mcp.json、プラグイン、claude.aiコネクター由来のMCPサーバーが、VS Code、JetBrains、Agent SDKで/clear実行後に通知なく消える問題、MCP OAuthのリフレッシュトークンが同時更新時に失われる問題、一致するEdit(...)許可ルールが存在するとプランモードでファイル書き込みがブロックされない問題、キャッシュのクリーンアップによって実行中のバージョンが削除されるとプラグインのStop/UserPromptSubmithooksが失敗する問題、plugin.jsonのskills項目によってプラグインのデフォルトskills/ディレクトリが非表示になる問題、CLAUDE_ENV_FILEのSessionStart hook環境変数が/resumeまたは/clear後に古い状態のまま残る問題。これに加え、TUI、オートコンプリート、ターミナル描画にわたる約30件の仕上げと信頼性向上が含まれます。関連リリース:v2.1.137(5月9日、VSCode拡張機能のWindowsでの有効化を修正)、v2.1.138(5月9日、内部修正)。claude-agent-sdk-pythonv0.1.78、v0.1.79、v0.1.80では、同梱のClaude CLIをそれぞれv2.1.136、v2.1.137、v2.1.138へ更新しました。 ↩↩↩↩ -
OpenAI、
openai-agents-pythonv0.17.0。2026年5月8日。RealtimeAgentのデフォルトがgpt-realtime-2になりました。サンドボックスのローカルソースを実体化する際、LocalFile.srcとLocalDir.srcは、SandboxPathGrantを使用してManifest.extra_path_grantsでソースが明示的に許可されていない限り、マニフェストのbase_dir(マニフェスト適用時におけるSDKプロセスの現在の作業ディレクトリ)内に制限されます。相対パスのローカルソースはbase_dirを基準に解決されます。絶対パスのソースは、すでにその内部に存在するか、明示的に許可されたパス配下でなければなりません。移行方法:信頼できるホスト側のルートをマニフェストレベルで宣言し、可能であれば読み取り専用にしてください。extra_path_grantsは信頼できるアプリ設定として扱い、モデル出力や信頼できないマニフェスト入力から設定しないでください。Responsesのコンテキスト管理におけるextra_argsの競合修正も含まれます。 ↩↩↩↩ -
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[]、PostToolUse用のcontinueOnBlock、MCP stdio サーバー用のCLAUDE_PROJECT_DIR、${CLAUDE_PROJECT_DIR}を使ったプラグインコマンドの補間が追加されています。また、--printモードでのclaude_code.active_time.totalOpenTelemetry 出力を含む修正も行われています。 ↩↩↩↩↩ -
Anthropic、「Agent View で複数のエージェントを管理する」。Agent View のドキュメントでは、1つの画面から多数の Claude Code セッションをディスパッチして管理し、各セッションの動作状況を確認して、オペレーターによる入力が必要なセッションを特定する方法が説明されています。また、Agent View は Research Preview と位置づけられ、ローカルセッションの制限事項も記載されています。 ↩↩↩
-
Anthropic、「Claude Code Hooks」。コマンド hook のフィールド、
PreToolUse、PostToolUse、終了コードの動作、hook の入出力、スラッシュコマンドを直接展開するパスを扱う hook のドキュメントです。 ↩↩ -
GitHub Advisory Database、GHSA-f3jg-756w-gm35 / CVE-2026-45046。「Gryph Agents のペイロードフィルターが機密コンテンツを含むツールペイロードを除去できない」。2026年5月公開。デフォルトのログ動作では、機密性の高い
file-writeペイロードの内容がローカルの SQLite ログに残る問題を説明しており、Gryph v0.7.0 で修正されています。 ↩↩ -
OSV、GHSA-wxxx-gvqv-xp7p / CVE-2026-40217。「LiteLLM のカスタムコード用 guardrail にサンドボックスエスケープが存在する」。2026年5月11日公開。管理者保護された
POST /guardrails/test_custom_codeエンドポイントが、独自実装のサンドボックス内でユーザー提供の Python を実行する問題を説明しています。アップグレードできない場合は、アップグレードするか、このエンドポイントをブロックすることが推奨されています。 ↩↩ -
Young Jo (seph) Chung、Safwat Hassan、「協力者、それともアシスタント?AI コーディングエージェントはプルリクエストのライフサイクル全体で作業をどう分担するか」、arXiv:2605.08017v1、2026年5月。要旨では、OpenAI、Copilot、Devin、Cursor、Claude Code にまたがる29,585件の PR ライフサイクルを分析し、運用上の自律性とマージのガバナンスを区別したと報告しています。 ↩↩
-
Jiayuan Liu ほか、「記憶の呪い:想起範囲の拡大が LLM エージェントの協調意図を損なう仕組み」、arXiv:2605.08060v1、2026年5月。要旨では、7つの LLM と4つのゲームを対象に500ラウンドにわたって実験した結果、アクセス可能な履歴を拡大すると、28のモデルとゲームの組み合わせのうち18で協調性が低下したと報告しています。 ↩↩
-
Anthropic、Claude Code v2.1.140。2026年5月12日。agent hook の入力に
subagent_typeが追加され、ConfigChangehooks、disableAllHooks、allowManagedHooksOnly、hook の結果から権限ダイアログへの環境変数表示、設定更新後のカスタムスタイルのリセット、Windows Git Bash でのネイティブパッケージ解決のフォールバック、/scroll-speedが修正されています。 ↩↩↩ -
Anthropic、Claude Code v2.1.141。2026年5月13日。デスクトップ通知、ウィンドウタイトル、ベル用の hook JSON 出力として
terminalSequence、HTTPS プラグインソースをクローンするためのCLAUDE_CODE_PLUGIN_PREFER_HTTPS、ワークロード ID フェデレーションのワークスペーススコープ用のANTHROPIC_WORKSPACE_ID、Agent View でディレクトリを絞り込むためのclaude agents --cwd <path>、過去24時間または7日間のセッションを添付できる/feedbackオプションが追加されています。さらに、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を返しました。 ↩↩↩ -
Anthropic、Claude Code v2.1.142。2026年5月14日。バックグラウンドセッション用の
claude agentsディスパッチフラグ(--add-dir、--settings、--mcp-config、--plugin-dir、--permission-mode、--model、--effort、--dangerously-skip-permissions)が追加されています。Fast mode のデフォルトは Opus 4.7 に変更され、固定用のオーバーライドとしてCLAUDE_CODE_OPUS_4_6_FAST_MODE_OVERRIDE=1が用意されました。また、skills/ディレクトリが存在しない場合はプラグインのルートレベルにあるSKILL.mdファイルを skills として公開し、プラグインの詳細にはプラグイン提供の LSP サーバーを表示します。既存の GitHub App 接続を置き換える前に警告するようになり、MCP_TOOL_TIMEOUT、バックグラウンドセッションの worktree、デーモンのスリープと復帰、アップグレード後のデーモンのクリーンアップ、プラグインキャッシュ、Agent View の信頼性に関する問題も修正されています。2026年5月15日時点の現セッションでの検証では、claude --versionは2.1.141 (Claude Code)を返し、npm の最新バージョンは2.1.142でした。 ↩↩ -
Anthropic、Claude Code v2.1.147。2026年5月21日。決定論的なマルチエージェントオーケストレーションに対応する、デフォルトでは無効な
Workflowツール(CLAUDE_CODE_WORKFLOWS=1)、固定表示できるバックグラウンドセッション、/simplifyに代わる/code-review [effort] --commentが追加されています。さらに、REPL と Workflow のサンドボックス強化、自動アップデーターの診断機能、大規模 diff のレンダリング改善、プロンプト履歴の重複排除も含まれます。エンタープライズログインの制限、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.147、time.modifiedは2026-05-21T20:38:35.053Zを返しました。 ↩↩↩ -
Anthropic、Claude Code v2.1.148、v2.1.149、v2.1.150、Claude Code CHANGELOG。v2.1.148 では、v2.1.147 で発生した Bash の終了コードのリグレッションが修正されています。v2.1.149 では、カテゴリ別の制限使用量を表示する
/usage、/diffのキーボードスクロール、GFM タスクリストのレンダリング、Enterprise のallowAllClaudeAiMcpsが追加されています。harness に関連する修正として、PowerShell のcdによる権限回避、PowerShell のプレフィックス/ワイルドカードと古い変数に関する権限分析、git-worktree のサンドボックス書き込み許可リストのスコープ、macOS 上で Bash のfindによって発生する vnode 枯渇、管理対象設定の承認時のフリーズ、otelHeadersHelperのパス内スペースに関する診断、Remote Control のセッション名変更の同期が含まれます。v2.1.150 は内部インフラストラクチャのみの変更です。2026年5月24日時点の現セッションでの検証では、ローカルのclaude --versionは2.1.144 (Claude Code)を返した一方、npm の最新バージョンは2.1.150、time.modifiedは2026-05-23T04:03:10.243Zでした。GitHub の最新リリースはv2.1.150で、公開日時は2026-05-23T04:03:51Zでした。 ↩↩↩ -
OpenAI、
openai-agents-pythonv0.17.1、v0.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でした。 ↩↩ -
Claude Code 変更履歴(公式)、v2.1.152 リリースノート、v2.1.153 リリースノート、v2.1.154 リリースノート。v2.1.152(5月27日)では、
MessageDisplayhook イベント、skill/command の frontmatter におけるdisallowed-tools、/reload-skills、SessionStarthook のreloadSkillsおよびsessionTitle出力、作業ツリーに修正を適用する/code-review --fix、pluginSuggestionMarketplaces管理設定、auto-mode のオプトイン廃止、--fallback-modelによるセッション途中の切り替えが追加されました。v2.1.153(5月28日)では、/modelで選択したモデルが新規セッションのデフォルトとして保存され、sを指定するとセッション限定となりました。また、プラグインマーケットプレイスへのskipLfsの追加、ステータスライン環境でのCOLUMNS/LINESの公開、macOS バックグラウンドエージェントに対する「プライバシーとセキュリティ」権限の永続化も行われました。v2.1.154(5月28日)では、Opus 4.8 がデフォルトモデルとなり、デフォルトの effort が high に設定され、新たに/effort xhighが追加されました。さらに、/workflowsによる動的ワークフロー、Opus 4.8 で2倍の料金により2.5倍の速度を実現する Fast mode、Haiku/Sonnet/Opus 4.7以前を除く全モデルへの簡素化されたシステムプロンプトのデフォルト適用が導入されました。claude agentsではバックグラウンドシェルセッション用に! <command>を受け付けるようになり、プラグインではdefaultEnabled: falseを宣言できるようになりました。また、stdio MCP サブプロセス環境にCLAUDE_CODE_SESSION_IDとCLAUDECODE=1が渡されるようになり、CLAUDE_CODE_OPUS_4_6_FAST_MODE_OVERRIDEは非推奨となりました(6月1日に削除)。 ↩ -
Codex 変更履歴(OpenAI Developers)およびopenai/codex リリース。Codex CLI 0.134.0(2026年5月26日)では、ローカルの会話履歴検索が追加されました。従来の設定を移行しつつ、CLI/TUI/sandbox フロー全体で
--profileが主要なプロファイル選択オプションとなりました。MCP のセットアップも、サーバーごとの環境指定とストリーミング可能な HTTP サーバー向けの OAuth によって改善されています。さらに、ローカルの$ref/$defsを保持し、公開前に肥大化したスキーマを圧縮することで、コネクターツールのスキーマの信頼性が向上しました。readOnlyHintを提示する読み取り専用 MCP ツールの並行実行も可能になりました。Codex CLI 0.135.0(2026年5月28日)では、codex doctorの診断情報が充実し、/statusにリモート接続の詳細とサーバーバージョンが表示されるようになりました。vim のテキストオブジェクト編集には、単語および行末の挙動改善と設定可能なターン割り込みが追加されています。/permissionsは名前付き権限プロファイルに対応し、対応する macOS と Linux 向けにパッチ適用済みの zsh ヘルパーが同梱されました。また、スレッドおよびターンの API 用に、Python SDK へ分かりやすいSandboxプリセットが追加されました。 ↩ -
Hermes Agent v0.15.0 リリースノート。「Velocity リリース」。1,302件のコミット、747件のマージ済み PR、321人のコミュニティコントリビューター。
run_agent.pyは76%リファクタリングされました(14モジュール、16,083行から3,821行へ削減)。自動分解、swarm トポロジー、タスクごとのモデルオーバーライド、スケジュールタスク、作業ツリー管理を備えたマルチエージェント Kanban プラットフォーム。session_searchは再設計され、LLM 依存関係を削除したうえで4,500倍高速になりました。3つのセキュリティ・チョークポイントで、Brainworm 系のプロンプトインジェクションに対する Promptware 防御を実装。プロバイダーごとのキーを単一のブートストラップトークンに置き換える Bitwarden Secrets Manager 連携。1つのスラッシュコマンドで複数の skills を読み込める skill bundle。1つのターミナルで複数セッションを管理する TUI セッションオーケストレーター。Krea 2 および FAL の画像生成プロバイダー、xAI 連携一式(ウェブ検索プラグイン、上流の OAuth、廃止モデルの検出、自然な TTS の間)。 ↩ -
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が含まれるようになりました。処理不能な画像(テキストのプレースホルダーへフォールバック)、auto/bypass mode における sandbox のネットワーク権限プロンプト、バックグラウンドセッションの retire-on-park、tmux / VS Code / Cursor / Windsurf でのターミナル描画に関する不具合修正も含まれます。 ↩↩ -
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日)では、Stop/SubagentStopのエラー以外のフィードバック用にhookSpecificOutput.additionalContextが追加されました。v2.1.166(6月6日)では、セッションをまたぐSendMessageの権限が強化され(中継されたメッセージがユーザー権限を引き継がなくなりました)、fallbackModel設定も追加されました(最大3つのフォールバックと、再試行不能エラーに対する1回限りの再試行)。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日に検証。 ↩↩ -
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 では、Claude Fable 5(claude-fable-5)を/model claude-fable-5で選択できるようになりましたが、Claude Code のエージェント向けデフォルトは引き続き Opus 4.8 です。モデル階層の発表:Anthropic、“Claude Fable 5”、2026年6月9日。Opus より上位の「Mythos-class」階層であり、一般利用に適した安全性を備えた Anthropic 史上最も強力なモデルと説明されています。 ↩↩↩↩↩ -
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 の検出も強化されています。環境ファイルシステム経由で読み込み、検出時に論理パスを保持することで、リモートおよびシンボリックリンクされたワークスペースでも正しいファイルが選択されます。 ↩↩↩↩ -
Anthropic、Claude Code v2.1.172 リリースノート(2026年6月10日)。subagents が独自の subagents を生成できるようになり、最大5階層までの再帰的な委任に対応しました。以前の委任は実質的に1階層に限られていました。 ↩↩
-
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/のエージェント、ワークフロー、出力スタイルが競合した場合は、現在の作業ディレクトリに最も近いものを解決します(プロジェクトスコープのワークフローは、最も近い既存の.claude/workflows/に保存されます)。subagent の生成は起動前に auto-mode 分類器で評価されるようになりました。また、subagent のdisallowedToolsにある MCP サーバーレベルの指定(mcp__server、mcp__server__*、mcp__*)が暗黙に無視される不具合も修正されました。 ↩↩↩↩↩↩↩ -
OpenAI、Codex CLI rust-v0.140.0 リリースノート、2026年6月15日(v0.140.0-alpha 系列から安定版へ昇格)。Claude Code からセットアップ、プロジェクト設定、最近のチャットを選択してインポートできる
/import、確認による保護措置を備えたcodex delete、/delete、app-server のthread/deleteによるセッションの完全削除、ファイル、プラグイン、skills に対応する統合@メンションメニュー、/usageのトークン使用状況ビューが追加されました。 ↩↩ -
Anthropic、Claude Code v2.1.183 リリースノート、2026年6月19日 — 作業の破棄を依頼していない場合、auto mode は破壊的な git コマンド(
git reset --hard、git checkout -- .、git clean -fd、git 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 リレーチャネルを使用します。クロスプラットフォームのリモート実行では、実行環境固有の作業ディレクトリとシェルが維持されます。TLS は、エンタープライズプロキシ向けに P-521 証明書署名をサポートします。 ↩↩↩ -
Claude Code Changelog(公式) — v2.1.193(2026年6月25日):
autoMode.classifyAllShell設定、トランスクリプト、トースト、/permissionsへの auto mode の拒否理由表示。v2.1.195(2026年6月26日):ハイフンを含む識別子(例:code-reviewer、mcp__brave-search)を指定した hook マッチャーが、部分一致ではなく完全一致で照合されるようになりました。ハイフンを含む MCP サーバーの全ツールに一致させるには、mcp__brave-search__.*を使用します。Codex CLI v0.142.2 リリースノート(2026年6月25日):安全性分類器が検査できない実行可能な AST 領域を含む PowerShell コマンドには、承認が必要になりました。2026年7月1~2日(PST)に両方の公式ソースで検証済みです。 ↩↩↩ -
Claude Code Changelog(公式)および 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セッションは、worktree でのコード作業後にコミット、プッシュ、ドラフト PR の作成を行い、agent_needs_input/agent_completedを指定してNotificationhook を発火します。/agentsウィザードは削除されました(.claude/agents/を直接編集するか、Claude に依頼します)。v2.1.199(7月2日):連続した slash-skill 呼び出しでは、先頭から最大 5 個の skills を読み込みます。再利用されたエージェント名に対するSendMessageの誤配送を検出します。SessionStart/Setup/SubagentStarthooks は、終了コード 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#>はマルチエージェントのレビューを実行します。Anthropicclaude-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)に現在のセッションで検証済みです。 ↩ -
Claude Code Changelog(公式)、GitHub のリリース v2.1.207 および v2.1.208、ならびに Claude Code の新機能。2026年7月。v2.1.203~v2.1.206(7月上旬):auto mode のルールにより、トランスクリプトファイルの改ざんがブロックされます。バックグラウンドタスクの通知には、タスク実行中に人間からの入力がなかったことが明記されます。MCP の
roots/listにはセッションの追加作業ディレクトリが含まれ、roots/list_changed通知にも対応しました。/doctorは、コードベースから導出できる CLAUDE.md の内容を削減するよう提案します。v2.1.204 では、ヘッドレス環境でのSessionStartストリーミングも修正されました。v2.1.207:Amazon Bedrock、Google Vertex AI、Microsoft Foundry で auto mode が正式提供され、管理設定disableAutoModeでオプトアウトできます。企業向けプロセスランチャー用のCLAUDE_CODE_PROCESS_WRAPPERが追加されました。MCP ツール数が多い場合、ツール使用ラウンドが最大 7 倍高速化され、セッショントランスクリプトは 79 分の1に縮小されました。v2.1.208:壊滅的な削除に対する確認プロンプトは、--dangerously-skip-permissionsおよび auto mode を使用していても表示されます。 ↩↩↩↩↩↩↩↩ -
Claude Code Changelog(公式)および GitHub のリリース v2.1.210、v2.1.211、v2.1.212。2026年7月。v2.1.210:worktree 分離された subagents は、メインのチェックアウトを変更できなくなりました。subagent が読み取ったコンテンツからの間接的なプロンプトインジェクションに対して、Agent tool が強化されました。auto mode の分類器はデフォルトで Sonnet 5 を使用し、セッションごとに固定されます。サイズ制限を超える
MEMORY.mdへの書き込みは、黙って切り詰められるのではなくエラーになります。v2.1.211:PreToolUsehook のask判定により、権限結果の下限がプロンプトに設定されます。つまり、サンドボックス化されていない Bash に対して、auto mode が許可へ上書きすることはできません。--forward-subagent-text/CLAUDE_CODE_FORWARD_SUBAGENT_TEXTは、subagent のテキストを stream-json 出力へ転送します。「常に許可」ルールは、worktrees 間でリポジトリルートに保持されます。権限プレビューでは、双方向テキスト上書き文字、ゼロ幅文字、類似文字が無害化されます。v2.1.212:セッションごとの subagent 起動上限(デフォルト 200、CLAUDE_CODE_MAX_SUBAGENTS_PER_SESSION、/clearでリセット)、セッションごとの WebSearch 上限(200、CLAUDE_CODE_MAX_WEB_SEARCHES_PER_SESSION)が追加されました。Task tool のmodeパラメーターは非推奨となり、親セッションの権限モードを継承する方式に移行しました。/forkは新しいバックグラウンドセッションを作成し、セッション内で使う従来の形式は/subtaskに改名されました。2分を超える MCP 呼び出しは自動的にバックグラウンドへ移行します(CLAUDE_CODE_MCP_AUTO_BACKGROUND_MS)。 ↩↩↩↩↩↩↩↩↩↩↩↩ -
Anthropic、
@anthropic-ai/claude-agent-sdkTypeScript リリース v0.3.205~v0.3.208。2026年7月。型付き割り込み受領情報(still_queuedUUID、system/initで通知されるinterrupt_receipt_v1機能)、メッセージごとに queued/started/completed/cancelled/discarded を報告するcommand_lifecycleフレーム、AgentToolCompletedOutput型が追加されました。canUseToolは、updatedInputなしで{behavior: 'allow'}を返せます。v0.3.208 のセキュリティ修正:保留中の hook 実行中に呼び出し元から中止要求が届くと、hook の成功として変換されていました。そのため、PreToolUsehook で制御されているツールが、呼び出し元による中止後に実行される可能性がありました。 ↩↩↩ -
Model Context Protocol、PR #3002。2026年7月16日、仕様ドラフトにマージされました。レスポンスの
_metaに任意のio.modelcontextprotocol/serverInfoオブジェクトを追加し、リクエストのclientInfoを任意とするものです。SEP-2575 のステートレスコアでステートフルな初期化ハンドシェイクが削除された後も、サーバーの識別情報を取得できるようになります。この識別情報は自己申告であり、検証されていません。表示とログ記録のみを目的としており、セキュリティ上の判断に使用すべきではありません(SHOULD NOT)。完成したステートレス仕様の改訂版は、2026年7月28日に公開予定です。 ↩↩ -
OpenAI、Codex CLI リリース rust-v0.143.0、rust-v0.144.0、rust-v0.144.5。2026年7月。v0.143.0:MCP ツールは、デフォルトでツール検索を通じて読み込まれます(スキーマの事前一括読み込みではなく、遅延ツール読み込み)。v0.144.0:新しい
writesアプリ承認モードが追加されました。読み取り専用の操作は確認なしで実行され、書き込みには承認が必要です。また、MCP のインタラクティブ認証が正式提供されました。v0.144.5:危険なコマンドの検出範囲が拡大されました。 ↩↩ -
OpenAI、
openai-agents-pythonv0.18.2(2026年7月11日)およびopenai-agents-jsv0.13.2(2026年7月10日)。どちらのリリースでも、複数のエージェントを OpenAI がホスト型サービスとしてオーケストレーションする、ベータ版のホスト型マルチエージェントサポートが追加されています。これは、Anthropic の Managed Multiagent Orchestration パブリックベータに相当する機能です。 ↩↩ -
Claude Code Changelog(正規版)、v2.1.214〜v2.1.216、2026年7月。v2.1.214:単一セグメントの
dir/**パスパターンを使う権限ルールと hook のif:条件が、<cwd>/dirを基準とするようになりました(任意の深さに一致させるには**/dir/**と記述します)。従来は、Edit(src/**)のような許可ルールがツリー内の任意の階層にあるdir/に対して自動承認されていました。拒否ルールと確認ルールでは、任意の深さへのマッチングが維持されます。さらに、EndConversationツール、フェイルクローズ方式による Bash/PowerShell の権限強化、stdout JSON がスキーマ検証に失敗した場合でも hook の終了コード 2 によるブロック、暗黙に切り捨てられない memory frontmatter の ISOmodifiedタイムスタンプ、OTel のmessage.uuid、client_request_id、tool_source、CLAUDE_CODE_OTEL_CONTENT_MAX_LENGTHが追加されました。v2.1.215:同梱の/verifyおよび/code-reviewskills は自動起動されなくなり、明示的に呼び出した場合にのみ実行されます。v2.1.216:worktree で分離された subagents が、git -C、--git-dir、またはGIT_DIR/GIT_WORK_TREEを使って共有チェックアウトへ git をリダイレクトできなくなりました。worktree セッションが別プロジェクトに残された worktree を参照することもなくなりました。プロジェクト外を指すシンボリックリンクの.claudeに対しては、ワークフローおよびスケジュール済みタスクを書き込めません。/rewindはシンボリックリンクやハードリンクをたどらなくなりました。sandbox.filesystem.disabledにより、ネットワーク送信だけを制限するサンドボックス化が可能になりました。再開したバックグラウンドエージェントセッションでは、エージェントのプロンプトとツール制限が復元されます。セッション途中に変更した skill/コマンドは、再起動せずにスラッシュメニューへ反映されます。2026年7月21日(PST)に正規版 Changelog と照合して検証済みです。 ↩↩↩↩ -
Anthropic、
@anthropic-ai/claude-agent-sdkTypeScript リリース v0.3.214〜v0.3.216 およびclaude-agent-sdkPython v0.2.124。2026年7月。TypeScript:set_permission_modeは未知のモードを拒否します。割り込みによって切り詰められたメッセージにはaborted: trueが設定されます。tool_progressにはsubagent_typeとsubagent_retryが含まれます。タスク通知のサブ種別としてscheduled-trigger、SessionStartの source として"fork"、non_execution_kindとuser_feedbackを含むtool_result_metaサイドカーが追加されました。rewindFilesのレスポンスには任意のskippedLinks件数を、成功結果メッセージには任意のuser_message_uuidとrequest_sent_wall_msを含められます。Python v0.2.124(Windows、BatBadBut 系):.bat/.cmdファイルの起動を拒否します。resume/session_idの値にcmd.exeのメタ文字が含まれている場合はValueErrorが発生します。ハイフンで始まるextra_argsの値は--flag=value形式でバインドされます。 ↩↩↩ -
OpenAI、Codex CLI rust-v0.145.0 リリースノート、2026年7月。オプトインのマルチエージェント V2 インターフェースが安定化されました(サブエージェントのモデル、推論レベル、並行数を設定可能。エージェントロールも復元)。
/importが拡張され、Claude Code と Cursor から設定、MCP サーバー、プラグイン、セッション、コマンド、プロジェクトスコープの memories を移行できます。強化点として、MCP の起動タイムアウト、直列化された OAuth の更新、ノンブロッキングの OAuth 検出、強制 rm の検出強化、拒否理由の保持、試験的なページネーション対応スレッド履歴が含まれます。 ↩↩ -
Model Context Protocol、仕様リリースに関するドキュメント PR #3064、#3066、#3098。2026年7月28日の仕様リリースに先立ち、2026年7月21日にマージされました。最終改訂版では、Tasks は中核機能ではなく、任意の
io.modelcontextprotocol/tasks拡張機能として提示されます。また、HTTP+SSE トランスポートは非推奨となり、代わりに Streamable HTTP が推奨されます。 ↩ -
Claude Code Changelog(正規版)、v2.1.217、2026年7月21日。subagents はデフォルトでネストされた subagents を起動しなくなりました。さらに深いネストを許可するには、
CLAUDE_CODE_MAX_SUBAGENT_SPAWN_DEPTHを設定します。同時実行される subagents に新たな上限(デフォルトは 20、CLAUDE_CODE_MAX_CONCURRENT_SUBAGENTS)が設けられ、1つのメッセージからバックグラウンドエージェントが無制限に展開されることを防ぎます。--max-budget-usdがバックグラウンドの subagents を実際に停止するようになりました。上限に達すると、新たな起動は拒否され、実行中のバックグラウンドエージェントも停止します。バックグラウンドセッションの分離では、シンボリックリンクされた作業ディレクトリを正規化し、ワークスペースフォルダーからの脱出を防ぎます。2026年7月22日(PST)に正規版 Changelog と照合して検証済みです。 ↩↩ -
Anthropic、
claude-agent-sdkPython v0.2.125 および@anthropic-ai/claude-agent-sdkTypeScript v0.3.217、2026年7月21日。Python v0.2.125 には CLI v2.1.217 が同梱されていますが、SDK インターフェースに変更はありません。TS v0.3.217 も同時にリリースされました。どちらも、CLI に新たに導入された subagent のネストおよび並行実行のデフォルト設定を継承しています。 ↩ -
Model Context Protocol、PR #3092、2026年7月21日にマージ。SEP-2575 のエラーコードを、番号が変更されたドラフトスキーマおよび適合性テストスイートと一致させる規範的な修正で、2026年7月28日の仕様リリースに向けた準備の一環です。 ↩
-
Anthropic Engineering、“製品全体で Claude を封じ込める方法”、2026年5月25日。製品インターフェースに応じた3つの封じ込めパターンを示しています。サーバー側では、セッションごとのファイルシステムを備えた一時的な gVisor コンテナ(claude.ai)を使用します。人間が介在する OS サンドボックス(Claude Code:macOS の Seatbelt、Linux の bubblewrap、オープンソース化された
sandbox-runtime)も採用しています。さらに、プラットフォームのハイパーバイザー上で密閉された VM を使用します(Claude Cowork:macOS では Apple Virtualization framework、Windows では HCS を使用し、ワークスペースと.claudeのみをマウント)。デザイン原則として、まず環境レイヤーで封じ込め、次にモデルレイヤーで誘導すること、ユーザーが監督できる度合いに応じて分離強度を調整すること、独自の分離コードではなく実績ある基本機構(ハイパーバイザー、seccomp、コンテナランタイム)を優先すること、プロジェクトローカルの設定とツール出力を信頼しないことが挙げられます。認証情報は、スコープが限定され、セッションごとに個別に失効できるトークンを使用してサンドボックス外に保持します。Cowork では、VM 内の防御的な MITM プロキシが、VM 自身にプロビジョニングされたトークンを持たないリクエストを拒否することで、これを強制します。 ↩↩ -
Claude Code Changelog(正規版)、v2.1.218、2026年7月22日。危険な rm、バックグラウンドの
&、不審な Windows パスのチェックでは権限ダイアログが開かれなくなり、auto モードの分類器が判定します。auto を併用する plan mode でも、静的解析によって読み取り専用と証明できない Bash コマンドに対してプロンプトを表示せず、分類器が判定するようになりました。エージェントの frontmatter にある hooks を使用するには、そのエージェントファイル自体が置かれたフォルダーでワークスペースの信頼が承認されている必要があります。context: forkを指定した skills はデフォルトでバックグラウンド実行されます(skill ごとにbackground: falseを指定すると無効化できます)。/code-reviewはバックグラウンドの subagent として実行されます。/deep-researchは手動で呼び出した場合にのみ開始されます。headless セッションと SDK セッションでは、compaction 後も fork セッションの系譜が保持されます。Ctrl+Bによるバックグラウンド化にも、ほかの経路と同じバックグラウンドシェルの上限が適用されます。2026年7月24日(PST)に正規版 Changelog と照合して検証済みです。 ↩ -
Anthropic、
@anthropic-ai/claude-agent-sdkTypeScript v0.3.218 およびclaude-agent-sdkPython v0.2.126、2026年7月22日。TypeScript:SkillToolOutput.backgroundフラグ、ストリーム途中の 429/529 エラーを報告するapi_error_status、modelUsageのcanonicalModelとprovider。Python:ResultMessage.terminal_reason、canonicalModel/providerを備えた型付きのmodel_usageエントリ。CLI v2.1.218 が同梱されています。 ↩ -
Claude Code Changelog(正規版)、v2.1.219(2026年7月24日)および v2.1.220(2026年7月25日)。v2.1.219:「subagents がネストされた subagents を生成できる深さのデフォルト上限が1から3に変更されました。ネストを無効にするには
CLAUDE_CODE_MAX_SUBAGENT_SPAWN_DEPTH=1を設定します」;Claude Opus 5(claude-opus-5)がデフォルトの Opus モデルとして追加されました。コンテキストは1M、fast mode の料金は MTok あたり入力$10/出力$50です;sandbox.network.strictAllowlistにより、サンドボックス化されたコマンドが許可リスト外のホストへアクセスする場合、確認を表示せず拒否されます;/add-dirまたは SDK のregister_repo_root制御リクエストによってセッション途中に作業ディレクトリが登録された後に発火する、新しいDirectoryAddedhook が追加されました;動的ワークフローには、中規模を目安とするガイドライン(「15 agents 未満を目指す」)がデフォルトで適用されます。これは任意の設定ファイルからworkflowSizeGuidelineで設定でき(設定すると/configの該当行は非表示になります)、実行中のワークフローのステータス行にも表示されます;stream-json でネストされた subagent の転送に対応しました。深さ2以上の subagents が--forward-subagent-textで表示され、それらを生成した Agent のtool_useid をキーとして識別されます;ヘッドレスの stream-json 初期化イベントにmcp_server_errorsが追加され、設定検証によってスキップされた--mcp-configエントリが一覧表示されます。ターミナル実行時には起動時の警告も表示されます;接続失敗時にclaude mcp listと/mcpで HTTP ステータスとエラーテキストが表示されるようになり、先頭または末尾に非表示の空白がある MCP 設定値には警告も表示されます;管理対象の MCP 許可リスト/拒否リストに含まれる${VAR}エントリは、設定ファイルの環境ではなく、起動時の環境および管理対象設定の環境から解決されます;ターンがストリーミング途中の API エラーで終了しても、claude -pがそれまでに生成済みのテキストを破棄しなくなりました;CLAUDE_CODE_GIT_BASH_PATHのパスが bash/sh バイナリを指していない場合、警告を表示して無視されます;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 と照合済みです。 ↩↩↩↩↩↩↩↩↩↩ -
Anthropic、
@anthropic-ai/claude-agent-sdkTypeScript v0.3.219 および v0.3.220;claude-agent-sdkPython v0.2.127 および v0.2.128。2026年7月24〜25日。TypeScript v0.3.219:DirectoryAddedライフサイクル hook イベントが制御プロトコルに追加されました;割り込み制御リクエストでオプトインのcancel_queued(capability はinterrupt_cancel_queued_v1)を使用すると、中断処理に加えて、キュー内およびディスパッチ待ちのメッセージもキャンセルされます;結果メッセージと初期化メッセージにfast_mode_disabled_reasonが追加されました;モデルを切り替えた後、初期化レスポンスが生成時のモデルに由来するfast_mode_stateを報告しなくなりました;sandbox.network.strictAllowlistとworkflowSizeGuidelineが SDK の設定型に追加されました。Python v0.2.127:バックグラウンドタスクの実行中に stdin が早期終了する問題を修正しました。従来はバックグラウンドの subagents がまだ実行中でも、最初のresultフレームでquery()が stdin を閉じていたため、それらの SDK-MCP ツール呼び出しが"Stream closed"で失敗し、PreToolUsehooks を通知なく迂回していました。現在は、実行中の全タスクが完了し、最終結果フレームが到着するまで stdin が開いたままになります(#1103)。v0.3.220 / v0.2.128:CLI v2.1.220 とのパリティを確保するための更新です。 ↩↩↩↩ -
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 とのパリティ」)。この段落に以前記載されていた数値(CLI v2.1.202 を同梱する Python v0.2.111、および TypeScript v0.3.203)は、ガイドのほかの箇所ではすでに0.2.128と0.3.220を追跡していたにもかかわらず、どちらも17リリース分古いものでした。 ↩↩↩ -
Anthropic、「Claude Opus 5 の紹介」。2026年7月24日。
claude-opus-5;「入力トークン100万件あたり$5、出力トークン100万件あたり$25」;fast mode は「デフォルトの約2.5倍の速度」で動作し、料金は「Opus 5 の基本料金の2倍」です(Claude Code v2.1.219 Changelog によると MTok あたり入力$10/出力$50。同 Changelog には1Mのコンテキストウィンドウも記載されています)。ベンチマーク:「Frontier-Bench v0.1 では、Opus 5 がほかのすべてのモデルを上回り、Opus 4.8 の性能を2倍以上上回っています」;CursorBench 3.2 では「Fable 5 の最高スコアとの差を0.5%以内に抑えながら、コストは半分」です;「ARC-AGI 3では…Opus 5 のスコアが次点モデルの3倍に達しています」;OSWorld 2.0 では「Fable 5 の最高成績を、わずか3分の1強のコストで」上回っています。「思慮深く積極的なモデル」であり、「自身の作業を検証し、慎重に反復する能力が大幅に強化されている」と評されています。 ↩↩