安裝
uv tool install 'git+https://github.com/00200200/[email protected]'Repro Lens 是面向 ML 與編碼 agent 的可重現性檢查工具:掃描程式碼中的重現風險、回放實驗並對比改動前後的輸出。如果你在改動 ML 程式碼後想確認實驗結果沒有被破壞,這是它的核心用途;靜態檢查只需 Python 3.11+ 和 Git,不需要 ML 相依套件或 API key,但實驗回放需要該實驗自身的相依套件,且必須由你顯式觸發。
適合誰
- 需要在改程式碼前後驗證實驗可重現的 ML/科研工程師,以及為 coding agent 配置重現稽核流程的團隊。
- 只想做靜態掃描的使用者:無需 ML 相依套件、無需 API key,被掃描的程式碼不會被匯入執行,輸出帶檔案位置的靜態發現。
- 不適合的情況:沒有 Git 環境時兩條安裝路徑都不可用;Python 低於 3.11 時靜態檢查器無法執行。除上述要求外,源材料未說明其他系統前提,是否支援 Windows 等平台官方未說明。
- 證據未說明的內容不得假設:它未聲明支援哪些文字或程式碼語言,也未聲明在哪些 agent 用戶端可用。
3 分鐘完成第一次嘗試
前提:本機已安裝 Python 3.11+、Git 和 uv。推薦主路徑是用 uv 從官方儲存庫固定版本安裝:
uv tool install 'git+https://github.com/00200200/[email protected]'
替代方式是在虛擬環境中用 pip 安裝同一 git URL(同樣需要 Git),這只是次要選項,不構成另一條主入口。
安裝後先做一次低風險、唯讀的靜態檢查:在你的專案裡對 agent 或終端機發起任務「用 repro-lens check 檢查這個檔案是否有已知的可重現性風險」。對應核心操作 check:它給出靜態發現及檔案位置,且被掃描的程式碼永遠不會被匯入。成功訊號是輸出中列出帶檔案位置的發現(即使結論是「未發現風險」也說明執行成功)。
注意:check 是診斷操作,這只是說明它不匯入掃描程式碼;它是否會讀寫檔案、執行命令或存取網路,源材料沒有說明,無法確認。實驗回放(verify,要求兩次執行的聲明輸出一致)會實際執行實驗,屬於有副作用的操作,第一次嘗試不要使用;如要使用,先確認實驗相依套件齊全並在觸發前明確確認。
使用案例
案例一:改動訓練腳本前的靜態稽核。向 agent 發起「對訓練腳本執行 repro-lens check」。工具執行 check 操作,回傳靜態發現和檔案位置,不匯入你的程式碼。你可以據此判斷改動是否引入已知的可重現性風險;若源材料之外的細節(如具體規則清單)未提供,則只能確認到「得到帶位置的發現」這一步。
案例二:修復後的輸出對比。前提是你已在改動前透過官方工作流程保存了報告。向 agent 發起「用 repro-lens 的 verify 回放實驗,再用 compare 對比兩次保存的報告」。verify 要求兩次執行的聲明輸出完全一致,compare 用於 diff 已保存的報告。預期結果:verify 通過表示輸出符合聲明,compare 給出報告差異。回放需要實驗自身相依套件,且是顯式命令——工具不會替你自動回放。
使用邊界
- 檔案與命令存取:
check不匯入被掃描程式碼;verify會執行實驗(需相依套件),回放始終是顯式命令,pre-commit 鉤子(儲存庫 repro-lens,rev v0.3.0,id repro-lens)只篩查程式碼和專案策略,不自動回放。是否涉及網路存取官方未說明。 - 確認點:任何會執行實驗的操作(verify)都應在觸發前確認實驗配置和副作用。
- 安裝差異:推薦用 uv 安裝固定版本 v0.3.0;虛擬環境中的 pip 安裝是官方給出的替代方式。源材料未提及 marketplace 或其他平台安裝方式,不要假設。
- agent 整合:儲存庫內 skills/reproducibility/SKILL.md 可引導現有 coding agent 完成稽核或經授權的修復,其啟動器與 CLI 呼叫同一引擎;完整儲存庫也是一個 Codex 外掛(含 .codex-plugin/plugin.json)。除此之外,具體支援哪些 agent 用戶端官方未列明。
- 未確認的關鍵資訊:網路行為、支援的程式碼語言範圍、
check/compare的讀寫邊界均無官方說明,使用前請以儲存庫文件為準。