SWELancer-Benchmark
OpenAI开源的AI编程能力基准:让GPT/Claude等模型挑战真实自由职业任务,检验它们能否靠写代码赚钱
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
OpenAI开源的AI编程能力基准:让GPT/Claude等模型挑战真实自由职业任务,检验它们能否靠写代码赚钱
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
2025年2月,OpenAI 发表了 SWE-Lancer 论文,提出了一个尖锐的问题:前沿大语言模型能否靠写代码在真实的自由职业市场上赚到真金白银? 答案不是简单的「能」或「不能」——OpenAI 用 198 个真实 GitHub 自由职业任务、累计超过 100 万美元的报酬潜力,给出了一份量化的能力图谱。这不仅是学术评估,更是 AI 工程能力的一场实战检验。
SWE-Lancer 已被合并到 OpenAI 的 preparedness 仓库中,与 PaperBench(AI论文复现)、EVMbench(智能合约安全)并列,共同构成 Frontier Evals 体系。
此前大多数 AI 代码评估基准(如 HumanEval、MBPP)停留在「解一道算法题」层面,任务小、答案明确、评判客观。但真实的软件开发完全不同:
SWE-Lancer 的核心创新在于将评估任务锚定在真实世界的自由职业平台上,报酬从 38 美元到 10 万美元不等,涵盖了从修复小 Bug 到开发完整功能的全谱系需求。
SWE-Lancer 将任务划分为三个难度层级,每个层级对应不同的报酬区间和能力要求:
主要是单仓库内的 Bug 修复和小功能添加,AI 需要在有限上下文中快速定位问题并给出精确修改。这类任务占大多数,测试通过率最高,是衡量 AI「快速修复」能力的基础线。
涉及跨文件修改或中等复杂度的功能实现,需要理解项目架构、编写测试用例,有时还需要与外部 API 集成。这类任务开始考验 AI 的系统思维和代码组织能力。
最顶级的挑战,要求 AI 独立完成复杂功能模块的开发,可能涉及新库引入、架构重构、性能优化。这类任务通常需要数千行代码修改、多轮迭代才能通过所有测试。
每个任务目录下包含:
issue_data.json:原始需求描述(来自真实自由职业平台)test.py:端到端评测脚本,定义通过标准bug_reintroduce.patch:将问题回退到初始状态的补丁(用于还原测试环境)commit_id.txt:正确的解决方案 commit ID(Ground Truth)flow.mitm:代理流量文件(记录 AI 与环境交互的中间态)setup_version.sh / user_tool.py:可选的任务特定配置和自定义工具Alcatraz 是 OpenAI 自研的沙箱框架,负责为 AI agent 提供隔离的执行环境。其核心能力包括:
Alcatraz 的设计哲学是让 AI 看起来像一个人在真实环境中工作,而不是在解谜题。
Nanoeval 是轻量级评测引擎,负责:
这种三层解耦设计让任务定义、执行环境、评测逻辑完全独立,便于扩展新任务和复现他人结果。
项目以 Python 为核心,通过 uv 进行依赖管理(Astral 出品的极速包管理器),主要依赖:
| 组件 | 用途 |
|---|---|
alcatraz | 沙箱执行环境(自研) |
nanoeval | 评测执行引擎(自研) |
Flask | 基础 Web 服务 |
tiktoken | OpenAI token 计数 |
playwright | 浏览器自动化 |
docker | 容器化执行环境 |
代码质量工具链:Ruff(linting + autofix)、Black(格式化)、Mypy(类型检查)、Pytest(测试)。
整个评测分为三个阶段:
第一阶段:Agent Rollout AI agent 在 Ubuntu 容器中运行,给定任务描述后自主完成代码编写和修改。容器配有互联网隔离(Linux 下通过 iptables),逼真模拟无外部帮助的工作场景。
第二阶段:Reproduction AI 提交的代码在新的干净容器中重新执行,获取运行结果。这个阶段使用了 GPU 支持(部分任务需要)来确保评测环境与 AI 开发环境完全一致。
第三阶段:Grading 根据任务特定的评测脚本对执行结果打分。最终得分反映了 AI 代码的正确性、完整性和质量。
部署 SWE-Lancer 绝非简单。需要:
curl -LsSf https://astral.sh/uv/install.sh | shgit clone --filter=blob:none && git lfs checkoutdocker pull swelancer/swelancer_x86:releasev1.env 中设置 OpenAI API Key 或 OpenRouter Keyuv run python swelancer/run_swelancer.py ...整个过程需要 Linux 系统(macOS 仅部分支持)、大量磁盘空间、以及对 Docker 的熟悉度。官方建议在临时 VM 上运行,以防 iptables 规则影响宿主机。
根据 OpenAI 公布的评测结果(2025年4月):
| Agent | SWE-Lancer 得分 |
|---|---|
| Claude (claude-3.5-sonnet) | 最优表现 |
| GPT-4o | 中等表现 |
| Gemini-2.0-flash | 较低 |
| Deepseek-R1 | 较低 |
关键洞察:
SWE-Lancer 的出现标志着 AI 代码评测从「解算法题」迈向「真实工作流评估」的关键一步。它的价值不仅在于分数本身,更在于:
随着 Agent 技术的快速迭代,SWE-Lancer 的基准分数预计会持续攀升——但真正的问题永远是:AI 在能完成更多任务之后,能替代多少人类工作?这个问题的答案,或许比任何基准分数都更有意义。