From Agent Traces to Agent Simulations — Rustem Feyzkhanov, Snorkel AI
三句話摘要
將生產環境的 AI agent 執行記錄轉化為可重複的模擬實驗,建立接近真實環境的評估基準,成為 agent 開發和發布的完整循環。 Agent 評估的未來在於把生產失敗轉化為自動化模擬實驗,形成「觀察失敗 → 建立基準 → 測試修復 → 驗證發布」的完整循環。 公開 benchmark 無法評估自己的完整系統:SWE-bench 聚焦修復代碼、Terminal Bench 聚焦終端操作,都只涵蓋特定領域。生產環境需要評估的是完整 stack──包括模型、prompt、tools、政策、成本、延遲。因此必須建立針對自己領域和工具集的私有 benchmark。
重點整理
重點- 1
公開 benchmark 無法評估自己的完整系統:SWE-bench 聚焦修復代碼、Terminal Bench 聚焦終端操作,都只涵蓋特定領域。生產環境需要評估的是完整 stack──包括模型、prompt、tools、政策、成本、延遲。因此必須建立針對自己領域和工具集的私有 benchmark。
- 2
模擬環境相比事後分析的優勢:生產 traces 只能發現已發生的問題且難以重複實驗(環境狀態會變),模擬環境則讓同一測試可用不同 agent 配置重複執行,並在一致的環境下比較多維度指標──成功率、成本、延遲、重試次數。
- 3
環境必須接近生產但不需複製全部:使用 Docker 容器編排,核心環節包括數據庫快照(非完整生產庫)、模擬 API 服務和 MCP tools、LLM 模擬用戶交互,確保 agent 無法察覺自己在測試中。長期運行的任務則透過多步驟設計,每步獨立驗證和可提前停止。
- 4
Benchmark 是持續演進的軟體工程學科:需要 CI 管線驗證任務本身(依賴釘死、Oracle 解決方案確認可解決性、多次運行驗證難度),並從生產失敗不斷擴展數據集,最終成為 develop → test → release 的完整循環。
實用技巧與重點
乾貨- Benchmark 結構
- Instruction Markdown 檔案(agent 看得到的說明)
- Docker 環境定義(模擬環境)
- Oracle 解決方案(驗證任務本身可解決)
- 驗證器(評估 agent 表現)
- 元資料
- 環境構造模式
- Docker 容器:主容器運行 agent,其他容器模擬 API、數據庫、MCP tools
- 數據庫快照而非完整生產庫
- 可 mock 的 API 服務
- LLM 模擬用戶行為和互動
- 驗證方式
- 確定性檢查:final output、tool calls
- LLM-as-judge:評估 trace 質量、planning 合理性
- Subject Matter Expert:處理驗證器間分歧
- Benchmark 發展檢查清單
- 依賴版本釘死
- 基礎鏡像正確
- 無缺失 fixtures
- Oracle 解決方案通過
- 多次運行驗證可解決性和穩定性
- 任務標記難度(簡/中/難)
- 批准後加入基準集
- 訓練/測試分割
- 經典 80/20 比例
- 需要獨立測試集驗證未見過的配置
- Agent 改進流程
- 建立 baseline
- 運行評估集,觀察失敗
- 修改一項(model/prompt/tools)
- 重跑實驗
- 修復後重跑完整測試
- 發布生產
- 修復原則
- 不全塞進 prompt
- 上下文過載時改進 skills
- 缺失流程時加入新 skill
- 輸出格式問題用 structured output
結論
結論“Agent 評估的未來在於把生產失敗轉化為自動化模擬實驗,形成「觀察失敗 → 建立基準 → 測試修復 → 驗證發布」的完整循環。”
完整解析
詳細Rustam 在 Snorkel AI 領導 AI 平台團隊,這家公司專業製作和銷售 agent 評估基準。他開篇指出一個根本問題:許多公司仰賴公開的 benchmark(例如 SWE-bench 評估代碼修復能力、Terminal Bench 評估終端操作)來衡量 agent 能力,但這類公開基準只涵蓋狹窄的領域。真實生產環境中,你需要評估的是自己公司的完整 stack──不只是模型的能力,還包括 prompt、工具組合、公司政策、成本和延遲。因此每家公司都必須建立自己的私有 benchmark。
傳統的 agent 評估方法是分析生產環境中失敗的 traces。一個 trace 記錄了 agent 的輸入、採取的行動和輸出,從中可以看出 agent 是否成功、有無邊界情況。但這方法有嚴重限制:無法重複相同的實驗(因為數據庫狀態、工具版本會變化),無法公平比較不同的 agent 配置,難以測試假想的修復方案。
Snorkel 的解決方案是將生產 traces 「反向工程」成可重複的模擬任務。核心思想是拿一個真實失敗場景,抽象成一個測試任務,包含模擬環境和驗證規則。這樣的好處是可以線下快速迭代:嘗試不同的 agent 配置(換模型、調 prompt、改工具),同時保持環境一致,從而公平地比較多維度指標。
環境構造的做法借鑒集成測試邏輯。講者強調環境要「看起來像真正的生產環境」,但不需要運行完整的生產系統。實際做法是用 Docker 容器編排:agent 運行在主容器,其他容器模擬 API 服務、數據庫、MCP tools。對於長期運行的任務,使用多步驟設計,每步有獨立的 prompt 和驗證邏輯,允許提前停止以節省成本。特別地,用戶互動也要模擬,用一個帶自己 prompt 的 LLM 扮演用戶角色,確保 agent 察覺不到自己在測試環境中。
驗證分三層。首先是確定性檢查,直接檢驗最終輸出或工具調用是否正確──這對像代碼生成這樣的任務很有效。其次是用 LLM-as-judge,讓 LLM 評估 trace 質量、agent 的規劃是否合理。最後是主題專家,不是審查所有任務,而是在不同驗證器產生分歧時介入,特別是當 agent 和驗證邏輯的判斷不一致時。Benchmark 開發本身被視為軟體工程,需要完整的 CI 管線:檢驗依賴是否正確固定、基礎鏡像是否最新、是否有缺失的測試數據;運行 Oracle 解決方案確認任務本身可解決;多次運行驗證 agent 的表現穩定性;根據難度標記任務。
最終形成一個完整的循環。發布前,benchmark 驗證 agent 能否處理邊界情況、邊界工具失敗情況。發布時,benchmark 成為 release gate,確保任何代碼變更不產生迴歸。發布後,生產環境中的失敗被記錄、分析,並轉化為新的 benchmark 任務或 fine-tuning 數據集。講者特別強調一個重要原則:不要把所有問題都堆進 prompt 裡(如「永遠不要輸出 X」「只做 Y」),而是根據問題性質在正確的層面修復──如果是上下文超載,改進 skills 設計;如果是缺失工作流程,加入新 skill;如果是輸出格式問題,用 structured output。
關鍵時刻
Pipeline v2帶時間戳的重點,會在逐字稿層級分析上線後產生。目前請先透過原始影片觀看。
事實查核
Pipeline v2說法查證是下一次管線升級的一部分。KeyFrame 只會顯示它真正能驗證的內容。


