設計パターン:ワークフロー vs エージェント
ここまで部品を学んできました。結論から言うと、それらを組み合わせる前に「そもそも自律エージェントが必要か」を見極めることが大切です。Anthropic の解説「Building effective agents」は、最も成功している実装ほど複雑なフレームワークではなくシンプルで組み合わせ可能なパターンを使っている、と指摘しています。
ワークフローとエージェントの違い
同記事は、両者を次のように区別します。
- ワークフロー: あらかじめ決めたコードの経路にそって、LLMやツールが動くシステム。手順が決まっているぶん、結果が予測しやすく安価で安定します。
- エージェント: LLM自身が進め方やツールの使い方を動的に決めるシステム。柔軟ですが、コストや予測しにくさが増します。
代表的なワークフローのパターン
記事では、決定的なワークフローとして次のようなパターンが紹介されています。
- Prompt chaining(プロンプト連鎖): タスクを複数ステップに分け、前の出力を次の入力にする。
- Routing(ルーティング): 入力の種類を判定し、適切な処理へ振り分ける。
- Parallelization(並列化): 複数の処理を同時に行い、結果をまとめる。
- Orchestrator-workers(指揮者と作業者): 中心の指揮役がサブタスクを切り出し、複数の作業役に割り振る。
- Evaluator-optimizer(評価と改善): 一方が生成し、もう一方が評価して、改善を繰り返す。
これらは「次に何をするか」が事前に決まっている点で、自律エージェントとは異なります。
いつエージェントにするか
記事の助言は明快で、まず最もシンプルな解から始め、性能が明確に改善するときだけ複雑さを足すこと。多くの課題は、1回のLLM呼び出しや上記のワークフローで十分に解けます。自律エージェントが向くのは、手順を事前に決めきれず、柔軟な判断が長く必要な、開放的な課題です。
判断の目安:
手順を決められる? → ワークフロー
途中の判断が読めず柔軟さが要る? → エージェント
まとめ
ワークフローは決まった経路、エージェントは自分で決める柔軟さ。prompt chaining・routing・parallelization・orchestrator-workers・evaluator-optimizer といったパターンを知り、「まずシンプルに」を原則に据えましょう。次は、複数のエージェントが協調する設計を見ます。