そもそもAIエージェントとは?
AIエージェントは、特定の目標を達成するために自律的にタスクを実行する高度なAIシステムです。以下にAIエージェントの主な特徴と機能を説明します。
主な特徴
自律性: AIエージェントは、人間が設定した目標に基づいて、必要なタスクを自ら作成し、計画的に実行します。
環境との相互作用: 物理的または仮想的なインターフェースを通じて環境を感知し、データを収集します。
意思決定能力: 収集したデータを分析し、目標達成のための最適なアクションを自ら選択します。
複数のAI技術の統合: 機械学習、自然言語処理など、複数のAI技術を組み合わせて機能します。
AIエージェントの機能
- タスクの自動実行: ユーザーや他のシステムに代わって、複雑なタスクを自動的に実行します。
- 問題解決: 設定された目標に向けて、問題を分析し解決策を見出します。
- データ分析と意思決定支援: 大量のデータを処理し、意思決定に役立つ洞察を提供します。
- ツールの活用: 目標達成に必要なツールやリソースを自律的に選択し使用します。
生成AIとの違い
AIエージェントは目標達成のために複数のタスクを自律的に遂行するのに対し、生成AIは主にユーザーの指示に基づいてコンテンツを生成することに特化しています。
デザインパターンとは?
AIエージェントについてはわかったと思いますが、ではデザインパターンとはなんでしょうか。
デザインパターンとは、ソフトフェア設計において、頻繁に発生する問題に対する再利用可能な解決策のことです。デザインパターンは、具体的なコードではなく、問題を解決するための設計思想やアプローチを示すものであるため、言わば「ベストプラクティス」のようなものだと言えます。
AIエージェントデザインパターン一覧
以下に、AIエージェントの設計に役立つ18のデザインパターンを一覧で紹介します。
No | パターン名 | 内容 |
---|---|---|
1 | 受動的なゴールクリエーター (Passive goal creator) | 対話インターフェイスを通じてユーザーの明確なプロンプトを分析し、インタラクティブ性、目標追求、効率性を維持します。 |
2 | 能動的なゴールクリエーター (Proactive goal creator) | ユーザーの行動や履歴を基に、目標を自動的に設定し、提案します。 |
3 | プロンプト/レスポンス最適化 (Prompt/response optimiser) | 入力や出力の内容と形式を最適化します。 |
4 | RAG (Retrieval augmented generation) | 内部またはオンラインデータから知識を取得し、エージェントの知識を強化します。 |
5 | ワンショットモデルクエリ (One-shot model querying) | 単一のインスタンスで計画を生成します。 |
6 | インクリメンタルモデルクエリ (Incremental model querying) | 計画生成の各ステップでモデルを逐次クエリします。 |
7 | シングルパスプランジェネレーター (Single-path plan generator) | ユーザーの目標達成に向けた中間ステップを生成します。 |
8 | マルチパスプランジェネレーター (Multi-path plan generator) | 各中間ステップで複数の選択肢を生成します。 |
9 | セルフリフレクション (Self-reflection) | エージェントが自己評価を行い、計画と推論プロセスを改善します。 |
10 | クロスリフレクション (Cross-reflection) | 他のエージェントや基盤モデルからフィードバックを取得します。 |
11 | ヒューマンリフレクション (Human reflection) | 人間からのフィードバックを収集し、計画を改善します。 |
12 | 投票ベースの協力 (Voting-based cooperation) | エージェント間で投票を行い、意見を集約します。 |
13 | 役割ベースの協力 (Role-based cooperation) | エージェントに役割を割り当て、役割に応じて決定を行います。 |
14 | ディベートベースの協力 (Debate-based cooperation) | エージェント間で議論を行い、意見を調整します。 |
15 | マルチモーダルガードレール (Multimodal guardrails) | 基盤モデルの入力と出力を制御し、特定の要件を満たします。 |
16 | ツール/エージェントレジストリ (Tool/agent registry) | 多様なエージェントやツールを選択するための統一されたリソースを提供します。 |
17 | エージェントアダプター (Agent adapter) | エージェントと外部ツールを接続するインターフェースを提供します。 |
18 | エージェント評価者 (Agent evaluator) | エージェントの性能を評価するためのテストを実施します。 |
また、それぞれのデザインパターンがエージェントシステムにおけるどの部分に作用するのかを図示したものが下図です。

おわりに
今後はそれぞれのデザインパターンに応じた簡易実装を作成して動きを確認していきたいです。