AIUnlimited
🌳

AI基礎

🌱
AI Seeds(種)

ゼロから始める

🌿
AI Sprouts(芽)

基礎を築く

🌳
AI Branches(枝)

実践に活かす

🏕️
AI Canopy(樹冠)

深く学ぶ

🌲
AI Forest(森)

AIをマスターする

🔨

AIマスタリー

✏️
AI Sketch(スケッチ)

ゼロから始める

🪨
AI Chisel(鑿)

基礎を築く

⚒️
AI Craft(制作)

実践に活かす

💎
AI Polish(磨き上げ)

深く学ぶ

🏆
AI Masterpiece(傑作)

AIをマスターする

📘

AI実践

📖
オープンソースモデルを理解する

オープンソースモデルの基礎とリソース

🎯
問題からモデルタスクへ

ビジネス問題をモデルタスクに変換

⚡
最初のモデルを実行する

30分で最初の結果を見る

🔧
ファインチューニングと評価

モデルをファインチューニングし、パフォーマンスを評価

🚀
アプリケーションシステム

実際のAIアプリケーションを構築

🎨
生成AI

オープンソースAIGCモデルを探索

🤖
エージェント

エージェントフレームワークとMCPツールを学ぶ

📐
補足基礎

LLMの基礎と評価

🎓

Claude アカデミー

🤖
Claude 101

Learn AI basics with Claude

💻
Claude Code 101

Code with Claude as your pair programmer

🤝
Introduction to Claude Cowork

Collaborate with Claude on complex projects

⚙️
Claude Platform 101

Build apps with the Claude API

ラボ

7つの実験がロード済み
🧬ニューラルネットワークサンドボックス🤖AI か人間か?🥋プロンプトエンジニアリング道場🏁アルゴリズムレース🧠AIトリビアチャレンジ🏗️システム設計キャンバス
🎯模擬面接ラボへ入る→
🚀

キャリア発展

🚀
面接ローンチパッド

旅を始めよう

🌟
行動面接マスター

ソフトスキルをマスター

💻
技術面接

コーディング面接を突破

🤖
AI・ML面接

ML面接をマスター

🏆
オファーとその先

最高のオファーを獲得

始める
AIUnlimited

MITライセンス

沪ICP备18025655号-11

学ぶ

  • AI基礎
  • AI実践
  • Claude アカデミー
  • ラボ
  • キャリア発展

コミュニティ

  • 概要
  • よくある質問

サポート

  • footer.terms
  • footer.privacy
  • footer.contact
AI & エンジニアリング アカデミックス›🤖 エージェント›レッスン›What is an Agent?
🤖
エージェント • 初級⏱️ 15 分で読める

What is an Agent?

エージェントとは何か、何ができるのか?

エージェントとは一体何で、普通の質問との違いは何か?

エージェント(Intelligent Agent)は、大規模言語モデルを中核としたアプリケーションシステムであり、タスク目標に向けて自律的に意思決定を行い、実行できるシステムです。大規模モデルは、言語理解、推論、コンテンツ生成などの基本能力をエージェントに提供し、ユーザーが提起したタスクを理解し、現在の情報を分析できるようにします。この基盤の上に、エージェントはさらにモデルの推論能力をタスク実行に適用します:目標に直面したとき、応答を生成するだけでなく、目標達成のために何をすべきかを判断し、ツールを通じて外部情報を取得するか、具体的な操作を実行する必要があります。タスクに複数のステップが含まれる場合、エージェントは前のステップで得た結果を使用して次の操作を判断し、必要に応じて元の計画を調整し、タスクが完了するまで続けます。したがって、エージェントの重点は「入力に基づいて何のコンテンツを生成するか」から「目標を中心にタスクをどのように完了するか」に拡張されます。ここで述べられている自律的意思決定とは、完全に制約なしに行動するのではなく、事前に設定されたタスク範囲、ツール、権限内で、現在の状態に基づいて適切な操作を選択することです。したがって、エージェントは大規模モデルとは独立した新しいモデルではなく、大規模モデルを理解と意思決定の中核とし、モデルと外部能力を組み合わせたタスク実行システムです。

エージェントは、複数のステップを含み、外部情報やツールの使用を必要とし、実行過程が中間結果に基づいて変化する可能性のあるタスクに適しています。一般的なアプリケーションシナリオには、情報検索、データ分析、ソフトウェア開発、ビジネスプロセス自動化が含まれます。例えば、情報検索シナリオでは、エージェントはタスクに基づいて異なるソースから資料を検索・整理できます。データ分析シナリオでは、データを読み取り、計算を実行し、分析結果を生成できます。ソフトウェア開発シナリオでは、コードを書き、テストを実行し、実行結果に基づいて修正を続けることができます。ビジネスプロセス自動化シナリオでは、データベースやビジネスシステムに接続して、データクエリ、チケット処理、その他の操作を完了できます。翻訳、要約、書き換えなど、モデル生成で直接完了できるタスクには、通常エージェントは不要です。

エージェントが連携するために必要なコンポーネントは?

図解

LLM:タスクを理解し、次のステップを判断する

エージェントの中核であり、ユーザー入力の処理、応答の生成、意思決定を担当します。本質的にエージェントの「脳」です。エージェントは事前に設定されたパスを Follow せず、リアルタイムの状態に基づいて行動戦略を動的に調整するため、LLM はコンテンツの理解と生成だけでなく、現在のタスクと実行結果に基づいて次の操作を判断し、外部環境とのやり取りの方法を決定する必要があります。エージェントはプロンプトを使用して LLM の役割、タスク目標、行動ルール、権限の境界を指定し、LLM が事前に設定された範囲内で意思決定と実行を行えるようにします。

プランニング:タスクを実行可能なステップに分解する

エージェントのアクション計画の策定を担当し、複雑なタスクを複数のサブタスクに分解し、後続の実行ステップを決定することを含みます。複数ステップのタスクを処理する際、エージェントはアクション計画を作成するだけでなく、タスクの実行状況に基づいて調整する必要があります。例えば、ツールの結果が期待と異なる場合や、取得した情報が不十分な場合、エージェントは元の計画を調整し、次のステップを再決定できます。プランニングモジュールにより、エージェントはタスク状態に基づいて後続のアクションを動的に計画・調整できます。

メモリ:タスクの進捗と必要な情報を記憶する

エージェントのメモリを保存するために使用され、短期メモリと長期メモリを含みます。短期メモリは現在のセッションやタスクの情報を主に保存し、長期メモリは長期的に保存する必要がある情報を保存するために使用されます。メモリは動的でアクセス可能かつ更新可能なシステムです。動的とは、新しい情報とタスク状態に応じてメモリが変化しうることを意味し、アクセス可能とは、エージェントが必要に応じて保存された情報を取得・使用できることを意味し、更新可能とは、新しい情報と実行結果に基づいて既存のメモリを補完・変更できることを意味します。メモリが継続的に更新されるにつれ、エージェントはインタラクションとタスク経験を活用して、後の判断と意思決定を改善し、異なるタスクと環境への適応能力を向上させることができます。

ツール:モデルに実際の操作を実行させる

エージェントが利用できる様々なツールで、検索エンジン、データベース、計算機、コード実行環境、APIを通じて提供される様々な外部サービスが含まれます。ツールモジュールの主な機能は、エージェントの外部環境とのやり取り能力を拡張し、エージェントがコンテンツを生成するだけでなく、外部情報を取得し、具体的な操作を実行できるようにすることです。

ツールモジュールを使用する際、エージェントは現在のタスクとコンテキストに基づいてツールが必要かどうか、どのツールを選択するかを判断する必要があります。効果的なツール使用とは、正しいツールを選択することだけでなく、不要なツール使用を減らすための効率的なツールの使い方も含まれます。タスクが複数のツールの協力を必要とする場合、エージェントは結果に基づいて他のツールを呼び出すかどうかを判断し、異なるツールの結果を統合する必要があります。したがって、ツールモジュールはエージェントに外部能力を提供するだけでなく、タスクのニーズに基づいてツールを合理的に選択・使用することも要求します。

エージェントは LLM、プランニング、メモリ、ツールを統合したシステムであり、以下の図に示されます。これらのモジュールは協力して、エージェントがタスクを自律的に実行し、学び、行動を改善できるようにします。

タスクを受け取った後、エージェントはどのように段階的に進むか?

タスクを受け取った後、エージェントはタスク目標と現在の情報に基づいてどのように進むかを判断する必要があります。例えば、一部のタスクはツールを呼びながら結果に基づいて次のステップを判断できます。一部の複雑なタスクは、まずステップを分解してから段階的に実行する必要があります。生成された結果に対しては、さらにチェックや修正を行うことができます。単一のエージェントが全体のタスクを完了できない場合、複数のエージェントに異なる役割を割り当てて協力させることができます。

レッスン 1 / 70%完了
←プログラムに戻る

ディスカッション

ログイン ディスカッションに参加

タスクの特性と実行方法に基づき、エージェントは異なるタスク実行モードを採用できます。以下では、ReAct、Plan-and-Execute、Reflection、マルチエージェント協調の4つの一般的なモードを紹介します。これらは、動的実行、タスク計画、結果改善、タスク分割などの側面からエージェントのタスク実行プロセスを組織します。

ReActモード

ReAct(Reasoning and Acting)は、推論と行動を組み合わせたタスク実行アプローチであり、Shunyu Yaoらによって提案されました。大規模モデルは現在の情報に基づいて推論と行動を行い、行動から得られた新しい情報に基づいて推論と行動を続け、タスクが完了するまで続けます。

典型的なReActプロセスには、Thought(推論)、Action(行動)、Observation(観察)が含まれます。Thoughtは、次のステップを判断するために現在の情報を分析するモデルを表します。外部情報を取得する必要がある場合や操作を実行する必要がある場合、モデルは検索ツールの呼び出しやデータベースのクエリなど、対応するActionを生成します。ツールから返された結果はObservationとしてモデルに提供され、モデルはこの新しい情報に基づいて判断を続けます。

タスク実行中、Thought、Action、Observationはタスクのニーズに応じて交互に出現し、推論、行動、観察が連携する実行プロセスを形成します。典型的なプロセスは以下のように表せます:

Thought → Action → Observation → Thought → Action → Observation → ... → 最終結果

例えば、ユーザーが「2024年ノーベル物理学賞受賞者は誰ですか?そのうち最も年齢が高いのは誰ですか?」と尋ねます。

エージェントはまず2024年ノーベル物理学賞受賞者リストを取得する必要があると判断し、検索ツールを呼び出してクエリします。リストを取得した後、受賞者の年齢を比較する必要があることがわかり、生年月日を引き続きクエリします。必要な情報を取得した後、エージェントは比較し、最終回答を生成します。

このプロセスで、エージェントはタスク開始時にすべての実行ステップを決定したわけではなく、各ツールの返信結果に基づいて次のステップを決定しました。したがって、ReActは検索、クエリ、ツール呼び出しなど、外部環境との継続的なインタラクションを必要とするタスクに適しています。ステップの多い複雑なタスクでは、このステップバイステップのアプローチを完全に使用すると、ステップの欠落や実行パスの繰り返しが発生する可能性があります。

Plan-and-Executeモード

Plan-and-Executeは、複雑なタスクの処理を計画と実行の2つのフェーズに分割します。タスクを受け取った後、エージェントはまずタスク目標を分析し、完了する必要があるステップを分解し、全体的な計画を形成してから、計画に従って段階的に実行します。

例えば、ユーザーが「3つの新エネルギー車企業の最近の業績を分析し、比較レポートを作成してください」と要求します。このタスクには、データ収集、データ整理、比較分析、レポート生成などの複数のステップが含まれます。このような複数ステップのタスクには、次のように計画を先に立てることができます:

  1. 比較する3つの企業を特定する。
  2. 各企業の過去1年間の事業データを収集する。
  3. 売上高や収益などの主要指標を整理する。
  4. 各企業の業績を比較する。
  5. 差異をまとめ、レポートを生成する。

計画が形成された後、エージェントはタスクを順番に完了します。ステップを実行する際に、検索、データベース、その他のツールを呼び出すことができます。実行中に元の計画が続行できない場合や、新しいタスクニーズが発生した場合は、元の計画を調整できます。

Plan-and-Executeの典型的な実行プロセスは以下のように表せます:

ユーザータスク → 計画作成 → 段階的実行 → タスク状態確認 → 最終結果

タスク状態を確認する際、元の計画に調整が必要な場合は、実行を続行する前に再計画を行うことができます。

ReActと比較して、Plan-and-Executeは実行前に全体的な計画を立てる点を強調しているため、ステップが多く、目標が明確で、事前に分解できるタスクに適しています。2つのモードは組み合わせることもできます。例えば、Plan-and-Executeを使用して複雑なタスクを計画し、個々のステップ内でReActを使用して、ツールの返信結果に基づいて次の操作を動的に決定します。

Reflectionモード

エージェントが最初に生成した結果は、タスクの要件を満たすとは限りません。例えば、生成されたレポートには重要な情報が欠落している場合や、回答に事実誤りがある場合、コードが正しく実行されない場合があります。このようなタスクには、予備結果に基づいてチェックと改善プロセスを追加できます — これはReflection(リフレクション)モードの基本的な考えです。

基本的なReflectionプロセスは以下のように表せます:ユーザータスク → 予備結果生成 → 結果チェック → 問題特定 → 結果修正 → 再チェック → ... → 要件充足 → 最終結果。

例えば、複数のソースに基づいてエージェントに製品比較レポートを生成させます。最初のドラフトを完成させた後、比較する必要があるすべての製品がカバーされているか、製品パラメータが元のソースと一致しているか、重要な差異が見落とされていないかをさらに確認できます。製品の情報が不完全な場合は、資料を再検索して補完できます。結論がソースと一致しない場合は、修正が必要です。

このプロセスで、結果をチェックするために使用されるフィードバックは、異なるソースから得ることができます。エージェントは自身の実行結果をチェックしたり、他のエージェントやモデルを使用して評価したり、ルール、ナレッジベース、または手動レビューを組み合わせてフィードバックを提供したりできます。

このモードは、レポート生成、コード作成、複雑な分析など、結果の品質要件が高いタスクに適しています。ただし、複数のチェックと修正はモデル呼び出し回数と実行時間も増やすため、実際のアプリケーションでは通常、終了条件を設定します。例えば、結果が要件を満たした場合に終了するか、最大チェック回数に達した場合に停止します。

マルチエージェント協調モード

一部の複雑なタスクでは、単一のエージェントがデータ収集、データ分析、コンテンツ生成、結果チェックを同時に処理する必要がある場合があります。この場合、タスクを複数のエージェントに割り当て、それぞれが異なる部分を処理し、協力して最終目標を達成できます。マルチエージェント協調には、主にタスク分割と情報交換の2つの側面が含まれます。

タスク分割では、異なるエージェントに異なる役割、タスク、ツール、知識を割り当てます。例えば、業界調査レポートを作成する場合、リサーチエージェント、データ分析エージェント、ライティングエージェント、レビューエージェントを設定できます。リサーチエージェントは資料の収集と整理を担当し、データ分析エージェントは関連データを処理し、ライティングエージェントはレポートを生成し、レビューエージェントはレポートをチェックします。

情報交換の側面では、複数のエージェント間で異なる協力方法を使用できます。明確に分割できるタスクでは、複数のエージェントが異なるサブタスクを個別に処理し、最後に結果をまとめることができます。順序付き依存関係があるタスクでは、1つのエージェントの結果を次のエージェントに渡して処理を続けることができます。繰り返しの議論や修正が必要なタスクでは、異なるエージェントがメッセージインタラクションを通じて情報を交換できます。さらに、現在の状況に基づいて次にどのエージェントがタスクを処理するかを決定する協調エージェントを設定することもできます。

業界調査レポートの生成を例にすると、マルチエージェント協調アプローチは以下の図に示されます:

図解

マルチエージェント協調は、分業により単一のエージェントによる複雑なタスク処理の難易度を低減できますが、エージェントの数が多ければ良いわけではありません。エージェントの数が増えるにつれ、タスク割り当て、情報伝達、結果調整も複雑になり、モデル呼び出し回数と実行コストも増加します。したがって、単一のエージェントが完了できるタスクには、通常複数のエージェントを導入する必要はありません。

これらのタスク実行モードは相互に独立しておらず、実際のアプリケーションではタスクのニーズに応じて組み合わせることができます。例えば、Plan-and-Executeを使用して複雑なタスクを計画し、ReActを使用して複数のツール呼び出しを必要とするステップを完了し、Reflectionを使用して結果をチェック・改善します。より大規模なタスクについては、異なるサブタスクを複数のエージェントに割り当てて協力的に完了させることができます。