# SWE Agent候选模型统一测评方案 更新日期:2026-08-15 > 归档更新(2026-08-30):本文是统一32K模型选择的历史方案。后续统一64K P0已完成,SFT与parent step20在test38和Verified27均持平;项目停止追加训练并释放腾讯云运行面。 ## 结论 模型选择统一使用 **32,768 context、同一mini-swe-agent-plus公开Prompt、200 steps、retry=0**,分别运行固定的SWE-bench Verified 27题和SWE-Smith Pro 30题。历史Klear-SFT Verified27结果使用64K,只保留作历史参考,不与本轮32K结果直接排序。 主测模型为4个8B模型;`allenai/SERA-14B`通过资源和协议检查后加入。32B模型在当前仅确认2×80GB训练链路的前提下不进入主测;只有AutoDL实际存在4×80GB空闲显存并通过单题检查时才追加。 ## 固定题集 SWE-Smith清单为[`configs/canary/swesmith-freeze-pro-30-20260814.json`](../source/configs/canary/swesmith-freeze-pro-30-20260814.json): - `validation18`:freeze-pro中全部18个validation任务。 - `train12`:freeze-pro的train任务按`priority, sha256(task_id)`排序后前12个。 - 不使用test任务。 - 30题中有6题被官方轨迹与SWE-Master两个独立来源共同验证,5题有Claude 3.5成功轨迹,15题有Claude 3.7成功轨迹;GPT-4o交集为0,不能声称该30题经过GPT-4o验证。 - `validation18`仓库分布偏斜(cantools 7、moto 5、python-pptx 3),因此必须分别报告`validation18`和`train12`,总计30题仅作次要指标。 运行时会从rLLM registry的train/validation split精确复制清单任务到确定性目录,不重新抽样;复制后的verifier仍保留原始测试输出。 ## 候选模型 ### Tier A:正式运行27+30 | 顺序 | 模型与固定revision | 类型 | 公开依据 | 本轮用途 | |---|---|---|---|---| | 1 | `Kwai-Klear/Klear-AgentForge-8B-SFT@0da97e45dbbd44278bd55b878170ec369d2934fb` | SFT | Klear论文报告SWE-bench Verified 38.2 | 已完成57题统一评测 | | 2 | `Kwai-Klear/Klear-AgentForge-8B@fa3d41e92e9ce7a5b4a52a3e7439aa00521f40c9` | SFT→RL→merge | 论文报告Verified 39.4;最终模型仓库为Qwen3-8B BF16 | 已完成57题统一评测;通过率与SFT一致 | | 3 | `laion/GLM-4_7-swesmith-sandboxes-with_tests-oracle_verified_120s-maxeps-131k-fixthink@0e3bff0c4e51f6b9ec0713b98b9eec36efb91cc6` | SWE-Smith轨迹SFT | 名称中的GLM-4.7是教师;学生实际为Qwen3-8B | SWE-Smith定向SFT候选 | | 4 | `penfever/a3-rl-SankalpKJ_swesmith-oracle-filtered-40-8B@26b13a2f824ebea7214da75dfb1b2313090a423c` | 上述SFT继续RL | step 40按训练EMA reward 0.0877选出;公开了RL配置和轨迹,但未公布标准agent benchmark结果 | 检验SWE-Smith定向RL增益 | | 5(有条件) | `allenai/SERA-14B@9b585b4126595e471eae9d2c59c8d73dd0fe9e7b` | GLM-4.6教师轨迹SFT | 官方模型卡报告32K下Verified 41.7%±0.5 | 14B上界;先过协议和2卡显存门槛 | Klear的最终8B仓库模型卡内容很少,但模型配置确认它是Qwen3-8B、BF16和65,536最大位置;训练流程和39.4结果来自[Klear-AgentForge论文](https://arxiv.org/abs/2511.05951)以及[模型仓库](https://huggingface.co/Kwai-Klear/Klear-AgentForge-8B)。A3模型的[模型卡](https://huggingface.co/penfever/a3-rl-SankalpKJ_swesmith-oracle-filtered-40-8B)明确给出了基座、数据集、step 40和EMA reward,但EMA训练reward不是SWE-bench或本项目Canary结果。 SERA-14B的[官方模型卡](https://huggingface.co/allenai/SERA-14B)说明所有结果均使用32K,并给出41.7%±0.5。它的训练/原生CLI协议不等于mini-swe-agent-plus,单题失败时不能直接解释成模型能力低。 ### Tier B:预算允许时追加 - `open-thoughts/OpenThinkerAgent-8B-ColdStartSFTForRL@5f497cf74a99f67265ef41a4a91698b3e505c660` - `open-thoughts/OpenThinkerAgent-8B-RL@d7167bccf6772ada686ac91c92e5c63165a15892` 这对模型可以检验另一套SFT→RL增益,但原训练使用terminus-2协议。其[ColdStart模型卡](https://huggingface.co/open-thoughts/OpenThinkerAgent-8B-ColdStartSFTForRL)说明SFT集为9,437条oracle验证轨迹、RL后继为step 45,同时明确没有该SFT checkpoint的独立agent benchmark数字。因此先完成Tier A,避免一次扩张到7×57次agent运行。 ## 14B和32B资源门槛 本项目已实际验证的是单张和2张A800 80GB链路;`.env.example`中的4卡是目标配置,不等于4卡GRPO已经跑通。 - 14B:2×80GB可尝试32K TP=2推理。只有单题协议成功、峰值显存有余量,且后续LoRA GRPO显存smoke通过,才把它作为可训练候选。 - 32B:BF16权重约65GB。2×80GB的colocated actor/vLLM还要容纳两份权重、KV cache、激活和优化状态,不作为安全的GRPO配置。 - 只有检测到4×80GB可用时才追加一个32B模型。优先测直接由SWE-Smith 5,017条成功轨迹训练的`SWE-bench/SWE-agent-LM-32B@6b6b924ea6f17aeff85e5228772df8fff3aab62d`;其[官方数据卡](https://huggingface.co/datasets/SWE-bench/SWE-smith-trajectories)报告SWE-agent下Verified pass@1 40.2。若更看重公开RL上限,可改测`RUC-AIBOX/SWE-Master-32B-RL@258b36322e6854cf9ff2e9615f42977d2792a1b6`,其公开材料报告61.4 pass@1,但原工具协议与本项目差异更大,且主分支权重约65.5GB。 32B即使Canary得分高,也必须再做4卡GRPO显存smoke;不能仅凭推理可运行就判定可训练。 ## AutoDL执行指令 以下命令均由用户在AutoDL执行。 ### 1. 只读确认GPU和磁盘 ```bash cd /root/autodl-tmp/harbor-qwen-grpo-experiment source /root/miniconda3/etc/profile.d/conda.sh conda activate harbor-grpo nvidia-smi --query-gpu=index,name,memory.total,memory.free --format=csv,noheader df -h /root/autodl-tmp ``` 判定:少于2张80GB时不测SERA-14B;少于4张80GB时不下载、不测32B。 ### 2. 每个模型固定revision下载 先选择一组变量;一次只下载和运行一个模型: ```bash # Klear最终8B(首选先跑) export MODEL_REPO=Kwai-Klear/Klear-AgentForge-8B export MODEL_REVISION=fa3d41e92e9ce7a5b4a52a3e7439aa00521f40c9 # 其他Tier A模型按顺序替换为: # Kwai-Klear/Klear-AgentForge-8B-SFT # 0da97e45dbbd44278bd55b878170ec369d2934fb # laion/GLM-4_7-swesmith-sandboxes-with_tests-oracle_verified_120s-maxeps-131k-fixthink # 0e3bff0c4e51f6b9ec0713b98b9eec36efb91cc6 # penfever/a3-rl-SankalpKJ_swesmith-oracle-filtered-40-8B # 26b13a2f824ebea7214da75dfb1b2313090a423c export MODEL_DIR="/root/autodl-tmp/models/${MODEL_REPO##*/}-${MODEL_REVISION:0:8}" hf download "$MODEL_REPO" --revision "$MODEL_REVISION" --local-dir "$MODEL_DIR" ``` Klear-SFT若提示gated,需要先在Hugging Face接受许可并设置`HF_TOKEN`。 ### 3. 启动8B 32K服务 在一个终端运行: ```bash export SERVED_MODEL_NAME="${MODEL_REPO##*/}" CUDA_VISIBLE_DEVICES=0 python -m vllm.entrypoints.openai.api_server \ --model "$MODEL_DIR" \ --served-model-name "$SERVED_MODEL_NAME" \ --dtype bfloat16 \ --max-model-len 32768 \ --max-num-seqs 4 \ --max-num-batched-tokens 32768 \ --enable-chunked-prefill \ --gpu-memory-utilization 0.90 \ --host 0.0.0.0 \ --port 6008 ``` 如果同一张GPU还承担训练,不使用这个启动参数;这里仅用于模型选择推理。 ### 4. 单题协议检查和固定57题 在另一个终端运行: ```bash cd /root/autodl-tmp/harbor-qwen-grpo-experiment source /root/miniconda3/etc/profile.d/conda.sh conda activate harbor-grpo set -a source .env set +a # 与正在运行的vLLM服务保持一致;切换模型时同步替换 export MODEL_REPO=Kwai-Klear/Klear-AgentForge-8B export MODEL_NAME="$MODEL_REPO" export CANARY_CONCURRENCY=4 make swesmith-pro-canary-smoke-1 make swesmith-pro-canary-30 make model-selection-verified-27 ``` 第二个终端的`MODEL_REPO`必须与服务端相同。不要把`CANARY_MODEL_BASE_URL`改成`127.0.0.1`:agent运行在ACK Pod中,必须继续使用`.env`里能从ACK访问AutoDL 6008映射的gateway地址。可先在AutoDL本机用`curl http://127.0.0.1:6008/v1/models`检查vLLM,再用项目既有`make network-smoke`检查ACK到gateway的连通性。8000不是AutoDL个人实例约定的公网映射端口,不能用于本轮服务。 单题若出现工具格式、`submit`工具不存在或无法结束等协议错误,先把该模型标为`harness incompatible`,不直接计0后继续跑57题。基础设施错误也不计模型失败;只对有效verifier结果统计pass@1。 ### 5. SERA-14B有条件运行 确认至少2×80GB后: ```bash export MODEL_REPO=allenai/SERA-14B export MODEL_REVISION=9b585b4126595e471eae9d2c59c8d73dd0fe9e7b export MODEL_DIR="/root/autodl-tmp/models/${MODEL_REPO##*/}-${MODEL_REVISION:0:8}" hf download "$MODEL_REPO" --revision "$MODEL_REVISION" --local-dir "$MODEL_DIR" export SERVED_MODEL_NAME="${MODEL_REPO##*/}" CUDA_VISIBLE_DEVICES=0,1 python -m vllm.entrypoints.openai.api_server \ --model "$MODEL_DIR" \ --served-model-name "$SERVED_MODEL_NAME" \ --tensor-parallel-size 2 \ --dtype bfloat16 \ --max-model-len 32768 \ --max-num-seqs 4 \ --max-num-batched-tokens 32768 \ --enable-chunked-prefill \ --gpu-memory-utilization 0.90 \ --host 0.0.0.0 \ --port 6008 ``` 只先执行`make swesmith-pro-canary-smoke-1`。协议正常后再运行30+27。 ### 6. 32B仅在4×80GB门槛满足时运行 默认选择与SWE-Smith关系最直接的SWE-agent-LM-32B: ```bash export MODEL_REPO=SWE-bench/SWE-agent-LM-32B export MODEL_REVISION=6b6b924ea6f17aeff85e5228772df8fff3aab62d export MODEL_DIR="/root/autodl-tmp/models/${MODEL_REPO##*/}-${MODEL_REVISION:0:8}" hf download "$MODEL_REPO" --revision "$MODEL_REVISION" --local-dir "$MODEL_DIR" export SERVED_MODEL_NAME="${MODEL_REPO##*/}" CUDA_VISIBLE_DEVICES=0,1,2,3 python -m vllm.entrypoints.openai.api_server \ --model "$MODEL_DIR" \ --served-model-name "$SERVED_MODEL_NAME" \ --tensor-parallel-size 4 \ --dtype bfloat16 \ --max-model-len 32768 \ --max-num-seqs 4 \ --max-num-batched-tokens 32768 \ --enable-chunked-prefill \ --gpu-memory-utilization 0.90 \ --host 0.0.0.0 \ --port 6008 ``` 仍然只先跑`swesmith-pro-canary-smoke-1`。若实际只有2卡、TP=4启动失败或峰值显存紧张,立即跳过32B,不改成量化模型混入正式排序,因为量化会引入新的比较变量。 ## 排序与停止规则 1. 首先比较有效运行率;协议不兼容或频繁异常的模型不能作为当前GRPO基模。 2. 分别记录Verified27、SWE-Smith `validation18`、SWE-Smith `train12`的成功数,不用单一57题总分掩盖差异。 3. 选择能在`train12`产生非零成功、Verified27不明显退化、且当前GPU可训练的最小模型。 4. 若两个8B表现接近,优先选择许可证清晰、公开训练链路完整、与mini-swe-agent-plus协议更稳定的模型。 5. Canary只用于选基模。最终是否适合GRPO,要在所选train任务上以每组多rollout确认同组reward同时出现0和1;这不由pass@1单独保证。 ## 已完成及进行中结果(2026-08-16) 两款Klear 8B模型均已在统一32K、mini-swe-agent-plus、runtime v3口径完成两组正式运行: | 模型 | SWE-Smith30 | Verified27 | 合计 | 异常 | | --- | ---: | ---: | ---: | ---: | | `Klear-AgentForge-8B-SFT` | 5/30(16.67%) | 8/27(29.63%) | 13/57(22.81%) | 0 | | `Klear-AgentForge-8B` | 5/30(16.67%) | 8/27(29.63%) | 13/57(22.81%) | 0 | | `mini-coder-4b` | 1/30(3.33%) | 7/27(25.93%) | 8/57(14.04%) | 0 | | `GLM-4_7-swesmith-SFT` | 3/30(10.00%) | 6/27(22.22%) | 9/57(15.79%) | 15/57(`NonZeroAgentExitCodeError`) | | `a3-rl-swesmith` | 0/29 recorded(请求30) | 6/27(22.22%) | 6/56 recorded(请求57) | 23个`NonZeroAgentExitCodeError`、1个`PodReadyTimeoutError`,另缺1个trial | 在当前57题小样本、固定Agent和32K口径下,最终RL模型相对SFT模型没有可观测通过率增益;两个Klear 8B模型均为13/57,`GLM-4_7-swesmith-SFT`为9/57,`mini-coder-4b`为8/57。GLM虽比mini-coder多通过1题,但57题中有15题agent非零退出,而三个较早的比较组均无异常,因此不能把1题差异解释为更稳定或更适合训练。`a3-rl-swesmith`在Verified27通过6题,SWE-Smith作业记录的29题则无通过;由于它的两项并发8作业几乎全程重叠,并在单ACK节点上造成已确认的CPU/内存调度竞争,当前只归档原始结果,不把`6/56 recorded`并入正式无干扰排名。该结论不等价于模型能力的完整排名,也不否定完整Verified 500题、64K或内部评测口径下的差异。其他模型仍须使用相同57题、32K上下文、runtime v3和有效verifier结果口径比较;全部候选完成前不提前选择GRPO基模。 本轮实测作业记录: | 模型 | 数据集 | Harbor作业 | 耗时 | reward分布 | | --- | --- | --- | ---: | --- | | `mini-coder-4b` | SWE-Smith Pro 30 | `2026-08-15__23-02-43` | 15m29s | 1×1.0,29×0.0 | | `mini-coder-4b` | SWE-bench Verified 27 offline-v3 | `2026-08-15__23-18-14` | 12m30s | 7×1.0,20×0.0 | | `GLM-4_7-swesmith-SFT` | SWE-Smith Pro 30 | `2026-08-15__23-32-59` | 1h0m13s | 3×1.0,27×0.0 | | `GLM-4_7-swesmith-SFT` | SWE-bench Verified 27 offline-v3 | `2026-08-16__00-29-43` | 48m38s | 6×1.0,21×0.0 | | `a3-rl-swesmith` | SWE-bench Verified 27 offline-v3 | `2026-08-16__01-21-05` | 1h15m3s | 6×1.0,21×0.0 | | `a3-rl-swesmith` | SWE-Smith Pro 30 | `2026-08-16__01-23-40` | 1h19m59s | 29×0.0(请求30,摘要记录29) | `GLM-4_7-swesmith-SFT`两项作业均使用`model-selection-32k`、runtime schema v3、32,768 context、mini-swe-agent-plus、并发8和retry=0;SWE-Smith30中7题、Verified27中8题为`NonZeroAgentExitCodeError`。当前reward摘要按全部57个trial原样记录,合计9×1.0和48×0.0;若后续证据确认其中存在基础设施故障,必须按具体task复测,不能直接改写分母或汇总成绩。 `a3-rl-swesmith`两项作业也使用相同Agent、32K、runtime v3、并发8和retry=0,但启动时间只相差2m35s,几乎全程重叠。Verified27中10题为`NonZeroAgentExitCodeError`;SWE-Smith摘要只产生29个trial,其中13题为`NonZeroAgentExitCodeError`、1题为`PodReadyTimeoutError`。同期ACK namespace出现`Insufficient cpu`和`Insufficient memory`,另一个freeze-700 Oracle NOP批次为防止基础设施失败写入正式结果而中断,正式Oracle仍为280条、SHA-256为`0f2ecbfba0f88cd3e8437478d5b2a812774f7970a89129b6b5e638bff48d84d0`。因此`PodReadyTimeoutError`和缺失trial只记为基础设施/归档缺口,不计作模型能力失败;后续模型选择评测与Oracle不得共享同一ACK执行窗口。 ## 当前训练初始化选择(2026-08-17) 当前正式freeze为`swesmith-curated-grpo-267-v1`。`Klear-AgentForge-8B-SFT`在其validation按seed `20260817`抽取30题,以64K、`official-public-repro`、runtime v3、并发8运行,结果为12/30、Mean 0.400、Exceptions 0,作业为`state/harbor-jobs/2026-08-17__16-14-11`。 该结果用于确认Klear 8B SFT可作为后续RL初始化模型,不重排上面的统一32K固定57题榜单,因为两者题集与context不同。后续完整PPO已采用4×80GB trainer加1×80GB独立vLLM完成40步;三模型能力评测未显示随step稳定提升,当前不再按早期6–8卡候选计划扩容训练。