面向容器化沙箱环境的 AI 代理与语言模型评估优化框架,支持标准化基准评测、大规模并行执行与 RL 训练数据生成。
核心定位#
Harbor 解决的核心问题是:如何安全、可重复、大规模地对 CLI 型 AI 代理(如 Claude Code、OpenHands、Codex CLI)及底层语言模型进行标准化评测与强化学习优化。Harbor 聚焦于"环境编排 + 代理调度 + 结果收集",本身不包含 LLM 推理或代理逻辑——代理行为由外部 CLI 工具驱动,模型切换通过 --model 参数委托给 litellm 实现。
能力矩阵#
| 主题 | 特性 | 说明 |
|---|---|---|
| 代理评估 | 标准化 CLI 代理评测 | 预集成 Claude Code、OpenHands、Codex CLI 等,通过 --agent 参数指定 |
| 基准注册中心 | 内置数据集浏览与版本管理 | harbor datasets list 可列出 SWE-Bench、Aider Polyglot、Terminal-Bench-2.0 等 |
| 沙箱隔离 | 容器化任务执行环境 | 所有任务在隔离容器中运行,保障安全性与可重复性 |
| 大规模并行 | 多云沙箱后端调度 | 支持 Daytona、Modal、E2B、Runloop、ISLO、TensorLake、GKE,千级并发 |
| RL 优化 | Rollout 数据生成与框架集成 | 可生成 RL 训练轨迹;已集成 SkyRL、GEPA |
| 自定义扩展 | 用户自建基准与环境 | 支持构建、分享自定义评测基准和容器化任务环境 |
| CI/CD 集成 | 持续集成中的代理测试 | 可嵌入 CI 流水线 |
| 奖励建模 | RewardKit 子包 | packages/rewardkit 提供独立奖励建模能力 |
| 可视化 | 前端查看器 | apps/viewer 提供 Web 端结果查看 |
| 技能系统 | 可复用技能定义 | skills/ + skills-lock.json 管理技能声明与版本锁定 |
适用场景#
- 在标准基准(Terminal-Bench-2.0、SWE-Bench、Aider Polyglot 等)上横向对比代理/模型能力
- 企业内部构建专有任务集进行代理回归测试
- 批量生成代理执行轨迹用于 RL 训练数据
- CI/CD 流程中嵌入代理能力自动化测试
- 利用云沙箱实现百级至千级并发的大规模实验
架构要点#
仓库结构(monorepo 风格):
src/harbor/— 核心框架源码,CLI 入口为harbor.cli.main:app(基于 Typer)packages/rewardkit/— 奖励模型子包,独立 Python 包adapters/— 代理适配器实现层,将不同 CLI 代理统一接入框架apps/viewer/— 前端可视化查看应用(TypeScript)skills/+skills-lock.json— 技能定义与锁定文件rfcs/— 设计文档docs/、examples/— 文档与示例
核心依赖:Typer(CLI)、Rich(终端渲染)、Pydantic(数据校验)、litellm(多 LLM 调用)、HuggingFace datasets(数据获取)、Jinja2(模板渲染)、FastAPI + Uvicorn(服务端)、Supabase(后端存储)。构建系统使用 uv_build + uv 包管理器。
执行流程:用户通过 CLI 指定数据集、代理、模型及并发数 → 框架从注册中心拉取任务定义 → 按并发策略调度沙箱环境(本地 Docker 或云后端) → 在隔离容器中启动代理执行任务 → 收集执行轨迹与结果 → 可选送入 RewardKit 评分或导出为 RL rollout 数据。
安装与快速开始#
环境要求:Python ≥ 3.12
# 安装(任选其一)
uv tool install harbor
pip install harbor
# 云后端可选依赖(按需安装)
harbor[e2b] / harbor[daytona] / harbor[modal] / harbor[runloop] / harbor[gke] / harbor[tensorlake] / harbor[islo]
harbor[cloud] # 安装全部云后端
harbor[tinker] # Tinker 生态集成
本地 Docker 运行 Terminal-Bench-2.0:
export ANTHROPIC_API_KEY=<YOUR-KEY>
harbor run --dataset terminal-bench@2.0 \
--agent claude-code \
--model anthropic/claude-opus-4-1 \
--n-concurrent 4
云端并行(Daytona,100 并发):
export ANTHROPIC_API_KEY=<YOUR-KEY>
export DAYTONA_API_KEY=<YOUR-KEY>
harbor run --dataset terminal-bench@2.0 \
--agent claude-code \
--model anthropic/claude-opus-4-1 \
--n-concurrent 100 \
--env daytona
CLI 核心#
- 入口命令:
harbor/hr/hb(三者等价) harbor run --dataset <dataset@version> --agent <agent> --model <model>— 运行评测harbor datasets list— 列出可用基准数据集- 关键参数:
--dataset(数据集@版本)、--agent(被测代理)、--model(litellm 格式模型)、--n-concurrent(并发数)、--env(沙箱后端)
生态关联#
- 上游:由 Terminal-Bench 创建者开发,Terminal-Bench-2.0 为默认内置基准
- 代理集成:Claude Code、OpenHands、Codex CLI
- 云沙箱:Daytona、Modal、E2B、Runloop、ISLO、TensorLake、GKE
- RL 框架:SkyRL、GEPA
- 数据集:SWE-Bench、Aider Polyglot、Terminal-Bench-2.0(通过注册中心浏览)
补充说明#
- 关联论文:README 提及项目来自 Terminal-Bench 创建者,但 Harbor 本身无正式论文链接,Terminal-Bench 论文与 Harbor 的引用关系待确认。
- ISLO 与 Tinker 集成的具体功能未在公开材料中详述。
- 线上注册中心(https://registry.harborframework.com/)正在升级,具体功能与开放程度待确认。
- 后端 FastAPI 的具体端点文档及 RewardKit 详细 API 有待补充。
- 当前版本 0.5.0,采用 Apache-2.0 许可证。