9月14日、MarkTechPostが「Agent Harness vs Agent Framework vs MCP: Which Layer Owns the Loop, State, Tools, Permissions, and Recovery」と題した記事を公開した。AIエージェント設計における「Agent Harness」「Agent Framework」「MCP」の3層がそれぞれどの責務を担うかについて詳しく紹介されている。
AIエージェントの議論で「ハーネス」「フレームワーク」「MCP」は混同されがちだ。しかし3つは異なるレイヤーに位置し、異なる責務を持つ。本記事はその切り分けを、実行ループ・状態管理・ツール通信・権限管理・リカバリの5つの責務に沿って整理する。
3つの定義
Agent Harness(エージェントハーネス): モデルをラップして動作するエージェントに変換する実行システム。会話状態の管理、ストリーミング実行、ツール使用、サンドボックスと承認ポリシーの適用、ターンをまたいだ作業継続を担う。OpenAIのCodexやAnthropicのClaude Code(後述の「Claude Agent SDK」と同一製品)がその代表例。ループ・権限モデル・サンドボックス・コンテキスト戦略を1つのユニットとして出荷する「意見を持つ」システムである。
Agent Framework(エージェントフレームワーク): エージェントを組み立てるためのプリミティブ(構成要素)を提供するライブラリ。モデルクライアント、ツール抽象化、グラフオーケストレーション、メモリインターフェース、オブザーバビリティフックなどが含まれる。LangGraph、OpenAI Agents SDK、2026年4月にGAとなったMicrosoft Agent Framework 1.0が代表例。部品とループの骨格を渡すが、ポリシーの決定は開発者に委ねる。
MCP(Model Context Protocol): ランタイムではなくワイヤープロトコルだ。LLMアプリケーション(ホスト)がサーバーの公開するツール・リソース・プロンプトをどう発見・呼び出すかを標準化する。JSON-RPC 2.0を使い、2025年12月からLinux FoundationのAgentic AI Foundationが管理する。MCPはループも持たず、エージェント状態も持たない。エージェントとツールの間の契約だけを持つ。
責務マトリクス
| 責務 | Agent Harness | Agent Framework | MCP |
|---|---|---|---|
| 実行ループ | 所有:ターン上限・コンパクション付きの固定ループ | 骨格を所有:終了条件・ハンドオフは開発者が設定 | なし:リクエスト/レスポンスのみ |
| 状態・メモリ | 所有:セッション・再開・フォーク・ファイルチェックポイント | 公開:チェックポインター・セッションストア・スレッドID | なし(2026-07-28仕様時点) |
| ツール通信 | 消費側:組み込みツール+MCPクライアント | 消費側:関数ツール+MCPクライアント | 所有:stdio/Streamable HTTP上のJSON-RPC |
| 権限・承認 | 所有:権限モード・フック・サンドボックス | 公開:ガードレール・割り込み・ミドルウェア | ホストに委譲:プロトコルでは強制不可 |
| リカバリ | 所有:セッション再開・チェックポイント巻き戻し・コンパクション | 公開:耐久実行・リプレイ・リトライ | 部分的:長時間呼び出し向けTasksエクステンション |
| 分離・サンドボックス | 所有:OSサンドボックス・worktree・コンテナ | オプション:ホスト型サンドボックスやmicro-VM | なし |
| マルチエージェント | パターンを所有:サブエージェント・動的ワークフロー | プリミティブを所有:グラフ・ハンドオフ・ファンアウト | なし(※A2A参照) |
※ A2A(Agent-to-Agent プロトコル): マトリクス末行の「A2A」はGoogleが主導するエージェント間通信の標準プロトコルで、MCPがエージェントとツールの間を担うのに対し、A2Aはエージェント同士の通信層を担う。MCPとA2Aは競合ではなく相補的な関係にある。
ハーネスがリカバリで差をつける理由
この3層の中で最も見落とされがちなのが、ハーネスのリカバリ能力だ。単なる「ツールラッパー」ではなく、長時間・高リスクな処理の信頼性を担保するのがハーネスの本質である。
Anthropic Claude Code(Claude Agent SDKとも呼ばれる、AnthropicのClaude向けエージェント実行基盤)はセッションの再開とファイル変更のチェックポイント巻き戻しに対応する。Claude Codeの動的ワークフローはターミナルが閉じられても再開できる。
そしてOpenAIが示した数字が具体的だ。Codexのハーネス設計の下、GPT-5.6 Sol(OpenAIが2026年に公開した推論特化モデル)はARC-AGI-3で13.3%から38.3%へスコアが向上し、出力トークンは6分の1に削減された。同じモデル、異なるハーネス、異なるスコアという結果だ。また、エンジニアチームが3人から7人に拡大した5か月間で約1,500本のPRがマージされ、コードベースは約100万行に達した。1エンジニアあたり1日3.5 PRという数字は、ハーネスによる自動化の効果を示している。
フレームワークもリカバリを提供するが、性格が異なる。LangGraphの耐久実行は決定論的であることを前提とする。ノードをべき等に保ち、副作用をタスクにラップして初めて、1週間後にランを再開できる。「フレームワークがリプレイし、開発者がリプレイを安全にする」という分担だ。
MCPが単独で所有する1行:ツール通信
マトリクスの中でMCPが「所有」するのはツール通信の行だけだ。
2026-07-28仕様では、initialize/initializedハンドシェイクとMcp-Session-Idヘッダが廃止され、プロトコルコアはステートレスになった。代わりにHTTPリクエストにMcp-MethodとMcp-Nameヘッダが必須化され、ゲートウェイやレートリミッターがボディをパースせずにルーティングできるようになった。tools/listレスポンスはttlMsとcacheScopeでキャッシュ可能になり、旧来のHTTP+SSEトランスポートは12か月の移行期間付きで非推奨となった。
MCPのSDKダウンロード数は月間約5億に達しており、TypeScriptとPythonのSDKはそれぞれ累計10億ダウンロードを超えた。プロトコルとしての採用は既に広がっている。
権限はホストが持つ
MCP仕様は権限について明確に述べている。「MCPはプロトコルレベルでセキュリティ原則を強制できない」。ツール呼び出し前のユーザー同意取得はホストの責務だ。
ハーネスはこれを端から端まで実装する。Claude Codeはdefault・acceptEdits・plan・auto・dontAsk・bypassPermissionsの6つの権限モードを持ち、各ツール呼び出しをPreToolUse・PermissionRequestのフックで制御できる。
フレームワークはフックを提供するが、ポリシーは持たない。OpenAI Agents SDKはガードレールとトリップワイヤーを持ち、LangGraphはinterrupt()でノード内に承認待機点を設けてCommand(resume=...)で再開する。承認ロジックとUIは開発者が書く。
どれを選ぶか
「ハーネスかフレームワークか」はトレードオフの問題だ。製品グレードのループ・権限・リカバリを即座に手に入れたければハーネス。独自のポリシーを細かく制御したければフレームワーク。MCPはその上に乗る通信規格であり、どちらを選んでも共通のツール通信基盤として機能する。
詳細はAgent Harness vs Agent Framework vs MCP: Which Layer Owns the Loop, State, Tools, Permissions, and Recoveryを参照していただきたい。