はじめに
AIEvoは、マルチエージェントアプリケーションを効率的に作成するために設計された、 Ant Groupのオープンソースマルチエージェントフレームワークです。このフレームワークは、複雑なタスクの実行成功率を向上させるためにSOPタスクグラフに厳密に従い、フィードバックと監視メカニズムによって高い柔軟性とスケーラビリティを保証します。AIEvoは、Ant Groupの内部生産環境で安定性と信頼性が検証されています。ユーザーは、AIEvoを使用して、ディベート大会、人狼退治ゲーム、潜入捜査ゲームなどの様々なマルチエージェントアプリケーションや、コード記述タスクを完了するエンジニアエージェントなどのシングルエージェントアプリケーションを作成できます。
機能一覧
- 高いSOPコンプライアンスSOPタスクマップを厳守し、複雑な業務を遂行する。
- 高い導入成功率フィードバックとモニタリングの仕組みを通じて、ミッションの成功を促進する。
- 高い柔軟性タスクの属性に基づいたダイナミックなタスクの作成とサブスクリプションの設定をサポートします。
- スケーラビリティカスタム拡張フレームワークをサポートするために、多くの拡張ポイントを提供します。
- 企業検証フレームワークの安定性と信頼性を確保するために、アント・グループの社内生産環境で検証。
- マルチエージェント・アプリケーションの例ディベート大会、人狼ゲーム、潜入捜査ゲーム、その他のマルチエージェントアプリケーションの作成をサポートします。
- シングル・エージェント・アプリケーションの例コード作成タスクを完了するエンジニアエージェントの作成をサポートします。
ヘルプの使用
設置プロセス
- クローン倉庫ターミナルで以下のコマンドを実行し、AIEvo リポジトリをクローンします:
git clone https://github.com/antgroup/aievo.git
- カタログへのアクセスクローンされた AIEvo カタログに入る:
cd aievo
- 依存関係のインストールプロジェクトの依存関係ファイルに従って、必要な依存関係をインストールします:
go mod tidy
使用ガイドライン
マルチエージェントアプリケーションの作成
- ベースモデルクライアントの初期化::
client, err := openai.New(openai.WithToken(os.Getenv("OPENAI_API_KEY")), openai.WithModel(os.Getenv("OPENAI_MODEL")), openai.WithBaseURL(os.Getenv("OPENAI_BASE_URL")))
if err != nil {
log.Fatal(err)
}
- ファイル操作関連ツール::
fileTools, _ := file.GetFileRelatedTools(workspace)
- コマンド実行ツール::
bashTool, _ := bash.New()
- ビルド・ツールセット::
engineerTools := make([]tool.Tool, 0)
engineerTools = append(engineerTools, fileTools...)
engineerTools = append(engineerTools, bashTool)
- コールバックプロセッサ::
callbackHandler := &CallbackHandler{}
- 環境の定義::
env := environment.NewEnv()
- ビルディング・エージェント::
engineer, _ := agent.NewBaseAgent(
agent.WithName("engineer"),
agent.WithDesc(EngineerDescription),
agent.WithPrompt(EngineerPrompt),
agent.WithInstruction(SingleAgentInstructions),
agent.WithVars("sop", Workflow),
agent.WithVars("workspace", workspace),
agent.WithTools(engineerTools),
)
シングルエージェントアプリケーションの作成
- ベースモデルクライアントの初期化::
client, err := openai.New(openai.WithToken(os.Getenv("OPENAI_API_KEY")), openai.WithModel(os.Getenv("OPENAI_MODEL")), openai.WithBaseURL(os.Getenv("OPENAI_BASE_URL")))
if err != nil {
log.Fatal(err)
}
- ファイル操作関連ツール::
fileTools, _ := file.GetFileRelatedTools(workspace)
- コマンド実行ツール::
bashTool, _ := bash.New()
- ビルド・ツールセット::
engineerTools := make([]tool.Tool, 0)
engineerTools = append(engineerTools, fileTools...)
engineerTools = append(engineerTools, bashTool)
- コールバックプロセッサ::
callbackHandler := &CallbackHandler{}
- 環境の定義::
env := environment.NewEnv()
- ビルディング・エージェント::
engineer, _ := agent.NewBaseAgent(
agent.WithName("engineer"),
agent.WithDesc(EngineerDescription),
agent.WithPrompt(EngineerPrompt),
agent.WithInstruction(SingleAgentInstructions),
agent.WithVars("sop", Workflow),
agent.WithVars("workspace", workspace),
agent.WithTools(engineerTools),
)
サンプルアプリケーション
- ディベート大会複数のエージェントがディベート大会に参加。
- 狼男ゲーム複数のエージェントが人狼ゲームに参加している。
- 覆面ゲーム複数のエージェントが潜入捜査ゲームに参加。
- エッセイライティング複数のエージェントが共同で論文を作成
- エンジニア・エージェント一人のエージェントがコーディング作業を行う。
ほら
- を使用する前に、環境変数が正しく設定されていることを確認してください。
OPENAI_API_KEY
そしてOPENAI_MODEL
そしてOPENAI_BASE_URL
その他 - 特定のニーズに合わせてエージェントの説明、プロンプト、コマンドをカスタマイズできます。
- エージェントの実行プロセスを分析し、タスク実行の効果を最適化するために、コールバックプロセッサを使用します。