我們如何對深度代理進行基準測試
深度代理的開發因評估困難而頗具挑戰。我們最近改進了評估框架,利用 Harbor 在編碼、對話和檢索三大領域進行端到端評估,並分享了我們的實踐方法。
代理設計之所以困難,很大程度上是因為代理的評估本身就很棘手。在開發深度代理(我們的開源、模型無關的代理框架)時,我們不斷面臨各種決策:如何設計提示、包含哪些工具、加入哪些中間件等。在迭代過程中,我們需要一個穩健的評估集來衡量這些決策的效果。最近,我們改進了評估框架,本文將分享我們對深度代理評估的思考。
我們使用 Harbor 進行端到端評估。Harbor 是一個流行的開源框架,用於運行代理評估,以支持 Terminal Bench(一個領先的編碼基準測試)而聞名。要使用 Harbor,你需要提供三樣東西:代理(我們評估的是深度代理)、數據集(見下文)以及沙箱(我們在本地和 LangSmith Sandboxes 中運行 Harbor 評估)。每個數據集包含多個任務,每個任務由環境(Dockerfile 或 Docker Compose YAML)、指令(Markdown)和評估腳本(test.sh)組成。與簡單的 LLM 評估相比,這裏有兩個主要區別:代理運行的環境非常重要,因此需要作為任務的一部分明確指定;評估代理時使用腳本,因為代理通常會產生文件或修改狀態,僅查看最終響應是不夠的。
目前,我們運行三個基準測試,每個覆蓋一種不同的代理工作類型。深度代理是一個通用框架,因此我們需要在多個不同領域評估其能力。Harbor-Index 包含 82 個任務,從超過 6000 個候選任務中蒸餾而來,涵蓋軟件工程、搜索、數據分析和長期工具使用。τ³-bench 是一個 30 任務的子集,涵蓋多輪對話,用户是模擬的,但評分檢查真實結果。ContextBench 包含 30 個校準任務,每個任務將其完整語料庫包含在沙箱內,代理需要找到並整合答案。這些只是開始,未來我們還會擴展任務集。
我們在實踐中遵循幾個原則:每個任務運行多次以獲得穩健估計;保留一個輕量級基準測試用於快速迭代,其速度約為完整版的 8 倍,成本為 1/6;同時保留一個能力套件,包含快速、確定性的單元測試,針對特定框架行為(如工具選擇、內存或文件操作)。這些基準測試讓我們在迭代時充滿信心。例如,在準備深度代理 0.7 版本時,我們利用這些基準測試來決定是否移除待辦事項中間件以及精簡系統提示。結果證明,這些基準測試幫助我們做出了正確的方向性決策。