KeyFrame內部研究專用

Secure your Agent Harness with Code Sandboxing

MasterDotDev·7月7日週二·25 min英文

三句話摘要

設計 AI 代理程式在隔離沙箱中安全地撰寫和執行程式碼,以加速複雜任務的完成。 讓 AI 代理撰寫和執行沙箱隔離的程式碼,能大幅減少工具呼叫次數、加速任務完成、且避免推理時的算術錯誤。 工具呼叫 vs. 程式碼執行的效率差異:連續使用 12 個不同工具需要 12 個回合、12 次令牌消耗,代理改為撰寫一段程式碼將這些工具串聯,能同時獲得所有答案,減少等待時間和令牌使用。

重點整理

重點
  • 1

    工具呼叫 vs. 程式碼執行的效率差異:連續使用 12 個不同工具需要 12 個回合、12 次令牌消耗,代理改為撰寫一段程式碼將這些工具串聯,能同時獲得所有答案,減少等待時間和令牌使用。

  • 2

    代理程式碼執行的安全隔離:不能直接在生產環境執行代理生成的程式碼,必須建立隔離的沙箱環境(如 Node VM)來防止程式碼逃逸或對系統造成傷害,確保在生產環境前的離線測試也要遵守此原則。

  • 3

    發揮語言模型的最佳能力:語言模型在程式碼撰寫上表現優異,但在算術和數字推理上容易產生幻覺。透過讓代理撰寫確定性程式碼(而非純推理)來完成計算工作,能同時利用其強項並避免弱點。

  • 4

    沙箱 API 設計:定義代理在沙箱中能存取的函數清單(如 `getCharges`、`searchKnowledgeBase`),透過白名單機制控制代理的權限,確保其只能呼叫預先批准的操作。

實用技巧與重點

乾貨
  • 技術架構
  • 使用 Node VM 的 `VM.createContext()` 建立隔離環境
  • 超時預設值:2000 毫秒
  • 使用 Promise.race() 實現超時機制
  • 以 IIFE(立即呼叫函式運算式)搭配 async 包裝用戶程式碼
  • 沙箱 API 函數
  • `getCharges(customerId: string)`:查詢客戶費用記錄
  • `searchKnowledgeBase(query: string)`:搜尋知識庫
  • `console.log()`:輸出日誌用於除錯
  • 工具設計
  • 工具名稱:`run_code`
  • 輸入:JavaScript 程式碼(字串)
  • 輸出:`{ok: boolean, result?: any, error?: string, logs: string[]}`
  • 允許的操作:await 工具呼叫、console.log、return 任何 JSON 值
  • 具體案例
  • 任務:找出重複費用並計算應退款金額
  • 代理生成的程式碼:呼叫 `getCharges()`、搜尋退款政策、執行數學運算
  • 發現結果:客戶被重複收費兩次各 $49,應退款 $49

結論

結論

讓 AI 代理撰寫和執行沙箱隔離的程式碼,能大幅減少工具呼叫次數、加速任務完成、且避免推理時的算術錯誤。

完整解析

詳細

當我們設計 AI 代理系統時,常面臨一個核心挑戰:代理在需要執行危險操作(如執行 bash 命令、SQL 查詢或複雜算術)時,該如何安全地處理?傳統做法是提供一系列工具,讓代理逐一呼叫;但這種方法存在兩個問題:每次工具呼叫都需要等待回應,導致多個往返延遲;且語言模型在純推理算術時容易產生幻覺。

講者提出的解決方案是「程式碼模式」(Code Mode):與其讓代理連續呼叫 12 個工具,不如讓它撰寫一段 JavaScript 程式碼,在該程式碼中使用這些工具並進行計算,然後一次性執行並返回結果。這個方法的優勢在於,它同時利用了語言模型的兩項能力——編寫程式碼的能力(非常強)和程式碼執行的決定性(完全準確)。

實作上,使用 Node VM 函式庫在隔離沙箱中執行程式碼。首先透過 `VM.createContext()` 建立一個受限的執行環境,定義該環境可以存取的 API(如 `getCharges` 和 `searchKnowledgeBase`),並設置安全防護如超時機制(預設 2 秒)和日誌記錄。代理生成的程式碼被包裝在一個 async IIFE(立即呼叫的非同步函式)中,讓代理能使用 top-level await,無須顯式定義外層函式。

一個具體例子是退款處理流程:使用者要求代理「找出重複收費並計算退款金額」。代理不是呼叫「搜尋所有費用」工具、再呼叫「查詢退款政策」工具、最後嘗試自己做數學,而是直接撰寫程式碼呼叫 `getCharges()` 取得費用清單、呼叫 `searchKnowledgeBase()` 查詢退款政策、再用程式碼邏輯檢測重複項(同一客戶、同一天、同一金額)並計算答案。結果是:一次程式碼執行取代了多次工具往返,速度更快且完全準確——發現客戶被收費兩次各 $49,應退款 $49。

這個方法被譽為「前沿技術」,因為大多數生產系統尚未廣泛採用,但採用者通常是專門從事 AI 系統開發的專業團隊。關鍵是要認識到語言模型在寫程式碼上遠優於在計算上的表現,因此應當充分發揮這項優勢。

關鍵時刻

Pipeline v2

帶時間戳的重點,會在逐字稿層級分析上線後產生。目前請先透過原始影片觀看。

事實查核

Pipeline v2

說法查證是下一次管線升級的一部分。KeyFrame 只會顯示它真正能驗證的內容。

更多「AI 技術」的內容

🔬“We have foundation models for language, not for physics” — Anima Anandkumar, Bren Professor of Computing
編輯精選
83 min
AI 技術英文PODCAST8月26日

🔬“We have foundation models for language, not for physics” — Anima Anandkumar, Bren Professor of Computing

Latent Space

  • 加速傳統物理模擬的典範轉移:氣象科學家原本認為 AI 無法匹敵數十年的物理建模工作,但傅里葉神經算子不僅達到同等精度,還快了一萬多倍。原本需要超級計算機的計算現在用消費級 GPU 就能完成,這改變了整個領域的思維方式。
  • 傅里葉域的非局部現象捕捉:傅里葉域能有效表示非局部現象(如大氣河流跨越千里的影響),且計算複雜度為準線性,遠優於完全連接的全局模型。這特別適合流體動力學、量子化學等自然現象中普遍存在的非局部相互作用。
  • 多解析度連續函數表示:神經算子將輸入輸出視為連續函數而非固定維度向量,可在推論時以任意解析度查詢,並能在更高解析度上疊加物理約束或額外數據,克服了固定解析度神經網路的限制。
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 經過公開駭客技術訓練,使不同使用者產生相似的攻擊模式。然而,勒索軟體集團、國家級行為者的受害者選擇、贖金要求方式或目標模式等高階特徵仍具有識別價值。例如,鎖定加密交易所的攻擊幾乎只能指向朝鮮。
Why the Next AI Breakthrough May Come from Physics with Max Welling - #774
55 min
AI 技術英文PODCAST8月25日

Why the Next AI Breakthrough May Come from Physics with Max Welling - #774

TWIML AI

  • 多層篩選的材料設計流程:先搜尋文獻資料庫找現有材料,若無合適的就用生成模型產生數十萬個候選分子,用機器學習力場進行分子動力學模擬篩選,再進行實驗驗證。這套流程相比傳統量子力學計算能加速效率數個數量級。
  • 生成AI與熱力學的數學等價性:資訊論是兩個領域的共同基礎,生成模型的擴散過程與非平衡統計力學描述資訊損失的過程在數學上完全對應,許多開發出來的方法工具在兩領域都有精確對應的形式。
  • 基礎模型的遷移學習策略:先在廣泛材料資料集上訓練基礎力場表示,再針對特定材料類別進行蒸餾微調,既能保持計算效率也能獲得專一性。