ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

SWE-agent 从源码安装完整指南:可编辑安装、环境配置与故障排查

SWE-agent 从源码安装完整指南:可编辑安装、环境配置与故障排查 SWE-agent 从源码安装完整指南可编辑安装、环境配置与故障排查【免费下载链接】SWE-agentSWE-agent takes a GitHub issue and tries to automatically fix it, using your LM of choice. It can also be employed for offensive cybersecurity or competitive coding challenges. [NeurIPS 2024]项目地址: https://gitcode.com/GitHub_Trending/sw/SWE-agent本篇技术指南围绕 SWE-agent 官方推荐的“从源码安装Installation from source”方式展开覆盖克隆仓库、可编辑安装pip install -e .、语言模型与 API Key 配置、安装验证、可选依赖Docker / Node.js、版本升级与开发者模式安装等完整流程并深入结合本仓库的 pyproject.toml 与 sweagent/run/run.py 等源码佐证底层实现。读完本文你将能够在一台干净的机器上从零搭建可运行、可修改、可调试的 SWE-agent 开发环境。为什么“从源码安装”是官方首选SWE-agent 是一个让语言模型自主修复 GitHub issue、参与网络安全 CTF 挑战或编程竞赛的开源 Agent 框架。对于绝大多数使用场景官方文档 source.md 明确将源码安装定义为首选方式the preferred way。选择源码安装而非预构建包的核心原因有二可编辑安装editable installpip install -e .将仓库目录直接链接到 Python 环境你对仓库内任何.py文件的修改都会即时生效无需反复重装非常适合研究与二次开发。与主仓库保持同步SWE-agent 仍处于活跃开发期功能迭代频繁源码安装配合git pull可以随时获取最新特性。从仓库的 pyproject.toml 可以看到该包名为sweagentPython 版本要求为requires-python 3.11核心依赖包括litellm统一接入各家模型、swe-rex环境部署与执行、GitPython、pydantic、simple-parsing等。前置条件Python 环境与版本检查安装前请确认你的机器满足以下条件Python 3.11 或更高版本这一要求同时写死在 pyproject.tomlrequires-python 3.11与 sweagent/init.pyPYTHON_MINIMUM_VERSION (3, 11)中。若版本过低导入包时会被直接拒绝并抛出RuntimeError。虚拟环境官方推荐使用 conda 或 Python 虚拟环境venv隔离依赖避免与系统其他 Python 包冲突。三步完成源码安装第一步克隆仓库git clone https://github.com/SWE-agent/SWE-agent.git克隆完成后进入仓库根目录后续所有命令都在该目录下执行。第二步可编辑安装在仓库根目录运行python -m pip install --upgrade pip pip install --editable .这条命令做了两件事先升级pip本身确保安装工具处于较新状态以**可编辑模式editable**安装当前目录下的包。从 pyproject.toml 的[project.scripts]段落可以看到安装完成后会自动生成sweagent命令行入口它指向sweagent.run.run:main函数[project.scripts] sweagent sweagent.run.run:main这也是为什么安装完成后你可以在任意终端直接使用sweagent命令。同时 sweagent/main.py 的存在意味着python -m sweagent也是合法的调用方式——这一点在后文“命令找不到”的排查中会用到。第三步配置语言模型与 API KeySWE-agent 通过 litellm 统一接入各家语言模型。配置模型与密钥的方式在 docs/installation/keys.md 中有完整说明常用做法有三种设置环境变量推荐例如export ANTHROPIC_API_KEYyour anthropic key export OPENAI_API_KEYyour openai key在仓库根目录创建.env文件其中的变量会自动取代环境变量# .env 文件示例 # GITHUB_TOKENGitHub Token for access to private repos # OPENAI_API_KEYOpenAI API Key Here if using OpenAI Model # ANTHROPIC_API_KEYAnthropic API Key Here if using Anthropic Model # TOGETHER_API_KEYTogether API Key Here if using Together Model在命令行通过--agent.model.api_key直接传入。官方推荐的模型为claude-sonnet-4-20250514使用ANTHROPIC_API_KEY也可使用gpt-4o、o1-preview等使用OPENAI_API_KEY。注意模型名称通常需带 provider 前缀例如ollama/llama2这类本地模型写法。更多高级配置成本限制、token 限制、自定义模型注册表可参考 docs/config/models.md。验证安装sweagent --help安装并配置好模型后运行快速自检sweagent --help正常情况下会输出顶层命令概览。从 sweagent/run/run.py 的模块文档字符串可以看到可用的顶层子命令包括命令别名用途sweagent runr在单个问题陈述如一个 GitHub issue上运行 agentsweagent run-batchb在批量问题陈述上运行 agent如 SWE-bench 基准测试sweagent merge-preds—合并多个预测结果文件sweagent inspecti在终端查看器打开单个轨迹文件sweagent inspectorI在 Web 查看器中浏览轨迹sweagent run-replay—重放轨迹文件或 demo 文件sweagent traj-to-demo—将轨迹文件转换为易编辑的 demo 文件sweagent run-api—作为 GUI 后端运行sweagent remove-unfinishedru清理未完成的轨迹sweagent quick-statsqs从轨迹目录计算快速统计sweagent shellsh交互式 shell 模式这些子命令的调度逻辑同样位于 sweagent/run/run.py入口函数main解析命令后延迟导入对应模块如run_single、run_batch避免不必要的启动开销。快速上手示例安装验证通过后一个最简的“Hello world”运行示例如下完整教程见 docs/usage/hello_world.mdsweagent run \ --agent.model.nameclaude-sonnet-4-20250514 \ --agent.model.per_instance_cost_limit2.00 \ --env.repo.github_urlhttps://github.com/SWE-agent/test-repo \ --problem_statement.github_urlhttps://github.com/SWE-agent/test-repo/issues/1可以看到命令行选项是层级化的分为三个核心部分--problem_statement要解决的问题、--agent如何解决含模型配置--agent.model、--env执行环境含仓库--env.repo与 Docker 镜像等。典型运行流程包括启动部署环境 → 安装工具 → 注入系统提示与实例提示 → 主循环模型提议并执行动作→ 调用submit提取补丁。排查sweagent 命令找不到怎么办如果提示sweagent: command not found官方文档给出了两条排查路径改用模块调用方式尝试python -m sweagent。这一入口由 sweagent/main.py 提供它直接调用sweagent.run.run的main函数。检查 Python 解释器是否一致运行which python确认当前使用的python与安装 SWE-agent 时用的是同一个解释器。如果安装时用了某个虚拟环境或 conda 环境而终端当前激活的是另一个环境命令自然找不到。可选安装步骤Docker 与 Node.jsDocker强烈推荐SWE-agent 的默认执行后端是Dockeragent 的每条命令都会在隔离的容器内执行保证安全与可复现。从 sweagent/environment/swe_env.py 的EnvironmentConfig默认值可以看到默认部署配置为DockerDeploymentConfig(imagepython:3.11, ...)即基于python:3.11镜像启动沙箱。安装方式参考 Docker 官方安装文档或 Linux 下使用get-docker.sh脚本安装后启动 Docker 守护进程Docker Desktop 或systemctl start docker验证docker run hello-world。如果你不希望使用 DockerSWE-agent 仍可通过云端执行如 Modal、AWS Fargate运行代码求值部署层由 SWE-ReX 包统一管理。遇到 Docker 问题时的排查要点见 docs/installation/tips.md常见症状与处理包括permission denied while trying to connect to the Docker daemon socket在 Docker Desktop 中开启SettingsAdvancedAllow the default Docker socket to be used或将当前用户加入docker用户组Docker Hub 镜像版本过旧即使镜像带有latest标签也不会自动更新请手动执行docker pull sweagent/swe-agent-run:latest。Node.js可选如果计划使用Web 版 GUI如 inspector 网页查看器需要额外安装 Node.js。纯命令行使用场景则无需安装。日常维护升级与版本切换获取最新特性SWE-agent 活跃开发中建议周期性运行git pull更新代码。由于采用可编辑安装更新后无需重新执行pip install——源码改动会立即反映到运行中的包。EnIGMA 用户注意SWE-agent EnIGMA网络安全 CTF 模式目前仅兼容v0.7版本如需使用请在第一步行克隆后执行git switch v0.7切换分支。更多说明见 README.md 的 EnIGMA 小节。SWE-ReX 版本约束从 sweagent/init.py 可以看到包会强制校验swe-rex版本不低于1.2.0推荐1.2.1。若版本过旧导入时会提示运行pip install --upgrade swe-rex或重新执行pip install -e .。进阶以开发者模式安装并运行测试若你打算修改 SWE-agent 源码并贡献代码官方建议在基础安装之上加装dev附加依赖详见 docs/dev/contribute.mdpip install -e .[dev]该选项在 pyproject.toml 的[project.optional-dependencies]中定义包含pytest、pytest-cov、pytest-xdist、pre-commit、mkdocs-material等开发工具。随后建议启用 pre-commit 钩子pre-commit install它会自动检查代码格式与基础语法错误多数问题包括格式可自动修复首次提交失败时再运行一次即可。运行仓库自带的测试套件pytest # 运行全部测试 pytest -m not slow # 跳过较慢的测试 pytest -n auto # 借助 pytest-xdist 并行执行这些测试覆盖了 agent 主循环、环境、模型配置、命令解析、批量运行等核心模块是快速验证安装正确性与理解内部行为的绝佳入口。总结从源码安装 SWE-agent 本质上只有“克隆仓库 可编辑安装 配置模型密钥”三步配合sweagent --help验证即可投入使用。得益于pip install -e .与git pull的组合你可以始终运行最新版本也可以随时深入 sweagent/ 目录阅读源码、运行 tests/ 测试套件进行二次开发。若安装过程中遇到 Docker 或命令缺失等问题请优先查阅 docs/installation/tips.md 与本文的排查章节。【免费下载链接】SWE-agentSWE-agent takes a GitHub issue and tries to automatically fix it, using your LM of choice. It can also be employed for offensive cybersecurity or competitive coding challenges. [NeurIPS 2024]项目地址: https://gitcode.com/GitHub_Trending/sw/SWE-agent创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表