こんにちは、スクーティー代表のかけやと申します。
弊社は生成AIを強みとするベトナムオフショア開発・ラボ型開発や、生成AIコンサルティングなどのサービスを提供しており、最近はありがたいことに生成AIと連携したシステム開発のご依頼を数多く頂いています。
2025年は「AIエージェント元年」になると言われています。AIエージェントとはそもそもなんでしょうか?
AIエージェント とは、まるで人間のアシスタントのように、自ら考え、学習し、行動するプログラムのことです。例えば、「来週の東京の天気を調べて」と指示すれば、 AIエージェント はインターネット上の天気予報サイトから情報を取得し、あなたに結果を教えてくれます。
しかし、 AIエージェント の可能性はそれだけに留まりません。ビジネスの現場では、顧客対応の自動化やデータ分析など、より複雑なタスクを任せられるようになってきています。 AIエージェント の仕組みや具体的な活用方法について知りたいと思いませんか?また、AIエージェントを使いこなすことで、どのような未来が待っているのか、興味はありませんか?
この記事では、 AIエージェント の基本概念から、企業における活用事例、さらには開発方法まで、初心者から専門家まで、幅広い読者に向けて、AIエージェントの全貌をわかりやすく解説します。
AIエージェント とは何か?基本概念を理解する
本記事は主に、以下の記事とホワイトペーパーを参考にまとめています。
参考記事:AI Agents 2024 Rewind – A Year of Building and Learning
参考資料:Agents(Kaggleが発行したホワイトペーパー)
AIエージェント ってそもそも何??:自律性と目標達成能力
AIエージェントとは、自律的に行動し、特定の目標を達成するために設計されたプログラムです。AIエージェントは、周囲の環境を認識し、その情報に基づいて意思決定を行い、行動を起こすことができます。従来のプログラムとは異なり、AIエージェントは事前に設定されたルールに従うだけでなく、自ら学習し、経験を積むことで、より効率的に目標を達成できるようになります。
例えば、ユーザーの代わりにメールを送信したり、フライトを予約したりするなど、現実世界に影響を与えるタスクを実行できます。AIエージェントは、自律性、目標達成能力、学習能力、そして環境との相互作用という4つの主要な特性を持っています。
AIエージェントと従来のAIモデルとの違い
従来のAIモデルは、与えられたデータに基づいて予測や分類を行うことに特化していました。一方、AIエージェントは、予測や分類だけでなく、その結果に基づいて自律的に行動を起こすことができる点が大きく異なります。例えば、従来のAIモデルは、過去の販売データから将来の売上を予測することはできましたが、その予測に基づいて販売戦略を立案し、実行することはできませんでした。しかし、AIエージェントは、売上予測に基づいて、最適な販売戦略を立案し、実行することが可能です。つまり、AIエージェントは、従来のAIモデルよりも、より高度な意思決定と行動能力を備えていると言えます。
AIエージェントの構成要素:モデル、ツール、オーケストレーション
AIエージェントは、主に「モデル」、「ツール」、「オーケストレーションレイヤー」の3つの要素で構成されています。
「モデル」は、AIエージェントの頭脳に相当し、情報の処理や意思決定を行います。主に、自然言語処理や機械学習などの技術が用いられます。
「ツール」は、AIエージェントが外部の世界とやり取りするための手段です。例えば、インターネット検索、データベースへのアクセス、APIの呼び出しなどがツールの役割です。
「オーケストレーションレイヤー」は、モデルとツールを連携させ、AIエージェント全体の動作を制御します。ユーザーからの指示を解釈し、適切なモデルとツールを選択して、タスクを実行します。更には、エージェントの行動を調整し、複雑なタスクを効率的に実行するための「プランナー」としての役割も担います。
例えば、ユーザーが「来週の東京への出張を計画して」と指示した場合、オーケストレーションレイヤーは、モデルに指示を理解させ、適切なツール(例:フライト予約ツール、ホテル予約ツール、スケジュール管理ツール)を選択し、それらを連携させて出張計画を立案・実行します。
上図は、AIエージェントの基本的な構成要素である「モデル」、「ツール」、「オーケストレーションレイヤー」の関係性を視覚的に表しています。
- Model: エージェントの「頭脳」として機能し、意思決定を行います。
- Tools: エージェントが外部とやり取りするための「手足」として機能します。
- Orchestration Layer: モデルとツールを連携させ、エージェント全体の動作を制御する「司令塔」として機能します。
- Environment: エージェントが相互作用する外部環境を示します。
- Agent: これら全てを包括したエージェント全体を示します。
この図を見ることで、AIエージェントがどのように構成され、各要素がどのように連携して機能するのかを、初心者でも直感的に理解することができます。
AIエージェントの動作原理:認知アーキテクチャ
AIエージェントは、人間が物事を考え、行動するプロセスを模倣した「認知アーキテクチャ」に基づいて動作します。認知アーキテクチャは、情報の取得、思考、行動、そして結果の評価という一連のサイクルで構成されます。AIエージェントは、このサイクルを繰り返すことで、目標達成に向けて自律的に行動します。
上の図は、AIエージェントがReActと呼ばれる推論フレームワークを用いて、どのようにユーザーのクエリを処理し、行動を決定するかを示しています。
- User: ユーザーからの入力(クエリ)を示します。
- Question: ユーザーからのクエリを、エージェントが理解しやすい形に変換したものです。
- Thought: エージェントが次に行うべき行動を考えるプロセスです。
- Action: エージェントが選択した行動(ツールの使用など)です。
- Action Input: 選択した行動(ツール)への入力です。
- Observation: 行動の結果、得られた情報です。
- Final Answer: エージェントがユーザーに提示する最終的な回答です。
この図を見ることで、AIエージェントが、ユーザーからのクエリを理解し、必要な情報を取得するためにツールを選択・実行し、最終的な回答を生成する一連のプロセスを理解することができます。特に、ReActフレームワークにおける思考、行動、観察のサイクルがどのように機能するのかを視覚的に把握できます。
例えば、ユーザーから「明日の東京の天気を調べて」という指示を受けた場合、AIエージェントはまず、指示内容を理解します(情報の取得)。次に、天気予報を取得するために、どのツールを使用すべきかを判断します(思考)。そして、適切なツール(例えば、天気予報API)を使用して、天気予報を取得します(行動)。最後に、取得した天気予報をユーザーに提示します(結果の評価)。
AIエージェントの「頭脳」:モデルの役割と種類
AIエージェントにおけるモデルの役割:意思決定の中枢
AIエージェントにおいて、モデルは「頭脳」としての役割を担い、情報の処理、意思決定、そして行動の選択を行います。モデルは、ユーザーからの指示や、ツールから取得した情報を基に、次にどのような行動を取るべきかを判断します。
例えば、「明日の東京の天気を調べて」という指示を受けた場合、前述の通りモデルは、天気予報を取得するために、どのツールを使用すべきかを判断し、そのツールを呼び出すための指示を生成します。モデルの性能は、AIエージェント全体の性能に大きく影響するため、適切なモデルを選択することが重要です。
様々なモデルの種類:汎用モデル、マルチモーダルモデル、ファインチューニングモデル
AIエージェントに使用されるモデルには、様々な種類があります。
汎用モデルは、幅広いタスクに対応できる汎用的な知識を持ったモデルです。
マルチモーダルモデルは、テキスト、画像、音声など、複数の種類のデータを処理できるモデルです。例えば、GoogleのGemini 2.0 Flashは、テキストと画像を入力として受け取り、テキスト、画像、音声を生成できるネイティブマルチモーダルモデルです。これにより、ユーザーはテキストだけでなく、画像や音声を使って、より自然な形でエージェントと対話することができます。
例えば、旅行先の写真を見せながら、「この場所について教えて」と尋ねたり、商品のバーコードをスキャンして、「この商品のレビューを教えて」と尋ねたりすることができます。エージェントは、入力された画像や音声を理解し、それに基づいて適切な情報を検索したり、タスクを実行したりすることができます。
ファインチューニングモデルは、特定のタスクに特化して、追加学習を行ったモデルです。例えば、顧客対応に特化したAIエージェントを構築する場合、顧客対応に関するデータを用いてファインチューニングを行ったモデルを使用することで、より高い精度の応答を生成することが可能になります。
モデル選択の重要性:タスクに適したモデルを選ぶ
AIエージェントの性能を最大限に引き出すためには、タスクに適したモデルを選択することが重要です。例えば、複雑な推論を必要とするタスクには、高度な推論能力を持つモデルが適しています。また、画像認識を必要とするタスクには、画像認識に特化したモデルが適しています。
モデルの選択を誤ると、AIエージェントの性能が低下するだけでなく、開発コストや運用コストが増大する可能性もあります。そのため、AIエージェントを開発する際には、タスクの要件を十分に検討し、最適なモデルを選択する必要があります。
AIエージェントの「手足」:ツールの役割と種類
ツールとは:AIエージェントと外部世界を繋ぐ架け橋
ツールは、AIエージェントが外部の世界とやり取りするための「手足」となるものです。ツールには、ウェブ検索、データベースアクセス、API連携など、様々な種類があります。
例えば、ウェブ検索ツールは、インターネット上の情報を取得するために使用されます。データベースアクセスツールは、データベースに格納されている情報を取得したり、更新したりするために使用されます。API連携ツールは、外部のサービスと連携するために使用されます。例えば、GoogleカレンダーAPIと連携することで、AIエージェントがユーザーの予定を管理したり、会議を設定したりすることが可能になります。
ツールの種類:ファンクション、エクステンション、データストア
AIエージェントが利用できるツールには、主にファンクション、エクステンション、データストアの3種類があります。ファンクションは、特定のタスクを実行するためのプログラムです。例えば、メール送信、データ変換、計算処理などがファンクションの役割です。エクステンションは、外部のAPIと連携するためのツールです。例えば、GoogleカレンダーAPI、Slack API、Salesforce APIなどと連携することができます。データストアは、AIエージェントがアクセスできるデータの集合体です。例えば、顧客情報データベース、商品情報データベース、ナレッジベースなどがデータストアの役割です。
例えば上の図のようにGoogle Flights APIと連携するツールを使えば、ユーザーは自然言語で「来週、東京から大阪へのフライトを予約して」と指示するだけで、AIエージェントがフライトを検索し、予約まで完了させることができます。
ツールの活用例:メール送信、データ検索、API連携
ツールを活用することで、AIエージェントは様々なタスクを実行できます。
例えば、メール送信ツールを使用すれば、AIエージェントがユーザーの代わりにメールを送信できます。データ検索ツールを使用すれば、AIエージェントがデータベースやウェブサイトから必要な情報を検索できます。
API連携ツールを使用すれば、AIエージェントが外部のサービスと連携し、タスクを実行できます。例えば、GoogleカレンダーAPIと連携することで、AIエージェントがユーザーの予定を管理したり、会議を設定したりすることが可能になります。
さらに、複数のツールを組み合わせることで、より複雑なタスクを実行することもできます。例えば、フライト予約ツールとホテル予約ツールを組み合わせることで、AIエージェントがユーザーの旅行計画を自動的に立案し、予約まで行うことができます。また、天気予報ツールと連携することで、旅行先の天候に応じた服装や持ち物を提案することも可能です。このように、ツールを効果的に活用することで、AIエージェントの可能性は大きく広がります。例えば、Google Flights APIと連携するツールを使えば、ユーザーは自然言語で「来週、東京から大阪へのフライトを予約して」と指示するだけで、AIエージェントがフライトを検索し、予約まで完了させることができます。
AIエージェントの「司令塔」:オーケストレーションレイヤーの役割と仕組み
オーケストレーションレイヤーとは:エージェントの行動を制御する仕組み
オーケストレーションレイヤーは、AIエージェントの「司令塔」として、エージェント全体の動作を制御します。オーケストレーションレイヤーは、ユーザーからの指示を解釈し、適切なモデルとツールを選択して、タスクを実行します。また、タスクの実行結果を評価し、必要に応じて次の行動を計画します。オーケストレーションレイヤーは、AIエージェントが自律的に行動するために不可欠な要素です。
オーケストレーションレイヤーの構成要素:推論、計画、意思決定
オーケストレーションレイヤーは、主に推論、計画、意思決定の3つの要素で構成されます。推論とは、与えられた情報から結論を導き出すプロセスです。
例えば、「明日の東京の天気は?」というユーザーからの質問に対して、「天気予報APIを使用して明日の東京の天気を取得する」という結論を導き出すことが推論にあたります。
計画とは、目標を達成するための一連の行動を立案するプロセスです。例えば、「明日の東京の天気を取得する」という目標を達成するために、「天気予報APIを呼び出す」、「取得した天気予報をユーザーに提示する」という一連の行動を計画することが、計画にあたります。
意思決定とは、複数の選択肢の中から最適なものを選択するプロセスです。例えば、複数の天気予報APIがある場合に、どのAPIを使用するかを選択することが意思決定にあたります。
オーケストレーションレイヤーは、これらの要素を組み合わせ、状況に応じて動的に判断を繰り返しながら、AIエージェントの行動を制御します。具体的には、ユーザーからの入力を受け取り、それを解釈して、どのモデルやツールを使用するかを決定します。そして、選択されたモデルやツールを実行し、その結果を評価します。この評価に基づいて、次の行動を計画し、実行するというサイクルを繰り返します。このプロセスを通じて、AIエージェントは、ユーザーの要求に柔軟に対応し、複雑なタスクを効率的に実行することができるのです。
推論フレームワーク:ReAct、Chain-of-Thought、Tree-of-Thoughts
オーケストレーションレイヤーでは、推論を行うためのフレームワークとして、ReAct、Chain-of-Thought、Tree-of-Thoughtsなどが用いられます。
ReActは、推論(Reasoning)と行動(Acting)を組み合わせたフレームワークです。具体的には、現在の状況を分析し(Reasoning)、それに基づいて行動を決定し(Acting)、その行動の結果を観測し、再び推論を行うというサイクルを繰り返します。例えば、ユーザーが「最寄りのイタリアンレストランを探して」と指示した場合、ReActフレームワークを用いたエージェントは、まず「最寄りのイタリアンレストランを探すためには、現在地情報とレストラン検索ツールが必要だ」と推論します(Reasoning)。次に、現在地情報を取得するツールとレストランを検索するツールを選択して実行します(Acting)。そして、ツールの実行結果(現在地情報とレストランのリスト)を基に、「ユーザーに最も近いイタリアンレストランはどこか?」と再度推論を行い、最終的な回答を生成します。
Chain-of-Thoughtは、推論の過程を連鎖的につなげることで、複雑な問題に対処するフレームワークです。例えば、「AならばB、BならばC、ゆえにAならばC」というように、推論を連鎖させることで、最終的な結論を導き出します。
Tree-of-Thoughtsは、推論の過程を木構造で表現することで、複数の可能性を同時に検討するフレームワークです。例えば、「AならばB、AでないならばC」というように、複数の条件分岐を同時に考慮しながら、最適な行動を選択します。これらのフレームワークは、それぞれ異なる特徴を持っているため、タスクの性質に応じて使い分けることが重要です。例えば、リアルタイム性が求められるタスクにはReActが、複雑な推論が必要なタスクにはChain-of-ThoughtやTree-of-Thoughtsが適しています。これらのフレームワークを適切に選択・組み合わせることで、AIエージェントの推論能力を向上させ、より複雑なタスクの実行を可能にします。
フレームワーク | 説明 | 特徴 | 適したタスク |
---|---|---|---|
ReAct (Reasoning and Acting) | 推論(Reasoning)と行動(Acting)を組み合わせ、外部ツールとの連携を可能にするフレームワーク。 | 思考、行動、観察を繰り返すことでタスクを遂行 外部ツールとの連携に優れる 動的な環境に適応しやすい | ウェブ検索 データベースクエリ API呼び出し |
Chain-of-Thought (CoT) | 推論の過程を段階的に言語化することで、複雑な問題解決を可能にするフレームワーク。 | 推論プロセスが明確で解釈しやすい 複雑な問題に対して段階的に解決策を導き出す 論理的な思考を必要とするタスクに強い | 数学の問題解決 論理パズル 診断タスク |
Tree-of-Thoughts (ToT) | 複数の推論パスをツリー構造で探索し、最適な解決策を見つけるフレームワーク。 | 複数の可能性を同時に検討できる 探索的なタスクに強い より最適な解決策を見つけられる可能性が高い | ゲームプレイ 計画立案 戦略的意思決定 |
AIエージェントの2024年のトレンドと発展
企業によるAIエージェントの製品への採用とその課題
2024年は、多くの企業やスタートアップが「エージェント」という言葉を製品に取り入れ、ユーザーの代わりにタスクを実行し、時間節約と面倒な作業の回避を支援するシステムとして広く説明しています。例えば、Microsoft Copilot Agentsは、ユーザーのタスク実行を支援し、提案を提供し、反復的なタスクを自動化し、意思決定をサポートします。Salesforce Agentforceは、従業員や顧客に特化したサポートを提供する自律型AIアプリケーションです。Sema4.aiのエージェントは、複雑な知識ベースの作業に対応し、推論、判断、現実世界の変化への適応能力を主張しています。LinkedIn HR Assistantは、採用担当者が候補者の検索や応募者のレビューなどの時間のかかるタスクを委任できるようにします。ただし、これらのエージェントの多くは、LLMを既存のAPIを呼び出すためのラッパーやオーケストレーターとして使用しています。これは、既存のAPIの信頼性を維持しつつ、ユーザーエクスペリエンスを向上させるための現実的なアプローチです。しかし、真に自律的なアシスタントの実現にはまだ課題が残されています。
エージェントネイティブな基盤モデルの開発
2024年には、エージェントとしての機能に特化した基盤モデルの開発が進みました。優れたエージェントは、タスクの計画を立て、ツールを使用し、メモリを活用し、他のエージェントと通信する能力が必要です。OpenAIのo1モデルは、推論能力に重点を置いており、タスクの分解や計画などの機能を強化しています。また、GoogleのGeminiモデルは、マルチモーダルな推論、長いコンテキストの理解、複雑な指示の実行、関数呼び出し、ツール使用などの機能を備えています。さらに、MetaのMovie GenやGoogleのVeo 2など、特定のタスクに特化したモデルも登場しています。これらの「エージェントネイティブ」なアーキテクチャへのシフトは、効果的なエージェントには、一般的な言語モデリング能力だけでなく、計画、ツール使用、調整などの機能が組み込まれている必要があるという認識の高まりを反映しています。
インターフェースエージェントの台頭
2024年には、インターフェースエージェント、つまりウェブブラウザやデスクトップOSなどのインターフェースを操作してタスクを実行するエージェントが、商業的なエージェント展開の主要な分野となりました。Kura AIやRunner Hなどのスタートアップは、ウェブブラウザを操作してタスクを解決するエージェント製品をリリースしました。MicrosoftのOmniParserは、エージェントがGUI要素と対話する方法を改善しました。AutoGenの新しいバージョン(およびAutoGen Studio)は、ウェブブラウザを操作してタスクを解決できるWebSurferAgentプリセットを提供します。ChatGPTの画面共有機能や、Anthropic Claudeのコンピュータ操作機能、GoogleのProject Marinerなども、この分野の進歩を示しています。インターフェース自動化への注目は、既存の異なるアプリケーション間で反復的なタスクを自動化することで、エージェントが即座に価値を提供できる分野であるためです。
複雑なタスクへの移行とフレームワークの台頭
2024年には、単純なエージェントアプリケーションから、アプリ開発や汎用アシスタントなどのより複雑で自律的なユースケースへの移行が見られました。しかし、これらの複雑なタスクに適したパターン、特に分岐ロジック、内省、メタ認知などの効果的な実装方法を選択することが課題となっています。これらの課題に対処するために、AutoGen、LangGraph、OpenAI Swarm、CrewAI、Pydantic AIなど、いくつかのAIフレームワーク、ガイド、研究論文が登場しました。これらのフレームワークは、複雑なタスクを処理するための洗練されたパターンを提供し、エージェント開発を支援します。特に、AutoGenは、様々なマルチエージェントパターンを簡単に表現し、そのための構成要素を提供することに重点を置いています。
エンドツーエンドのエージェントベンチマークの登場
2024年に導入されたベンチマークにより、自律型マルチエージェントシステムが取り組めるタスクの種類とパフォーマンスに関する知見が得られました。CORE-Bench、WebArena、MicrosoftのWindows Agent Arenaなどのベンチマークは、タスクにおけるエージェントの動作をより厳密に測定することを推進しています。これらのベンチマークは、進歩と限界の両方を明らかにしました。特定の分野に特化したエージェントは優れた能力を示しましたが、汎用エージェントは複雑でオープンエンドなタスクに苦戦し、WebArenaでは人間の78.24%に対してわずか14.41%の成功率でした。しかし、年末にかけて、一部のベンチマークでパフォーマンスが大幅に向上し、2025年に向けての期待が高まっています。例えば、OpenAIのo3モデルは、ARC-AGIベンチマークで人間の閾値である85を超える87.5のスコアを記録しました。ベンチマークには限界があるものの、真のAGI/ASIの到来を占う上で重要な指標となっています。
AIエージェントの活用事例:ビジネスシーンでの応用
顧客対応の自動化:チャットボット、FAQシステム
AIエージェントは、顧客対応の自動化に活用できます。例えば、チャットボットにAIエージェントを組み込むことで、より自然な対話を実現し、顧客満足度を向上させることができます。また、FAQシステムにAIエージェントを組み込むことで、ユーザーの質問に対して、より適切な回答を自動的に提示することができます。これにより、顧客対応の効率化と品質向上を同時に実現できます。
データ分析の効率化:レポート作成、データ可視化
AIエージェントは、データ分析の効率化にも役立ちます。例えば、AIエージェントにデータ分析を指示することで、大量のデータから有益な情報を自動的に抽出することができます。また、抽出した情報を基に、レポートの自動作成やデータの可視化を行うことも可能です。これにより、データ分析にかかる時間と労力を大幅に削減し、より迅速な意思決定を支援できます。
業務プロセスの自動化:RPAとの連携、ワークフローの自動化
AIエージェントは、業務プロセスの自動化にも活用できます。例えば、RPA(Robotic Process Automation)と連携することで、定型的な業務プロセスを自動化できます。また、AIエージェントにワークフローの管理を任せることで、業務の進捗状況をリアルタイムに把握し、ボトルネックを特定して、業務プロセスを最適化することも可能です。これにより、業務効率の向上とコスト削減を実現できます。
マーケティングの最適化:パーソナライズされた広告配信、顧客セグメンテーション
AIエージェントは、マーケティングの最適化にも役立ちます。例えば、AIエージェントに顧客データを分析させることで、顧客一人ひとりに最適化された広告を配信できます。また、顧客の属性や行動履歴に基づいて、顧客セグメンテーションを行うことも可能です。これにより、マーケティングの効果を最大化し、ROI(投資対効果)を向上させることができます。
AIエージェント開発の第一歩:LangChainを用いたプロトタイピング
LangChainとは:AIエージェント開発のためのオープンソースライブラリ
LangChainは、AIエージェント開発のためのオープンソースライブラリです。LangChainを使用すると、モデル、ツール、オーケストレーションレイヤーを簡単に組み合わせ、AIエージェントを構築できます。LangChainは、Pythonで記述されており、Hugging FaceやOpenAIなどの主要なAIプラットフォームと連携できます。LangChainは、AIエージェント開発の初心者にとって、最適なツールの一つです。
LangChainを用いたエージェント開発の手順:モデル、ツール、エージェントの定義
LangChainを用いたAIエージェント開発は、以下の手順で行います。まず、使用するモデルを定義します。例えば、model = ChatVertexAI(model="gemini-1.5-flash-001")
のように記述します。次に、使用するツールを定義します。ツールは、@tool
デコレータを使用して、Pythonの関数として定義できます。例えば、@tool
アノテーションを付けた関数を定義することで、エージェントがその関数をツールとして使用できるようになります。
@tool
def search(query: str):
"""Use the SerpAPI to run a Google Search."""
search = SerpAPIWrapper()
return search.run(query)
@tool
def places(query: str):
"""Use the Google Places API to run a Google Places Query."""
places = GooglePlacesTool()
return places.run(query)
出典:https://www.kaggle.com/whitepaper-agents
上記の例では、search ツールと places ツールを定義しています。search ツールは、SerpAPIWrapperを使用してGoogle検索を実行する関数です。places ツールは、GooglePlacesToolを使用してGoogle Places APIを実行する関数です。これらの関数に @tool デコレータを付けることで、LangChainがこれらの関数をツールとして認識するようになります。
最後に、モデルとツールを組み合わせ、エージェントを定義します。LangChainでは、create_react_agent関数などを用いて、エージェントの推論フレームワークを指定できます。これらの手順をPythonコードで記述し、実行することで、AIエージェントが動作します。LangChainは、AIエージェント開発に必要な機能を豊富に備えているため、開発者は、エージェントのロジックに集中することができます。
例えば、エージェントにReActの推論フレームワークを使用させる場合、create_react_agent関数を使ってエージェントを作成します。この関数は、モデル、ツール、その他の設定を引数として受け取り、ReActエージェントを生成します。開発者は、この関数を使うことで、複雑な推論フレームワークを簡単にエージェントに組み込むことができます。
from langgraph.prebuilt import create_react_agent
from langchain.core.tools import tool
from langchain_community.utilities import SerpAPIWrapper
from langchain_community.tools import GooglePlacesTool
os.environ["SERPAPI_API_KEY"] = "XXXXX" # 実際にはAPIキーを設定
os.environ["GPLACES_API_KEY"] = "XXXXX" # 実際にはAPIキーを設定
@tool
def search(query: str):
"""Use the SerpAPI to run a Google Search."""
search = SerpAPIWrapper()
return search.run(query)
@tool
def places(query: str):
"""Use the Google Places API to run a Google Places Query."""
places = GooglePlacesTool()
return places.run(query)
model = ChatVertexAI(model="gemini-1.5-flash-001")
tools = [search, places]
query = "Who did the Texas Longhorns play in football last week? What is the address of the other team's stadium?"
agent = create_react_agent(model, tools)
input = {"messages": [("human", query)]}
for s in agent.stream(input, stream_mode="values"):
message = s["messages"][-1]
if isinstance(message, tuple):
print(message)
else:
message.pretty_print()
出典:https://www.kaggle.com/whitepaper-agents
LangChainの利点:開発の迅速化、コミュニティサポート
LangChainを使用する利点は、開発の迅速化とコミュニティサポートです。LangChainは、AIエージェント開発に必要な機能を豊富に備えているため、開発者は、エージェントのロジックに集中することができます。具体的には、モデルの選択、ツールの定義、エージェントの作成など、開発の各ステップを簡潔なコードで記述できます。
例えば、新しいツールを追加する場合でも、@tool
デコレータを使って関数を定義するだけで、エージェントがそのツールを利用できるようになります。これにより、開発者は、複雑な設定やコードを記述することなく、迅速にエージェントを開発できます。
また、LangChainは、オープンソースライブラリであるため、世界中の開発者からサポートを受けることができます。LangChainのコミュニティは、活発に活動しており、開発者は、コミュニティを通じて、情報交換や問題解決を行うことができます。さらに、LangChainは、豊富なドキュメントやサンプルコードを提供しているため、初心者でも容易にAIエージェント開発を始めることができます。
これらの利点により、LangChainは、AIエージェント開発のハードルを下げ、多くの開発者がAIエージェント開発に参入することを可能にしています。例えば、LangChainの公式ドキュメントには、様々なユースケースに対応したサンプルコードが掲載されており、開発者はこれらを参考にしながら、自分のニーズに合ったエージェントを開発することができます。また、LangChainのGitHubリポジトリには、世界中の開発者から寄せられた質問やバグレポートが公開されており、開発者はこれらの情報を参照することで、開発中に発生した問題を解決することができます。
AIエージェントの未来:エージェント市場の可能性と課題
AIエージェント市場の成長予測:エージェントの普及と市場規模の拡大
AIエージェント市場は、今後、急速に成長すると予測されています。Grand View Research社のレポート「Artificial Intelligence Agents Market Size, Share & Trends Analysis Report」によれば、AIエージェントの世界市場規模は、2023年の142億ドルから、2030年には1,255億ドルに達すると予測されています。この成長の背景には、AI技術の進歩、企業における業務効率化へのニーズの高まり、そして、AIエージェントの活用事例の増加があります。今後、AIエージェントは、様々な業界で普及し、ビジネスや社会に大きな影響を与えると予想されます。
エージェントの進化:推論能力の向上、マルチモーダル対応
AIエージェントは、今後、さらに進化していくと予想されます。特に、以下の2点が重要な進化の方向性です。
- 推論能力の向上
- マルチモーダル対応
推論能力の向上により、AIエージェントは、より複雑なタスクを自律的に実行できるようになります。具体的には、以下のようなことが可能になります。
- 複数の情報源から得られた情報を統合
- 情報の矛盾点を特定
- 欠落している情報を推測
また、マルチモーダル対応により、AIエージェントは、テキスト、画像、音声など、様々な種類のデータを組み合わせて処理できるようになります。例えば、GoogleのGemini 2.0 Flashは、テキストと画像を入力として受け取り、テキスト、画像、音声を生成できるネイティブマルチモーダルモデルです。
これにより、ユーザーはテキストだけでなく、画像や音声を使って、より自然な形でエージェントと対話することができます。例えば、以下のような使い方が考えられます。
- 旅行先の写真を見せながら、「この場所について教えて」と尋ねる
- 商品のバーコードをスキャンして、「この商品のレビューを教えて」と尋ねる
エージェントは、入力された画像や音声を理解し、それに基づいて適切な情報を検索したり、タスクを実行したりすることができます。さらに、将来的には、AIエージェントが人間の感情を理解し、それに応じた対応を行うことも期待されています。これにより、AIエージェントの活用範囲はさらに広がると期待されます。
エージェント開発における課題:セキュリティ、倫理、人材不足
AIエージェントの開発と運用には、いくつかの課題があります。主に以下の3点です。
- セキュリティ
- 倫理
- 人材不足
セキュリティ面では、AIエージェントが扱うデータの保護や、不正アクセスへの対策が重要です。特に、機密情報や個人情報を扱う場合には、厳重なセキュリティ対策が求められます。
倫理面では、AIエージェントの意思決定の透明性や、バイアスの排除などが課題となります。AIエージェントの判断が、人間の意思決定に大きな影響を与える可能性があるため、その判断基準を明確にし、説明責任を果たすことが重要です。また、AIエージェントが、人種、性別、年齢などに基づく差別的な判断を行わないように、開発段階でバイアスを排除する取り組みが必要です。
さらに、AIエージェントを開発・運用できる人材の不足も、大きな課題の一つです。AIエージェントの開発には、機械学習、自然言語処理、ソフトウェア工学など、幅広い専門知識が求められます。これらの課題を解決するためには、技術的な対策だけでなく、法制度の整備や人材育成などの取り組みが不可欠です。
エージェント市場の将来展望:エージェント・エコシステムの形成
将来的には、AIエージェントを中心としたエコシステムが形成されると予想されます。このエコシステムでは、様々な企業や開発者が、AIエージェントの開発、運用、連携に関わるようになります。例えば、以下のような企業が登場するでしょう。
- AIエージェントの開発ツールを提供する企業
- AIエージェントを運用するためのプラットフォームを提供する企業
- AIエージェント同士を連携させるためのAPIを提供する企業
このようなエコシステムが形成されることで、AIエージェントの開発と活用がさらに加速すると期待されます。例えば、MicrosoftのAutoGen Studioのギャラリー機能は、エージェントやコンポーネントを共有するためのプラットフォームとして機能します。開発者は、ギャラリーを通じて、他の開発者が作成したエージェントやコンポーネントを利用したり、自分が作成したエージェントやコンポーネントを公開したりすることができます。これにより、エージェントの開発が効率化され、多様なエージェントが生まれることが期待されます。