0Pricing
AI Agents · レッスン

階層型スーパーバイザー(オーケストレーター + ワーカー)

スーパーバイザーが計画と委任を行い、ワーカーが実行して報告します。複雑なタスクに適した堅牢なパターンです。

「階層型スーパーバイザー(オーケストレーター + ワーカー)」はCoddyKit上の無料AI Agentsレッスンです。 これはレッスン2/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはAI Agents学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 AI Agentsコースには全4レッスンが含まれています。

このレッスンの一部はまだ翻訳されておらず、英語で表示されています。

スーパーバイザーパターン

1 つの「スーパーバイザー」エージェントが何をすべきかを判断し、専門化された「ワーカー」エージェントに委任します。ワーカーは結果を報告し、スーパーバイザーが統合します。

自由形式の会話よりも、人間のチームの働き方に近い構成です。

構造

2 つのレベル(場合によってはそれ以上)で構成します:

  • Supervisor — ユーザーのクエリを確認し、分解して、ワーカーを選び、結果を統合する
  • Workers — それぞれが独自のツールとプロンプトを持つ専門エージェント(調査、コード、数学)

なぜ階層構造なのか

  • 推論が整理される — スーパーバイザーが全体像を把握する
  • 専門化できる — 各ワーカーが小さく、焦点を絞れる
  • 評価しやすい — ワーカーを個別にテストできる
  • 新しい機能を追加しやすい — 新しいワーカーを登録するだけでよい

LangGraph Implementation

from langgraph.graph import StateGraph, END
from typing import TypedDict, Annotated
import operator

class State(TypedDict):
    messages: Annotated[list, operator.add]
    next: str

def supervisor(state):
    # Ask LLM which worker should handle this
    decision = supervisor_llm.invoke(state['messages']).content   # 'researcher' / 'coder' / 'FINISH'
    return {'next': decision}

def researcher(state):
    result = research_agent.run(state['messages'][-1].content)
    return {'messages': [{'role': 'tool', 'content': result}], 'next': 'supervisor'}

def coder(state):
    result = code_agent.run(state['messages'][-1].content)
    return {'messages': [{'role': 'tool', 'content': result}], 'next': 'supervisor'}

Wiring the Graph

g = StateGraph(State)
g.add_node('supervisor', supervisor)
g.add_node('researcher', researcher)
g.add_node('coder', coder)

g.set_entry_point('supervisor')
g.add_conditional_edges(
    'supervisor',
    lambda s: s['next'],
    {'researcher': 'researcher', 'coder': 'coder', 'FINISH': END}
)
g.add_edge('researcher', 'supervisor')
g.add_edge('coder', 'supervisor')

app = g.compile()

ワーカーの独立性

各ワーカーは自己完結したミニエージェントです。それぞれを単独で構築・テストし、スーパーバイザーの下で組み合わせてください。

ワーカーのツールセット

各ワーカーが必要とするツールだけを使用できるように制限してください:

  • Researcher — search、fetch
  • Coder — read_file、write_file、run_python
  • Database — list_tables、run_sql

ツールの説明が簡潔になり、混乱も減ります。

通信形式

ワーカーは完全なトランスクリプトではなく、構造化された要約をスーパーバイザーに返します。トークンを節約でき、スーパーバイザーも統合しやすくなります:

class WorkerResult(BaseModel):
    summary: str
    citations: list[str]
    next_step_suggestion: str = ''

終了

停止するタイミングはスーパーバイザーが決定します。一般的には次の条件を使います:

  • 信頼度がしきい値を超えた
  • ワーカーからタスク完了のシグナルが届いた
  • ステップカウンターが上限を超えた

複数レベルの階層構造

非常に複雑なタスクでは、第 3 層を追加します。たとえば、エンジニアリング用の「チームリード」スーパーバイザーと、調査用の別のスーパーバイザーを置きます。それぞれが分野ごとのワーカーに委任します。

コスト特性

スーパーバイザーが判断するたびに、LLM 呼び出しが 1 回発生します。各ワーカーも独自のループを持ちます。総コストは、おおよそ N_supervisor_decisions × cost_per_decision + N_worker_loops × cost_per_loop です。

使用する場面

  • サブドメインが明確な複雑なタスク
  • ステップごとに異なるプロンプトスタイルが必要なタスク
  • 機能を段階的に追加したいシステム

アンチパターン

  • スーパーバイザーが実作業をすべて行う — パターンの目的を失います
  • スーパーバイザーに知らせずワーカーが別のワーカーを呼び出す — 制御を失います
  • ワーカーが多すぎる(10 を超える) — スーパーバイザーによる選択の信頼性が低下します

スーパーバイザーの役割

このパターンにおけるスーパーバイザーの主な仕事は何ですか?

まとめ

スーパーバイザー + ワーカーは、1 つの巨大なエージェントより優れています。各ワーカーは小さく、焦点が絞られ、独立してテストできます。誰が何に取り組むかはスーパーバイザーが決定します。

よくある質問

「階層型スーパーバイザー(オーケストレーター + ワーカー)」レッスンは無料ですか?

はい。「階層型スーパーバイザー(オーケストレーター + ワーカー)」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、AI Agentsコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 AI Agentsコースには全4レッスンが含まれています。

「階層型スーパーバイザー(オーケストレーター + ワーカー)」で何を学びますか?

スーパーバイザーが計画と委任を行い、ワーカーが実行して報告します。複雑なタスクに適した堅牢なパターンです。 ブラウザで直接実行するハンズオンコードでAI Agentsを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。

AI Agentsを始めるのに経験は必要ですか?

事前経験は必要ありません。CoddyKitのAI Agentsは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン2/4です。

「階層型スーパーバイザー(オーケストレーター + ワーカー)」レッスンにはどのくらい時間がかかりますか?

ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。

このAI Agentsレッスンでコードを書いて実行できますか?

はい。すべてのAI Agentsレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。

このコースのすべてのレッスン

  1. 会話ベースのマルチエージェント(AutoGen)
  2. 階層型スーパーバイザー(オーケストレーター + ワーカー)
  3. エージェントのロールと専門分野
  4. 通信プロトコル(メッセージバス)
← AI Agentsに戻る