SE-Agent
扫码查看

优化多步推理的自主进化AI代理框架

SE-Agent

综合介绍

SE-Agent 是一个创新的开源框架,专注于通过自我进化机制优化基于大语言模型(LLM)的代理在复杂多步推理任务中的表现。它通过轨迹级进化实现推理路径间的信息交换,突破单一轨迹的认知局限,显著提升问题解决能力。SE-Agent 在 SWE-bench Verified 测试中取得 80% 的 Top1 性能,位居开源框架榜首,展现了其在软件工程任务中的强大潜力。框架支持灵活的配置和扩展,适合开发者和研究人员用于探索复杂推理场景。用户可通过简单的安装和配置快速上手,结合其核心操作(修订、重组、优化)实现高效的推理优化。

功能列表

  • 自我进化机制:通过修订、重组和优化三大核心操作,提升推理轨迹的多样性和质量。
  • 轨迹修订:分析失败轨迹,识别问题并生成全新的解决方案,突破原有策略局限。
  • 轨迹重组:整合多条轨迹的优点,生成更优的解决方案,实现协同效应。
  • 轨迹优化:精简冗余步骤,提升轨迹效率,规避系统性错误。
  • 灵活的扩展支持:允许用户自定义进化策略,适配不同任务需求。
  • 批处理功能:支持批量处理多个 SWE-bench 实例,高效完成大规模任务。
  • 压缩轨迹存储:采用 .tra 文件格式,减少 80% 存储空间,便于管理大量轨迹数据。
  • 多模型支持:兼容 DeepSeek、OpenAI、Anthropic 等多种 LLM API,提升灵活性。

使用帮助

安装流程

SE-Agent 提供了两种安装方式,适合不同用户需求。以下是详细步骤:

方式一:使用 Pip 安装(推荐)

  1. 克隆仓库到本地:
    git clone https://github.com/JARVIS-Xs/SE-Agent.git
    cd SE-Agent
    

  1. 安装依赖:
    pip install -e .
    
  2. 验证安装:
    sweagent --help
    

    成功显示帮助信息表示安装完成。

方式二:使用 Conda 安装

  1. 克隆仓库:
    git clone https://github.com/JARVIS-Xs/SE-Agent.git
    cd SE-Agent
    
  2. 创建 Conda 环境:
    conda create -n SE python=3.12
    conda activate SE
    
  3. 安装依赖:
    pip install -e .
    
  4. 验证安装:
    sweagent --help
    

API 密钥配置

SE-Agent 支持多个 LLM API(如 DeepSeek、OpenAI、Anthropic)。配置步骤如下:

  1. 创建 .env 文件:
    echo "DEEPSEEK_API_KEY=your_deepseek_key" > .env
    

    或根据需要配置其他 API 密钥:

    echo "OPENAI_API_KEY=your_openai_key" > .env
    echo "ANTHROPIC_API_KEY=your_anthropic_key" > .env
    
  2. 确保 .env 文件位于项目根目录,系统会自动加载密钥。

详细配置选项可参考项目中的 instruction.md 文件。

快速上手

运行 SE-Agent 的基本实验非常简单。以下是运行演示和实验的步骤:

  1. 运行演示模式(无需 API 调用)
    python SE/basic_run.py --mode demo
    

    输出示例:

    ✅ SE-Agent initialized successfully
    🔄 Starting self-evolution with 3 iterations
    
  2. 运行实验模式
    python SE/basic_run.py --mode execute
    

    这将启动一个完整的自我进化实验,执行默认配置的推理任务。

核心功能操作指南

SE-Agent 的三大核心操作(修订、重组、优化)是其独特优势,以下是具体使用方法:

1. 修订(Revision)

修订操作通过分析失败轨迹,识别错误或低效点,并生成全新的解决方案。例如,运行修订操作:

python SE/basic_run.py --config SE/configs/se_configs/experiment.yaml --mode execute
  • 配置文件中可指定 "operator": "alternative_strategy",触发修订逻辑。
  • 系统会自动分析轨迹,生成新的策略,适合处理复杂问题。

2. 重组(Recombination)

重组操作整合多条轨迹的优点,生成更优解。配置方式:

strategy_config = {
"iterations": [
{"base_config": "baseline", "operator": None},
{"base_config": "enhanced", "operator": "crossover"}
]
}

运行命令:

python SE/basic_run.py --config SE/configs/se_configs/experiment.yaml --mode execute
  • 系统会从不同轨迹中提取高性能片段,合并生成新轨迹。

3. 优化(Refinement)

优化操作精简轨迹,移除冗余步骤。运行方式同上,配置文件中指定 "operator": "refinement"。优化后的轨迹更高效,适合需要快速迭代的场景。

自定义进化策略

SE-Agent 支持用户开发自定义进化操作。步骤如下:

  1. 创建自定义操作类:
    from SE.operators import TemplateOperator, register_operator
    class MyEvolutionOperator(TemplateOperator):
    def _generate_content(self, instance_info, problem_description, trajectory_data):
    return "Your generated strategy content"
    
  2. 注册操作:
    register_operator("my_operator", MyEvolutionOperator)
    
  3. 在配置文件中指定使用 my_operator,即可应用自定义策略。

详细开发指南见 SE/operators.md

批处理任务

对于大规模任务,SE-Agent 支持批处理:

sweagent run-batch \
--config config/default.yaml \
--agent.model.name deepseek/deepseek-chat \
--instances.subset verified \
--instances.slice :10
  • 上述命令处理 SWE-bench 前 10 个验证实例。
  • 可通过修改 --instances.slice 调整处理范围。

测试与调试

确保代码和功能正常运行:

  1. 运行所有测试:
    pytest
    
  2. 运行框架特定测试:
    python SE/test/run_operator_tests.py
    
  3. 代码格式化:
    ruff check .
    ruff format .
    

应用场景

  1. 软件工程任务自动化SE-Agent 可用于自动化处理复杂的软件工程任务,如代码调试和优化,特别适合需要多步推理的场景。
  2. AI 研究与开发研究人员可利用 SE-Agent 的自我进化机制,探索大语言模型在复杂推理中的潜力,开发新型推理策略。
  3. 教育与培训开发者可通过 SE-Agent 的文档和示例,学习如何构建和优化基于 LLM 的代理,提升技术能力。
  4. 大规模数据处理批处理功能适合处理大量测试用例或任务实例,适用于企业级软件开发和测试。

QA

  1. SE-Agent 支持哪些 LLM?SE-Agent 支持 DeepSeek、OpenAI 和 Anthropic 的 API,用户可通过配置 .env 文件选择合适的模型。
  2. 如何处理安装失败?检查 Python 版本(推荐 3.12),确保依赖完整安装,或参考 instruction.md 排查环境问题。
  3. 如何开发自定义操作?参考 SE/operators.md,通过继承 TemplateOperator 类并注册新操作实现自定义策略。
  4. 运行实验需要多长时间?取决于任务复杂度和迭代次数,单次实验通常在几分钟内完成,批处理时间较长。
微信微博Email复制链接