ループからグラフへ: エージェントシステムのオーケストレーション工学
シリーズの最終コースであり、扱うのは1 つのループの上にあるエンジニアリングのレイヤーです。コース7 で手書きしたハーネスはループです――公式の言い方では、エージェントは "are typically just LLMs using tools based on environmental feedback in a loop" です。しかしタスクがある大きさを超えると、1 つのループでは足りなくなります。処理すべきものが 1 つのコンテキストウィンドウを超える、同じステップを何十もの項目にわたって繰り返さなければならない、あるいは 1 つの会話では調整しきれないほど多くのエージェントが必要になる。本コースは、制御フローをモデルの手からコードへ取り戻す方法を教えます。まず、ワークフロー(あらかじめ定義されたコードパスを通じて LLM とツールがオーケストレーションされるもの)とエージェント(モデル自身がプロセスを差配するもの)の構造上の線を、「誰が計画を保持するか」という軸で引きます。次に、本番で実証されたワークフローのパターンを 1 つずつコードに落とします――チェイニングとルーティング、並列化(セクショニングと投票)、オーケストレーター・ワーカー、evaluator-optimizer のループ。そして、実在する本番システムの帳簿に正直に向き合います。90.2% の向上(社内のリサーチ評価上、Opus 4 のリードと Sonnet 4 のサブエージェントによるもので、幅優先のクエリで最も強い)と 15 倍のトークンコストは 1 枚のコインの裏表であり、同期実行のボトルネック、調整の複雑さの爆発、委譲プロンプトの 4 要素はいずれも彼らが踏んだ落とし穴です。最後にパターンを合成します――本コースはこの合成を「グラフ」と呼びますが、これは我々自身の作図であって公式の語彙ではありません――そしてハンズオンで、コース7 の単一ループのハーネスを決定的なオーケストレーションスクリプトに引き上げます。ルーティング、ファンアウト、マージ、レビューループ。ループは相変わらず同じループで、動いたのは計画がコードに移ったことだけです。このシリーズの最初の 11 のコースを終えた読者向けです。サードパーティのオーケストレーションフレームワークは扱わず(LangGraph などには触れません)、マルチエージェントの分業とコミュニケーション(コース6)も、ワークフローの概念と作図(コース2)も教え直しません。本コースが受け持つのは、制御フローが、読めて、実行できて、再実行できる 1 本のコードになることです。
コース構成
- 1つのループでは足りないとき
- つなぐ、振り分ける: チェイニングとルーティング
- 並列化: セクショニングと投票
- オーケストレーター・ワーカー: 分解そのものを動的にする
- レビュー回路と、パターンをグラフに組み上げる
- 実践: ハーネスを小さなグラフに引き上げる
学習目標
このコースを終えると、次のことができるようになります:
- ワークフローとエージェントの構造上の区別(あらかじめ定義されたコードパス 対 モデル自身がプロセスを差配する)を述べ、「誰が計画を保持するか」を問うことでシステムを決定性の軸の上に位置づけ、「1 つのループでは足りない」の実際のトリガーと、オーケストレーションに値しないケースの両方を見分ける
- チェイニングとルーティングをコードとして書く: 各ステージが 1 つの完全なハーネスループ、ステージの間にプログラム的なゲート、分類して専用プロンプトへ振り分ける――そしてそれが何を買い、何を支払うのかを知る
- 並列化の 2 つの変種(セクショニングと投票)を実装し、結果をコードで集約し、ファンアウトの利得(速度、独立した視点、並列のコンテキスト容量)とコスト(結果はオーケストレーターに戻ってくる。実在のプロダクトはどれも同時実行に上限を引いている)を説明し、ペイロードではなく参照を渡すことでマージのコストを制御する
- オーケストレーター・ワーカーを実装し、並列化との決定的な違い(サブタスクはあらかじめ定義されず、入力を見てオーケストレーターが決める)を述べる。委譲プロンプトに 4 要素(目的、出力形式、ツールの指針、タスクの境界)を備え、タスクの複雑さに応じて予算を配分し、同期実行のボトルネックと非同期化の 3 つのコストに向き合う
- evaluator-optimizer のループ(チェックし、直し、もう一度チェックする――通るか、良くならなくなるまで)を、それを作る価値があるかどうかを教える 2 つのシグナルとともに実装する。5 つのパターンを、本コースが「グラフ」と呼ぶものに合成する――それが本コース独自のエンジニアリング上の比喩であり、「ワークフローのスクリプト自身がループ、分岐、中間結果を保持する」という一次の記述に錨を下ろしていることを承知したうえで
- ハンズオンで、コース7 の単一ループのハーネスを決定的なオーケストレーションスクリプトに引き上げる――ルーティング → 3 つのワーカーへのファンアウト → マージ → レビューループ → レポート――状態はスクリプトの変数に、監査証跡は 1 ステップずつ。そしてそれを、レッスン3・4・5 とコース7・9・10・11 が交わした約束に対して 1 行ずつ突き合わせる
前提知識
- このシリーズの最初の 11 のコースを終えている、または同等の知識がある
stop_reason駆動のハーネスループを手書きできる(コース7。本コースの「グラフ」のノードは、どれもそれ 1 つです)- マルチエージェントの分業の原則と委譲プロンプト(コース6)、評価に基づく検証(コース10)、可観測性(コース11)を知っている
- 基本的な JavaScript / Node.js のコードを読み書きできる(レッスン6 では一緒に書き進めます)
想定学習時間
約 3〜4 時間(各レッスンのハンズオン演習を含む)。