Introdução geral
AIEvo é a estrutura multiagente de código aberto do Ant Group, projetada para criar aplicativos multiagentes com eficiência. A estrutura segue estritamente o gráfico de tarefas SOP para melhorar a taxa de sucesso da execução de tarefas complexas e garante alta flexibilidade e escalabilidade por meio de mecanismos de feedback e monitoramento. O AIEvo foi validado no ambiente de produção interno do Ant Group com estabilidade e confiabilidade. Os usuários podem usar o AIEvo para criar uma variedade de aplicativos multiagentes, como competições de debate, jogos de matar lobisomens, jogos secretos etc., bem como aplicativos de agente único, como um agente engenheiro que realiza tarefas de escrita de código.
Lista de funções
- Alta conformidade com os POPsExecuta tarefas complexas em estrita observância aos mapas de tarefas do POP.
- Alta taxa de sucesso de implementaçãoMelhorar o sucesso da missão por meio de mecanismos de feedback e monitoramento.
- alta flexibilidadeSuporte à criação dinâmica de tarefas e configurações de assinatura com base nos atributos da tarefa.
- escalabilidadeFornece vários pontos de extensão para suportar estruturas de aprimoramento personalizadas.
- Verificação da empresaValidado no ambiente de produção interno do Ant Group para garantir a estabilidade e a confiabilidade da estrutura.
- Exemplo de aplicativo multiagenteSuporte à criação de competições de debate, jogos de lobisomem, jogos secretos e outros aplicativos multiagentes.
- Exemplo de aplicativo de agente únicoSuporte à criação de agentes de engenharia que realizam tarefas de gravação de código.
Usando a Ajuda
Processo de instalação
- armazém de clonesExecute o seguinte comando em um terminal para clonar o repositório do AIEvo:
git clone https://github.com/antgroup/aievo.git
- Acesso ao catálogoDigite o catálogo clonado do AIEvo:
cd aievo
- Instalação de dependênciasInstalação: Instale as dependências necessárias de acordo com o arquivo de dependências do projeto:
go mod tidy
Diretrizes para uso
Criação de aplicativos multiagentes
- Inicialização do cliente do modelo básico::
client, err := openai.New(openai.WithToken(os.Getenv("OPENAI_API_KEY")), openai.WithModel(os.Getenv("OPENAI_MODEL")), openai. WithBaseURL(os.Getenv("OPENAI_BASE_URL")))
withBaseURL(os.Getenv("OPENAI_BASE_URL")))) = nil {
log.Fatal(err)
}
- Ferramentas relacionadas à manipulação de arquivos::
fileTools, _ := file.GetFileRelatedTools(workspace)
- ferramenta de execução de comandos::
bashTool, _ := bash.New()
- Conjunto de ferramentas de construção::
engineerTools := make([]tool.Tool, 0)
engineerTools = append(engineerTools, fileTools...)
engineerTools = append(engineerTools, bashTool)
- processador de retorno de chamada::
callbackHandler := &CallbackHandler{}
- Definição do ambiente::
env := environment.NewEnv()
- Agentes de construção::
engineer, _ := agent.NewBaseAgent(
agent.WithName("engineer"),
agente.WithDesc(EngineerDescription),
agente.WithPrompt(EngineerPrompt), agente.
Agent.WithInstruction(SingleAgentInstructions), agent.
Agent.WithVars("sop", Workflow), agent.
Agent.WithVars("workspace", workspace), agent.
agent.WithTools(engineerTools), )
)
Criação de um aplicativo de agente único
- Inicialização do cliente do modelo básico::
client, err := openai.New(openai.WithToken(os.Getenv("OPENAI_API_KEY")), openai.WithModel(os.Getenv("OPENAI_MODEL")), openai. WithBaseURL(os.Getenv("OPENAI_BASE_URL")))
withBaseURL(os.Getenv("OPENAI_BASE_URL")))) = nil {
log.Fatal(err)
}
- Ferramentas relacionadas à manipulação de arquivos::
fileTools, _ := file.GetFileRelatedTools(workspace)
- ferramenta de execução de comandos::
bashTool, _ := bash.New()
- Conjunto de ferramentas de construção::
engineerTools := make([]tool.Tool, 0)
engineerTools = append(engineerTools, fileTools...)
engineerTools = append(engineerTools, bashTool)
- processador de retorno de chamada::
callbackHandler := &CallbackHandler{}
- Definição do ambiente::
env := environment.NewEnv()
- Agentes de construção::
engineer, _ := agent.NewBaseAgent(
agent.WithName("engineer"),
agente.WithDesc(EngineerDescription),
agente.WithPrompt(EngineerPrompt), agente.
Agent.WithInstruction(SingleAgentInstructions), agent.
Agent.WithVars("sop", Workflow), agent.
Agent.WithVars("workspace", workspace), agent.
agent.WithTools(engineerTools), )
)
aplicativo de amostra
- competição de debatesAgente de debate: Vários agentes participam de competições de debate.
- Jogos de lobisomemAgente: Vários agentes estão envolvidos no jogo Werewolf.
- Jogos secretosAgente de segurança: Vários agentes envolvidos em jogos secretos.
- redação de ensaiosVários agentes colaboram em documentos.
- Agente do engenheiroUm único agente conclui a tarefa de codificação.
advertência
- Certifique-se de que você configurou as variáveis de ambiente corretamente antes de usar o
OPENAI_API_KEY
eOPENAI_MODEL
eOPENAI_BASE_URL
etc. - Personalize as descrições, os prompts e os comandos do agente para atender a necessidades específicas.
- Use o processador de retorno de chamada para analisar o processo de execução do agente e otimizar a eficácia da execução da tarefa.