Agentic System設計のための5つのデザインパターン
Anthropicの記事を元に、拡張LLMを活用したAgentic System設計に役立つ5つの代表的なデザインパターンを解説します。


はじめに
この記事では、Anthropic の記事「Building effective agents」をもとに、エージェントシステムとその設計パターンについて解説する。
「エージェント」という言葉は文脈によって意味が揺れる。
一般には 自律的に長時間稼働し、複雑な作業をこなすシステム を指すことが多いが、
あらかじめ決められた手順を忠実に実行するシステム を指す場合もある。
Anthropic では両者をまとめて Agentic System と呼び、中心要素として次の 2 つを定義している。
要素 | 概要 |
---|---|
ワークフロー(Workflow) | 決められた手順に従い、LLM とツールを組み合わせてタスクを進行させる仕組み |
エージェント(Agent) | LLM 自身が作業手順や使用ツールを柔軟に決定し、タスクを達成するシステム |
前提:拡張 LLM(Augmented LLM)
エージェントシステムの基本構成要素は、Retrieval・Toolkit・Memory などを備えた拡張 LLM である。
これらの機能を活用することで、モデルは次のような高度な動作が可能となる:
- 必要な情報を検索するクエリを自分で作成する
- 目的に応じて適切なツールを選び、実行する
- 保持すべき情報を自ら判断し、記憶する
以下に紹介する5つのワークフローデザインパターンは、
このような拡張LLMを前提として構成される。
ワークフローのデザインパターン
1. プロンプトチェイニング(Prompt Chaining)
概要
タスクを複数のステップに分割し、各ステップをLLMが順番に処理する方式。
前のステップの出力を次のステップの入力とする「連鎖的」な設計である。
適用場面
明確に段階を分けられるタスクに適する。
一連の処理を1回のLLM呼び出しで行うのではなく、
複数回に分けることで処理の正確性が高まりやすい。
利用例
- マーケティングコピー作成 → 翻訳
- アウトライン作成 → 内容執筆 → 文章チェック
2. ルーティング(Routing)
概要
入力内容を分類し、分類結果に応じて異なる処理ルートに振り分ける方式。
異なる種類のタスクに対して、それぞれ専用のプロンプトやモデル設定を適用できる。
適用場面
処理対象が多様で、それぞれに適したアプローチがある場合に有効。
例えば、ユーザーの問い合わせが「返金依頼」「技術サポート」「一般質問」などに分かれる場合、
それぞれ異なる対応が求められる。
利用例
- カスタマーサポートの問い合わせ分類
- 難易度別で異なるLLMを使い分ける
3. 並列化(Parallelization)
概要
1つのタスクを複数の視点や切り口で同時に処理する方式。
同時実行によって処理時間を短縮したり、多様な観点からの出力を得ることで品質を高める。
適用場面
複数の評価観点がある、あるいはタスクを部分に分けて同時に処理できる場合に有効。
利用例
- コードレビューを複数の視点(可読性、セキュリティ、性能)から同時実施
- 複数の翻訳候補を生成して比較・投票
4. オーケストレーター-ワーカー(Orchestrator-Workers)
概要
中央のLLM(オーケストレーター)が、全体のタスクを細かく分解し、
各サブタスクを複数のLLM(ワーカー)に割り振る方式。
得られた結果はオーケストレーターが集約し、最終的な出力を生成する。
適用場面
タスクの内容や必要な処理の種類が事前に予測できない場合に有効。
たとえば、大規模なコード修正では、どのファイルにどのような変更を加えるべきかが動的に決まる。
利用例
- ソースコードの複数ファイルにまたがるリファクタリング
- マルチソース情報の収集と統合
5. 評価者-最適化(Evaluator-Optimizer)
概要
最初のLLMが出力した結果に対し、別のLLMが評価とフィードバックを行い、
それをもとに出力を改良するサイクルを繰り返す方式。
反復的に改善を加えることで、より高品質な結果を目指す。
適用場面
明確な評価基準があり、繰り返しの改善で成果が出るタスクに向いている。
利用例
- 翻訳結果の品質向上(自然さ、忠実さの両立)
- 探索的な調査や検索タスクの精度向上
まとめ
LLMを活用したエージェントシステムを設計するうえで重要なのは、
タスクの特性に応じたワークフローパターンを適切に選び、必要に応じて組み合わせること である。
初期段階ではなるべくシンプルな構成とし、実際の運用結果を観察しながら
徐々に複雑なパターンを導入していくアプローチが望ましい。
拡張LLMの能力を最大限に活かすことで、柔軟かつ高精度なエージェントシステムを実現できるだろう。
出典

通りすがりのラマ🦙
このブログでは個人開発で得た知見や興味のあるテクノロジーに関する記事を執筆します。 日々公開されている情報に助けられているので、自分が得た知見も世の中に還元していければと思います。 解決できないバグに出会うと、草を食べます。🦙🌿 経歴: 情報工学部→日系SIer→外資系IT企業 興味: Webアプリケーション開発、Webデザイン、AI 趣味: 個人開発、テニス