综合介绍
AIEvo是蚂蚁集团开源的多代理框架,旨在高效创建多代理应用。该框架严格遵循SOP任务图,提升复杂任务的执行成功率,并通过反馈和监控机制确保高灵活性和可扩展性。AIEvo已在蚂蚁集团内部生产环境中验证,具有稳定性和可靠性。用户可以利用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
等。 - 根据具体需求自定义代理的描述、提示和指令。
- 使用回调处理器分析代理的执行过程,优化任务执行效果。