Coding Agent 蒸馏模板通过编程 Agent 在远程沙箱中实际修改代码、重放测试验证,产出 ShareGPT 格式的多轮 SFT 数据集,适合训练小模型在真实代码仓库中定位问题、修改代码并验证结果。
模板概述
Coding Agent 蒸馏模板适用于需要训练代码能力模型的场景。编程 Agent 在远程沙箱中实际修改代码,改动随后在全新沙箱中重放并执行测试,仅保留「改动确实使测试通过」的轨迹,产出 ShareGPT 格式的多轮 SFT 数据集。与模拟工具调用的 Agent 蒸馏不同,这条数据线的每一步都伴随实际执行与防作弊校验,适合训练小模型在真实代码仓库中定位问题、修改代码并验证结果。
该模板仅支持一段式创建:蒸馏数据构建,不包含学生模型训练阶段。
Coding Agent 蒸馏模板的流水线包含以下步骤:
步骤 | 名称 | 说明 |
1 | 沙箱执行 | 为每条种子创建独立的远程沙箱并解压其 workspace,随后由编程 Agent 按任务描述修改代码,完整记录交互轨迹。 |
2 | 重放与测试验证 | 在全新沙箱中重放轨迹里的文件改动并执行种子指定的验证命令,同时进行防作弊校验(是否修改测试文件、用例是否全部跳过、环境错误是否被计为通过等),输出分数与结论。 |
3 | 构建 SFT 数据集 | 把通过验证的轨迹整理成 ShareGPT 格式的多轮对话训练样本。 |
操作步骤
登录PAI控制台,在左侧导航栏选择模型应用> 模型蒸馏(ModelDistill)。
单击新建任务,跳转到蒸馏模板页签,或者直接进入蒸馏模板页签。
选择Coding Agent 蒸馏,单击使用模板,进入新建蒸馏任务页面。如下配置关键参数,其他保持默认。
进行基础配置:
任务名称:系统已自动填充。
输出路径:指定一个有权限访问的OSS路径,如
oss://mybucket.oss-cn-hangzhou-internal.aliyuncs.com/coding-agent-distill/。说明请确保为每个蒸馏任务创建独立的输出目录,避免文件被覆盖。OSS Bucket需与PAI服务在同一地域。
单击下一步,进入蒸馏数据构建:
教师模型:来源选择Token 服务,选择教师模型(如
qwen3.8-max),裁判模型复用教师模型,不选择。数据集:选择一个有权限访问的OSS目录(注意:必须选择整个目录,不能仅选择 JSONL 文件)。可直接下载示例使用。
蒸馏配置:已提供了默认配置,根据实际需要修改。重点关注以下参数:
coding_agent.harness.max_turns:单条种子的最大交互轮次,默认 150。需与 timeout 配套——每轮都要在沙箱里改代码、跑测试。
coding_agent.sandbox.endpoint:即时服务接入地址,需替换占位符
${EAS_SANDBOX_ENDPOINT}为实际地址。coding_agent.sandbox.api_key:即时服务 API Token,需替换占位符
${EAS_SANDBOX_API_KEY}为实际 Token。说明即时服务:Coding Agent 蒸馏需要 即时服务提供沙箱执行环境。在 PAI 控制台左侧导航栏选择 模型在线服务(EAS),切到 即时服务页签,创建即时服务后使用公共模板或者自建模板,在模板详情页右上方单击SDK接入获取接入地址(endpoint)和 API Token,用于替换上方蒸馏配置中的
${EAS_SANDBOX_ENDPOINT}和${EAS_SANDBOX_API_KEY}。详情参见即时服务-快速入门。
计算资源:资源类型选择通用计算,资源来源选择公共资源,在任务资源中选择合适的资源规格,如
ecs.c6.large。
单击创建,然后在弹出的计费提醒中单击确定,页面将自动跳转至任务详情的基础配置页面,可在此跟踪任务状态。
配置说明
以下说明 Coding Agent 蒸馏模板的关键配置参数。基础配置和资源配置与通用蒸馏一致,此处仅列出本模板特有的参数差异。
基础配置
基础配置包含任务名称和输出路径两项。输出路径为任务全部产物的输出根目录,蒸馏数据集也写在该目录下,无需再单独指定数据集输出路径。
蒸馏数据构建
教师模型
Coding Agent 蒸馏模板需要配置以下多个教师模型:
序号 | 模型角色 | 说明 |
1 | 教师模型(必填) | 同时用于 Coding Agent 的推理与 Harness,用于生成轨迹,建议选择代码能力强、支持长上下文与工具调用的模型。 |
2 | 裁判模型(可选) | 用于判断 Coding Agent 轨迹的质量。留空则复用教师模型,建议单独指定。 |
教师模型来源支持 Token服务。
数据集
选择输入目录(注意:必须选择整个目录,不能仅选择 JSONL 文件),数据格式要求如下:
种子文件:seeds.jsonl,一行一条种子任务,包含
id、instruction、workspace、test_cmd、test_files字段。为每条种子准备一个 workspace 压缩包,压缩包按 seeds.jsonl 中的相对路径解析。
输入必须选择整个目录,仅选择 seeds.jsonl 文件会导致压缩包不可用。
蒸馏配置
蒸馏配置以 YAML 格式提供,预置了算法团队的推荐默认值,可按需调整。下表列出部分建议关注的参数及其说明。
配置段 | 说明 |
dataset |
|
backend |
|
coding_agent.harness | 编程 Agent 外壳,控制代理行为与沙箱交互。
|
coding_agent.sandbox | 远程沙箱配置,每条种子一个隔离实例。
|
coding_agent.scoring | 验证与评分机制,控制轨迹质量筛选。
|
coding_agent.execution |
|