階層型スーパーバイザー(オーケストレーター + ワーカー)
スーパーバイザーが計画と委任を行い、ワーカーが実行して報告します。複雑なタスクに適した堅牢なパターンです。
「階層型スーパーバイザー(オーケストレーター + ワーカー)」は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フィードバックを取得できます。ローカル設定は不要です。
このコースのすべてのレッスン
- 会話ベースのマルチエージェント(AutoGen)
- 階層型スーパーバイザー(オーケストレーター + ワーカー)
- エージェントのロールと専門分野
- 通信プロトコル(メッセージバス)