自律言語エージェントを構築するためのフレームワーク Agents を試す
自律言語エージェントを構築するためのフレームワーク「Agents」を試してみたので、まとめました。
1. Agents の概要
「Agents」は、自律言語エージェントを構築するためのフレームワークです。
「コンフィグファイル」に自然言語で設定を記述するだけで、「言語エージェント」または「マルチエージェントシステム」をカスタマイズし、「ターミナル」「Gradio」「バックエンドサービス」にデプロイできます。
「Agents」と他の既存の言語エージェントフレームワークとの大きな違いの1つは、「SOP」(Standard Operation Process) を通じて言語エージェントにきめ細かい制御とガイダンスを提供できることです。「SOP」はタスク全体のサブゴール / サブタスクを定義し、ユーザーが言語エージェントのきめ細かいワークフローをカスタマイズできるようにします。
2. Agentsが提供する機能
「Agents」が提供する機能は、次のとおりです。
・長短期記憶 : フレームワーク内の言語エージェントは、VectorDB + セマンティック検索によって実装された長期記憶と、LLMによって維持および更新される短期記憶 (作業メモリ) の両方を備えています。
・ツールの使用 : フレームワーク内の言語エージェントは function-calling を介して外部ツールを使用でき、開発者はカスタマイズされたツール/API をここに追加できます。
・Webナビゲーション : フレームワーク内の言語エージェントは、検索エンジンを使用して Webをナビゲートし、有用な情報を取得できます。
・マルチエージェント通信 : 単一言語エージェントに加えて、フレームワークは、言語エージェントが他の言語エージェントおよび環境と通信できるマルチエージェントシステムの構築をサポートします。事前定義されたルールを使用してエージェントの行動の順序を制御する、既存のマルチエージェントシステムとは異なります。以前の「行動」「環境」「現在の状態のターゲット」を考慮して、LLMを使用して次の行動を実行するエージェントを動的に決定するコントローラ機能を含んでいます。これにより、マルチエージェントの通信がより柔軟になります。
・人間とエージェントの対話 : 言語エージェントが環境内で相互に通信できるようにすることに加えて、人間のユーザーが自分でエージェントの役割を果たし、自分の行動を入力し、他の言語エージェントと対話することをシームレスにサポートします。
3. Agentsの使い方
「Google Colab」で「examples/Single_Agent/chat_bot」を実行してみます。
(1) パッケージのインストール。
# パッケージのインストール
!pip install ai-agents
(2) リポジトリのクローンとexamplesへの移動。
リポジトリの「examples/Single_Agent/chat_bot」を使います。
# リポジトリのクローンとexamplesへの移動
!git clone https://github.com/aiwaves-cn/agents.git
%cd agents/examples
(3) コンフィグファイルの編集。
「examples/Single_Agent/chat_bot/config.json」を編集します。
API_KEYにOpenAI APIキーを入力し、PROXYとAPI_BASEを削除します
{
"config": {
"API_KEY": "API_KEY",
"PROXY": "",
"API_BASE": "",
"MAX_CHAT_HISTORY": "10",
"User_Names": "[\"User\"]",
"TOP_K": "3"
},
:
↓
{
"config": {
"API_KEY": "sk-XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
"MAX_CHAT_HISTORY": "10",
"User_Names": "[\"User\"]",
"TOP_K": "3"
},
:
コンフィグファイルを確認すると、私立探偵事務所の所長、冷酷な探偵「Yang bufan」を演じるエージェントであることがわかります。
コンフィグファイルの詳細は、ドキュメントで確認できます。
(4) エージェントの実行。
# エージェントの実行
!python run.py --agent Single_Agent/chat_bot/config.json
Yang bufan(Yang bufan):hello,What are you looking for me for?
User:
次のように会話を続けることができました。
Yang bufan(Yang bufan):hello,What are you looking for me for?
User:looking for lost cat.
Yang bufan(Yang bufan):(Idle) You're looking for a lost cat. Is there any additional information you can provide about the cat? Such as its name, breed, or any distinguishing features?
User:A black cat with a red ribbon
Yang bufan(Yang bufan):(Indifferent) A black cat with a red ribbon, huh? Could you provide some more details? How long has the cat been missing? Have you checked around your neighborhood or put up any flyers?
User:
この記事が気に入ったらサポートをしてみませんか?