【AIエージェント】Action の「ツールの呼び出しのプロセス」とは
この記事の概要
AIエージェントは、「Profile」「Memory」「Planning」「Action」から構成されます。
引用:A Survey on Large Language Model based Autonomous Agents (2023)
その内の「Action(行動)」は、次の2つのカテゴリに分類できます。
- Tool Use(ツールの利用)
- Physical Interaction(物理的相互作用)
この記事では、AIエージェントのActionのうち、Toolの呼び出し方法について説明します。
復習:AIエージェントのToolとは
「ツール」とは、AIエージェントが呼び出すことができるあらゆる機能や関数を指します。
例えば
- 外部のデータソースと連携
- 既存のAPIから情報を送受信
- ウェブ検索
- コード実行
- ドキュメント操作
- GUI操作
など、AIエージェントが多様なタスクを実行したりすることを可能にします。
ツールは、LLMの推論や計画の能力を拡張し、複雑な目標達成や現実世界の問題解決を可能にするために必要な要素です。
ツールの呼び出しについて
「行動」の前の「思考」のフェーズで、AIエージェントはそのサブタスクに対して、Toolが必要かどうかを判断します。
そこで必要に応じて、ツールを使うかどうか、どのツールを使うか、どのタイミングで使うかを決定します。
ツールの呼び出しまでの流れ
AIエージェントがあらゆるタスク(サブタスク)の解決において、「ツールを使うべきか/どれを使うか/いつ使うか」を判断する思考・選択・実行のプロセスです。
これは次の方法で決定されます。
-
計画(Planning)
エージェントはまず与えられたタスクを理解し、それを達成するための計画を策定します。
この段階では、- 複雑な問題をより小さなサブタスクに分解(Planning:タスク分解)
- 複数の計画オプションから最適なものを選ぶ(Planning:マルチブラン選択)
- 過去の経験や外部情報を活用して計画を改善する(Planning:反省と洗練)
などが含まれます。
-
ツール選択(Tool Selection)
計画に基づき、AIエージェントは利用可能なツールの中から最適なものを「選択」します。
この選択は、タスク(サブタスク)の要件、利用可能なツールの機能、および過去の成功経験などを考慮して行われます。 -
ツール実行(Tool Execution)
選択されたツールを実行し、その結果(観測)を得ます。 -
評価と調整(Evaluation & Refinement)
ツール実行の結果を評価し、期待通りの成果が得られたか、タスクの進捗はどうかを判断します。
結果が不十分であれば、AIエージェントは自らの推論や計画を見直し(自己修正)、次の行動やツール選択を調整します。
このサイクルは、タスクが完了するか、満足のいく結果が得られるまで繰り返されます
ツールの選択
選択方法には、いくつかのアルゴリズムが提案されています。
-
例1:ReAct
AIエージェントはまずタスク(サブタスク)に関する「思考」を生成します。
その思考に基づいて「行動」を実行します。
そして、その行動の結果を「観察」し、この「思考→行動→観察」のサイクルをタスクが完了するまで繰り返します。
これにより、推論と行動が密接に連携し、ツールの選択と利用が行われます。
-
例2:AutoGPT+P
環境内のオブジェクトを検出し、それに基づいて- 計画ツール
- 部分計画ツール
- 代替案提案ツール
- 探索ツール
という4つの選択肢の中から、使用するツールをLLMが決定します。
ただし、ツール選択の正確性にはばらつきが見られる場合があります。
-
例3:LangChain
AIエージェントはユーザーからのプロンプトを分析し、タスク(サブタスク)の解決に必要なツールを特定し、段階的にツールを呼び出して最終的な応答を生成します。
AIエージェントの役割や利用可能なツールを定義することで、特定のタスクに対して適切なツールを自律的に選択し、応答を反復的に改善していきます。
ツールの評価
AIエージェントにおける「ツール評価」とは、
です。
ツール呼び出し精度だけでなく、成功率、処理効率、適応性、自己修正能力なども評価の対象になります。
【主な評価手法】
評価軸 | 代表例 | 測定内容 |
---|---|---|
成功率・正確性 | GAIA, パスレート | ツール結果とゴールの一致度 |
関数呼び出し精度 | ComplexEval, BFCL | 引数選定、制約遵守、複雑性 |
会話型一貫性 | τ-bench | ツール使用の連続的な正確性 |
自動評価 | Agent-as-a-Judge | 他のAIによる中間評価、コスト効率 |
強化学習適応 | ReSearch | 検索操作の報酬ベース最適化 |
実行効率 | AgentBench | 時間、リソース、ステップ数 |
自己修正と反省 | Reflexion | 実行結果の自己評価・改善行動 |
- 成功率・精度に基づく評価
- 評価指標:目標状態との一致、最終出力の正解率。
-
ベンチマーク:
- GAIA:GPT-4+ツールの成功率15%(人間は92%) → ツール統合の課題を可視化。
- パスレート:コードタスクでの正確な出力実行率。
- 関数呼び出しベンチマーク
- 目的:LLMが外部関数・APIをどれだけ正確に呼び出せるかを評価。
-
ベンチマーク:
- ComplexFuncBench + ComplexEval:マルチステップ、長文入力、隠れパラメータ、制約遵守を評価。
- BFCL v2:現実的なユーザー関数呼び出しを再現し、並列性や誤検出も検証。
- マルチステップ・対話型評価
- 目的:会話の中で連続的にツールを使うエージェントの一貫性・正確性を測定すること。
-
ベンチマーク:
- τ-bench:DB最終状態との一致で評価。
- Agent-as-a-Judge(AIエージェントによる評価)
- 仕組み:AIエージェントが他のエージェントの出力・行動(ツール使用含む)を評価。
-
特徴:
- 中間フィードバック可能
- 人間評価と最大90%一致
- 評価コストと時間の大幅削減。
- 強化学習による評価
- 目的:ツール選択を学習させるための報酬信号設計を評価。
-
例:
- ReSearch:検索操作を強化学習で最適化し、「正解率+検索スタイル」準拠度で評価。
- 効率性評価
- 指標:タスク完了時間、リソース消費、通信量など。
-
ベンチマーク:
- AgentBench:成功率以外に「ツールの利用効率」「ステップ数」などを測定。
- 自己修正・反省
- 目的:ツール実行後にエージェントが自ら評価・改善できるかを測定。
-
例:
- Reflexion:LLMが「成功・履歴・メモリ」から中間評価を出し、改善案を提示。
アーキテクチャ紹介:ReAct
概要
ReActは、
LLMにおける「推論」と「行動」の統合的な実行
を目指したアーキテクチャです。
アーキテクチャの要点
項目 | 内容 |
---|---|
1. 行動空間の拡張 | 拡張された行動空間 Â = A ∪ L を定義します。・ A :外部行動(API呼び出し、クリックなど)・ L :内部の思考(言語出力、環境には影響しない)AIエージェントはこの拡張空間から「思考」または「行動」のどちらを出力するかを選択します。 |
2. 思考(Thought) |
目的: 外部には影響しないが、文脈形成・方針決定に使われる内部出力。 役割: ・タスクの分解と計画(例:「Xを見つけて、次にY…」) ・常識的な推論挿入(例:「胡椒入れは棚にありそう」) ・検索の再定式化 ・経過の追跡、例外処理、進捗更新 ・最終回答の統合 |
3. 行動(Action) |
目的: 外部環境から情報を取得・操作するための行動。 例: ・Wikipedia API: ・ search[entity] :ページ検索・ lookup[string] :ページ内検索・ finish[answer] :タスク終了・ALFWorld / WebShop: ・ go to [location] , click [button] , buy now など、テキストベースで環境とインタラクション |
4. 推論と行動の交互生成 | AIエージェントは「思考 → 行動 → 観察」のループを繰り返し、動的な戦略形成と実行を行います。 タスクの種類に応じて、思考の頻度は異なります。 ・推論中心タスク(例:HotpotQA):密な思考(dense thought) ・行動中心タスク(例:WebShop):必要箇所のみ思考(sparse thought) |
具体例で理解する:知識集約型推論タスク
「知識集約型推論タスク」では、推論が非常に重要であるため、ReActは思考と行動の生成が交互に行われるように設定されます。
↑ 推論中心タスク(密な思考)
例えば、
HotpotQAの質問:
ミュージシャン兼風刺作家のアリー・ゴートツが、『ザ・シンプソンズ』のキャラクター・ミルハウスについて曲を書きました。マット・グリーニングがミルハウスという名前を誰から取ったのでしょうか?
というタスクを考えます。(右図)
この例において、ReActは次のように動作します。
ここで、search[〜〜], finish[〜〜]は、
-
search[entity]
:指定したエンティティに関するWikipediaページの冒頭5文を返す。 -
finish[answer]
:最終回答を出してタスク終了。
というアクションメソッドを表します。
このように、ReActは「思考」と「行動」、そして行動の結果である「観察」を密接に連携させることで、複雑なタスクを外部ツールを用いながら解決することが可能になります。
この例では、思考→行動→観察のループを3回繰り返すことで、目的の「リチャード・ニクソン」という答えを得ることができました。
まとめ
AIエージェントのコンポーネントの1つである「Action」におけるツール(Tool)の呼び出しのプロセスについて説明しました。
さらに、代表的なアーキテクチャである「ReAct」を具体例とともに解説しました。
参考
Understanding the planning of LLM agents: A survey (2024)
ReAct: Synergizing Reasoning and Acting in Language Models (2022)
Discussion