
SWE-agent 实战指南手把手让大模型自动修复 GitHub 问题【免费下载链接】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-agentSWE-agent 是一个 2024 年 NeurIPS 大会上发布的「自动修代码机器人」由普林斯顿和斯坦福的研究者开发。你给它一个 GitHub issue问题报告它会自动读代码、跑测试最后给你一份修复补丁patch除了修 bug它还能做网络安全攻防和竞赛题。这篇文章带你几小时内跑通完整流程并学会查看它每一步在干什么。 五分钟装好并跑起来你需要准备三样东西Python 3.8 以上、Git以及你选用的大模型 API 密钥OpenAI、Anthropic 或本地模型都行。克隆仓库并安装后你会得到一个名为sweagent的命令git clone https://gitcode.com/GitHub_Trending/sw/SWE-agent cd SWE-agent pip install -e .首次运行只要指定三个核心信息用哪个模型、仓库在哪、要修哪个 issuesweagent run \ --agent.model.namegpt-4o \ --agent.model.per_instance_cost_limit2.00 \ --env.repo.github_url你的仓库地址 \ --problem_statement.github_urlissue链接跑完后当前目录会出现trajectories/文件夹里面的.traj文件就是这次运行的完整记录后面看结果会用到。⚙️ 它到底怎么工作一句话概括它给大模型配了一套「看、试、验」的工具。SWE-agent 把「读文件、搜代码、执行命令」封装成工具模型在一个 Docker 沙箱里循环操作先定位问题代码再写个脚本复现 bug然后改代码、重跑脚本验证满意后才调 submit 交出补丁。整个过程像一个拿到了电脑和验收清单的实习生——不搞定不汇报而且所有操作都在沙箱里动不了你本机。 挑一个场景走一遍修一个 issue输入只是一个 issue 链接。过程中你能在终端实时看它干活——把仓库装进沙箱、用搜索工具找到相关文件、写一个小脚本复现问题、确认报错后修改源码再跑一遍脚本验证。输出有两样一份补丁文件和一份.traj轨迹。想看更直观的在轨迹目录里运行sweagent inspector浏览器会打开一个网页版查看器左边列步骤、右边展示每步的思考和输出哪一步改了什么一目了然。批量跑多个 issue用sweagent run-batch指定数据集和数量它会自动下载 issue 列表、并行开多个沙箱跑底部有进度条sweagent run-batch \ --config config/default.yaml \ --instances.type swe_bench \ --instances.slice :3️ 只调这几个参数就够了SWE-agent 的一切行为由一个 yaml 文件控制但日常你基本只动这几个参数作用agent.model.name用哪个大模型如 gpt-4o 或 claude-sonnet-4agent.model.per_instance_cost_limit每个 issue 的花费上限超了自动停防止烧钱env.repo.github_url要修复的仓库地址problem_statement.github_url要修复的 issue 地址agent.max_steps单次运行最大步数防止无限循环不想全用命令行传参时写进配置文件长这样agent: model: name: gpt-4o per_instance_cost_limit: 2.00 卡住了先查这 4 处提示 Docker 权限被拒这是装完最常见的坑。原因是 Docker 守护进程的 socket 不可访问。先跑docker run hello-world验证用 Docker Desktop 的就在设置里允许默认 socketLinux 命令行里把当前用户加进 docker 组即可。报错信息超长、列了一堆配置项别慌这叫「联合类型」报错系统把同一个选项比如仓库地址支持的几种写法挨个试了一遍然后告诉你每种为什么失败。重点看错误最后一行定位真正没匹配上的那种写法。模型连不上先确认 API 密钥已导出为环境变量如OPENAI_API_KEY再核对agent.model.name和密钥所属厂商是否对得上。密钥也可以直接写进工作目录的.env文件。inspector 起服务了但浏览器打不开网页版检查器是本地服务端口被占用时命令行会提示换端口用--port参数指定一个新端口或按输出提示的地址手动访问。 继续深挖docs/usage/hello_world.md首次修复的完整手把手示例docs/usage/batch_mode.md批量运行与 SWE-bench 评测docs/config/config.md配置系统全解config/default.yaml默认配置模板照着改就行读完这篇你就能在本地机器上完整跑通「给一个 issue、拿回一份补丁」的流程出问题时也知道该查哪四处。【免费下载链接】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),仅供参考