
作者 | Matt Foster
譯者 | 平川
Docker對 Cagent 運行時的定位 是一種 AI 代理確定性測試方法,旨在解決團隊在構建生產級代理系統時面臨的日益嚴重的問題。
隨著 AI 代理系統的日益普及,工程團隊正面臨 測試概率性輸出帶來的挑戰。傳統企業系統基于一個簡單的假設:同樣的輸入產生同樣的輸出。智能代理系統打破了這一假設,為了適應這種變化,如今的生態系統大多采用了評估變異性而非消除變異性的方式。
在過去的兩年里,評估框架應運而生,它們的目標是使智能代理的行為變得可觀察、可測量。諸如 LangSmith、Arize Phoenix、Promptfoo、Ragas 和 OpenAI Evals 等工具可以捕獲執行軌跡,并運用定性或基于大型語言模型的評分機制來評估結果。
這些工具對于監控安全性和性能至關重要,但它們引入了一種不同的測試模型。輸出結果很少是二元的。團隊越來越多地依賴閾值、重試和軟失敗來應對評估器的差異性。舉例來說,關于 AI 代理測試,有 行業報道 指出,傳統的 QA 假設對于 AI 代理來說不成立了,因為輸出是概率性的,結果評估需要更靈活的概率描述框架,而不是嚴格的通過 / 失敗斷言。
與此同時,有些團隊重新挖掘了一種更傳統的測試方法,通過記錄與重放模式實現測試的可重復性和確定性。這種模式借鑒了 vcr.py 等集成測試工具的做法,能夠一次性捕獲真實的 API 交互過程,并在后續測試中確定性地重放。LangChain 已 明確推薦 將該技術應用于大型語言模型測試,他們指出,記錄 HTTP 請求與響應可使 CI 執行速度更快、成本更低且更具可預測性。不過在實踐中,該方案通常來說仍然是被看成一個外部測試環節,而非智能代理執行機制的核心組成部分。
Docker 的 Cagent 就遵循這個范例。從架構上講,Cagent 使用了 proxy-and-cassette 模型。在錄制模式下,它將請求轉發給像 OpenAI 或 Anthropic 這樣的真實提供商,捕獲完整的請求和響應,規范化 ID 等易失性字段,并將交互過程存儲于 YAML 格式的 cassette 文件中。在重放模式下,Cagent 會完全阻止外部調用,將傳入請求與 cassette 文件匹配,并返回記錄的響應。如果智能代理的執行出現偏差,如使用了不同的提示、工具調用或序列,那么運行就一定會失敗。
就成熟度來說,Cagent 仍處于 早期階段。Docker 自己的 GitHub 倉庫對該項目的描述是正在積極開發當中,因此預計后續會有重大的變化,而且迄今為止,大多數公開的示例都來自 Docker 的文檔,而不是大規模生產部署。
Cagent 的目標并不是取代現有的評估框架,但它揭示了 AI 代理測試發展過程中的一個不同方向。雖然如今有許多工具聚焦于執行完成后評估結果,但 Cagent 從一開始就將注意力轉移到了使 AI 代理行為可再現上。隨著團隊嘗試越來越復雜的 AI 代理工作流程,這種區別變得越來越明顯。確定性重放并不判斷代理的輸出是否正確,但它確實使代理的行為變化變得更為顯性化,為測試提供了一個更接近傳統軟件工程的基礎。
https://www.infoq.com/news/2026/01/cagent-testing/
聲明:本文為 InfoQ 翻譯,未經許可禁止轉載。
特別聲明:以上內容(如有圖片或視頻亦包括在內)為自媒體平臺“網易號”用戶上傳并發布,本平臺僅提供信息存儲服務。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.