第4章

マルチエージェントハーネスの概念

マルチエージェントハーネスのコア概念を学びます。エージェント、スキル、PMオーケストレーション、3ティア戦略、PM Gateway、ディスパッチフロー、引き継ぎコントラクト — この章でハーネスの骨格のすべてを理解します。

本章で扱う内容
  • エージェントとスキルの定義
  • PMオーケストレーションとPM Gatewayの役割
  • 3ティア戦略(High/Medium/Low)
  • ディスパッチフローと引き継ぎコントラクト
  • ハーネスアーキテクチャ全体図

エージェントとは

エージェントの定義

エージェントとは、特定の役割を与えられ、定められた行動指針に従ってタスクを実行するAIアシスタントです。一般的なチャットボットとは異なり、エージェントは固有の名前・役割・行動ルールを持ち、ファイルの読み書きやツールの使用を許可されます。

第1章で例えたように、エージェントは会社の従業員のようなものです。PMはチームリーダーであり、スペシャリストエージェントは各部署の専門家です。企画担当エージェント、デザイン担当エージェント、コーディング担当エージェントがそれぞれの持ち場を果たせば、プロジェクト全体が効率よく進みます。

エージェントの構成要素

各エージェントは4つのコア要素で構成されます。この4つが揃って1つのエージェントを定義します。

エージェント(Agent) 1. 識別子(name) 例:research、design、storyline 2. 役割(role) 例:情報収集の専門家、デザイナー 3. 行動指針(instructions) エージェントが従うべき ルールと制約 4. ツール(tools) Read、Write、Edit、Bash、 WebSearch など 実際の定義ファイル:agents/<name>.md この4つの要素が揃って1つの完全なエージェントになります

具体的には次のとおりです。

  1. 識別子(name) — エージェントを区別する一意の名前です。co-deckでは researchdesignstorylinehtml-build のような短い英語名を使います。ファイル名がそのままエージェント名になります(例:agents/research.md)。
  2. 役割(role) — このエージェントが何をするのかを一文にまとめたものです。たとえばresearchエージェントの役割は「ウェブから情報を収集し、research_notes.mdに整理すること」です。役割が明確であるほど、PMは適切なエージェントを選べます。
  3. 行動指針(instructions) — エージェントがタスクを実行するときに従うべき詳細なルールです。「この形式でファイルを書け」「この場合はユーザーに確認しろ」といった指示が含まれます。行動指針が具体的であるほど、エージェントの出力は一貫性があり予測しやすくなります。
  4. ツール(tools) — エージェントが使用できるツールの一覧です。ファイル読み取り(Read)、ファイル書き込み(Write)、編集(Edit)、シェルコマンド(Bash)、ウェブ検索(WebSearch)などがあります。すべてのエージェントがすべてのツールを使えるわけではありません。たとえばPMエージェントはファイルを直接修正できないよう、ツールが制限されています。

ハーネス内のエージェントタイプ

co-deckハーネスは、プレゼンテーションパイプラインの各段階ごとに責任を持つ複数のスペシャリストエージェントを定義しています。

オーケストレーター

  • PMエージェント — プロジェクトマネージャーです。このエージェントはコードを書いたりファイルを直接編集したりしません。設定を読み、実行を計画し、スペシャリストエージェントを配置します。

コンテンツエージェント

  • research — ウェブソースを収集し、research_notes.mdを作成します。
  • storyline — ナラティブ構造とスライドごとのコンテンツを作成します。
  • source-verifier — URLを検証し、ソースの信頼性を確認します。

プロダクションエージェント

  • design — ビジュアルテーマ(色・フォント・レイアウト)を確定します。
  • html-build — デッキ仕様からHTMLスライドを生成します。
  • pdf-export — スライドをPDF出力に変換します。

アセットエージェント

  • image-curator — スライド画像を検索してダウンロードします。
  • diagram-specialist — SVGダイアグラムやチャートを生成します。
  • measure — PDF用のレイアウト座標を測定します。
さらに、すべての編集前にファイルのスナップショットを取って安全網となるversionエージェントもあります。このエージェントはすべての段階(0〜6)で実行されるため、問題が起きてもいつでも以前のバージョンに戻せます。

エージェントファイルの例

以下は、エージェント定義ファイルがどのようなものかを示す簡略化した例です。実際のファイルにははるかに多くの詳細が含まれますが、この例で全体のイメージをつかめます。

# agents/research.md
---
name: research
tier: medium
phases: 1
role: >
  ウェブ資料を収集し、ストーリーライン設計のための
  research_notes.mdを作成します。
dispatch_triggers:
  - "トピックを調査して"
  - "資料を収集して"
  - "リサーチノートを書いて"
---
## Instructions
- 韓国語と英語の資料を両方検索します。
- 調査結果をresearch_notes.mdに書きます。
- URL、重要な事実、ソースの信頼性メモを含めます。
- スライドコンテンツは作りません — それはstorylineエージェントの役目です。

このファイルが、エージェントが何をするのか(role)、いつディスパッチされるのか(dispatch_triggers)、何をしてはいけないのか(Instructionsの禁止ルール)を明確に定義している点に注目してください。この明確さこそが、マルチエージェント協調を安定して機能させる核心です。

スキルとは

スキルの定義

スキルとは、エージェントが実行できる再利用可能なワークフローです。エージェントが「誰」であるなら、スキルはそのエージェントが「何をするか」を定義します。1つのスキルは複数のステップからなる作業手順であり、特定のトリガーによって自動的に有効化されます。

わかりやすく言えば、エージェントが料理人ならスキルは料理のレシピです。料理人(エージェント)は複数のレシピ(スキル)を持っており、注文が入ると(トリガー)該当するレシピに沿って料理を準備します。

スキルの構成要素

各スキルは次の4つの要素で構成されます。

  1. 名前(name) — スキルを識別する一意の名前です。researchhtml-buildpdf-export のように、エージェント名と関連していることが多いです。
  2. 説明(description) — このスキルが何をするのか、どのステップを経るのかを説明します。PMはどのスキルをディスパッチするか決めるとき、この説明を参考にします。
  3. トリガー(trigger) — スキルが自動的に有効化される条件です。たとえばユーザーが「リサーチして」と言えば、researchスキルがトリガーされます。トリガーはキーワード、コマンドパターン、あるいはパイプラインの特定段階の場合があります。
  4. ステップ(steps) — スキルが実行される具体的な手順です。「1. ユーザーにトピックを確認 → 2. ウェブ検索を実行 → 3. 結果をresearch_notes.mdに書く」のように順番に定義されます。

スキル vs エージェント

エージェントとスキルは混同されがちですが、明確な違いがあります。

エージェント(Agent)

  • タスクを遂行する「誰が」
  • 役割・権限・ツールを持つAIアシスタント
  • 識別子(name)・役割(role)・指示・ツールで構成
  • 1つのエージェントが複数のスキルを持てる
  • 例え:料理人

スキル(Skill)

  • 遂行される「何を」
  • 再利用可能なワークフロー手順
  • 名前・説明・トリガー・ステップで構成
  • 1つのスキルを複数のエージェントが共有できる
  • 例え:料理のレシピ
エージェントが料理人なら、スキルは料理のレシピです。1人の料理人がパスタのレシピ(スキル)とステーキのレシピ(スキル)を両方持てる一方で、同じパスタのレシピを複数の料理人が共有することもできます。

スキルの階層構造

co-deckでは、スキルは3つの場所で定義でき、それぞれ優先順位が異なります。

優先順位

  • 優先度1 — ワークスペーススキル(skills/
  • 優先度2 — プラットフォームスキル(.claude/skills/.gemini/skills/
  • 優先度3 — グローバルプラグインスキル

核心ルール

  • 同じスキルが複数の場所にあれば優先度1を使用
  • ワークスペーススキルはskills/フォルダのみに置く
  • プラットフォームスキルはClaude/Gemini専用フック
  • 重複定義は避けるのが原則
初心者向けヒント:最初はスキルの内部構造をすべて理解する必要はありません。「エージェントに何かをできるようにしてくれるレシピ」だと覚えておけば十分です。後の実習の章(第6〜8章)で実際のスキルファイルを開けば、自然に理解できます。

PMオーケストレーション

PM(Project Manager)エージェントの役割

PMエージェントはマルチエージェントハーネスの中心であり単一窓口(Single Point of Entry)です。ユーザーはPMにだけ直接リクエストを行い、PMがリクエストを分析して適切なスペシャリストエージェントを選び、作業を割り当てます。

PMの核心的な役割を段階ごとに整理すると次のとおりです。

  1. リクエスト分析 — ユーザーのリクエストを理解し、どの作業が必要か判断します。「新しいプレゼンテーションを作って」という依頼が来れば、それがリサーチ → ストーリーライン → デザイン → HTMLビルド → PDF出力という一連の段階で構成されることを把握します。
  2. スペシャリストエージェントの選択 — リクエストの内容に応じて最も適したスペシャリストエージェントを決めます。リサーチが必要なら research エージェントを、デザインが必要なら design エージェントを選びます。
  3. 作業割り当て(ディスパッチ) — 選ばれたスペシャリストエージェントに具体的な作業指示を下します。このとき、読み取り作業か書き込み作業かに応じて並列または順次で実行します。
  4. 結果の取りまとめ — 各スペシャリストエージェントが完了した作業結果を収集し、次の段階へ引き渡す準備をします。
  5. 品質レビュー — 主要な段階で成果物が品質基準を満たすか確認します。基準に満たなければ修正を要求します。

PMオーケストレーションフロー図

ユーザー リクエスト PMエージェント リクエスト分析 → エージェント選択 → 割り当て research 情報収集担当 design デザイン担当 html-build HTMLビルド担当 成果物の取りまとめ 結果の報告 最終結果 PMはすべてのリクエストの単一窓口であり、直接実行せず調整だけを担います

PMは直接実行しない

PMの最も重要な特徴は、ファイルを直接書いたりコードを実行したりしないことです。PMはオーケストレーター(指揮者)としてスペシャリストエージェントに作業を指示するだけで、自ら成果物を作りません。

このルールが重要な理由は次のとおりです。

  • 責任所在の明確化 — 成果物に問題があれば、その分野のスペシャリストエージェントが修正します。PMが直接作ったファイルなら「PMが直すべきか、スペシャリストが直すべきか」で混乱が生じます。
  • 専門性の保証 — 各分野はスペシャリストエージェントが最もよく知っています。PMがデザインファイルを直接作れば、専門性が落ちるおそれがあります。
  • ガバナンスの分離 — 調整(管理)と実行(作業)を分けると、システムはより安定して動きます。人間の組織でも管理者と実務者の役割が分かれているのと同じ原理です。
PMはオーケストラの指揮者です。自分では楽器を演奏せず、誰がどの楽器をいつ演奏するかを指示します。バイオリンはバイオリン担当が、チェロはチェロ担当が演奏し、指揮者が全体を調和へと導きます。

品質ゲート

パイプラインの特定の地点で、PMは作業を一時停止し、レビューのため成果物を提示します。こうしたチェックポイントをゲートと呼びます。ゲートには2種類あります。

  • 必須ゲート — 明示的に承認するまでパイプラインは進めません。ゲート2(コンテンツ準備完了後)とゲート5(サンプルPDF生成後)は必須です。
  • 任意ゲート — PMがサマリーを見せた後、自動的に続行します。ゲート1.5(ソース検証)、ゲート3(デザイン仕様)、そしてゲート4(HTMLドラフト)は任意です。
ゲートが重要な理由:ゲートがなければ、パイプラインは調査段階からPDFまで方向修正の機会なしに一気に進んでしまいます。ゲートがあれば、デザイン確定前にストーリーラインをレビューし、PDF全体の生成前にレイアウトをプレビューできるため、時間と無駄な労力を節約できます。

3ティア戦略

なぜ複数のAIモデルが必要なのか?

AIモデルは性能が高いほどコストも高くなります。複雑な設計作業に最上位モデルを使えば良い結果が得られますが、簡単なファイル検索やスクリプト実行にも最上位モデルを使うのは非効率です。

このコストと性能のバランスを取るため、ハーネスはAIモデルを3つの階層(ティア)に分けて割り当てます。会社にプリンシパルエンジニア、シニア、ジュニアがいるように、タスクの複雑さに応じて適切なモデルを選ぶのです。

3つのティア

Highティア(高性能)

  • 目的:複雑な推論、アーキテクチャ設計、計画立案
  • 対象:PMエージェント(オーケストレーション)
  • コスト:高い
  • 例え:プリンシパルエンジニア
  • プロジェクト全体の方向性を決める複雑な判断に使われます

Mediumティア(均衡)

  • 目的:コードレビュー、品質チェック、QA
  • 対象:スペシャリストエージェント(大部分)
  • コスト:中程度
  • 例え:シニアエンジニア
  • 専門分野の実務作業と品質レビューに使われます

Lowティア(高効率)

  • 目的:単純な反復作業、スクリプト保守
  • 対象:versionエージェントなどの軽量作業
  • コスト:低い
  • 例え:ジュニアエンジニア
  • パターンが決まった反復作業に使われます

ティア調整ルール

  • PMは簡単な作業のティアを下げてコスト削減できる
  • ただし基本ティアより上げることはできない
  • 下げたティアで作業が失敗したら元に戻す
  • 初心者はデフォルト設定のまま推奨

3ティア比較表

項目 High-Tier Medium-Tier Low-Tier
役割 設計、計画、推論 レビュー、品質チェック、QA 単純なコーディング、スクリプト
コスト 高い 中程度 低い
例え プリンシパルエンジニア シニアエンジニア ジュニアエンジニア
対象エージェント PM ほとんどのスペシャリストエージェント versionなど軽量作業
モデル例 claude-opus-5-0、gemini-3.1-pro claude-sonnet-5-0、gemini-3.7-flash claude-haiku-4-5、gemini-3.7-flash

核心ルール

上の比較表と合わせて、3ティア戦略で覚えておくべき核心ルールは次のとおりです。

  • ティアは下げられても上げられることはない。PMは単純な作業のコストを節約するため、より低いティアのモデルを割り当てられますが、エージェントに定義された基本ティアより高いモデルを割り当てることはできません。下げたティアで作業が失敗した場合は、再試行時に必ずエージェントの基本ティアを復元します。
  • オーケストレーターは常にHighティアを使う。PMはどのエージェントをディスパッチするか、どんな順序で実行するかといった最も重要な決定を下すため、常に最高レベルの推論で動作します。
  • レビューアーは独立していなければならない。作業を遂行したエージェントがその成果物をレビューすることはありません。この分離は専任のQAチームを置くのと同じ原理で、実質的な品質管理を保証します。
初心者向けヒント:3ティア戦略は上級トピックです。最初はデフォルト設定をそのまま使えば十分です。co-deckの基本構成はすでに各エージェントに適切なティアを割り当てているので、自分で調整する必要はありません。コスト最適化が必要になった時点で、ティア調整を学べばよいのです。

PM Gateway

PM Gatewayの定義

PM Gatewayとは、すべてのスペシャリストエージェントがPMを通じてのみ呼び出されるよう強制するルールです。ユーザーはPMにだけリクエストし、PMが適切なスペシャリストエージェントを選んで作業を委任します。スペシャリストエージェント(例:research、design)への直接リクエストは許されません。

このルールは「なぜ」必要なのでしょうか? 3つの核心的理由があります。

  • 統制(Control) — すべてのリクエストがPMを経由すれば、作業全体の流れを一箇所で管理できます。複数のスペシャリストエージェントが同じファイルを同時に修正したり、衝突する作業を行ったりするのを防ぎます。
  • 一貫性(Consistency) — PMがリクエストの優先順位を決め、適切な順序でエージェントを配置します。これによりプロジェクト全体が一貫した流れを保ちます。
  • 品質(Quality) — 各段階でPMが成果物をレビューし、次の段階へ進むか修正を求めるかを判断します。これにより最終成果物の品質が保証されます。

なぜゲートウェイなのか?

すべての社員が自由にCEOのもとへ行って指示を出せる会社を想像してください。大きな混乱が生じるでしょう。ハーネスでも同じです。ユーザーがdesignやresearchのようなスペシャリストエージェントを直接呼び出せてしまうと、PMはワークフローを計画し、順序を決め、品質をレビューする能力を失います。ゲートウェイはまさにこれを防ぐために存在します。

ゲートウェイの動作方式

PM Gatewayは4重の防御線で強制されます。多層防御(defense in depth)が互いを補完します。

  1. Tool-Level(ツールレベル) — エージェントツール自体がPMを迂回する呼び出しを拒否します。最も強力な強制層で、正しい鍵でのみ開く施錠された扉のようなものです。
  2. System Prompt-Level(システムプロンプトレベル) — プラットフォーム(Claude CodeまたはAntigravity CLI)がPMのルールを最初に読み込むため、AIは最初からリクエストをPM経由にすべきだと認識します。
  3. Agent File-Level(エージェントファイルレベル) — すべてのスペシャリストエージェント定義ファイルには、PMだけが自分をディスパッチできると明記した「PM-ONLY INVOCATION」セクションが含まれています。
  4. QA Gate-Level(品質レビューレベル) — 監査(auditor)エージェントがフェーズ6の品質監査でPM迂回の試みを検出し、違反として報告します。

すぐ次のセクションで、この4段階の強制層をダイアグラムで確認できます。

4段階強制レイヤー

PM Gatewayは4つの水準で強制されます。このうちどれか1つでも違反されれば、スペシャリストエージェントは実行されません。

  1. Tool-Level(ツールレベル) — エージェントツール自体がPM以外の呼び出しを拒否します。技術的に最も強力な強制水準です。
  2. System-Level(システムプロンプトレベル) — CLAUDE.md、GEMINI.mdなどのシステム設定ファイルにPM Gatewayルールが明記されており、AIモデルは最初からこのルールを認識します。
  3. Agent-Level(エージェントファイルレベル) — 各スペシャリストエージェントの定義ファイルに「PM-ONLY INVOCATION」セクションが含まれ、エージェント自身も直接呼び出しを拒否します。
  4. QA-Level(品質レビューレベル) — 最終段階の品質レビューで、PM Gateway迂回の事例がないか監査します。
ユーザー リクエストはここだけ OK PM 単一窓口 research design html-build X 直接呼び出し禁止 4段階強制 1. Tool-Level 2. System-Level 3. Agent-Level 4. QA-Level
スペシャリストエージェントを直接呼び出してはいけません。research、design、html-buildなどのスペシャリストエージェントにユーザーが直接依頼すると、PM Gatewayルールに違反します。スペシャリストエージェントは必ずPMを通してのみ呼び出してください。
PM Gatewayは会社の組織体系に似ています。一般社員は他部署のメンバーに直接業務を指示せず、必ず自分のチームリーダーを通じて伝えるのと同じです。これにより業務の重複・漏れ・衝突を防ぎます。

PMの直接実行範囲

PM自身にも、直接実行できる作業に関する制限があります。

常に許可されるもの

  • ファイルの読み取り
  • 検索(glob、grep)
  • タスクの作成とステータス更新
  • ユーザーへの質問
  • 読み取り専用bashコマンドの実行(git statusls

制限されるもの

  • ファイルの書き込み/編集 — memory/*.mdCHANGELOG.mdのみ
  • Bash書き込みコマンド — スペシャリストに委任が必要
  • コード実装 — スペシャリストに委任が必要
  • デザイン作業 — スペシャリストに委任が必要
重要:スペシャリストエージェントを直接呼び出そうとしないでください。常にPMを通して進めてください。PMワークフローを経由せず直接依頼すると、その要求はツールレベルで拒否されます。これは意図された設計です。ゲートウェイはすべての行動が計画され、追跡され、品質検査を経ることを保証します。

ディスパッチフロー

ディスパッチとは?

ディスパッチ(Dispatch)とは、PMがスペシャリストエージェントに作業を割り当てる過程を意味します。ユーザーのリクエストが入ると、PMはリクエストの性質を分析(トリアージ)し、適切なスペシャリストエージェントを選んで作業を指示します。

並列ディスパッチ vs 順次ディスパッチ

ディスパッチには2つのモードがあります。作業の性質に応じて適切なモードが選ばれます。

並列ディスパッチ(Parallel)

  • 対象:読み取り専用作業
  • 複数のエージェントを同時に実行
  • リサーチ、分析、検査など相互干渉しない作業
  • 利点:時間短縮
  • 例:research + source-verifier を同時実行
  • ファイル競合の恐れがない作業に適合

順次ディスパッチ(Serial)

  • 対象:書き込み作業
  • エージェントを1つずつ順番に実行
  • ファイル生成・編集など衝突の可能性がある作業
  • 利点:安全性の確保
  • 例:design 完了後に html-build を実行
  • 前段の成果物が次段の入力になる作業に適合

ディスパッチフロー図

ユーザーリクエスト(User Request) PMトリアージ(リクエスト分析) 読み取り専用? 書き込み作業? 並列(Parallel) Agent A Agent B 順次(Serial) Agent C Agent D 結果 結果 Results(成果物) QA Gate → 最終化

ディスパッチの意思決定フロー

PMがリクエストを受けた後、どの方式でディスパッチするかを決める過程は次のとおりです。

1. リクエスト受信 — ユーザーのリクエストをPMが受け取ります。
2. 作業の性質分析 — リクエストが読み取り専用か書き込み作業かを判断します。
3. 読み取り専用なら → 並列ディスパッチ — 複数のエージェントを一度に実行します。例:リサーチとソース検証を同時に進行。
4. 書き込み作業なら → 順次ディスパッチ — エージェントを1つずつ順番に実行します。前のエージェントの出力が次のエージェントの入力になるため、順序が重要です。
5. 結果収集 → QA Gate → 最終完成 — すべてのエージェントの成果物を取りまとめた後、品質レビューを経て最終結果をユーザーに渡します。
並列ディスパッチは、まるで複数のチームが同時に各自の調査を進めるようなものです。あるチームが市場調査をし、別のチームが競合分析をする、という具合です。一方、順次ディスパッチは組み立てラインのようなものです。企画が終わってからデザインを始め、デザインが終わってから開発を始める、という具合です。

引き継ぎコントラクト

引き継ぎとは?

引き継ぎ(Handoff)とは、エージェント間で作業結果を受け渡す方式を意味します。マルチエージェントハーネスでは、あるエージェントが完了させた成果物が次のエージェントの入力として使われます。このとき「どの形式で」「どのパスに」「どの品質基準を満たして」引き渡すかをあらかじめ定義しておく必要があります。この取り決めを引き継ぎコントラクト(Handoff Contract)と呼びます。

引き継ぎコントラクトの3要素

引き継ぎコントラクトは3つのコア要素で構成されます。

  1. 入力形式(Input Format) — エージェントが作業を始めるのに必要な入力の形式と場所です。たとえばstorylineエージェントは research_notes.md ファイルを入力として受け取ります。入力ファイルがどこにあるのか、どの構造なのかが明示されていなければなりません。
  2. 出力形式(Output Format) — エージェントが作業を終えた後に生成する成果物の形式と場所です。たとえばresearchエージェントは research_notes.md を生成し、storylineエージェントは storyline.mdslide_deck.md を生成します。ファイル名・パス・内部構造が決まっていなければ、次のエージェントが読めません。
  3. 品質基準(Quality Criteria) — 出力が満たすべき最低限の基準です。たとえば「research_notes.mdには最低10個以上のソースが含まれていなければならない」「slide_deck.mdの各スライドにはタイトルと本文がなければならない」といった基準がこれに当たります。この基準を満たさない出力は次の段階へ進めません。

引き継ぎの例:research → storyline

co-deckで最も代表的な引き継ぎは、researchエージェントからstorylineエージェントへの引き渡しです。

researchエージェント 入力:ユーザーリクエスト(トピック) 作業:ウェブ検索、資料収集 出力: research_notes.md 引き継ぎ ファイルパス、形式、品質基準 storylineエージェント 入力: research_notes.md 作業:ストーリー、スライド構成 出力:storyline.md + slide_deck.md

ダイアグラムが示すように、researchエージェントが research_notes.md という形で出力すれば、storylineエージェントが同じファイルを入力として受け取り、自身の作業を行います。このとき research_notes.md のパス・ファイル名・内部構造(マークダウン形式、セクション構成など)が引き継ぎコントラクトによってあらかじめ定義されていなければなりません。

引き継ぎコントラクトが重要な理由

  • 誤りの防止 — ファイル名が間違っていたりパスが誤っていたりすると、次のエージェントが入力を見つけられず、パイプライン全体が止まります。引き継ぎコントラクトがあれば、こうしたミスを防げます。
  • 独立性の保証 — エージェント間の依存関係が明確になると、各エージェントを独立に開発・テストできます。「入力がAなら出力はB」という約束だけ守ればよいので、内部実装は自由に変更できます。
  • 交換可能性 — 引き継ぎコントラクトさえ守れば、特定のエージェントを別のエージェントに置き換えられます。たとえばresearchエージェントをもっと性能の高いバージョンに変えても、出力形式が同じならstorylineエージェントは一切変更せずにそのまま動きます。
引き継ぎコントラクトは、エージェント間の「引継ぎマニュアル」です。会社である部署から別の部署へ業務を引き渡すとき、引継ぎ文書の様式と基準をあらかじめ決めておくのと同じです。このマニュアルがあれば、業務の引き継ぎは円滑で漏れがありません。

ハーネスアーキテクチャ全体図

この章で説明したすべての概念を1枚の図にまとめてみましょう。以下はco-deckハーネスの全体的なアーキテクチャを表すダイアグラムです。

ユーザー PM Gateway PMエージェント(3ティア:High) オーケストレーション · Gateway強制 · 品質管理 research Medium-Tier storyline Medium-Tier html-build Medium-Tier 引き継ぎ 引き継ぎ スキル:research.md スキル:storyline.md スキル:html-build.md 最終成果物 research_notes.md → storyline.md → slide_deck.md → lecture.html → PDF QA Gate(品質レビュー) ユーザーへ最終結果を引き渡し
本章のまとめ
  • エージェントは役割・指示・ツールを持つAIアシスタントです。PMはオーケストレーター、スペシャリストエージェントは実行者です。
  • スキルはエージェントが実行する再利用可能なワークフローです。エージェントが「誰」なら、スキルは「何をするか」です。
  • PMオーケストレーションは、リクエスト分析 → エージェント選択 → 作業割り当て → 結果取りまとめ → 品質レビューの流れです。
  • 3ティア戦略は、コストと性能のバランスを取るためのモデル階層化方式です。High(設計)、Medium(実務)、Low(単純作業)です。
  • PM Gatewayは、すべてのスペシャリストエージェントがPMを通してのみ呼び出されるよう強制する4段階ルールです。
  • ディスパッチは、読み取り専用 → 並列、書き込み作業 → 順次に分かれます。
  • 引き継ぎコントラクトは、エージェント間の出力引き渡しの入力形式・出力形式・品質基準を定義します。
次章の予告:第5章では、これらの概念が実際のプロジェクトリポジトリ(ai-workspace-standards)でどう実装されているかを見ていきます。AGENTS.md、agents/フォルダ、skills/フォルダの実際のファイルを開き、この章で学んだ概念がコードとしてどう表現されているか確認してみてください。