全部產品
Search
文件中心

Platform For AI:Coding Agent 蒸餾

更新時間:Sep 30, 2026

Coding Agent 蒸餾模板通過編程 Agent 在遠程沙箱中實際修改代碼、重放測實驗證,產出 ShareGPT 格式的多輪 SFT 資料集,適合訓練小模型在真實代碼倉庫中定位問題、修改代碼並驗證結果。

模板概述

Coding Agent 蒸餾模板適用於需要訓練代碼能力模型的情境。編程 Agent 在遠程沙箱中實際修改代碼,改動隨後在全新沙箱中重放並執行測試,僅保留「改動確實使測試通過」的軌跡,產出 ShareGPT 格式的多輪 SFT 資料集。與類比工具調用的 Agent 蒸餾不同,這條資料線的每一步都伴隨實際執行與防作弊校正,適合訓練小模型在真實代碼倉庫中定位問題、修改代碼並驗證結果。

重要

該模板僅支援一段式建立:蒸餾資料構建,不包含學生模型訓練階段。

Coding Agent 蒸餾模板的流水線包含以下步驟:

步驟

名稱

說明

1

沙箱執行

為每條種子建立獨立的遠程沙箱並解壓其 workspace,隨後由編程 Agent 按任務描述修改代碼,完整記錄互動軌跡。

2

重放與測實驗證

在全新沙箱中重放軌跡裡的檔案改動並執行種子指定的驗證命令,同時進行防作弊校正(是否修改測試檔案、用例是否全部跳過、環境錯誤是否被計為通過等),輸出分數與結論。

3

構建 SFT 資料集

把通過驗證的軌跡整理成 ShareGPT 格式的多輪對話訓練樣本。

操作步驟

  1. 登入PAI控制台,在左側導覽列選擇模型应用> 模型蒸馏(ModelDistill)。

  2. 單擊新建任务,跳轉到蒸馏模板頁簽,或者直接進入蒸馏模板頁簽。

  3. 選擇Coding Agent 蒸餾,單擊使用模板,進入新建蒸馏任务頁面。如下配置關鍵參數,其他保持預設。

  4. 進行基础配置:

    • 任务名称:系統已自動填滿。

    • 输出路径:指定一個有許可權訪問的OSS路徑,如oss://mybucket.oss-cn-hangzhou-internal.aliyuncs.com/coding-agent-distill/。

      說明

      請確保為每個蒸餾任務建立獨立的輸出目錄,避免檔案被覆蓋。OSS Bucket需與PAI服務在同一地區。

  5. 單擊下一步,進入蒸馏数据构建:

    • 教师模型:來源選擇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。

  6. 單擊创建,然後在彈出的計費提醒中單擊确定,頁面將自動跳轉至任務詳情的基礎配置頁面,可在此跟蹤任務狀態。

配置說明

以下說明 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

  • input_path(預設 seeds.jsonl):輸入種子檔案路徑(位於輸入掛載目錄下)。

  • output_path(預設 04_merged.jsonl):匯出前的合并審計快照(含未通過驗證的軌跡,供回溯與構造偏好對)。注意:此檔案與 SFT 訓練資料檔案必須分開,指向同一個檔案會把訓練資料靜默覆蓋。

  • build_sft.output_path(預設 outputs/handoff/03_sft_records.jsonl):可訓練的 ShareGPT 多輪 SFT 資料,由收尾的 build_sft 階段產出。

backend

  • timeout(預設 1200.0):單次請求等待上限(秒)。需覆蓋寫滿 max_tokens 的回答而非平均長度。

  • max_retries(預設 3):單次請求的網路級重試次數。

coding_agent.harness

編程 Agent 外殼,控制代理行為與沙箱互動。

  • type(預設 cc):代理外殼類型,需與 sandbox.template 的沙箱鏡像配套。

  • model(預設 deepseek-v4-flash-0731):編程 Agent 使用的模型。

  • max_turns(預設 150):單條種子最多互動輪次。

  • timeout(預設 2400):單條種子的牆鐘上限(秒),需與 max_turns 配套——每輪都要在沙箱裡改代碼、跑測試。

  • supervisor.hard_abort_elapsed_s(預設 1200):單條種子的硬中止閾值(秒)。當 Agent 執行超過此時間時強制終止。

coding_agent.sandbox

遠程沙箱配置,每條種子一個隔離執行個體。

  • endpoint(必填):EAS 即時服務接入地址,格式為 https://api.<網域名稱>。把預留位置 ${EAS_SANDBOX_ENDPOINT} 替換為實際地址。

  • api_key(必填):即時服務 API Token,與教師模型憑證是兩套。把預留位置 ${EAS_SANDBOX_API_KEY} 替換為實際 Token。

  • template(預設 coding-agents-harness-cc):沙箱模板名,需已存在於你的即時服務下。

  • ttl(預設 3600):沙箱存活秒數,到點自動回收。

  • create_concurrency(預設 10):並發建立沙箱上限,放大批量時需與 execution.max_workers 一起調。

coding_agent.scoring

驗證與評分機制,控制軌跡品質篩選。

  • require_real_test(預設 true):必須在沙箱內實際執行 test_cmd,不接受 LLM 判定分數。

  • require_test_pass(預設 true):test_cmd 退出碼必須為 0,否則整條丟棄。

  • require_modification(預設 true):軌跡必須確實修改過檔案,否則整條丟棄。

  • pass_threshold(預設 0.5):通過驗證的最低分數閾值。

  • enable_judge(預設 true):是否啟用 LLM 裁判模型輔助評分,裁判模型由 judge_model 指定。

  • false_positive_check(預設 true):聯合防作弊校正,檢查是否修改測試檔案、用例是否全部跳過、環境錯誤是否被計為通過等。

coding_agent.execution

  • max_workers(預設 10):種子級並行度,控制同時執行的種子數量。