KeyFrame內部研究專用

From Agent Traces to Agent Simulations — Rustem Feyzkhanov, Snorkel AI

AI Engineer·7月25日週六·20 min英文

三句話摘要

將生產環境的 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 只會顯示它真正能驗證的內容。

更多「AI 技術」的內容

Between Two Nerds: Attribution is dead, long live attribution
32 min
AI 技術英文PODCAST8月25日

Between Two Nerds: Attribution is dead, long live attribution

Risky Business

  • 工具成本的破壞性下降 — 傳統上,攻擊者必須重複使用昂貴自製的惡意軟體或工具組,因為開發和維護成本極高。這種成本結構使得安全研究人員可以通過工具特徵和程式碼簽名來追蹤攻擊者。LLM 自動化了代碼生成與維護工作流,使得攻擊者可以輕易為每個目標生成新工具,或改用通用系統工具,導致傳統的工具特徵分析失效。
  • 所有取證證據都在攻擊者掌控之中 — 無論是使用的 IP 位址、惡意軟體類型或戰術流程,這些都是攻擊者的主動選擇。即使看似是隨機巧合,攻擊者仍有能力在事前決定留下什麼痕跡。因此,所有可恢復的取證證據本質上都是攻擊者願意暴露的信息。
  • LLM 削弱工具簽名但保留高階行為特徵 — LLM 經過公開駭客技術訓練,使不同使用者產生相似的攻擊模式。然而,勒索軟體集團、國家級行為者的受害者選擇、贖金要求方式或目標模式等高階特徵仍具有識別價值。例如,鎖定加密交易所的攻擊幾乎只能指向朝鮮。
Everything Goldman Sachs Taught Me About AI (In 10 minutes)
AI 技術英文8月24日

Everything Goldman Sachs Taught Me About AI (In 10 minutes)

Nate Herk

  • 驗證優於相信:看起來完整的AI輸出不等於正確答案,需在提示中要求模型重新檢查數字、引用來源,並對無把握的部分標記。
  • 區分AI與自動化:確定步驟且答案已知的任務用傳統自動化更便宜快速;只在需要判斷力、靈活性或處理複雜資訊時才用AI,兩者結合效果最佳。
  • 以問題驅動選型:先寫清楚「要解決的問題是什麼、成功的樣子是什麼」,再決定用什麼工具,許多失敗項目是從技術而非問題出發。
Mu: a self-hosted personal agent where the interface is an email address you can write to
AI 技術英文8月23日

Mu: a self-hosted personal agent where the interface is an email address you can write to

GitHub Awesome

  • Mu 是自主代理人系統,具有實際網址與獨立伺服器,用戶可透過多種方式與其互動——網頁應用、電子郵件或程式化介面。
  • 架構完整覆蓋日常工作流程的多個層面,整合郵件收發(SMTP/IMAP)、檔案管理、行事曆、新聞聚合、市場數據與搜尋功能於一個 Go 伺服器內。
  • 支援自帶模型與多種通訊協定,用戶可選擇不同的 AI 模型,並透過 MCP、HTTP API 或命令列工具整合到其他系統。