O SE-Agent é uma estrutura autoevolutiva projetada para inteligências do Large Language Model (LLM). Ele permite que diferentes caminhos de raciocínio troquem informações por meio de um mecanismo evolutivo em nível de trajetória, o que rompe a limitação de um único caminho de raciocínio. O SE-Agent é capaz de ampliar o alcance da pesquisa, evitar cair em soluções ótimas locais e demonstrar novos recursos em interações de grupo. A estrutura atinge o melhor desempenho até o momento no SWE-bench (um benchmark de engenharia de software), possibilitando realmente a evolução autônoma de grandes modelos de inteligência em tarefas de raciocínio complexas. Ela permite que as inteligências de IA resolvam problemas complexos de programação com mais eficiência, analisando, combinando e otimizando diferentes soluções.
Lista de funções
- Estrutura autoevolutivaO mecanismo principal permite a troca de informações entre diferentes caminhos de raciocínio por meio da evolução em nível de trajetória, rompendo as limitações cognitivas de um único caminho.
- Três operações evolutivas principais:
- RevisãoA Intelligentsia analisa soluções fracassadas por meio de uma profunda autorreflexão e gera soluções totalmente novas e estruturalmente diferentes.
- RecombinaçãoCombina de forma inteligente o melhor de muitas soluções diferentes para criar soluções novas e melhores.
- Refinamento: aproveitar a experiência de todas as soluções para otimizar aquelas com potencial, eliminar etapas redundantes e fornecer orientação sobre como evitar riscos com base em falhas históricas.
- Desempenho líderNos testes de bancada SWE padrão do setor, usando modelos de linguagem grande de código aberto e fechado, o SE-Agent demonstrou desempenho superior, resolvendo o problema validado 80%.
- Escalabilidade flexívelSuporte aos usuários para criar estratégias evolutivas personalizadas (Operadores) para atender a diferentes necessidades e cenários.
- Gerenciamento eficiente de trilhasInclui um sistema de trajetória para armazenar de forma compacta os registros de execução (o que reduz o tamanho do 80%), acumulando conhecimento entre as iterações e usando modelos grandes para análise e resumo da trajetória.
- Capacidade de processamento em loteSuporte ao processamento em lote e ao teste de várias instâncias no SWE-bench.
Usando a Ajuda
A seção a seguir descreve em detalhes como instalar e usar a estrutura do SE-Agent.
Instalação e configuração
Opção 1: usar o Pip (recomendado)
Essa é a maneira mais fácil e direta de instalar.
- Primeiro, clone o repositório de código do GitHub em seu computador local:
git clone https://github.com/JARVIS-Xs/SE-Agent.git ```2. 进入项目目录: ```shell cd SE-Agent
- Use o pip para instalações em modo editável, o que permitirá que você faça alterações no código com efeito imediato:
pip install -e .
Opção 2: usar o ambiente virtual Conda
O Conda é uma boa opção se você quiser criar um ambiente isolado para o seu projeto e evitar conflitos com outros projetos Python.
- Clonar o repositório de código:
git clone https://github.com/JARVIS-Xs/SE-Agent.git
- Vá para o catálogo de projetos:
cd SE-Agent
- Use o Conda para criar um arquivo chamado
SE
de seu novo ambiente e especifique a versão 3.12 do Python:conda create -n SE python=3.12
- Ative esse ambiente recém-criado:
conda activate SE
- Por fim, instale o SE-Agent nesse ambiente:
pip install -e .
Verificar a instalação
Após a conclusão da instalação, você pode executar o seguinte comando para verificar se a instalação foi bem-sucedida. Se você vir uma mensagem de ajuda ou se o script de teste for executado normalmente, a instalação foi concluída.
sweagent --help
python SE/test/run_operator_tests.py
Configuração da chave de API
O SE-Agent precisa estar conectado ao Big Language Modelling Service para funcionar. Você precisa de pelo menos uma chave de API.
- No diretório raiz do projeto (
SE-Agent/
), crie um arquivo chamado.env
do documento. - Dependendo do modelo de serviço que você tem ou deseja usar, grave as informações-chave correspondentes em um arquivo.
Por exemplo, se você usar a API do DeepSeek:
echo "DEEPSEEK_API_KEY=你的DeepSeek密钥" > .env
Ou, se você usar a API OpenAI:
echo "OPENAI_API_KEY=你的OpenAI密钥" > .env
Ou use a API do Anthropic:
echo "ANTHROPIC_API_KEY=你的Anthropic密钥" > .env
O programa carregará automaticamente o.env
informações importantes no arquivo.
Processo básico de operação
1. execute a demonstração (sem consumo de API)
Esse é um modo de demonstração que não chama nenhuma das APIs de big model on-line e oferece uma visão geral rápida do fluxo de tempo de execução do programa.
python SE/basic_run.py --mode demo
2. execute seu primeiro experimento evolutivo
Esse comando iniciará um processo autoevolutivo completo em que a inteligência começará a resolver um problema predefinido. Esse processo chamará a API do Big Model que você configurou.
python SE/basic_run.py --mode execute
Após a execução, você verá um resultado semelhante ao abaixo, indicando que a inteligência foi inicializada com sucesso e iniciou três rodadas de autoevolução:
✅ SE-Agent initialized successfully
🔄 Starting self-evolution with 3 iterations
3. processamento em lote
Se precisar testar o desempenho do SE-Agent em um conjunto de dados de grande escala (por exemplo, SWE-bench), você pode usar orun-batch
comando. Esse comando permite que você especifique perfis, modelos, subconjuntos de conjuntos de dados e intervalos de processamento.
sweagent run-batch \
--config config/default.yaml \
--agent.model.name deepseek/deepseek-chat \
--instances.subset verified \
--instances.slice :10
Este exemplo usará odeepseek/deepseek-chat
modelagemSWE-bench
médioverified
subconjunto das 10 primeiras perguntas.
Desenvolvimento personalizado
O poder do SE-Agent é sua extensibilidade. Você pode desenvolver seu próprio operador evolutivo (Operator) para definir estratégias evolutivas totalmente novas.
Aqui está um exemplo simples que mostra como criar um operador personalizado:
- através de (uma lacuna)
SE.operators
Importação de classes básicasTemplateOperator
e funções de registroregister_operator
. - Cria um objeto que herda do objeto
TemplateOperator
de uma nova classe, comoMyEvolutionOperator
. - Implementado em uma nova classe
_generate_content
que é sua lógica de evolução personalizada. - Por fim, o uso de
register_operator
registra o seu novo operador com a estrutura e dá a ele um nome exclusivo.
from SE.operators import TemplateOperator, register_operator
class MyEvolutionOperator(TemplateOperator):
def _generate_content(self, instance_info, problem_description, trajectory_data):
# 在这里实现你的自定义进化策略
return "这是由我的新算子生成的内容"
# 注册后就可以在配置文件中使用了
register_operator("my_operator", MyEvolutionOperator)
cenário do aplicativo
- Automação da engenharia de software
O SE-Agent pode resolver automaticamente os problemas encontrados no desenvolvimento de software, como corrigir erros (bugs), otimizar o desempenho do código ou adicionar novos recursos sob demanda. Ele faz isso simulando o processo de pensamento de um desenvolvedor humano, tentando várias soluções, aprendendo e evoluindo com elas e, por fim, encontrando a melhor solução. - Pesquisa sobre solução de problemas complexos
No campo da pesquisa acadêmica, os pesquisadores podem usar o SE-Agent como uma plataforma experimental para explorar as capacidades de raciocínio e aprendizado das inteligências de IA na solução de problemas complexos. Ao personalizar diferentes estratégias evolutivas, é possível investigar qual abordagem é mais eficaz para tipos específicos de problemas. - Avaliação da capacidade do corpo inteligente AI
A estrutura do SE-Agent pode ser executada em benchmarks padronizados (por exemplo, SWE-bench) para avaliar e comparar o desempenho de diferentes modelos de linguagens grandes em tarefas de engenharia de software. Isso proporciona uma medida objetiva de desempenho para desenvolvedores e usuários de modelos.
QA
- Qual é a ideia central do SE-Agent?
A ideia central do SE-Agent é a "autoevolução". Em vez de tentar resolver um problema uma única vez, como faz a IA tradicional, ele gera várias soluções (chamadas de "trajetórias") e, em seguida, otimiza-as iterativamente, analisando os fracassos, integrando os sucessos e, por fim, gerando uma solução de alta qualidade, exatamente como a evolução biológica. - Quais são os grandes modelos de linguagem suportados pelo SE-Agent?
O SE-Agent está disponível por meio dolitellm
para oferecer suporte a várias APIs de modelo, incluindo DeepSeek, OpenAI e Anthropic. Tudo o que você precisa fazer é adicionar o.env
Você pode usá-lo configurando a chave de API apropriada no arquivo. - Preciso de hardware especializado para executar o SE-Agent?
A execução do SE-Agent em si não requer muito hardware local, pois ele chama principalmente as grandes APIs de modelo de linguagem na nuvem para tarefas computacionalmente intensas. Tudo o que você precisa é de uma conexão de rede estável e uma cota de API suficiente. - Como posso contribuir com código para o SE-Agent?
O SE-Agent é um projeto de código aberto no qual você pode relatar problemas ou fazer sugestões enviando problemas no GitHub ou contribuir com o código diretamente enviando solicitações pull. Antes de desenvolver, é recomendável ler a documentação de desenvolvimento do projeto.