概述
SWE-agent 是 Princeton NLP 团队开发的基于 LLM 的自主 Agent。它专门用于解决真实世界的软件工程问题,例如修复 GitHub issue 和实现新功能。SWE-agent 的核心创新是 Agent-Computer Interface(ACI),一种专为 LLM 设计的交互接口,使 Agent 能高效浏览和编辑代码。在 SWE-bench 基准测试中,SWE-agent 达到了 12.29% 的解决率。
安装
SWE-agent 可通过 pip 或 Docker 安装。推荐使用 Docker 以确保环境一致性。安装前需要 Python 3.9+ 和 Docker。安装后需要配置 OpenAI API key 或其他 LLM 提供商的 key。
# 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配置
SWE-agent 通过配置文件进行配置,可自定义 LLM 模型、ACI 行为、工具配置等。配置文件支持 YAML 格式,可灵活调整 Agent 的行为。用户可配置不同的命令模板、编辑格式和搜索策略。
# 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运行任务
运行 SWE-agent 解决任务需要提供问题描述和目标代码库。Agent 会自动浏览代码、定位问题、编写修复并验证。可以运行单个任务或批量处理多个 issue。
# 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_suiteGitHub 集成
SWE-agent 可直接从 GitHub issue 获取任务,并自动创建 PR 提交修复。通过 GitHub API,Agent 可以读取 issue 内容、克隆仓库、提交改动并创建 pull request。这实现了从 issue 到 PR 的端到端自动化。
# 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自定义工具
SWE-agent 支持自定义工具扩展。用户可以定义新的 ACI 命令,例如自定义搜索、特定语言的解析器等。通过扩展工具集,可以针对特定项目或技术栈优化 Agent 的能力。
# 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基准测试
SWE-agent 在 SWE-bench 基准测试上表现优异,该基准包含 2,294 个真实 GitHub issue。SWE-agent 的解决率显著高于其他通用 LLM Agent。基准测试结果可用于比较不同配置和模型的效果。
高级用法
高级用法包括:使用自定义模型、配置多步推理、调整 ACI 行为、集成自定义工具链等。SWE-agent 支持 Llama、Mistral 等本地部署的开源模型,通过 vLLM 或 Ollama 提供推理服务。
# Use a local model
swe-agent \
--model_name custom-llama \
--api_base http://localhost:8000/v1 \
--config_file config.yaml故障排查
常见问题包括: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