如何使用 Harbor 在真实任务上测试您的 Agent - Xander Song, Arize AI
원제 · How to Test Your Agents on Real Tasks With Harbor - Xander Song, Arize AI
핵심 요약
利用 Harbor 框架在隔离沙盒中对智能体进行基于真实任务和验证器的自动化评估,能够让人更有信心地进行基于证据的产品迭代。
하이라이트
Harbor 是一个开源框架,支持在隔离的沙盒环境中使用真实数据和自然语言指令对智能体进行评估。
Phoenix 是 Arise 的开源 AI 可观测性平台,能够将 Harbor 的数据集、实验、试验和评估进行无缝映射和可视化追踪。
Open Inference 建立在 OpenTelemetry 之上,定义了 AI 应用程序的语义约定标准,支持渲染专用的智能体轨迹 UI。
系统支持通过 Daytona、Modal 或 E2B 等沙盒提供商进行水平扩展,并能以 200 个并发工作线程快速运行测试套件。
通过在 MCP 服务器中加入只读 SQL 查询工具并调整提示词,智能体处理聚合查询时的工具调用次数显著减少。
Harbor 的验证器默认与智能体的具体实现解耦,将其视为黑盒,完全根据环境中的副作用和输出进行评分。
타임라인
Harbor 框架的核心概念与宏观架构
Harbor 通过提供隔离的沙盒环境和结构化的验证机制,使用户能够在大模型和智能体具备随机性的情况下,保持任务和验证器不变来高效评估智能体的每次改动。通过运行多项试验并计算聚合指标,团队能够获得仅凭感觉发布产品无法获取的信心。此外,通过神谕脚本可以在不花费大量代币的情况下提前验证数据和验证器的正确性。
- Harbor 允许用户通过自然语言指令为智能体定义现实任务,并在沙盒环境中运行。
- 验证器是特定于任务的脚本,用于检查智能体在环境中产生的副作用并输出二元奖励分数。
- 神谕(Oracle)是针对任务的解决方案脚本,可在投入智能体前确保环境配置和验证器正常工作。
- ATIF 轨迹格式允许开发人员深入查看智能体采取的内部步骤,用于调试和日志记录。
任务的具体执行与环境扩展性
以修复失败的数据库迁移为例,指令、包含 DDL 和源代码的 SQL 文件以及测试脚本共同构成了完整的任务环境。由于验证器将代理视为黑盒,因此类似于集成测试,它允许用户在重构代理实现的同时保持任务不变。借助沙盒提供商的水平扩展能力,可以同时并行运行大量独立的 Docker 容器,从而极大地缩短测试套件的整体运行时间。
- 编码智能体等测试对象在运行结束后,系统会挂载沙盒环境中的验证器进行独立评分。
- 验证器与智能体实现完全无关,只关心智能体在环境中留下的副作用和输出。
- 每个任务和试验都在独立的 Docker 容器中隔离运行,高度兼容 Daytona、Modal 等沙盒提供商。
- 系统能够通过 pass at k 等聚合指标快速评估不同智能体在多次试验中的表现。
Phoenix 平台与开放推理标准的集成
Arise 的开源 AI 可观测性平台 Phoenix 与 Harbor 的原语紧密对应,能够记录实验并可视化奖励随时间的变化趋势。通过将 ATIF 轨迹转换为开放推理标准,Phoenix 能够利用 OpenTelemetry 协议摄取追踪信息,进而构建出专门针对大模型和工具调用的自定义 UI 体验,辅助开发人员进行版本控制和指标可视化。
- Phoenix 将 Harbor 的数据集、实验、试验和奖励分别映射到自身的可观测性概念中。
- Open Inference 是建立在 OpenTelemetry 之上的开放语义约定标准,用于定义 AI 应用程序的追踪数据结构。
- Phoenix 提供的专用 UI 能够渲染 ATIF 轨迹,并对任务和数据集进行版本控制。
- 平台提供命令行界面和 MCP 服务器,使主流编码助手能够轻松访问相关数据。
团队的实际应用场景与架构实践
通过将单节点服务器和测试客户端放入 Docker 容器,团队能够针对真实的用户查询(例如从追踪记录中找出产生幻觉的调用)对混合系统进行全面测试。验证器可以直接调用 REST 端点或查询 SQLite 文件来验证预期的副作用。虽然处理分布式系统或海量追踪数据会带来额外的挑战,但这种将支持性基础设施与智能体作为一个整体进行评估的方法,确保了整个工具链的可靠性。
- 团队将单节点服务器架构(类似 Grafana)整个打包进 Docker 容器,并结合 SQLite 文件进行测试。
- 测试对象涵盖了带 CLI 的编码智能体、带 MCP 服务器的编码智能体以及服务端智能体 Pixie。
- 测试环境的搭建赋予了开发者极大的自由度,可将应用程序、API、服务端智能体及技能一并纳入其中。
- 面对分布式系统等更复杂的架构,可以通过模块化接口或 Harbor 运行多个 Docker 镜像来解决测试难题。
通过优化提示词与 SQL 工具提升智能体性能
在实际开发中,智能体面对聚合查询时常因缺乏对应路由而进行大量低效的分页调用。为此,团队通过引入 SQL 工具并修改提示词,成功让智能体减少了 GraphQL 和整体工具的调用次数。结合 Phoenix 的实验对比表格和过滤功能,开发者可以直观地检查每次运行的跟踪记录,确认智能体是否正确发出了 SQL 查询,从而实现基于证据的高效自研迭代。
- 为了解决智能体对聚合查询进行过度分页的问题,团队在 MCP 服务器中新增了只读 SQL 查询工具。
- 通过微调提示词,引导智能体在处理计数或分组等聚合任务时优先使用 SQL 工具而非 GraphQL。
- 借助合成问题数据集和 Oracle 解决方案,团队成功验证了改动后工具调用次数和轮次的下降。
- 获取逼真的数据是整个评估过程中最具挑战性的部分,高质量的数据能够更有效地暴露出实际问题。
설명
Xander Song, an engineer at Arize AI who works on Phoenix, introduces Harbor, an open source framework for evaluating agents on realistic tasks with real data in isolated sandboxes. He explains tasks, Docker environments, verifiers and rewards, trials and jobs, oracles that validate your setup before you spend tokens, and ATIF trajectories. Then he shows how his team runs Harbor at scale on Daytona and with Phoenix to test a prompt change that steered agents toward a new SQL tool, cutting tool calls without hurting correctness. Chapters 00:00 Intro: shipping on evidence, not vibes 01:28 What Harbor is 03:37 Architecture: tasks, environments, verifiers 06:08 Trajectories, jobs and oracles 07:58 Example: fixing a failing migration 10:48 Verifiers as black-box integration tests 14:21 Running at scale in parallel sandboxes 17:04 Harbor with Phoenix 20:37 How the Phoenix team uses Harbor 25:07 Q&A: how Harbor orchestrates runs 29:24 Q&A: complex systems and data size 33:21 Case study: steering agents to a SQL tool 38:34 Demo: datasets and experiments in Phoenix 44:10 Demo: comparing jobs task by task 48:31 Regression tests and skills Xander Song, Arize AI Join us in SF for the second annual AIE CODE summit: https://aie.codes our last flagship summit of 2026. Applications live now!
