ARTICLE DETAIL

建站实战干货

来自一线的建站与推广经验沉淀,每一条都经过真实交付验证。

如何让 SWE-agent 自动修复 GitHub Issue:从安装到第一次 AI 修 bug 的完整路径

2026/9/7 17:04:43 拓冰建站 浏览量
如何让 SWE-agent 自动修复 GitHub Issue:从安装到第一次 AI 修 bug 的完整路径 如何让 SWE-agent 自动修复 GitHub Issue从安装到第一次 AI 修 bug 的完整路径【免费下载链接】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你有没有过这种经历issue 列表里躺着一个低优先级的 bug你每次看到它都想回头再修然后永远修不了。SWE-agent 就是为这种场景准备的——你丢给它一个 GitHub issue 的链接它自动拉取代码、复现问题、修改源码最后产出一个补丁全程用你选定的大语言模型OpenAI、Claude 都行驱动。能力速览它到底能替你干什么先说清楚它能干什么免得期待错位。能做的读 issue 描述自己定位相关代码文件在沙箱里默认是 Docker 容器写复现脚本、跑命令改代码、验证修复最后提交一个 patch一次跑一单也可以用批量模式同时跑上百个 issue适合做 benchmark官方还提到它同样可以用于网络安全攻防演练和编程竞赛挑战。不做的它不直接替你提 PR、不替你 review 代码质量——产出的补丁你自己把关它不保证修对。复杂逻辑 bug 它可能修两三轮才收敛也可能修到一半超步数退出。简单说它是个干活的不是拍板的。从零到跑通安装 第一次运行整个过程顺利的话几分钟就能跑起来。前提Python 3.8、Git以及一个可用的 LM API 密钥Anthropic 或 OpenAI 均可。第一步克隆仓库并安装git clone https://gitcode.com/GitHub_Trending/sw/SWE-agent cd SWE-agent pip install -e .第二步把模型密钥放进环境变量也可以写成仓库根目录的.env文件export ANTHROPIC_API_KEY你的密钥 # 或 export OPENAI_API_KEY你的密钥第三步跑官方教程里的一个语法错误级的小 issue验证链路sweagent run \ --agent.model.namegpt-4o \ --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命令里三个参数各管一件事--agent.model.name选模型--agent.model.per_instance_cost_limit设单个任务的费用上限美元--env.repo.github_url指定要修的仓库--problem_statement.github_url指定要修的 issue。跑起来后你会看到几个阶段启动 runtime几秒钟、安装工具、打印系统提示词、然后进入主循环——模型开始一步步读文件、改代码。全部细节会被存成一个.traj轨迹文件放在trajectories/目录下这是它最重要的输出物。密钥配置细节可以看 模型与密钥说明完整示例在 Hello World 教程。把一个真实任务交给它标准用法与工作流换成你自己的 issue 时思路完全一样把上面命令里的最后两个 URL 换成你的仓库和 issue 链接然后盯着终端看它干活。它会经历这么几个阶段。先starting runtime——这是底层执行环境由 SWE-ReX 管理在容器里启动本地 Docker、Modal、AWS Fargate 都可以。接着安装它要用的工具集。然后系统提示词和问题描述一起喂给模型主循环开始模型每次提出一个动作读文件、跑 bash 命令、编辑代码环境执行后把观察结果喂回去循环往复直到它调用submit——此时 SWE-agent 从它的工作区里抽出 diff就是你拿到的补丁。如果你想一次处理一批 issue比如历史积压、跑 SWE-bench 评测把run换成run-batch用--instances指定数据源用--instances.slice切片控制数量sweagent run-batch \ --config config/default.yaml \ --agent.model.namegpt-4o \ --instances.typeswe_bench \ --instances.subsetlite \ --instances.splitdev \ --instances.slice:3这条命令会从 SWE-bench 数据集里取前 3 条 issue 并行开跑底部有进度条。每个任务一个实验目录轨迹文件全部归档在trajectories/下。批量模式的完整玩法见 batch mode 教程。拆开黑盒它内部是怎么工作的跑通了再看它是怎么分工的就不只是一个脚本的感觉了。整个系统可以拆成四个角色Agent决策者核心决策单元加载config.yaml里的配置——用什么提示词模板、哪些工具可用、历史消息怎么处理全在这里定义。它负责把环境反馈组织好问模型下一步干什么再把模型的动作派给环境执行。SWEEnv执行者环境管理模块负责文件操作和命令执行。所有 bash 命令、文件读写都发生在这里模型本身碰不到你的机器只能碰容器里的那份代码。History Processor记忆管理员Agent 和环境之间的每一轮对话都要经过它。它决定哪些历史消息保留、哪些压缩、哪些加缓存标记cache_control直接影响 token 费用和上下文质量。Model大脑你配置的任意 LM。它只看经过 History Processor 加工后的消息输出下一个动作。所以一次运行其实是这样转的sweagent run启动后Agent 把问题描述发给 ModelModel 返回动作Agent 转交给 SWEEnv 执行SWEEnv 返回观察结果History Processor 整理后送回 Model——循环直到submit。理解了这条链路后面排查问题时你就知道该查哪一环。结果不理想按这里排查轨迹文件.traj是诊断的第一现场它完整记录了模型每一步的思考、动作和环境的返回。第一步打开轨迹查看器。项目内置两种命令行版sweagent inspectvim 风格按键翻轨迹和网页版sweagent inspector在含.traj文件的目录里运行浏览器直接打开默认端口 8000可用--directory指定目录。网页版能看到每一步的完整对话和评估报告第二步对照症状找原因。模型连接失败先确认密钥导出对了没有echo $ANTHROPIC_API_KEY之类的简单检查再看网络能否直连模型 API必要时配代理。动作被解析失败默认配置用 function calling 解析模型输出如果你的模型不支持要把解析器换掉——在配置里设agent.tools.parse_function.type为thought_action改为从回复里抽最后一个三反引号代码块。跑太贵/太久加上--agent.model.per_instance_cost_limit设费用上限超了自动停或者收紧配置的max_steps。环境起不来默认后端是 Docker确认 Docker 已安装且在运行起不来的排查方法见 安装排障提示。依赖冲突老规矩虚拟环境隔离python -m venv .venv source .venv/bin/activate更多查看轨迹的技巧见 inspector 文档。想继续深挖进阶资源按需取用不用全看官方文档首页整体入口从配置到参考 API 都在这配置模板主配置文件提示词、工具、历史处理器都在里面config/demo/ 下还有更精简的变体benchmark 配置集现成的评测配置比如250212_sweagent_heavy_sbl.yaml扩展工具目录registry、edit_anthropic、search、windowed等工具包想给 Agent 加新能力就从这里看起。一句话收尾把 issue 链接交给 SWE-agent把 review 补丁的时间留给自己——这就是它存在的意义。【免费下载链接】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),仅供参考