見出し画像

自律言語エージェントを構築するためのフレームワーク 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キーを入力し、PROXYAPI_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:



この記事が気に入ったらサポートをしてみませんか?