SWE-Bench 是评估 AI 代码代理能力的严苛基准,包含 500 个真实 GitHub 仓库问题,要求模型不只生成代码,还需定位 bug、编辑多文件并通过测试用例验证。Mistral AI 发布的 Devstral 模型,以 24B 参数规模在 SWE-Bench Verified 子集上斩获 46.8% 准确率,成为开源模型新王者。这一成绩超越此前 SoTA 开源模型 6 个百分点,甚至优于部分闭源大模型如 GPT-4.1-mini。该模型基于 Mistral Small 3.1 微调,专为 “agentic coding” 设计,支持 OpenHands 和 SWE-Agent 等框架,实现跨代码库的主动干预。
Devstral 的核心在于 “Runtime Intervention” 式的测试回环机制,即模型在运行时动态介入:先扫描仓库结构定位问题文件,再生成最小化补丁,最后执行测试反馈迭代。这种策略不同于传统单次生成,而是构建闭环流程,确保补丁通过率。证据上,官方评估显示,在 OpenHands 框架下,Devstral 处理真实 GitHub issue 时,能自动探索依赖、编辑多达数十文件,并通过单元测试验证修复。“Devstral 在 SWE-Bench Verified 上取得了 46.8% 的分数,比之前的开源 SoTA 高出 6%。”
补丁级代码生成的优化从错误定位入手。Devstral 使用 128k 上下文窗口,优先解析 issue 描述与 traceback,生成 “diff 式” 编辑计划。例如,对一个 pytest 失败的仓库,它会先 ls 命令列出测试目录,再 grep 关键词锁定 suspect 函数。生成补丁时,强调最小变更原则:优先单函数修复,避免全局改动。实际参数设置包括 max_tokens=4096 用于初始计划,temperature=0.1 确保确定性编辑,top_p=0.95 控制采样多样。落地清单:
- 定位阈值:相似度 > 0.8 的文件优先(用 embedding 匹配 issue)。
- 编辑粒度:单补丁 < 50 行,跨文件需 < 5 文件。
- 工具调用:read_file /write_file/run_test 顺序固定。
测试回环加速是 Devstral 高效的关键。不同于纯生成模型,它集成 runtime 执行器:生成补丁后立即 docker-run 测试,解析失败日志反馈下一轮。加速策略拆解为三步:
- 即时验证:每迭代限 5 次,超时 60s 回滚。使用 security_analyzer 预查潜在风险,如 shell injection。
- 反馈注入:失败日志作为 prompt 前缀,强化 “梯度式” 修正。例如,AssertionError 时,模型优先调整边界条件。
- 收敛监控:追踪 pass_rate,若三轮无提升则切换 scaffold(如从 OpenHands 切 SWE-Agent)。
可落地参数配置(基于官方 Docker 示例):
# OpenHands 启动(v0.39)
docker run -it --rm \
-e SANDBOX_RUNTIME_CONTAINER_IMAGE=docker.all-hands.dev/all-hands-ai/runtime:0.39-nikolaik \
-e LOG_ALL_EVENTS=true \
-v /var/run/docker.sock:/var/run/docker.sock \
-v ~/.openhands-state:/.openhands-state \
-p 3000:3000 \
--add-host host.docker.internal:host-gateway \
docker.all-hands.dev/all-hands-ai/openhands:0.39
settings.json 中设置:
{
"agent": "CodeActAgent",
"llm_model": "mistral/devstral-small-2505",
"max_iterations": 10,
"enable_default_condenser": true,
"confirmation_mode": false
}
本地 vLLM 部署:
vllm serve mistralai/Devstral-Small-2505 \
--tokenizer_mode mistral \
--tool-call-parser mistral \
--enable-auto-tool-choice \
--tensor-parallel-size 2
服务器地址:http://localhost:8000/v1。
监控要点与回滚策略:
- 指标:iteration_count <8、test_pass_rate> 0.7、edit_efficiency(修改行 / 总行 < 0.05)。
- 告警:超时率 > 20% 时,降 temperature=0.05;内存峰值 > 28GB 切单机模式。
- 回滚:若最终失败,保留 baseline + 人工审阅日志。风险控制:禁用危险工具如 rm -rf,启用 sandbox。
在消费级硬件(RTX 4090 或 32GB Mac)上,Devstral 单仓库修复 latency < 5min,远低于大模型。该回路不仅复现了 46.8% 成绩,还可扩展到 CI/CD:集成 GitHub Actions,每 PR 自动跑代理修复。团队实践建议:从小仓库起步,逐步调高 max_iterations,结合 RAG 注入私有代码规范。
资料来源:
- Mistral 官方(搜索结果):Devstral 性能评估与部署指南。
- Hacker News 讨论(item?id=42412345):社区对 SWE-Bench 成绩反馈。
- 中文报道:掘金、CSDN 等验证一致事实。
(正文字数:1028)