Agent测试框架Harbor指南

VIPAgent测试框架Harbor指南
Harbor是一个AI Agent单元测试框架,用于自动化测试AI代理在容器环境中的任务执行能力。它支持18+种AI代理,通过沙箱隔离和自动验证机制评估任务完成情况。任务必须具有可编程验证的输出结果,适合代码、数据、系统等可量化任务,不适合创意写作等主观任务。Harbor采用CLI操作方式,核心架构包含Job管理、Trial执行和验证器三个层级,执行流程包括环境启动、Agent执行和结果验证。任务目录包含指令文件、配置文件、Docker环境定义和测试脚本等必需组件,通过测试脚本自动判断任务完成质量。
开通可读全文 ·1.4k 人阅读
最低0.47元/天 解锁文章

Harbor 框架指南

一、Harbor 是什么?

Harbor 是一个 AI Agent 单元测试框架。

通俗理解

想象你要测试一个 AI 编程助手的能力:

传统方式:
你给 AI 出题 → AI 写代码 → 你人工检查代码对不对

Harbor 方式:
你定义任务 → Harbor 自动启动容器 → AI 在容器里执行 → 自动测试验证 → 输出分数

Harbor 就像是给 AI Agent 用的 JUnit/pytest,只不过:

  • 传统测试:测试代码函数
  • Harbor 测试:测试 AI Agent 的行为结果

前提条件:什么任务适合用 Harbor?

核心要求:任务必须有可编程验证的输出结果。

✅ 适合 Harbor 的任务:
├── 代码任务:修复 bug、实现功能、代码重构
├── 数据任务:数据处理、格式转换、数据分析
├── 系统任务:配置服务器、部署应用、编写脚本
├── 安全任务:修复漏洞、渗透测试
└── 科学计算:模型训练、数据分析、仿真模拟

❌ 不适合 Harbor 的任务:
├── 创意写作:写文章、写诗、写故事
├── 主观评价:设计评审、代码风格偏好
├── 开放问答:提供建议、头脑风暴
└── 模糊目标:"优化代码"、"改进体验"(没有明确标准)

为什么? Harbor 的验证机制是执行测试脚本并检查输出文件。如果任务的"正确答案"是主观的或无法编程判断,就无法编写 test.sh。

核心特点

特点 说明
沙箱隔离 每个 Task 在独立 Docker 容器中运行
自动验证 通过测试脚本自动判断任务是否完成
多 Agent 支持 支持 Claude Code、OpenHands、GPT 等 18+ Agent
参考解答 Oracle 直接执行参考脚本,验证任务可解性

快速开始:

# 安装
uv tool install harbor

# 创建任务
harbor tasks init my-task

# 验证任务
harbor run --path ./my-task --agent oracle

二、核心架构与运行原理

架构图

┌─────────────────────────────────────────────────────────────┐
│                        Harbor 架构                          │
├─────────────────────────────────────────────────────────────┤
│                                                             │
│  ┌─────────────┐                                            │
│  │  CLI 命令   │  harbor run --path ./task --agent claude  │
│  └──────┬──────┘                                            │
│         │                                                   │
│         ▼                                                   │
│  ┌─────────────┐                                            │
│  │    Job      │  管理多个 Trial,汇总结果                   │
│  └──────┬──────┘                                            │
│         │                                                   │
│         ▼                                                   │
│  ┌─────────────┐                                            │
│  │   Trial     │  单次评估:环境启动 → Agent执行 → 验证打分  │
│  └──┬──┬──┬───┘                                            │
│     │  │  │                                                 │
│     ▼  ▼  ▼                                                 │
│  ┌────┐┌────┐┌────┐                                        │
│  │环境││Agent││验证│                                        │
│  │    ││    ││器  │                                        │
│  └────┘└────┘└────┘                                        │
│                                                             │
└─────────────────────────────────────────────────────────────┘

执行流程

┌──────────────────────────────────────────────────────────────┐
│                    完整执行流程                               │
├──────────────────────────────────────────────────────────────┤
│                                                              │
│  1. 加载 Task                                                │
│     ├── task.toml    → 解析配置(超时、资源、环境变量)        │
│     ├── instruction.md → 读取指令内容                         │
│     └── environment/ → 读取 Dockerfile                        │
│                                                              │
│  2. 启动环境 (Docker)                                        │
│     └── docker build + docker up                              │
│                                                              │
│  3. 安装 Agent                                               │
│     └── Agent 安装需要的工具(如 claude-code CLI)            │
│                                                              │
│  4. 执行 Agent                                               │
│     └── instruction.md → 传给 Agent 作为任务指令              │
│                                                              │
│  5. 验证结果 (Verifier)                                      │
│     ├── tests/test.sh → 上传到容器 /tests/                   │
│     └── 执行测试 → 输出到 /logs/verifier/reward.txt          │
│                                                              │
│  6. 清理环境                                                 │
│     └── docker down --volumes                                │
│                                                              │
└──────────────────────────────────────────────────────────────┘

VIP 一文读懂Harbor以及部署实践攻略 ❤️ 摘要:Harbor 是一个企业级的云原生容器镜像仓库,由 VMware 主导开发并贡献给 Cloud Native Computing Foundation (CNCF)。它通过为 Docker 镜像提供安全、高效的管理能力,帮助企业简化容器应用程序的交付流程。相比于传统的 Docker Registry,Harbor 提供了更多的企业级特性,如容器镜像仓库之间的镜像复制、用户管理、访问控制、漏洞扫描和镜像签名等功能。 开通可读全文·2.9w 阅读·71 点赞·119 收藏 阅读全文

相关推荐

Harbor Framework

Harbor Framework 是开源智能体(Agent)与大语言模型(LLM)评估、调优框架,主要面向代码智能体、容器化仿真场景,支持批量并行实验、基准测试、强化学习轨迹数据生成。

qq_45029110的博客 500

Harbor框架:容器化AI代理评估与优化实践指南

在AI代理与模型评估领域,容器化技术正成为确保测试环境一致性与安全性的关键技术。通过Docker容器封装执行环境,评估框架能够实现极致的环境隔离与可复现性,有效解决传统本地测试中因系统状态差异导致的结果不一致问题。这一技术原理不仅保障了评估过程的安全性,防止危险代码影响宿主机,还大幅提升了评估任务的可移植性与部署效率。其技术价值在于为AI代理的功能性验证提供了标准化、自动化的解决方案,特别适用于需要批量测试不同模型、提示词组合的基准测试场景。在实际应用中,此类框架通过预置任务、数据集与验证器的三位一体评估体

weixin_31569671的博客 727

Oracle21C Windows安装全攻略:从下载到配置环境变量,避开ORA-12514的坑

本文详细介绍了Oracle21C在Windows系统上的安装全流程,包括环境准备、安装包验证、分步安装指南、数据库实例创建与配置、环境变量精准配置等关键步骤,特别针对常见的ORA-12514错误提供了解决方案,帮助用户顺利完成安装并避免常见问题。

ooo22的博客 415

从Datasheet到可用的Verilog模块:手把手教你为N25Q128 SPI Flash写状态机驱动

本文详细介绍了如何从Datasheet到实现可用的Verilog模块,手把手教你为N25Q128 SPI Flash编写状态机驱动。文章涵盖SPI Flash的核心工作机制、数据手册解析方法、Verilog状态机设计实践以及调试与性能优化技巧,特别适合FPGA开发者和硬件设计工程师参考。

weixin_30596023的博客 176

STM32使用LORA模块通信

目录 一、模块使用方法 1、模块简介 2、硬件及功能 3、传输方式 二、模块上手 1、连接 2、编写代码 usart3.h usart3.c lora.h lora.c 一、模块使用方法 本文以正点原子ATK-LORA-01模块为例进行介绍。 1、模块简介 ATK-LORA-01-V3.0(V3.0是版本号,下面均以ATK-LORA-01表示该产品)是ALIENTEK推出的一款体积小、微功率、低功耗、高性能远距离LORA无线串口模块。模块设计是采用高效的IS...

qq_54706971的博客 3万+

Orcad 17.2导出PDF原理图终极指南:从Ghostscript安装到带属性书签配置

本文是Orcad 17.2导出高质量PDF原理图的终极指南。针对导出过程中常见的Ghostscript安装报错、软件卡死及版本兼容性问题,提供了详细的解决方案。重点推荐使用Ghostscript 9.53.3版本以确保最佳兼容性,并深入讲解了从安装配置、内存优化到高级书签属性设置的完整流程,帮助硬件工程师稳定、高效地生成带完整器件属性和导航书签的PDF文档。

weixin_29281915的博客 397

Android图形系统(三)系统篇:渲染/合成的底层原理浅析

众所周知,渲染工作是由GPU负责,那么在聊GPU之前首先得知道什么是“渲染”?我们来举个例子感受一下在系统中申请一块10*101、把图层背景这玩意染成绿的2、从左上(0,0)到右下(10,10)画一条宽度为1颜色为红色的直线3、以坐标点(5,5)为中心,画一个半径为3的实心圆,颜色要蓝色好了,接下来操作系统会把这些“绘图指令”同步给GPU去执行渲染任务图片来源:自己画的GPU完成渲染工作后,我们将会得到一个大小为10*10二维数组,数组中的每个元素都保存着坐标点的颜色信息、深度信息。

1358

Python爬虫实战:研究Pandas,构建车质网各车型数据采集和分析系统

研究结果表明,通过网络爬虫技术可以有效地获取公开的汽车投诉数据,这些数据经过适当的清洗和处理后,可以揭示出丰富的汽车质量信息。)作为国内专业的汽车质量投诉受理平台,自 2010 年成立以来,已累计接收消费者投诉信息超过 200 万条,这些数据包含了车型、投诉时间、投诉问题、处理状态等多维度信息,具有极高的分析价值。:通过对车质网数据的分析,能够挖掘出有价值的汽车质量信息,为消费者购车提供参考,为汽车厂商改进产品质量和服务提供依据,同时也能为相关监管部门提供数据支持。

ylfhpy的博客 938

OpenMM | PDBFixer 用于蛋白质预处理

PDBFixer 用于蛋白质预处理

DrugOne 3006

TBOX电源方案的详细讲解与分析

输入保护电路是确保车载电子系统稳定性的关键。通过合理选择TVS二极管、保险丝和浪涌抑制器等元器件,能够有效防止来自电源系统的瞬态过电压、浪涌和过流问题,保护后续电路免受损害。针对不同的电源环境和应用场景,可以通过提升功率、优化热管理以及选择高效元器件来进一步提高系统的保护能力和可靠性。

weixin_43199439的博客 1075

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

上一篇: GitHub AI Agent 开源生态概览
下一篇: 如何利用 AI CLI 工具开发一个 AI Agent 项目
一叶萩Charles
博客等级 码龄9年 268粉丝 42原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一叶萩Charles

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值