Skip to content

SWE-agent

Princeton NLP

由 Princeton NLP 团队开发的自主 AI 软件工程师 agent,专注于解决 GitHub issue。

Official Site
01

概述

SWE-agent 是 Princeton NLP 团队开发的基于 LLM 的自主 Agent。它专门用于解决真实世界的软件工程问题,例如修复 GitHub issue 和实现新功能。SWE-agent 的核心创新是 Agent-Computer Interface(ACI),一种专为 LLM 设计的交互接口,使 Agent 能高效浏览和编辑代码。在 SWE-bench 基准测试中,SWE-agent 达到了 12.29% 的解决率。

02

安装

SWE-agent 可通过 pip 或 Docker 安装。推荐使用 Docker 以确保环境一致性。安装前需要 Python 3.9+ 和 Docker。安装后需要配置 OpenAI API key 或其他 LLM 提供商的 key。

bash
# Install with pip
pip install swe-agent

# Or use Docker
docker pull sweagent/swe-agent:latest

# Configure API key
export OPENAI_API_KEY=your-api-key-here
03

配置

SWE-agent 通过配置文件进行配置,可自定义 LLM 模型、ACI 行为、工具配置等。配置文件支持 YAML 格式,可灵活调整 Agent 的行为。用户可配置不同的命令模板、编辑格式和搜索策略。

bash
# config.yaml example
agent:
  model:
    name: gpt-4
    api_base: https://api.openai.com/v1
  tools:
    - name: search
    - name: edit
    - name: view
  max_steps: 100
04

运行任务

运行 SWE-agent 解决任务需要提供问题描述和目标代码库。Agent 会自动浏览代码、定位问题、编写修复并验证。可以运行单个任务或批量处理多个 issue。

bash
# Run a single task
swe-agent \
  --model_name gpt-4 \
  --data_path https://github.com/owner/repo/issues/123 \
  --repo_path /path/to/repo \
  --config_file config.yaml

# Batch run
swe-agent --data_path swe-bench.jsonl --apply_suite
05

GitHub 集成

SWE-agent 可直接从 GitHub issue 获取任务,并自动创建 PR 提交修复。通过 GitHub API,Agent 可以读取 issue 内容、克隆仓库、提交改动并创建 pull request。这实现了从 issue 到 PR 的端到端自动化。

bash
# Run from a GitHub issue
swe-agent \
  --data_path https://github.com/owner/repo/issues/42 \
  --repo_path /path/to/clone \
  --output_dir ./results \
  --action_type submit
06

自定义工具

SWE-agent 支持自定义工具扩展。用户可以定义新的 ACI 命令,例如自定义搜索、特定语言的解析器等。通过扩展工具集,可以针对特定项目或技术栈优化 Agent 的能力。

bash
# Custom tool example
class CustomSearchTool:
    def __init__(self):
        self.name = "custom_search"
        self.description = "Search with custom patterns"
    
    def run(self, query: str):
        # Implement search logic
        return results
07

基准测试

SWE-agent 在 SWE-bench 基准测试上表现优异,该基准包含 2,294 个真实 GitHub issue。SWE-agent 的解决率显著高于其他通用 LLM Agent。基准测试结果可用于比较不同配置和模型的效果。

08

高级用法

高级用法包括:使用自定义模型、配置多步推理、调整 ACI 行为、集成自定义工具链等。SWE-agent 支持 Llama、Mistral 等本地部署的开源模型,通过 vLLM 或 Ollama 提供推理服务。

bash
# Use a local model
swe-agent \
  --model_name custom-llama \
  --api_base http://localhost:8000/v1 \
  --config_file config.yaml
09

故障排查

常见问题包括:API 速率限制、Docker 权限问题、模型输出格式错误等。建议检查 API key 配置、Docker 安装和网络连接。对于复杂任务,可以调整 max_steps 参数和模型温度。查看日志文件有助于诊断问题。

Ready to try SWE-agent?

Visit the official site for the latest version and full documentation.

Visit SWE-agent