
AI Agent Vol.2【Agent の 4つの要素】

前回の記事AI Agent 第1回 : Single Agent とMulti Agentでは、 AI Agentのアーキテクチャについて「Single Agent」「Multi Agent」に分け、それぞれで提案されている手法をご紹介しました。
第2回となる今回は、 LLM Agentのサーヴェイ論文「 A Survey on Large Language Model based Autonomous Agents 」をもとに、AI Agentの作成のために考慮すべき
構成要素について、「Profiling」「Memory」「Planning」「Action」の4つに着目して
解説をしていきます。
近年では、LLMの進歩によって、質問応答の形式で様々なタスクを達成できるように
なりました。
一方で、自律的なエージェントでは「特定の役割を果たす」「環境を把握する」「環境
から学習する」といった複雑なタスクの達成が必要となり、単なる質問応答とは大き
く異なった動作が要求されます。
したがって、AI Agentの構築のためには自律的なエージェント特有の複雑な動作に
LLMを対応させるためのアーキテクチャが必要とされており、LLMの能力を補強する
ための様々なモジュールの導入が提案されています。
今回の記事では、AI Agentの設計の際にどのような役割をもつモジュールを導入する
必要があるのか、どのような選択肢が存在するのかといった点について、役割ごとに「Profile」「Memory」「Planning」「Action」の4つに分けて紹介していきます。
AI Agentとは(復習)
AI Agentとは、与えられた目標の達成のために自律的に判断および行動ができる人工知能
システムのことを指します。
LLMsやRAGが人間による指示に対して単発的に応答するのに対して、AI Agent では目標
達成までに必要な過程を自ら推論し、複数のタスクを実行することができます。
LLMを活用したAI Agentは、LLMをコントローラとしてタスク達成のための計画を練りな
がら、様々なツールを動作させることで人間のような意思決定能力を獲得しています。
これによって、人間による追加入力を必要とせずに複雑なタスクを実行可能となることが
期待されています。
Agent、4つの要素
Agentを構成する要素は、以下の4つに分類されます。
AI Agentではこれらのモジュールを組み合わせることによって、「Agentごとに異なる役割を果たす」「環境条件を把握しながら動作する」「目標達成のための計画を立てる」といった自律的なエージェントとしての振る舞いを実現しています。
Profile:各Agentの役割と目的を定義する
Memory:各Agentの経験を蓄積し、次の行動のために記憶を活用する
Planning:タスクをサブタスクに分割し、目標達成のための計画を立てる
Action:Profile / Memory / Planningの結果に基づきタスクを実行し、結果を取得する
【図1】Agent 4つの要素
( A Survey on Large Language Model based Autonomous Agents Fig.2より引用)
Profile
Profileは、各Agentの役割の定義を作成するためのモジュールであり、個別の役割をプロンプトに書き込むことで、Agent同士の共同作業を促進させることを目的としています。
役割の定義には、Agentのもつ名称や所属といった基本情報に加えて他のAgentとの関係性Agentの果たす役割とその責任の範囲といった様々な情報をプロンプトに書き込みます。
Profileの方法は、以下の三つに分類されます。
これらの方法は導入コストや用途が異なっており、AI Agentの規模や使用目的に合わせて
どの方法を用いるか検討する必要があります。
Handcrafting:
手作業によって各Agentの役割を定義する方法です。
性格特性や役割を柔軟に割り当てることができる一方で、扱うAgentが増えるほどに人手による作成コストが多くなってしまう特徴があります。
LLM-Generation:
LLMによってAgentの役割を定義する方法です。
例えば、数ショットの例のみを人手によって作成し、LLMに与えることで類似のプロファイルを作成する方法があります。この方法では、作成コストの削減が可能となる一方で、正確な制御ができず矛盾が生じやすくなる欠点があります。
Dataset-Alignment:
実在の統計データに基づき、プロフィールを作成する方法です。人種/性別/年齢といった
実人間の属性をAgentに与えることで実世界のシミュレーションに用いることができます。
Memory
Memoryは、Agentの経験した情報を蓄積するためのモジュールであり、過去の情報を活用
することで合理的かつ一貫性のある行動を行うことを目的としています。本節ではMemoryモジュールの構成、データ形式、操作方法について紹介します。
AI Agentの設計の際には、どの程度の情報を必要とするのか、どのようなデータを扱うのかに合わせてMemoryモジュールの構成を検討する必要があります。
▍Memoryの構成
Memoryは、人間の記憶を模した短期記憶と長期記憶によって主に構成されており、短期
記憶のみの構成(Unified)と二つを組み合わせた構成(Hybrid)に大きく分類されます。
短期記憶のみが用いられる例がある一方で、長期記憶のみの構成はほぼ利用されておらず、Agentにおける短期記憶による時間的な連続性の考慮の重要性が非常に高いとされています。
Unified:
短期記憶モジュールのみの構成であり、直近の記憶をAgentに与えることで時間的な連続性を考慮させることができます。
Hybrid:
短期記憶と長期記憶を組み合わせた構成であり、短期記憶に加えて現在のタスクに類似する過去の記憶をあたえることで効果的に記憶情報を活用することができます。
この構成では、長期記憶の利用によるプロンプトサイズの増大の対策として、効果的に記憶を選択する方法が用いられます。
▍主なデータ形式
Natural Language:
行動やサービスを自然言語で記憶する方法であり、柔軟かつ理解しやすい表現や詳細な意味情報の保持といったメリットがあります。
Embeddings:
情報を埋込ベクトルとして記憶する方法であり、ベクトル化することでシステムによる検索や読解の効率を向上させることができます。
Databases:
情報をデータベースに保存し、より効率的に操作しやすい形として記憶する方法です。
多くの場合、SQLを実行できるようにAgentを調整し、Agentにメモリ情報を操作させることを目的としています。
Structed Lists:
情報を構造化リストに整理して記憶する方法であり、例えば階層ツリー構造で情報を記憶
することで、意味情報を簡潔にAgentに渡すことができます。
▍主なデータ操作方法
Reading:
類似度や重要度等のスコアを元に関連する情報を記憶領域から引き出します。
Writing:
現在の情報を記憶領域に保存し、重要情報の抽出や重複情報の削除によって冗長性を除去
します 。
Reflection:
より高度な情報集積のために記憶情報の要約/評価を行います。
Planning
Planningは、目標達成のための計画を行うためのモジュールです。
LLMは、複数回の推論過程を必要とするタスクに対する応答精度が低くなることが知られており、いくつかの単純なタスクに分解して処理をすることで応答精度を高める手法が多く
用いられます。
このためPlanningモジュールは、複雑なタスクを単純なサブタスクに分割し、Agentの行動をより合理的かつ明確にすることを目的としています。
Planningの方法は、フィードバックに基づく計画の修正工程の有無によってそれぞれ異なる方法が提案されています。一般にフィードバックによる修正工程を含めることによって、より正確な応答を得られると考えられますが、フィードバックを取得するために導入コストが増加します。
▍Planning Without Feedback
Single-path Reasoning:
与えられたタスクをいくつかの中間ステップに分解するように指示することで、段階的に
推論を行うことができます。
Multi-path Reasoning:
Single-pathにおける各段階の中間ステップを複数作成することで、木構造やグラフ構造
を作成し最適な推論経路を予測することで最終的な推論を行います。
多数の選択肢から選択をする点でSingle-path Reasoningと異なり、精度の向上が見込まれるが計算コストは増加します。
External Planner:
LLMでは、ドメイン固有のタスクへの対応が困難である場合に、専用に構築された外部の
計画ツールを利用する手法です。
【図2】 Singlepathと Multi path
(A Survey on Large Language Model based Autonomous Agents Fig.2より引用)
▍Planning With Feedback
Environmental Feedback:
外部のツール(検索エンジンの結果やプログラムの実行結果)に基づいて、推論や計画を
行います。
Human Feedback:
Environmental Feedbackの情報に加えて、Agentが人間と直接対話し、積極的にFeedbackを求めることでHallucinationを軽減する方法です。
Model Feedback:
上記の外部ソースによるFeedbackに加え、内部のAgentによるFeedbackを活用する方法であり、多くの場合LLMやその他の学習済みモデルによる出力を用います。
Action
Actionは、Profile, Memory, Planningの各Agentの推論結果に基づいて行動を実行し、結果を取得する役割をもつモジュールです。
本節では「Before-Action」「In-Action」「After-Action」の三つの段階に分け、どのような行動目標の選択肢、他モジュールや外部ツール/内部知識の活用方法として、どのような
選択肢があるかについて記載しています。
▍Before Action:
実行前の段階のActionには、あらかじめ達成目標と行動選択方法が設定され、それらに合わせてActionが実行されます。
主な達成目標と行動選択方法には、以下のようなものがあります。
▍Action Goal : Agentの達成目標
Task Completion:
事前に定義された最終的なタスクを実行する 。
Communication:
フィードバックの取得や協働のための他Agent及びユーザとの情報共有を行う。
Environment Exploration:
試行錯誤(Actionの繰り返し)によって未知の情報の探索を行う。
▍Action Production : Agentの行動選択方法
Memory Recollection:
Memoryの情報と現在のタスクを用いる手法であり、現在のタスクに関連するActionが
存在するかMemoryに問い合わせることで成功経験を生かしたActionの生成を行います。
Plan Following:
Planningの結果に従ってActionを生成する手法であり、Feedbackを用いた計画修正手法やサブタスク分割手法等で得られたActionを実行します。
▍In Action
Actionの実行段階(In Action)では、Before-Actionの目標と行動選択方法に沿ってActionが実行されますが、実行は内外の知識を利用して行われます。
外部知識または内部知識の主な利用方法には以下のようなものがあります。
▍External Tools
包括的な専門知識の利用やHallucinationの軽減を目的として、以下のような外部ツールの
呼び出しを行います。
API:
適切なAPIの選択及び入力引数の生成によって、外部APIを実行します。
Database/Knowledge base:
外部データベースや知識ベースへ生成クエリを実行し、固有のドメイン情報を取得します。
External Model:
クエリ生成やコード生成等のタスクにより適した専門のモデルを呼び出すことで、複雑な
タスクの処理を行います。
▍Internal Knowledge
LLMが事前学習によって獲得している内部知識を活用したActionを実行します。
Planning capability:
LLMが保有する計画能力を活用し、複雑なタスクのサブタスク分割を行います。
Conversation capability:
LLMが保有する対話能力を活用し、Agent同士の議論による情報共有やユーザーとの対話
を行います。
Common Sense Understanding Capability:
LLMが保有する包括的な常識(一般常識)を活用し、人間の日常生活をシミュレートした意思
決定の再現を行います。
▍After Action
Actionの実行後(After Action)では、次のAgentの状態や全体に与える様々な影響が想定されます。Actionが与える主な影響には、以下のようなものが挙げられます。
Changing Environments:
Agentは、オブジェクトの移動や削除等を実行することで 環境全体に変化を与えることができます。
Altering Internal States:
MemoryやPlanningの更新によってAgentの状態を更新することができます。
Triggering new Action:
現在のActionの完了によって、別のAgentのActionを開始することができます。
まとめ
本稿では、AI Agentについての紹介の 第 2 弾として、AI Agentの構築手法の最新動向を
まとめたサーヴェイ論文である「 A Survey on Large Language Model based Autonomous Agents 」を元に 、AI Agentの構成要素について「Profiling」「Memory」「Planning」「Action」の4つに着目して解説しました。
次回は第3弾として、AI Agentにおける追加知識の獲得(学習)や評価方法について、紹介したいと思います。

理工学専攻の大学院生で、主に言語AIを扱っています。大学では、生成AIを用いた学習支援アドバイスの生成について研究しています。