1. はじめに
大規模言語モデル(LLM)の普及に伴い、「自律的にタスクをこなすエージェント」への注目が高まっています。本記事では、エージェントシステムの基本構造と、LLMを用いてどのように設計・実装すればよいのかを概説します。
2.AIエージェントとは何か?
まずエージェントの定義から整理します。ここでいうエージェント
とは、自律的に振る舞い、必要に応じて環境と相互作用しながら、タスクを遂行するソフトウェアコンポーネントを指します。
- 自律性(Autonomy)
環境(ユーザ入力や外部データ、APIなど)からの情報を受け取って、自分自身で意思決定し行動を変化させる能力を持ちます。 - 環境とのやり取り
必要に応じてAPIを呼び出したり、他のエージェントや人間とのコミュニケーションを行います。 - 内部状態の保持・学習
継続学習や推論機能を持つ場合は、過去の実行結果を踏まえて、行動方針を更新することもあります。
誤解されがちなのは、「LLMにキャラクターやペルソナを与える=AIエージェント」というわけではないという点です。エージェントとしての振る舞いを定義し、環境に応じた計画や実行を行うロジックが組み込まれていることが重要になります。
3.エージェントデザインパターンの概要
エージェントベースのシステムでは、複雑なタスクを計画(Planning)
と実行(Execution)
に分解し、複数のエージェントで協調して動かすデザインパターンがよく採用されます。
-
Planning Agent
- 役割: 目標(ゴール)の設定、タスクの分解・優先度付け、戦略立案
- 特徴: タスク全体を俯瞰し、最適なアクションケースを決定する
-
Worker Agent
- 役割: Planning Agentが策定した計画をもとに実際の作業(APIの呼び出し、外部リソース操作など)を行う
- 特徴: 実行とモニタリング、結果のフィードバック
このように、意思決定や計画を担当するエージェントと、実際の処理を担当するエージェントを分けることで、役割分担が明確になり、システムの拡張性が高まります。また、必要に応じて監視エージェント
やインターフェースエージェント
を追加することもあります。
4. Planning Agent(ゴール生成・計画立案)
Planning Agent は、ユーザーの要求を受け取り、必要に応じて曖昧なクエリを明確化し、どのようなタスクをどの順番で行うかを立案する役割を担います。
- ゴールの明確化(Goal Creation)
- ユーザクエリを分析し、具体的かつ測定可能な目標(SMART Goalなど)に変換
- 例: 「○○のレポートを作りたい」→「30日以内に競合分析を含むレポートを作成し、PDFでまとめる」
- タスク分割・優先度付け
- ゴールを達成するためのサブタスクを洗い出し、依存関係や優先度を整理
- 必要に応じて外部リソースやAPIの使用計画を組み込む
- 実行計画の作成
- 時間・コストなどの制約を考慮したスケジュールを作成
- 実行指示書を Worker Agent に渡せる形式(JSON、箇条書きなど)でまとめる
5. Worker Agent(具体的な作業実行)
Worker Agent は、Planning Agent が立案した計画をもとに、実際の処理を行います。
- タスクの実行
- データ収集、API呼び出し、ファイル操作など、具体的な作業を遂行
- 必要に応じて一部のサブタスクをさらに分割し、並列実行・リトライなどを行う
- モニタリングと結果報告
- 処理結果を監視し、成果物やエラー情報をPlanning Agentに返す
- 成功時は成果物のURLやログを提示し、失敗時はエラー内容を報告
- フィードバックループ
- Planning Agent から計画修正指示が来たら対応する
- ユーザから追加要望があった場合、再度Planningに反映できる
6. エージェントの連携フロー
上記の Planning Agent と Worker Agent を連携させた場合、主なフローは以下のようになります。
- 1.ユーザ → Planning Agent
- 曖昧な要求を受け取り、ゴール(Goal)を明確にする
- 2.Planning Agent → ゴール定義・計画策定
- 必要なサブタスクを分割し、優先度や手順を決定
- 3.計画 → Worker Agent
- Worker Agent が実行可能な形式でタスクを渡す(API呼び出しのリストなど)
- 4.実行 → 結果の報告
- Worker Agent が実作業をこなし、結果やエラーを Planning Agent に返す
- 5.計画修正(必要に応じて)
- Planning Agent がフィードバックを受け、再度計画を調整
- 6.ゴール達成 → ユーザに報告
- 最終成果をまとめ、ユーザに提示する
7. プロンプト最適化のポイント
LLMを使ったエージェントを構築する場合、どのようにプロンプトを設計するかが大きな鍵を握ります。
- SMARTゴールの作成
- SMARTとは
Specific(具体的)
、Measurable(測定可能)
、Achievable(達成可能)
、Relevant(関連性)
、Time-bound(期限が明確)
のこと - 具体的で測定可能なゴールを定義するようなプロンプトを用意
- SMARTとは
- ステップバイステップ思考
- 「問題を分解して論理的に考えよ」と指示するChain-of-Thoughtプロンプト
- テンプレート・フォーマットの指定
- タスクやゴールを JSON など構造化形式で出力させる
- 外部リソース連携
- LangChainやLangGraphを利用して、文書検索やデータベースからの情報取得を組み込む
8. まとめ
本記事では、Planning Agent と Worker Agent に分けて役割を定義し、それぞれが連携してゴールを達成するエージェントデザインパターンを紹介しました。以下にポイントをまとめます。
- Planning Agent(GoalCreatorを含む)
- ユーザ要求を明確なゴールに落とし込み、計画を立案
- Worker Agent
- 指定された手順を実行し、結果をフィードバック
- エージェント連携フロー
- フィードバックループを構築し、必要に応じて計画を修正する