mcpField
H
harbor-cli

harbor-cli

github.com/harbor-framework测试与质量1459 次安装31 周前更新
代码仓库

关于 harbor-cli

Harbor CLI 用于管理基准评测流程,涵盖任务与数据集准备、运行 Agent 及查看试验结果。它还支持恢复作业、分析失败、生成适配器框架和导出轨迹。

主要功能

  1. 01运行并恢复评测作业
  2. 02创建并评估任务和适配器
  3. 03列出和下载数据集
  4. 04在 Web UI 中查看结果
  5. 05总结失败并调试试验
  6. 06以 ATIF 格式导出轨迹

适用场景

  1. 01在本地任务或数据集上评测 Agent
  2. 02任务开发时调试单次试验
  3. 03检查作业中的失败情况
  4. 04准备基准适配器和任务

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/harbor-framework/skills --skill harbor-cli

安装后在 Claude Code 中输入/harbor-cli确认已加载。

附带文件references/flags.md

详细介绍

Harbor CLI 参考

Harbor CLI 用于管理完整的评测生命周期:创建任务、运行 Agent、查看结果。使用 uv tool install harbor 安装。全局选项:--version / -v。

有关每条命令的完整标志表(包括类型和默认值),请阅读 references/flags.md。

快速参考

命令说明
harbor run运行评测(harbor jobs start 的别名)
harbor jobs start启动评测作业
harbor jobs resume恢复中断的作业
harbor jobs summarize为作业生成 AI 故障摘要
harbor trials start运行单次试验(用于调试)
harbor trials summarize为单次试验生成 AI 摘要
harbor datasets list列出可用数据集
harbor datasets download下载数据集
harbor adapters init搭建新的基准测试适配器
harbor adapters review对适配器进行结构检查和 AI 审查
harbor tasks init搭建新任务
harbor tasks check对任务进行 AI 质量评估
harbor tasks start-env以交互方式启动任务环境
harbor tasks debug分析任务中失败的试验
harbor tasks migrate将 Terminal-Bench 任务转换为 Harbor 任务
harbor view在网页 UI 中浏览作业/试验结果
harbor sweeps run连续运行多轮评测
harbor traces export以 ATIF 格式导出轨迹数据
harbor cache clean清理 Docker 镜像和缓存目录
harbor admin管理命令(隐藏)

harbor run / harbor jobs start

主要命令。harbor run 是 harbor jobs start 的别名。

默认值: Agent = oracle,n-concurrent = 1,环境 = docker,输出目录 = ./jobs。

基本标志:

标志简写说明
--path-p任务目录的本地路径
--dataset-d注册表中的数据集(例如,[email protected])
--config-c作业配置 YAML/JSON 文件
--agent-aAgent 名称(默认值:oracle)。可重复使用
--model-m模型标识符。可重复使用
--n-concurrent-n并发试验数(默认值:1)
--env-e环境后端(默认值:docker)
--jobs-dir-o输出目录(默认值:./jobs)
--agent-env--ae向 Agent 传递环境变量:KEY=VALUE。可重复使用
--agent-kwarg--akAgent 参数:key=value。可重复使用
--task-name-t按 glob 模式包含任务。可重复使用
--exclude-task-name-x按 glob 排除任务。可重复使用
--n-tasks-l要运行的最大任务数
--quiet-q不显示试验进度
--debug启用调试日志
--dry-run打印配置并退出
--disable-verification跳过测试
--no-cache跳过 Docker 构建缓存
--artifact试验结束后从环境下载路径。可重复使用
--timeout-multiplier缩放所有超时时间(默认值:1.0)

有关环境参数(--ek)、环境环境变量(--ee)、验证器参数(--vk)、编排器参数(--ok)、Agent 镜像、重试配置、轨迹导出以及各阶段超时倍数的其他标志,请参阅 references/flags.md。

示例
# Run local task with oracle (validates solution + tests)
harbor run -p ./my-task

# Run with a real agent
harbor run -p ./my-task -a claude-code -m anthropic/claude-sonnet-4-1

# Dataset evaluation with concurrency
harbor run -d [email protected] -a claude-code -m anthropic/claude-sonnet-4-1 -n 8

# Cloud environment
harbor run -d my-dataset -a claude-code -m anthropic/claude-sonnet-4-1 -e daytona

# From config file
harbor run -c eval-config.yaml

# Pass API key to agent
harbor run -p ./my-task -a claude-code -m anthropic/claude-sonnet-4-1 \
  --ae ANTHROPIC_API_KEY=$ANTHROPIC_API_KEY

# Run subset of tasks
harbor run -d [email protected] -a claude-code -m anthropic/claude-sonnet-4-1 \
  -t "bash-*" -l 10

# Dry run
harbor run -d [email protected] -a claude-code -m anthropic/claude-sonnet-4-1 --dry-run

harbor jobs resume

恢复中断或未完成的作业。

harbor jobs resume -p ./jobs/my-job-2025-01-15
harbor jobs resume -p ./jobs/my-job -f AgentTimeoutError
标志简写说明
--job-path-p包含 config.json 的作业目录路径(必填)
--filter-error-type-f恢复前移除与此错误类型匹配的试验。可重复使用。默认值:CancelledError

harbor jobs summarize

为作业中的试验生成 AI 驱动的失败摘要。

harbor jobs summarize ./jobs/my-job
harbor jobs summarize ./jobs/my-job -m sonnet --all --overwrite
标志简写说明
job_path作业目录或其父目录的路径(位置参数)
--model-m模型:haiku、sonnet、opus(默认:haiku)
--n-concurrent-n最大并发查询数(默认:5)
--all / --failed分析全部试验或仅分析失败的试验(默认:--failed)
--overwrite覆盖现有的 summary.md 文件

harbor trials start

运行单个试验。适用于调试和任务开发。

**与 harbor jobs start 的主要区别:**环境标志为 --environment-type(而非 --env),输出写入 --trials-dir(默认:./trials)。

标志简写说明
--path-p本地任务目录的路径
--config-c试验配置 YAML/JSON
--agent-aAgent 名称(默认:oracle)
--model-mAgent 使用的模型
--environment-type-e环境类型(默认:docker)
--trials-dir输出目录(默认:./trials)
--agent-env--aeAgent 的环境变量:KEY=VALUE。可重复使用
--agent-kwarg--akAgent 参数:key=value。可重复使用
--no-cleanup试验结束后保留环境
--no-verify跳过测试运行

完整标志列表(任务参数、Git 选项等)见 references/flags.md。

# Test with oracle (validates solution + tests)
harbor trials start -p ./my-task

# Test with real agent
harbor trials start -p ./my-task -a claude-code -m anthropic/claude-sonnet-4-1

# Keep container for inspection
harbor trials start -p ./my-task -a claude-code -m anthropic/claude-sonnet-4-1 --no-cleanup

oracle Agent 会在环境中运行 solution/solve.sh,随后验证器运行 tests/test.sh。如果 oracle 未获得 1.0 的奖励,则说明你的测试或解决方案存在问题。

harbor trials summarize

harbor trials summarize ./trials/my-trial
harbor trials summarize ./trials/my-trial -m sonnet --overwrite
标志简写说明
trial_path试验目录的路径(位置参数)
--model-m模型:haiku、sonnet、opus(默认:haiku)
--overwrite覆盖现有的 summary.md

harbor datasets

harbor datasets list
harbor datasets list
harbor datasets list --registry-url https://custom-registry.example.com
harbor datasets list --registry-path ./local-registry.json

--registry-url 和 --registry-path 标志不能同时使用。默认使用 Harbor 的公共注册表。

harbor datasets download
harbor datasets download [email protected]
harbor datasets download [email protected] -o ./my-tasks --overwrite
标志简写说明
DATASET名称或 name@version(位置参数)
--output-dir-o下载目录(默认:~/.cache/harbor/tasks)
--overwrite即使已有缓存也重新下载

harbor adapters

harbor adapters init
harbor adapters init my-benchmark

交互式向导会提示输入基准名称、适配器 ID、类名、描述、源 URL 和许可证。它会使用模板文件创建适配器目录。

harbor adapters review
harbor adapters review -p adapters/my-benchmark
harbor adapters review -p adapters/my-benchmark --skip-ai -o report.md

harbor tasks

harbor tasks init
harbor tasks init my-task
harbor tasks init my-task -p ./custom-tasks
标志简写说明
name任务名称(位置参数)
--tasks-dir-p输出目录(默认:.)
--no-pytest在 test.sh 中跳过 pytest
--no-solution跳过 solution 目录
--include-canary-strings添加反作弊金丝雀字符串
--include-standard-metadata在 task.toml 中添加完整元数据模板
harbor tasks check

基于评分标准进行 AI 驱动的质量评估。

harbor tasks check ./my-task
harbor tasks check ./my-task -m opus -o results.json
harbor tasks check ./my-task -r custom-rubric.toml
标志简写说明
task任务名称或路径(位置参数)
--model-m模型:sonnet、opus、haiku(默认:sonnet)
--output-path-o将 JSON 结果写入此处
--rubric_path-r自定义评分标准(.toml、.yaml、.yml、.json)
harbor tasks start-env

以交互方式启动任务环境,供手动检查。

harbor tasks start-env -p ./my-task
harbor tasks start-env -p ./my-task -e daytona
harbor tasks start-env -p ./my-task --agent claude-code -m anthropic/claude-sonnet-4-1
标志简写描述
--path-p任务目录路径
--env-e环境类型(默认:docker)
--all-a包含解决方案和测试(默认:true)
--interactive / --non-interactive-i交互式 Shell(默认:true)
--agent要在环境中安装的 Agent
--model-mAgent 使用的模型

完整标志列表见 references/flags.md。

harbor tasks debug

使用 AI 分析任务失败的试验。

harbor tasks debug my-task-id -m sonnet
harbor tasks debug my-task-id --job-id my-job --jobs-dir ./jobs
标志简写描述
task_id任务 ID(位置参数)
--model-m分析所用的模型
--job-id要分析的特定作业
--jobs-dir包含作业的目录
harbor tasks migrate

将 Terminal-Bench 任务转换为 Harbor 格式。

harbor tasks migrate -i ./old-tasks -o ./harbor-tasks
harbor tasks migrate -i ./old-tasks -o ./harbor-tasks --cpus 2 --memory-mb 4096
标志简写描述
--input-iTerminal-Bench 任务目录或其父目录
--output-o输出目录
--cpus覆盖所有任务的 CPU 数量
--memory-mb覆盖内存(MB)
--storage-mb覆盖存储空间(MB)
--gpus覆盖 GPU 数量

harbor view

在 Web UI 中浏览作业/试验结果。

harbor view ./jobs/my-job
harbor view ./jobs --port 9000
harbor view ./jobs --dev
标志简写描述
folder包含轨迹的目录(位置参数)
--port-p端口或端口范围(默认:8080-8089)
--host绑定主机(默认:127.0.0.1)
--dev热重载开发模式
--build强制重新构建查看器
--no-build跳过自动构建

显示作业摘要、各试验的奖励值、Agent 轨迹和测试输出。

harbor sweeps run

连续运行多轮扫描。每轮扫描都会剔除至少有一次成功的任务,将精力集中在其余失败任务上。

harbor sweeps run -c sweep-config.yaml
harbor sweeps run -c sweep-config.yaml --max-sweeps 5 --trials-per-task 3
harbor sweeps run -c sweep-config.yaml --hint "Try grep to find the file first"
标志简写描述
--config-c作业配置文件(YAML/JSON)
--max-sweeps最大扫描轮数(默认:3)
--trials-per-task每轮扫描中每个任务的试验次数(默认:2)
--hint传递给 Agent kwargs 的提示字符串
--hints-file将任务名称映射到提示的 JSON 文件
--push / --no-push将导出的数据集推送到 HF Hub

其他导出标志见 references/flags.md。

harbor traces export

将 ATIF 轨迹导出为训练数据集。

harbor traces export -p ./jobs/my-job
harbor traces export -p ./trials --filter success --push --repo my-org/traces
harbor traces export -p ./jobs/my-job --sharegpt --episodes last
标志简写描述
--path-p试验目录或包含试验的根目录路径
--recursive / --no-recursive递归搜索(默认:递归)
--episodes每个试验导出 all 或 last(默认:all)
--filtersuccess、failure 或 all(默认:all)
--sharegpt / --no-sharegptShareGPT 格式的对话
--push / --no-push推送到 Hugging Face Hub
--repoHF 仓库 ID(org/name)

其他标志(--subagents、--instruction-metadata、--verifier-metadata、--verbose)见 references/flags.md。

harbor cache clean

移除 Harbor Docker 镜像和 ~/.cache/harbor。

harbor cache clean
harbor cache clean --force
harbor cache clean --dry
harbor cache clean --no-docker      # Only clean ~/.cache/harbor
harbor cache clean --no-cache-dir   # Only clean Docker images
标志简写描述
--force-f跳过确认
--dry预览但不删除
--no-docker跳过移除 Docker 镜像
--no-cache-dir跳过移除 ~/.cache/harbor

harbor admin upload-images

构建任务 Docker 镜像并推送到容器注册表。对于预构建镜像工作流,会使用 docker_image 更新 task.toml。此命令不会显示在 harbor --help 中,但功能完整可用。

harbor admin upload-images -r my-registry.io --tag 20260317
harbor admin upload-images -r my-registry.io --dry-run -f "bash-*"

主要标志:--tasks-dir / -t(默认值:tasks)、--registry / -r(必填)、--tag(默认值:今天的 YYYYMMDD)、--dry-run、--filter / -f、--push/--no-push(默认推送)、--delete/--no-delete、--parallel / -n(默认值:1)、--update-config/--no-update-config、--override-config/--no-override-config。完整详情请参阅 references/flags.md。

支持的 Agent

AgentCLI 值备注
Oracleoracle运行 solution/solve.sh。默认 Agent
Nopnop不执行任何操作(基线)
Claude Codeclaude-code需要 ANTHROPIC_API_KEY
Aideraider
Codexcodex
Cline CLIcline-cli模型格式:provider:model-id
Cursor CLIcursor-cli
Gemini CLIgemini-cli需要 GOOGLE_API_KEY 或 GEMINI_API_KEY
Goosegoose模型格式:provider/model_name
Mini SWE-agentmini-swe-agent
SWE-agentswe-agent
OpenCodeopencode
OpenHandsopenhands需要 LLM_API_KEY 和 LLM_MODEL
OpenHands SDKopenhands-sdk
Qwen Coderqwen-coder
TerminusterminusHarbor 内置 Agent
Terminus 1terminus-1
Terminus 2terminus-2

环境后端

后端CLI 值描述
Dockerdocker默认值。本地容器
Daytonadaytona支持 Docker-in-Docker 的云沙盒
E2Be2bE2B 云沙盒
GKEgkeGoogle Kubernetes Engine
Modalmodal支持 GPU 的无服务器环境
RunlooprunloopRunloop 云环境

注意:harbor run 使用 --env / -e。harbor trials start 使用 --environment-type / -e。

常见工作流

创建并测试新任务
harbor tasks init my-task
# Edit: task.toml, instruction.md, Dockerfile, tests/test.sh, solution/solve.sh
harbor tasks check ./my-task
harbor trials start -p ./my-task                    # oracle validates tests
harbor trials start -p ./my-task -a claude-code -m anthropic/claude-sonnet-4-1
harbor view ./trials
运行基准评估
harbor datasets list
harbor datasets download [email protected]
harbor run -d [email protected] -a claude-code -m anthropic/claude-sonnet-4-1 -n 8
harbor view ./jobs
harbor traces export -p ./jobs/my-job --push --repo my-org/traces
调试失败的任务
harbor tasks start-env -p ./my-task         # interactive shell in the container
# Inside: bash /tests/test.sh && bash /solution/solve.sh
harbor tasks debug my-task-id -m sonnet     # AI analysis of failures
harbor trials start -p ./my-task            # re-test with oracle
恢复失败的作业
harbor jobs resume -p ./jobs/my-job-2025-01-15
harbor jobs resume -p ./jobs/my-job -f AgentTimeoutError
harbor jobs summarize ./jobs/my-job

常见问题

API 密钥: 大多数 Agent 需要通过 --ae 传入密钥。Claude Code 需要 ANTHROPIC_API_KEY,OpenHands 需要 LLM_API_KEY,Goose 需要特定提供商的密钥。如果 Agent 立即失败,请检查密钥。

Docker 必须处于运行状态。 Harbor 使用 Docker 创建沙盒环境。大量并发试验可能导致网络资源耗尽并引发故障——运行 harbor cache clean 会有所帮助。

模型名称格式因 Agent 而异。 Claude Code 使用 anthropic/claude-sonnet-4-1,Cline CLI 使用 provider:model-id(例如 openrouter:anthropic/claude-opus-4.5),Goose 使用 provider/model_name。关于模型格式的 ValueError 通常表示格式不适用于该 Agent。

--env 与 --environment-type: harbor run 使用 --env / -e。harbor trials start 使用 --environment-type / -e。两者的短标志相同,长标志不同。

默认 Agent 是 oracle。 忘记指定 -a 会使用 oracle Agent,它只会运行 solve.sh。这适用于任务验证,但不适用于实际评估。

调试时使用 --no-cleanup。 将此标志传给 harbor trials start,可在试验失败后让容器继续运行,以便检查容器。

重试默认会跳过常见错误。 --retry-exclude 的默认值为 AgentTimeoutError、VerifierTimeoutError、RewardFileNotFoundError、RewardFileEmptyError、VerifierOutputParseError。这些错误通常表示任务存在问题,而非暂时性故障。

评论

支持 Markdown