エージェント 私がこれまでに見た最も一般的な訳は「知的身体」だが、直訳すると「代理人」だ。
Agenticは何と訳すのですか?agentic "の方が適切だと思います。
読者を混乱させないために、この記事では直接英語を使うことにする。
LLMが進化するにつれ、AIの能力はもはや単純なタスクの自動化にとどまらず、複雑で継続的なワークフローを処理できるようになる。例えば、LLMを使って、eコマース・プラットフォームで自動的に商品を注文し、ユーザーの代わりに配送を手配するインテリジェント・アシスタントを作ることができる。これらはLLMベースのアシスタントはAIエージェントとして知られている。.
より具体的に言うと、AIエージェントとは、あらかじめ定義されたタスクやツールに基づいて、特定のタスクやツールを支援することができるLLM駆動のインテリジェントアシスタントです。最も基本的な形として、AIエージェントは次のような主な機能を持っています:
- メモリ管理AIエージェントは、ユーザーとのインタラクションの記録を保存し、管理することができます。
- 外部データソースとの相互作用外部システムと通信してデータを取得したり、タスクを完了したりする能力。
- 実行機能実際の作業は、関数を呼び出すことによって行われる。
一例として、AIエージェントは以下のタスクを実行できる:
- レストラン予約例えば、レストラン・システムのAIエージェントは、ユーザーがオンラインで席を予約したり、さまざまなレストランを比較したり、音声対話を通じてレストランに直接電話したりするのを助けることができる。
- バーチャル・コラボレーションAIエージェントは、プロジェクトの "小さな秘書 "として、特定のタスクについてユーザーと共同作業を行うことができます。
- 日常業務の自動化AIエージェントは、複数ステップの操作を処理し、日常的なコンピュータ操作を完了することもできます。例えば、Replit Agentは、開発者が開発環境で行う操作をシミュレートし、依存関係を自動的にインストールしたり、コードを編集したりすることができる。 コンピューター ユーズエージェントのご案内 クロード マウスを動かす、ボタンをクリックする、テキストを入力するなど、ユーザーが一般的に使用する方法でコンピュータを操作する。
Python、Reactなどの技術スタックを使ってAIエージェントをゼロから構築することも可能だが、Phidata、OpenAI Swarm、LangGraph、Microsoft Autogen、CrewAI、Vertex AI、などの技術の助けを借りて、AIエージェントをゼロから構築することも可能だ。 ラングフロー AIアシスタントのようなマルチエージェント・フレームワークを使えば、開発プロセスがより効率的になる。これらのフレームワークは、AIアシスタントを迅速に構築するのに役立つ、あらかじめパッケージ化されたツールや機能を提供する。
では、これらのフレームワークを使う利点は何だろうか?
- 適切なLLMの選択具体的なアプリケーションのシナリオに応じて、OpenAI、Anthropic、xAI、MistralなどのLLMや、以下のようなLLMを使用することができます。 オーラマ やLM Studioのようなツールを使ってAIエージェントを構築する。
- ナレッジベースの追加これらのフレームワークでは、AIエージェントが情報を取得・理解するための知識ベースとして、特定のドキュメント(json、pdfファイル、ウェブサイトなど)を追加することができます。
- 内蔵メモリー機能チャットログやパーソナライズされた会話を保存・管理するための複雑なシステムを構築する必要はありません。このフレームワークには、AIエージェントが過去のやり取りを記憶し、時間をかけてアクセスできるようにするメモリー機能が付いています。
- カスタマイズ・ツールマルチエージェントフレームワークにより、AIエージェントにカスタムツールを追加し、外部システムとシームレスに統合することで、オンライン決済、ウェブ検索、APIコール、データベース検索、ビデオ視聴、メール送信などの操作を実行することができます。
- エンジニアリング課題の簡素化これらのフレームワークは、知識やメモリの管理といった複雑なエンジニアリング作業を簡素化し、AI製品を開発する際の技術的な難易度を下げるのに役立ちます。
- 開発と配備の加速このフレームワークは、AIシステムの構築に必要なツールとインフラを提供し、AWSなどのクラウドプラットフォームへのAIシステムの迅速な開発と導入を支援します。
これらのフレームワークを使えば、効率的でインテリジェントなAIエージェントをより簡単に開発し、製品開発のスピードと質を向上させることができる。
次に、AIエージェントを構築するためのトップ5プラットフォームを紹介します!
エージェントの基本構造
次のコード・スニペットは、最も単純なAIエージェントの1つを示している。 AIエージェントは、言語モデルを使用して問題を解決する。AIエージェントの定義には、大小の言語モデル、メモリ、ストレージ、外部知識ソース、ベクトル・データベース、命令、説明、名前などの選択が含まれる。
例えば、次のようなものだ。 ウィンドサーフ このような最新のAIエージェントは、誰でも素早くフルスタックのウェブアプリケーションを生成、実行、編集、ビルド、デプロイすることができます。Astro、Vite、Next.js、Superbaseなど、さまざまなWebテクノロジーやデータベースのコード生成やアプリケーション構築をサポートします。
企業におけるマルチエージェントの活用事例
エージェント型AIシステムは、企業環境において幅広い応用が可能である。特に自動化された反復作業の実行.ここでは、AIエージェントが企業で役立つ主なアプリケーションシナリオを紹介します:
- 通話とその他の分析マルチエージェントシステムは、ユーザーの意図、デモグラフィック、インタラクションの分析とレポート作成に優れています。その分析/レポート機能は、組織が顧客や市場をターゲットにするのに役立ちます。
- 通話区分参加者のネットワーク帯域幅と強度に基づいて通話を自動的に分類し、効率的に処理します。
- マーケット・リスニング市場アプリケーションにおける顧客のセンチメントをモニターし、分析する。
- アンケートとコメントの分析顧客からのフィードバックや調査データを活用し、顧客体験を向上させる。
- 出張・経費管理経費の報告、追跡、承認を自動化します。
- ダイアログ・バンキングAIを搭載したチャットや音声アシスタントを通じて、顧客のバンキング業務を支援する。
- ユニバーサルAIがチャットボットをサポートカスタマーサポートエージェントは、顧客からの苦情に対応し、問題のトラブルシューティングを行い、複雑なタスクを他のエージェントに任せることができます。
- 財政的ファイナンシャル・エージェントは、経済、株式、市場の動向を予測し、実践的な投資アドバイスを提供します。
- マーケット企業のマーケティングチームは、AIエージェントを利用して、さまざまなターゲット層向けにパーソナライズされたコンテンツや広告コピーを作成し、コンバージョン率を高めることができる。
- セールスAIエージェントは、システム内の顧客との対話パターンを分析し、営業チームがリードのコンバージョンに集中できるよう支援します。
- 技術テクノロジー業界において、AI Coding Agentは、コードの補完、生成、自動化、テスト、バグ修正を加速させることで、開発者やエンジニアの生産性向上を支援します。
2024 ファイブ・エージェント・フレームワーク
アプリケーションやサービスにAgentを作成・追加するために、いくつかのPythonフレームワークを使用することができます。これらのフレームワークには、ノーコード(ビジュアルAIエージェントビルダー)、ローコード、ミディアムコードのツールが含まれます。これから、2024年のPythonベースのエージェントビルダーのトップ5つを紹介するので、あなたのビジネスニーズに応じて自由に選んでください。
1 フィダータ
フィダータ は、LLMをAI製品のエージェントに変換するためのPythonベースのフレームワークで、OpenAI、Anthropic、Cohere、Ollamaなどの主要プレイヤーのクローズドソースおよびオープンソースのLLMをサポートしています。 一緒に AIなどデータベースとベクトルストアのサポートにより、AIシステムをPostgres、PgVector、Pinecone、LanceDbなどに簡単に接続することができます。Phidataを使えば、基本的なAgentを構築できるだけでなく、関数呼び出し、構造化された出力、微調整を備えた高度なAgentを作成することもできます。
フィデータの主な特徴
- 内蔵エージェントUIPhidata は、Agent プロジェクトをローカルまたはクラウドで実行し、バックグラウンドでセッションを管理するための、すぐに使えるユーザインタフェースを提供します。
- 展開GitHubやクラウドサービスにエージェントを公開したり、AWSアカウントを接続して本番環境にデプロイすることができます。
- 主要指標のモニタリングセッションスナップショット、APIコール、トークンの使用状況を提供し、設定のチューニングとAgentの改善をサポートします。
- テンプレートサポート設定済みのコードベーステンプレートにより、AIエージェントの開発と生産プロセスを加速します。
- AWSのサポートPhidataはAWSとシームレスに統合されており、AWSアカウント上で完全なアプリケーションを実行することができます。
- モデル独立OpenAI、Anthropic、Groqの最新技術の使用をサポートします。 ミストラル およびその他の高度なモデルとAPIキー。
- マルチエージェントの構築Phidataを使用することで、Agentのチームを作成し、互いにタスクを受け渡し、複雑なタスクを共同で処理することができます。PhidataはバックグラウンドでAgentの調整をシームレスに処理します。
これから、PhidataフレームワークとOpenAIのLLMを使って、Yahoo Financeの財務データを照会する基本的なAIエージェントをPythonで構築する方法をお見せします。
依存関係をインストールします:
新しい financial_agent.py を作成します:
import openai from phi.agent import エージェント from phi.model.openai import OpenAIChat from phi.tools.yfinance import YFinanceTools from dotenv import load_dotenv import os # .env ファイルから環境変数をロードする load_dotenv() # 環境からAPIキーを取得する openai.api_key = os.getenv("OPENAI_API_KEY") # エージェントを初期化する finance_agent = エージェント( name="Finance AI Agent"、 model=OpenAIChat(id="gpt-4o")、 tools=[ YFinanceTools( stock_price=True、 analyst_recommendations=True、 company_info=True、 company_news=True. ) ], instructions=["Use tables to display data"]、 show_tool_calls=True、 markdown=True, ) ) #は、NVDAに対するアナリストの推奨の要約を出力します。 finance_agent.print_response("NVDAに対するアナリストの推奨銘柄の要約", stream=True)
上記のコード:
- モジュールのインポートとAPIキーのロード
まず、必要なモジュールとパッケージをインポートし、.envファイルを介してOpenAIのAPIキーをロードします。このAPIキーの読み込みは、Anthropic、Mistral、Groqなどの他のモデルプロバイダーにも適用されます。 - プロキシの作成
PhidataのAgentクラスを使用して、新しいAgentを作成し、モデル、ツール、コマンドなどの独自の機能や特徴を指定します。 - 印刷対応
print_responseメソッドを呼び出して、質問に対するエージェントの回答を出力し、それをストリームとして表示するかどうかを指定します(stream=True)。
2 スウォーム
Swarmは、OpenAIによって最近リリースされたオープンソースの実験的エージェントフレームワークであり、軽量のマルチエージェントオーケストレーションフレームワークである。
銘記するSwarmはまだ実験段階です。開発や教育目的での利用は可能ですが、本番環境での利用は推奨していません。最新情報は公式リポジトリを参照してください:
https://github.com/openai/swarm
スウォームの使用 代理店 歌で応える ハンドオフ Agentのオーケストレーションと調整のための抽象化として、テストと管理が容易な軽量なフレームワークです。SwarmのAgentは、特定のタスクを実行するために、ツール、コマンド、その他のパラメータで設定することができます。
軽量でシンプルなアーキテクチャに加え、スウォームには次のような主な特徴がある:
- 次世代に引き継ぐSwarmは、マルチ・エージェント・システムの構築をサポートしており、1つのエージェントがいつでも他のエージェントに会話を引き継ぐことができます。
- スケーラビリティ簡素化されたハンドオフ・アーキテクチャにより、Swarmは何百万人ものユーザをサポートするエージェント・システムを簡単に構築できます。
- スケーラビリティSwarmは高度にカスタマイズできるように設計されており、完全にカスタマイズされたエージェント体験を作り出すために使用することができます。
- 内蔵検索システムとメモリー処理Swarmには、対話コンテンツを保存・処理する機能が組み込まれています。
- プライバシーSwarmは主にクライアント側で実行され、呼び出しの間に状態を保持しないため、データのプライバシーが大幅に向上する。
- 教育リソースSwarmは、開発者がテストして学習できるように、基本的なものから高度なものまで、さまざまなマルチ・エージェント・アプリケーションの例を提供しています。
次にSwarmの使い方を紹介しよう:
from swarm import Swarm, Agent # Swarmクライアントを初期化する クライアント = Swarm() mini_model = "gpt-4o-mini" # エージェントBにタスクを引き渡すための調整関数を定義する。 def transfer_to_agent_b(). return agent_b # エージェントAの定義 agent_a = Agent( name="Agent A", instructions="あなたは親切なアシスタントです。 instructions="You are a helpful assistant.", functions=[transfer_to_agent_b], return agent_b functions=[transfer_to_agent_b], ) ) # エージェントBの定義 agent_b = Agent( name="エージェントB"、 model=mini_model、 命令="あなた 話す フィンランド語のみ", ) ) # エージェントシステムを実行し、レスポンスを取得します。 response = client.run( agent=agent_a, messages=[{"role": "user", "content": "エージェントBと話したい。", "user", "content": "エージェントBと話したい。") messages=[{"role": "user", "content": "I want to talk to Agent B."}]、 debug=False, ) ) # エージェントBからの応答をプリントする print(response.messages[-1]["content"])
上記コード
-
- 初期化
- クライアント・インスタンスの作成にはSwarmを使用する。
- エージェントは、エージェントの名前、機能、言語モデルを定義します(例:gpt-4o-mini)。
- 遷移論理学
- 初期化
transfer_to_agent_b は、エージェント_a からエージェント_b にタスクを転送するコーディネータ関数です。
-
- 稼働中のエージェントシステム
client.run()はエージェントシステムを実行し、タスクの実行を追跡するためにメッセージとデバッグパラメータを渡す。
agent_bのコマンドの言語を他の言語(例えば、英語、スウェーデン語、フィンランド語)に変更すると、対応する言語での応答が得られます。
3 CrewAI
クルーAI AIエージェントを迅速に構築し、最新のLLMやコードベースに統合するための最も人気のあるエージェントベースのAIフレームワークの1つです。オラクル、デロイト、アクセンチュアなどの大企業がCrewAIを使用し、信頼を寄せています。
CrewAIは、他のエージェントベースのフレームワークよりもリッチで汎用性が高い。
- スケーラビリティNotion、Zoom、Stripe、Mailchimp、Airtableなど、700以上のアプリケーションとの統合をサポート。
- アーティファクト
- 開発者は、CrewAIフレームワークを使用して、マルチエージェント自動化システムをゼロから構築することができます。
- デザイナーは、UI Studioとテンプレート・ツールを使って、コードのない環境で完全に機能的なエージェントを作成することができます。
- 展開お好みのデプロイ方法を使用して、開発エージェントを本番環境にすばやく移行できます。
- エージェントの監視Phidataのように、CrewAIはエージェントの進捗とパフォーマンスを監視するための直感的なダッシュボードを提供します。
- 内蔵トレーニングツールCrewAIの内蔵トレーニングツールとテストツールを使用して、エージェントのパフォーマンスと効率を向上させ、レスポンスの品質を確保します。
まず、CrewAIをインストールする必要がある:
上記のコマンドはCrewAIとそのツールをインストールし、インストールが成功したことを確認します。
インストールが完了したら、以下のコマンドを実行して新しいCrewAIプロジェクトを作成します:
このコマンドを実行すると、OpenAI、Anthropic、xAI、Mistralなどのモデル・プロバイダのリストから1つを選択するよう促される。プロバイダーを選択した後、リストから特定のモデルを選択することもできます。
マルチ・エージェント・システムを作成するには、以下のコマンドを使用します:
完全なCrewAIアプリケーションはGitHubリポジトリにアップロードされており、以下のコマンドでダウンロードして実行することができる:
https://github.com/GetStream/stream-tutorial-projects/tree/main/AI/Multi-Agent-AI
実行すると、次のような応答結果が表示される:
4 オートジェン
オートジェン は、エージェントシステムを構築するためのオープンソースのフレームワークです。このフレームワークを使用すると、マルチエージェントのコラボレーションとLLMワークフローを作成できます。
オートジェンには次のような主な機能があります:
- クロスランゲージ・サポートPythonや.NETなどのプログラミング言語を使ってエージェントを構築する。
- 現地エージェントエージェントは、よりプライバシーを確保するために、ローカルで実行し、実験することができる。
- 非同期メッセージ通信エージェント間の通信には非同期メッセージを使用します。
- スケーラビリティ組織横断的なコラボレーションのための分散エージェントネットワークの構築をサポートします。
- カスタマイズ性プラグイン可能なコンポーネントにより、完全にパーソナライズされたAgentシステムエクスペリエンスをカスタマイズして構築できます。
次のコード・ブロックは、シンプルなAI気象エージェント・システムを構築します:
インポート asyncio from autogen_agentchat.agents import AssistantAgent from autogen_agentchat.task import Console, TextMentionTermination from autogen_agentchat.teams import RoundRobinGroupChat from autogen_ext.models import OpenAIChatCompletionClient import os from dotenv import load_dotenv load_dotenv() # ツールを定義する async def get_weather(city: str) -> str. return f "{city}の天気は73度で晴れです。" async def main() -> None: return f "{city}の天気は73度で晴れです。 # エージェントの定義 weather_agent = AssistantAgent( name="weather_agent", model_client=OpenAgent model_client=OpenAIChatCompletionClient( model="gpt-4o-mini"、 api_key=os.getenv("OPENAI_API_KEY")、 ), tools=[get_weather], ) ) # 終了条件を定義する 終了 = TextMentionTermination("TERMINATE") # エージェントチームの定義 agent_team = RoundRobinGroupChat([weather_agent], termination_condition=termination) # チームを実行し、コンソールにメッセージをストリームする stream = agent_team.run_stream(task="What is the weather in New York?") await Console(stream) asyncio.run(main())
上記コード
- ツールの定義get_weatherは街の天気情報を返すユーティリティ関数のサンプルです。
- エージェントの定義AssistantAgentを使用してエージェントを定義し、モデルクライアントをOpenAIのGPT-4o-miniに設定します。APIキーは.envファイルから読み込まれます。
- 終了条件TextMentionTerminationで終了条件を定義し、"TERMINATE "が言及されたときにタスクを終了させる。
- エージェントチームRoundRobinGroupChatを使用して、ポーリング方式でタスクを割り当てるエージェントのチームを作成します。
このコードを実行すると、コンソールに以下のような出力が表示される:
5 ラングラフ
LangGraphは、複雑なタスクを処理するマルチエージェントシステムを構築するために設計されたノードベースのAIフレームワークです。LangChainエコシステムの一部として、LangGraphはグラフ構造のエージェントフレームワークです。ユーザはノードとエッジを使って、線形、階層的、逐次的なワークフローを構築することができます。その中にはノードはエージェントの行動を表す。エッジアクション間の遷移を表す。州はLangGraphエージェントのもう一つの重要な部分です。
LangGraphの利点と主な機能
- フリー・オープンソースLangGraphはMITオープンソースライセンスに基づくフリーライブラリです。
- ストリーミング対応エージェントの中間ステップと思考プロセスを示すために、逐語的なストリーミングサポートを提供します。
- 展開オプション複数の大規模デプロイメントがサポートされ、エージェントのパフォーマンスはLangSmithで監視できます。Enterpriseオプションでは、LangGraphをユーザ自身のインフラストラクチャに完全にデプロイすることができます。
- 企業への適応リプリット AIコーディング・エージェントにLangGraphを使用することで、LangGraphの企業への適用性を実証している。
- ハイパフォーマンス複雑なAgentワークフローを扱う際に、追加のコード負担がありません。
- 循環と制御性ループを含むマルチエージェントワークフローを簡単に定義し、エージェントの状態を完全にコントロールできます。
- オブジェクト化LangGraphは、グラフの各ステップが終了するごとに、エージェントの状態を自動的に保存し、グラフ実行の一時停止と再開をサポートします。
以下のアドレスからサンプルコードをダウンロードしてください:
https://langchain-ai.github.io/langgraph/