LLMを活用したマルチエージェントアプリケーションをより簡単に構築する。
-
私たちの仕事が役に立った場合は、論文を引用してください。
-
agentscope.ioにアクセスして、ドラッグアンドドロップでマルチエージェントアプリケーションを構築してください。
- 私たちのコミュニティに参加してください
Discord | DingTalk |
---|---|
-
[2024-12-12] AgentScopeのロードマップを更新しました。
-
[2024-09-06] AgentScopeバージョン0.1.0がリリースされました。
-
[2024-09-03] AgentScopeはWebブラウザ制御をサポートしています。詳細については、例を参照してください。
AgentScopeは、開発者が大規模モデルを使用してマルチエージェントアプリケーションを構築する能力を提供する革新的なマルチエージェントプラットフォームです。 それは3つの高レベルの機能を備えています:
-
🤝 使いやすさ:開発者向けに設計されており、豊富なコンポーネント、包括的なドキュメント、および広範な互換性を提供します。さらに、AgentScope Workstationは、初心者向けのドラッグアンドドロッププログラミングプラットフォームとcopilotを提供します。
-
✅ 高い堅牢性:カスタマイズ可能なフォールトトレランス制御と再試行メカニズムをサポートし、アプリケーションの安定性を向上させます。
-
🚀 アクターベースの分散:集中型プログラミング方式で分散マルチエージェントアプリケーションを構築し、開発を簡素化します。
サポートされているモデルライブラリ
AgentScopeは、ローカルモデルサービスとサードパーティのモデルAPIの両方をサポートするためのModelWrapper
のリストを提供します。
API | タスク | モデルラッパー | 構成 | サポートされているモデルの一部 |
---|---|---|---|---|
OpenAI API | チャット | OpenAIChatWrapper |
ガイダンス テンプレート |
gpt-4o, gpt-4, gpt-3.5-turbo, ... |
埋め込み | OpenAIEmbeddingWrapper |
ガイダンス テンプレート |
text-embedding-ada-002, ... | |
DALL·E | OpenAIDALLEWrapper |
ガイダンス テンプレート |
dall-e-2, dall-e-3 | |
DashScope API | チャット | DashScopeChatWrapper |
ガイダンス テンプレート |
qwen-plus, qwen-max, ... |
画像生成 | DashScopeImageSynthesisWrapper |
ガイダンス テンプレート |
wanx-v1 | |
テキスト埋め込み | DashScopeTextEmbeddingWrapper |
ガイダンス テンプレート |
text-embedding-v1, text-embedding-v2, ... | |
マルチモーダル | DashScopeMultiModalWrapper |
ガイダンス テンプレート |
qwen-vl-max, qwen-vl-chat-v1, qwen-audio-chat | |
Gemini API | チャット | GeminiChatWrapper |
ガイダンス テンプレート |
gemini-pro, ... |
埋め込み | GeminiEmbeddingWrapper |
ガイダンス テンプレート |
models/embedding-001, ... | |
ZhipuAI API | チャット | ZhipuAIChatWrapper |
ガイダンス テンプレート |
glm-4, ... |
埋め込み | ZhipuAIEmbeddingWrapper |
ガイダンス テンプレート |
embedding-2, ... | |
ollama | チャット | OllamaChatWrapper |
ガイダンス テンプレート |
llama3, llama2, Mistral, ... |
埋め込み | OllamaEmbeddingWrapper |
ガイダンス テンプレート |
llama2, Mistral, ... | |
生成 | OllamaGenerationWrapper |
ガイダンス テンプレート |
llama2, Mistral, ... | |
LiteLLM API | チャット | LiteLLMChatWrapper |
ガイダンス テンプレート |
litellmがサポートするモデル... |
Yi API | チャット | YiChatWrapper |
ガイダンス テンプレート |
yi-large, yi-medium, ... |
Post Request based API | - | PostAPIModelWrapper |
ガイダンス テンプレート |
- |
サポートされているローカルモデルのデプロイ
AgentScopeは、次のライブラリを使用してローカルモデルサービスを迅速にデプロイするためのサポートを提供します。
サポートされているサービス
- ウェブ検索
- データクエリ
- 検索
- コード実行
- ファイル操作
- テキスト処理
- マルチモーダル生成
- Wikipedia検索と検索
- TripAdvisor検索
- ウェブブラウザ制御
例のアプリケーション
-
モデル
-
会話
-
ゲーム
-
分散
さらに多くのモデル、サービス、および例が近日公開予定です。
AgentScopeはPython 3.9以上が必要です。
注:このプロジェクトは現在アクティブに開発中であり、AgentScopeをソースからインストールすることをお勧めします。
- AgentScopeを編集モードでインストールします:
# GitHubからソースコードを取得
git clone https://github.com/modelscope/agentscope.git
# パッケージを編集モードでインストール
cd agentscope
pip install -e .
- pipからAgentScopeをインストールします:
pip install agentscope
さまざまなデプロイメントシナリオをサポートするために、AgentScopeはいくつかのオプションの依存関係を提供します。オプションの依存関係の完全なリストは、チュートリアルを参照してください。分散モードを例にとると、次のように依存関係をインストールできます:
# ソースから
pip install -e .[distribute]
# pypiから
pip install agentscope[distribute]
# ソースから
pip install -e .\[distribute\]
# pypiから
pip install agentscope\[distribute\]
AgentScopeでは、モデルのデプロイメントと呼び出しはModelWrapper
によってデカップリングされています。
これらのモデルラッパーを使用するには、次のようなモデル構成ファイルを準備する必要があります。
model_config = {
# 構成の識別子と使用されるモデルラッパー
"config_name": "{your_config_name}", # 構成を識別する名前
"model_type": "{model_type}", # モデルラッパーを識別するタイプ
# モデルラッパーを初期化するための詳細なパラメータ
# ...
}
OpenAI Chat APIを例にとると、モデル構成は次のようになります:
openai_model_config = {
"config_name": "my_openai_config", # 構成を識別する名前
"model_type": "openai_chat", # モデルラッパーを識別するタイプ
# モデルラッパーを初期化するための詳細なパラメータ
"model_name": "gpt-4", # OpenAI APIで使用されるモデル名(例:gpt-4、gpt-3.5-turboなど)
"api_key": "xxx", # OpenAI APIのAPIキー。設定されていない場合、環境変数OPENAI_API_KEYが使用されます。
"organization": "xxx", # OpenAI APIの組織。設定されていない場合、環境変数OPENAI_ORGANIZATIONが使用されます。
}
ローカルモデルサービスのセットアップ方法やモデル構成の準備方法の詳細については、チュートリアルを参照してください。
次のように組み込みのユーザーエージェントとアシスタントエージェントを作成します。
from agentscope.agents import DialogAgent, UserAgent
import agentscope
# モデル構成を読み込む
agentscope.init(model_configs="./model_configs.json")
# ダイアログエージェントとユーザーエージェントを作成する
dialog_agent = DialogAgent(name="assistant",
model_config_name="my_openai_config")
user_agent = UserAgent()
AgentScopeでは、メッセージはエージェント間の橋渡しであり、dictであり、2つの必要なフィールドname
とcontent
、およびローカルファイル(画像、ビデオ、またはオーディオ)またはウェブサイトへのオプションのフィールドurl
を含みます。
from agentscope.message import Msg
x = Msg(name="Alice", content="Hi!")
x = Msg("Bob", "What about this picture I took?", url="/path/to/picture.jpg")
次のコードを使用して、2つのエージェント(例:dialog_agentとuser_agent)間の会話を開始します:
x = None
while True:
x = dialog_agent(x)
x = user_agent(x)
if x.content == "exit": # ユーザーが"exit"と入力して会話を終了する
break
AgentScopeは、テキスト、画像、オーディオ、ビデオなどのマルチモーダル出力をフロントエンドで表示できる使いやすいランタイムユーザーインターフェースを提供します。
詳細については、チュートリアルを参照してください。
- AgentScopeについて
- インストール
- クイックスタート
- モデル
- プロンプトエンジニアリング
- エージェント
- メモリ
- 応答パーサー
- ツール
- パイプラインとMsgHub
- 分散
- AgentScope Studio
- ログ
- モニター
- 例:人狼ゲーム
AgentScopeはApache License 2.0の下でリリースされています。
貢献は常に歓迎されます!
公式バージョンと比較して、追加のプリコミットフックを使用してチェックを実行する開発者バージョンを提供します:
# Windowsの場合
pip install -e .[dev]
# Macの場合
pip install -e .\[dev\]
# プリコミットフックをインストール
pre-commit install
詳細については、貢献ガイドを参照してください。
私たちの仕事があなたの研究やアプリケーションに役立つ場合は、私たちの論文を引用してください。
-
AgentScope: A Flexible yet Robust Multi-Agent Platform
@article{agentscope, author = {Dawei Gao and Zitao Li and Xuchen Pan and Weirui Kuang and Zhijian Ma and Bingchen Qian and Fei Wei and Wenhao Zhang and Yuexiang Xie and Daoyuan Chen and Liuyi Yao and Hongyi Peng and Ze Yu Zhang and Lin Zhu and Chen Cheng and Hongzhu Shi and Yaliang Li and Bolin Ding and Jingren Zhou} title = {AgentScope: A Flexible yet Robust Multi-Agent Platform}, journal = {CoRR}, volume = {abs/2402.14034}, year = {2024}, }
貢献者の皆様、ありがとうございました: