mini-swe-agent 本地部署+效果评测记录

1. 本地环境搭建

这个开源项目的github链接:https://github.com/SWE-agent/mini-swe-agent

然后安装docker desktop,最好买点儿docker的加速包,不然下载镜像的速度是真捉急,我买的轩辕镜像的。

2. 用deepseekv4.1flash运行test测试集

我先把test数据集需要的docker镜像先下载,让ai根据镜像的命名规则写的个脚本,量还是比较大的

执行test测试集:

mini-extra swebench --subset lite --split test --model deepseek/deepseek-chat --workers 4 --slice 0:300 --output ./test_full_300

执行后在本地会有执行log和模型给出来的答案。

模型执行的具体log:

所有题目的答案汇总:

然后在wsl环境运行测评,直接用windows的环境运行会报错,测评就是用llm输出的修改问答去修改代码,然后用pytest做判断、验证有没有改成功。

bash 复制代码
source venv_swe/bin/activate
cp /mnt/d/code/learn_swe/mini-swe-agent/test_full_300/preds.json ~/swe_eval/
HF_ENDPOINT=https://hf-mirror.com python -m swebench.harness.run_evaluation \
  --dataset_name SWE-bench/SWE-bench_Lite \
  --predictions_path ./preds.json \
  --max_workers 2 \
  --run_id deepseek_300_wsl
cp ~/swe_eval/logs/evaluation/deepseek_lite_run01/results.json /mnt/d/code/learn_swe/deepseek_lite_run01_results.json

评测结果:

300个测试case,2个没跑出来、234个通过、64个失败,正确率在78%。

分析了一下失败的case,模型给出的答案:有的是找对地方了,但是改的和需求不一样;有的是漏改了等等。

3. agent执行流程分析

3.1. 【Agent AI 侧】:Docker容器内执行

输入给Agent:

  1. bug issue描述(pr_description):bug现象、修复目标
  2. system提示词:
    • 在 /testbed 操作源码
    • 禁止修改测试文件,只改业务源码、文档
    • 只能执行bash命令
    • 修复完成用 git diff 生成patch
    • 固定提交命令:echo COMPLETE_TASK_AND_SUBMIT_FINAL_OUTPUT && cat patch.txt
  3. 容器环境:已经 git checkout base_commit(带bug的干净基线代码)

Agent执行步骤:

  1. bash命令 ls / git log / grep / sed 浏览、搜索、阅读源码,定位bug根因
  2. 修改业务源代码、配套文档(不碰tests目录)
  3. 写简易脚本在容器内验证业务修复效果
  4. 即使看到单元测试会失效,遵守指令:不去修改测试文件
  5. git diff 生成 patch.txt (agent补丁)
  6. 执行规定提交命令输出补丁

Agent产出物:

  • agent patch (保存在 trajectory.json 的 submission字段)
  • 内容:业务代码改动 + 可选文档改动;不含test_patch的测试修改
  • Agent完全看不到数据集里的 test_patch

3.2. 【Harness评测框架侧】:独立评测流水线

评测不对比文本和gold patch,只看测试运行结果

评测流水线每一个instance执行:

  1. 初始化干净docker环境,git checkout base_commit,无任何改动
  2. git apply agent.patch # 打上AI输出的业务/文档补丁
  3. git apply test_patch.diff # 【数据集元数据,框架自动做!不是AI输出】修改单元测试断言
  4. 执行测试,两个条件必须同时全部满足:
    ✅ 所有 FAIL_TO_PASS 测试:必须全部由失败变为 PASS
    ✅ 所有 PASS_TO_PASS 测试:必须全部保持 PASS,不能回归失败

判定:

  • 全部满足 → resolved: true,进入resolved_ids
  • 任意不满足:测试失败 / git apply冲突 → resolved: false

4. 小结

其实吧,这个结果我还是很惊讶的,因为agent侧几乎没有做什么,就是模型自己用grep等方式搜,然后把这些代码直接塞进上下文来分析,得出修改哪些内容。相当于只考基模的能力。agent侧提供的能力很基础。

然后也想了下为什么用grep而不是用向量,因为向量表示的是相似度关系,用在代码搜索里不合适。

相关推荐
运维行者_2 小时前
网络监控工具怎么选?从设备监控到智能运维的能力清单
运维·服务器·开发语言·网络·人工智能·支持向量机·php
清华kenny2 小时前
安徽亳州中医AI健康辨识仪品牌排名前十之适用场景解析
人工智能·安徽晓得养
郑鱼咚2 小时前
大胆点,向 AI 要你真正想要的结果
人工智能
信可维2 小时前
多个 AI 同时改一个仓库:先划边界,再谈并行
人工智能
尺度商业2 小时前
科技牛错杀与换挡的底层逻辑
人工智能·科技
宅小年2 小时前
Grok Bot 两周实测:把 6 个 Bot 拉进群,我给自己搭了协同小队
人工智能
东华果汁哥2 小时前
【Spring AI 实战】从零开始调用大模型接口,构建 Java AI 应用
java·人工智能·spring
漫步的猪2 小时前
# 告别混乱与付费墙!Linkit:完全免费、本地优先的开源 AI 智能书签与收藏夹管理神器
人工智能·ai·开源·react·免费·书签·收藏夹
深圳市益普科技有限公司2 小时前
半导体良率管理YMS:良率与设备参数的相关性,先拉哪几组数据
人工智能·python·算法