ProgramDistill:把網頁 App 反推成 SWE 基準任務

ProgramDistill 把互動的網頁行為變成修復題目,讓 AI 編程代理靠一部會動嘅「參考 App」重新砌返功能,再自動驗收。

Microsoft Research

好多時開發並非由一份寫得好清楚嘅規格開始,而係先見到一個行得通嘅版本,再去諗點補返。ProgramDistill 模擬嘅正係呢種工作流:代理可以同一部「參考 App」互動,但睇唔到佢嘅源碼,只能改另一份缺咗功能嘅應用程式,再睇最後行起上嚟嘅行為同原裝嘅一唔一樣。換言之,重點唔係抄程式碼,而係要還原出來嘅效果同參考版本吻合。

要規模化做呢件事,每條任務都要有「可以重播嘅行為」加「可靠嘅驗證」。ProgramDistill 用一條叫 mine-craft-patch 嘅自動管線,靠多個 LLM 代理合作,由行得通嘅應用同源碼出發,自動搵出可記錄嘅行為、存成可重播嘅 trace,再刪走負責該行為嘅源碼,整出一份「修復題」。每條 trace 本身就係一個可執行嘅驗收器,因為佢記低咗瀏覽器動作、成功訊號同前置依賴,自動重播就識得計分。

呢套方法喺 26 個應用上面搵到 1,975 個經重播驗證嘅行為,再組成 4,063 條任務。題目難度可以由「要還原幾深層嘅依賴」控制到,即係話可以設計到「只係補一個細行為」,亦可以迫代理一次過補返連鎖反應。

重點摘要:

  • 用可重播行為做驗收:trace 同時係題目亦係計分機制,省咗另寫驗收邏輯。
  • 唔睇源碼、只睇效果:代理要靠互動參考 App 嚟推測行為。
  • 難度可調:還原深度愈深,要一齊修好嘅行為就愈多。
  • 規模化合成:26 個應用就整到四千幾條 SWE 任務。
  • 評估目標係還原效果,唔係程式碼樣相似唔相似。

對做編程代理嘅團隊,或者想練 SWE-bench 類型基準嘅人嚟講,呢套管線提供咗一個起點:由真實 Web App 自動生出一批可驗證、難度可控嘅任務,省卻人手逐條寫題目嘅工序。

項目主頁

Categories: 開源, Agentic, 微軟, 軟件, 編程, Dataset 數據集