結論: ハーネス=器、サブエージェント=専門家、マルチエージェント=組合せ方。
どれも「AIが動く仕組み」を指す言葉ですが、見ている階層が違います。
一番外側の器が ハーネス、その中で呼び出される専門家が サブエージェント、
そしてサブエージェントを束ねて使う設計パターンが マルチエージェントです。
まず大枠の関係を掴むのが先決です。三者は対等な選択肢ではなく、入れ子構造になっています。
LLM そのものは入力を受けて出力を返すだけの存在です。ファイルを読むことも、
コマンドを叩くことも、フックで制約をかけることも、メモリを保存することもできません。
これを「アプリケーションとして使える状態」に組み上げているのがハーネスです。
Claude Code(このCLI)、ChatGPT のデスクトップアプリ、Cursor、それぞれ別のハーネスです。
.claude/settings.local.jsonscripts/quality_gate/*.py 群~/.claude/projects/.../memory/.claude/.current_session_idCLAUDE.md
Stop hook(応答完了直前に走る検査スクリプト)を追加する、permission を許可する、
CLAUDE.md にルールを書く、これらはすべてハーネスへの介入です。AI 本体の中身は変えていません。
ハーネス層で物理的に強制すれば、モデルがどれだけ賢く言い訳しても通らなくなります。
「AI 実行禁止操作」「ゲート12 Staging Queue ACK」が PreToolUse フック
(ツール実行直前に走る検査)で物理ブロックされているのが好例です。
親の Claude(このセッションを進めている AI)が、Agent ツール経由で別の AI を一時的に起動します。 この子 AI は次の3つを独自に持ちます。
# 親 AI から見たサブエージェント呼出 Agent({ subagent_type: "quality-checker", description: "成果物検証", prompt: "このHTMLを検証してください..." }) # → 子 AI が独立コンテキストで起動 → 検証結果テキストだけ返る
.claude/agents/ に定義されているサブエージェント(10件)| 名前 | 役割 | モデル |
|---|---|---|
| quality-checker | 成果物検証(提出前の必須ゲート) | GPT-5 Mini |
| fact-auditor | 事実主張の独立裏取り | GPT-5 Mini |
| sophistry-detector | 詭弁・責任回避・スコープ縮小の検知 | GPT-5 Mini |
| devil-advocate | 反証材料のみを探す悪魔の代弁人 | GPT-5 Mini |
| gate-auditor | Google Ads ゲートロジックの独立監査 | Claude |
| site-analyzer | HTML 構造解析と SEO 診断 | Claude |
| article-rewriter | ブログ記事の SEO リライト案生成 | Claude |
| blog-writer | 文字起こしから SEO ブログ記事生成 | Claude |
| x-post-writer | 文字起こしから X 投稿文生成 | Claude |
| instagram-writer | 文字起こしから Instagram キャプション生成 | Claude |
※この他に Anthropic 公式の汎用組込エージェント(general-purpose、Explore、Plan、claude-code-guide 等)も Agent ツール経由で利用可能。これらはプロジェクト固有定義ではなく Claude Code に標準搭載。
サブエージェントが役者だとすれば、マルチエージェントは脚本です。
1人の役者でも複数の役を演じられますが、「群像劇という構成」が成立するのは脚本があるから。
AI 業界で「マルチエージェントシステム」と呼ばれるものは、複数のサブエージェントが
協調・分業・相互検証する設計を指します。
Parallel
Pipeline
Hierarchical
親の Claude(本セッションは Opus 4.7)が応答を生成 → 即座に4つの GPT-5 Mini サブエージェントが
並列起動して、それぞれ別の観点で監査します。
同モデル系列バイアスを物理排除するため、検証側はすべて他社モデルに固定しています。
単一 AI で検証すると「自分の応答を擁護」してしまう癖が物理的に出ます。 他社モデル ✕ 役割分離 ✕ 並列 の三層で、その癖を構造的に潰しているのがこのシステムです。
抽象論ではなく、本プロジェクト F:\claude-work\ で実際に走っている具体例で
三者がどう絡み合っているかを示します。
scripts/quality_gate/gate_ads.py が PreToolUse フックで exec_ads_*.py 実行を物理ブロックgate-auditor が「攻撃者視点でゲートをすり抜ける mutation 書き方」を独立監査quality-checker 1 体だけを呼ぶ.claude/quality-checker-learned.md に L+連番で蓄積fact-auditor+sophistry-detector+devil-advocate+quality-checker を並列起動site-analyzer で既存 LP の HTML 構造解析・SEO 診断article-rewriter で SEO 観点のリライト案生成blog-writer/x-post-writer/instagram-writer で文字起こしから各媒体に最適化~/.claude/projects/.../memory/MEMORY.md に項目別ファイル+index で保存.claude/.current_session_id で並列 Claude Code 同士の競合管理tmp/mutation_queue/pending/ 投入scripts/cron/mutation_dispatcher.py が広告 Bot で内川様通知approved/ へ移動
内川様の業務 3 領域(広告/ProLine/AI トミー布石くん)について、専用サブエージェントが
.claude/agents/ に定義されているかを整理します。
| 領域 | 専用サブエージェント | 現在の運用 |
|---|---|---|
| 広告関連 | gate-auditor 1件のみ(mutation ゲートの独立監査) |
mutation 実行・full audit・objective audit は直接スクリプト(ads_full_audit.py 等)を Bash で叩く運用 |
| ProLine 関連 | 無し | 直接スクリプト(proline_*.py 群)と ProLine MCP で実測 |
| AI トミー布石くん関連 | 無し | knowledge/fuseki/マークダウン/ 21 ファイルのナレッジを親 AI が直読みして判断 |
3領域とも「内川様の最終クリック必須」(広告有効化/ProLine 編集/配信文言)の領域のため、 AI に切り離す前提が無く、専用エージェント化されてこなかった、というのが構造的な理由です。
objectives/<cid>_*.yaml と実態(広告文・KW・除外・final_url)を独立視点で突合ads_objective_audit.py をエージェント化する形.claude/agents/<name>.md に frontmatter(name / description / tools / model)+本文を Writesubagent_type: <name> 指定で起動可能になるquality-checker を Agent ツールで起動この一連の流れで、ハーネス(土台)・サブエージェント(個別実体)・マルチエージェント(並列監査の設計)が 同時に役割を果たしています。三者は対立する選択肢ではなく、層構造で同居します。
ここが混同されやすい点です。
サブエージェントを3つ呼ぶ=即マルチエージェント、ではありません。
役割分担と統合判断の設計があって初めてマルチエージェントです。
| 単なる複数呼出 | マルチエージェント | |
|---|---|---|
| 役割設計 | 同じ役割を量で叩く | 異なる役割を分担 |
| 結果の使い方 | 個別に消費 | 統合判断 / 突合 |
| 独立性の意図 | 偶然 | 設計上の必須要件 |
| 例 | 3ファイルを3つの Explore で同時探索 | QC+FA+SD+DA で応答を多面検証 |
同じ軸で並べると差が見えます。
| 観点 | ハーネス | サブエージェント | マルチエージェント |
|---|---|---|---|
| 階層 | 一番外側の器 | 器の中で呼び出される実体 | サブエージェントの組合せ方(パターン) |
| 具体例 | Claude Code、Cursor、ChatGPTアプリ | quality-checker、Explore、fact-auditor | GPT-5 Mini Triad、調査→分析→提案パイプライン |
| 選択するもの | どのCLI/アプリを使うか | どの専門家を呼ぶか | どう組合せるか |
| 変更頻度 | 稀(プロダクト乗換) | セッション中に何度も | タスク種別ごとに設計 |
| 実体性 | アプリケーション | 独立した AI プロセス | 設計パターン(実体は複数のサブエージェント) |
| このプロジェクトでの所在 | .claude/・CLAUDE.md |
.claude/agents/ 配下の定義 |
Stop hook + 並列 Agent 呼出の設計 |
議論の場面で、どの単語を出すと噛み合うか。
When you mean — Harness
When you mean — Subagent
When you mean — Multi-agent
ハーネスは、AI を動かすための器。Claude Code そのもの。 フック・権限・メモリ・セッションを束ねる土台層で、ここを変えると AI 全体の挙動が変わります。
サブエージェントは、親 AI が呼び出す独立した別 AI。 別コンテキスト・別プロンプト・別権限で動き、最終結果だけが親に返ります。 コンテキスト保護・独立視点・並列処理・役割分離のために使います。
マルチエージェントは、サブエージェントを束ねて使う設計パターン。 単に複数呼ぶことではなく、役割分担と統合判断の意図がある時にだけ「マルチエージェント」と呼びます。 本プロジェクトの GPT-5 Mini Triad が典型例です。
入れ子で覚えてください。
Harness ⊃ Subagent ⊃ Multi-agent pattern