Harbor 框架入门指南:安装、配置与使用 `harbor run` 评估 Agent 与语言模型

发布时间:2026/10/12 7:18:05
Harbor 框架入门指南:安装、配置与使用 `harbor run` 评估 Agent 与语言模型 【免费下载链接】harborFramework for evaluating and improving agents项目地址https://gitcode.com/gh_mirrors/harbor17/harbor点击查看免费下载Harbor 是一个面向 Agent 与语言模型评估和优化的开源框架由 Terminal-Bench 团队开发。本文将基于 Harbor 官方 README 与其仓库源码系统讲解如何安装 Harbor、如何用一条harbor run命令在本地 Docker 或云端沙箱中评估 Claude Code、OpenHands、Codex CLI 等任意 Agent以及如何通过数据集、环境与任务配置控制整个评估流程。读完本文你将掌握 Harbor 的核心命令、参数体系、配置模型与底层执行原理能够独立发起自己的基准测试实验。Harbor 是什么核心定位与四大使用场景Harbor 的定位是一个评估与优化 Agent 和语言模型的框架详见 README.md 开篇。它不是单一的基准测试集而是一套完整的评测编排基础设施官方将其能力概括为四点评估任意 Agent像 Claude Code、OpenHands、Codex CLI 这类终端型 Agent都可以被 Harbor 作为被测对象跑进容器里执行任务并打分构建和分享自己的基准测试与环境通过harbor task、harbor dataset等命令把任务instruction 环境 测试组织成数据集再发布到 Harbor 注册表供社区复用在成千上万个环境中并行做实验通过 Daytona、Modal、LangSmith、Blaxel、Novita Sandbox、Tensorlake、Runta、Sail 等 Provider 批量拉起沙箱把并发规模从本地几台机器扩展到云端上百个环境为 RL 优化生成 rollout评估过程会产出结构化的轨迹trajectory与奖励信号这些数据可以直接用于强化学习的 rollout 收集。从源码结构看这一设计贯穿了整个仓库src/harbor/agents/负责 Agent 抽象与内置实现src/harbor/environments/负责环境抽象与 30 余种 Provider 适配src/harbor/job.py与src/harbor/trial/负责把数据集 × Agent × 环境翻译成可调度的试验队列。CLI 入口定义在 src/harbor/cli/main.py其中run命令是job start的别名也是整个框架最常用的入口。安装 HarborHarbor 是标准的 Python 包官方 README 提供两种安装方式# 方式一使用 uv uv tool install harbor # 方式二使用 pip pip install harbor安装完成后可以验证版本harbor --version云端 Provider 的额外依赖Harbor 默认的评估环境是本地 Docker开箱即用。但如果你要使用 Daytona、Modal、E2B 等云端沙箱需要额外安装对应的依赖。从 环境工厂源码 可以看到每个内置环境类型都声明了自己的pip_extra例如daytona、modal、e2b、tensorlake、runta、sail等。当对应模块缺失时Harbor 会给出明确提示pip install harbor[daytona] # 只装某个 Provider 的依赖 pip install harbor[cloud] # 或者一次性安装全部云环境依赖注意这些 Provider 对应的 SDK 采用惰性导入即只有实际用到该环境类型时才会加载因此本地 Docker 评估不需要安装任何云 SDK。快速上手运行 Terminal-Bench-2.0Harbor 是 Terminal-Bench-2.0 的官方评测 harness。README 给出了最经典的一行命令export ANTHROPIC_API_KEYYOUR-KEY harbor run --dataset terminal-bench2.0 \ --agent claude-code \ --model anthropic/claude-opus-5-5 \ --n-concurrent 4这条命令的含义是--dataset terminal-bench2.0从 Harbor 注册表解析数据集及其版本--agent claude-code指定被测 Agent 为 Claude Code--model anthropic/claude-opus-5-5指定该 Agent 驱动的模型provider/model格式--n-concurrent 4本地同时跑 4 个试验。默认情况下该命令使用本地 Docker 逐条拉起任务环境。关于ANTHROPIC_API_KEYClaude Code 的模型连接定义在 src/harbor/agents/installed/claude_code.py其MODEL_CONNECTION声明了default_provideranthropicAPI Key 依次从ANTHROPIC_API_KEY、ANTHROPIC_AUTH_TOKEN读取Base URL 可通过ANTHROPIC_BASE_URL覆盖。从 BaseAgent 源码 可以看到所有内置 Agent 都有类似的能力声明AgentCapabilities与模型连接规范框架据此在评估前做 preflight 校验。在云 Provider 上并行运行要把同样的评估搬到云端例如 Daytona只需加一个--env标志并准备好对应 Provider 的 Keyexport ANTHROPIC_API_KEYYOUR-KEY export DAYTONA_API_KEYYOUR-KEY harbor run --dataset terminal-bench2.0 \ --agent claude-code \ --model anthropic/claude-opus-5-5 \ --n-concurrent 100 \ --env daytona把--n-concurrent从 4 提到 100就是成千上万个环境并行实验的入口。--env接受 EnvironmentType 枚举 中的任意值目前包括docker、podman、daytona、e2b、modal、runloop、langsmith、ec2、gke、novita、tensorlake、cwsandbox、blaxel、opensandbox、beam、skypilot、hf-sandbox、hyperbrowser、vercel、runta、prime、mosaic、smol、sail等。它同时支持传入自定义环境类的导入路径module.path:ClassName由 resolve_environment_spec 通过是否包含:来区分。探索可用 Agent 与数据集README 提供了两条探索命令# 查看所有支持的 Agent 与运行选项 harbor run --help # 查看所有支持的三方基准测试如 SWE-Bench、Aider Polyglot 等 harbor datasets list内置 Agent 全家桶从 AgentFactory 源码 可以看出Harbor 内置了 50 余种 Agent 注册项包括oracle、nop、acp、claude-code、codex、aider、openhands、openhands-sdk、gemini-cli、qwen-coder、kimi-code、cursor-cli、copilot-cli、goose、opencode、devin、computer-1等完整列表见 AgentName 枚举。这些名称可直接作为--agent的值。--agent还支持两种扩展形式见 jobs.py 中的_AGENT_METAVAR定义自定义导入路径module.path:ClassName用于跑你自己实现的 Agent 类ACP 注册表简写acp:opencode1.3.9从 ACP 注册表拉取指定版本的 Agent。如果想查看某个 Agent 支持的参数 schema可以用harbor agent schema name每个 Agent 的options_model定义了可用的kwargs。以 Claude Code 为例ClaudeCodeOptions 支持max_turns、reasoning_effortlow/medium/high/xhigh/max、thinking_display、max_budget_usd、fallback_model、allowed_tools、disallowed_tools等选项这些都可以通过--ak keyvalue传入例如--ak reasoning_efforthigh。数据集列表harbor datasets list默认会输出 Harbor 注册表的查看入口加--legacy可显示传统的表格列表也支持--registry-path、--registry-url、--repo指定自定义注册表源码见 datasets.py。harbor run命令全面解析harbor run的完整参数定义在 src/harbor/cli/jobs.py 的build_job_config中全部参数最终落成一个JobConfig模型定义见 src/harbor/models/job/config.py。下面按功能分组梳理常用参数。数据集与任务选择Dataset参数说明-d, --dataset nameversion指定数据集如terminal-bench2.0不写version时默认解析到head-p, --path dir指向本地任务目录或数据集目录Harbor 会自动判断是单任务还是数据集-t, --task org/name[ref]只跑注册表中的单个任务包引用格式-i, --include-task-name glob只包含匹配的任务名支持 glob 模式可重复-x, --exclude-task-name glob排除匹配的任务名可重复-l, --n-tasks n最多跑多少个任务在其他过滤之后生效--registry-url/--registry-path指定远程/本地注册表--repo org/name从 Git 注册表解析数据集可带ref固定版本--extra-instruction-path/--extra-instruction向每个任务指令追加额外指令文件在前内联文本在后从 DatasetConfig 源码 可以看到数据集有四种来源形态本地目录path、注册表name、包引用org/name、Git 仓库repo彼此互斥Harbor 会做严格校验。Agent 与模型Agent参数说明-a, --agent name被测 Agent内置名、导入路径或acp:简写-m, --model name模型名可重复传多个模型会为每个模型各生成一组试验--ak, --agent-kwarg keyvalueAgent 级选项可重复--effort level快捷设置推理努力程度等价于--ak reasoning_effortlevel--ae, --agent-env KEYVALUE注入 Agent 环境变量可重复--mcp-config path加载 Claude 风格.mcp.json或 Harbor MCP 配置文件可重复--skill, --skills src注入技能目录或 Git 源org/name[ref]或 URL可重复--allow-agent-host host仅 Agent 执行阶段允许访问的主机/IP/CIDR可重复--resume-trajectory多步任务中续接上一步的 Agent 原生会话要求 Agent 支持 resume--load-trajectory path用已有会话/ATIF 轨迹为第一步播种.jsonl为原生会话、.json为 ATIF--n-concurrent-agents n每个 Agent 的执行并发上限不超过--n-concurrent仅本地有效环境与资源Environment参数说明-e, --env type环境类型默认docker或自定义环境导入路径--force-build/--no-force-build是否强制重建环境镜像默认不强制--delete/--no-delete评估结束后是否删除环境默认删除--stream/--no-stream实时同步轨迹并启用浏览器 VS Code over SSH--cpus / --memory modeCPU/内存强制策略auto、limit、request、guarantee、ignore--override-cpus / --override-memory-mb / --override-storage-mb / --override-gpus直接覆盖环境的资源配额--mounts json挂载卷Docker Compose service volume 格式的 JSON 数组--extra-docker-compose path附加 Docker Compose 覆盖文件可重复--ek, --environment-kwarg keyvalue环境级自定义参数可重复--allow-environment-host host向环境网络基线追加主机/IP可重复验证器与评分Verifier参数说明--verifier import_path自定义验证器类module.path:ClassName--ve, --verifier-env KEYVALUE验证器环境变量可重复--verifier-kwarg keyvalue验证器自定义参数--disable-verification/--enable-verification跳过任务测试默认启用验证作业调度Job Settings参数说明-c, --config file/URL加载 YAML/JSON 作业配置或 GitHub URL可重复后者覆盖前者追加型列表会累加传[]可清空--print-config打印解析后的 JobConfig JSON 并退出--job-name name作业名默认时间戳-o, --jobs-dir dir作业结果输出目录默认jobs-k, --n-attempts n每个试验的尝试次数默认 1-n, --n-concurrent n并发试验数默认 4-r, --max-retries n失败重试次数默认 0--retry-include / --retry-exclude exc指定重试/不重试的异常类型--timeout-multiplier及各分项 multiplier任务/Agent/验证器/环境构建的超时倍率--install-only只安装 Agent、不执行任务与验证--env-file path加载.env文件注入环境变量-q, --quiet关闭单试验进度显示-y, --yes自动确认所有交互提示--artifact path试验结束后从环境下载指定路径产物可重复Harbor Hub托管运行与共享参数说明--launch在 Harbor Hub 上托管运行--upload评估结束后将作业上传到 Harbor Hub 分享--dry-run校验配置与 preflight不下载任务、不跑试验配合--launch时不排队、不扣配额--public/--private上传作业的可见性默认私有需配合--upload--share org/--org org与组织共享/设置归属组织--credential-mode gateway/direct模型凭据经 Hub 网关代理还是直连 Provider默认 gateway需--launch--one-off-secret NAME[VALUE]作业级一次性密钥作业结束自动撤销需--launch需要留意的是这些参数之间存在强校验关系--diff不能与--launch同用--upload与--launch互斥--public必须搭配--upload--one-off-secret等 Hub 相关参数必须搭配--launch--n-concurrent-agents仅本地生效——Harbor 会在解析阶段直接报错见 jobs.py。一次评估是如何执行的底层调用链了解底层执行流程有助于理解这些参数各自影响哪个环节。核心执行器是 src/harbor/job.py 中的Job.create()其流程为解析 Agent 技能把--skill传入的 git 源/简写解析并缓存到本地目录Agent Preflight通过AgentFactory.run_preflight()校验每个 Agent 的kwargs与凭据见 agents/factory.py解析任务配置把DatasetConfig翻译成一组TaskConfig本地/注册表/包/Git 四种来源见 models/job/config.py 的get_task_configs校验资源策略确认所选环境是否支持请求的 CPU/内存策略解析指标通过 MetricFactory 实例化sum、min、max、mean、uv_script等内置指标缓存任务下载/克隆远程任务到本地缓存构造 Job 与 TrialQueue生成全部TrialConfig按n_concurrent_trials建立并发队列并为每个试验注册 START/END/CANCEL 等生命周期钩子。每个试验Trial内部按环境启动 → Agent setup → Agent run → 验证Verifier的顺序执行。验证器在独立环境中运行测试并把奖励写入/logs/verifier/reward.txt见下面的任务示例。作业结束后compute_pass_at_k_by_evals 会按 Agent × 模型 × 数据集分组计算 Passk 指标print_job_results_tables会把各组的试验数、异常数、指标值和 Passk 汇总成表格打印。任务与数据集的结构以 hello-world 为例要在 Harbor 上构建自己的基准关键是理解任务目录的标准结构。仓库中的 examples/tasks/hello-world 是最小可运行的参考实现结构如下hello-world/ ├── task.toml # 任务元数据与各阶段配置 ├── instruction.md # 任务指令Agent 的输入 ├── environment/ │ └── Dockerfile # 任务环境镜像 ├── solution/ │ └── solve.sh # 参考答案用于 oracle 校验/调试 └── tests/ ├── test.sh # 验证器脚本跑测试并写 reward └── test_state.py # 具体的 pytest 用例instruction.md就是一句话指令Create a file called hello.txt with Hello, world! as the content.task.toml是配置核心schema_version 1.4schema_version 1.4 [task] name harbor/hello-world version 1.0.0 [metadata] difficulty easy category programming [verifier] timeout_sec 120.0 [agent] timeout_sec 120.0 [environment] build_timeout_sec 600.0 cpus 1 memory_mb 2048 storage_mb 10240 gpus 0 [verifier.env] [solution.env]各配置节与harbor run的对应关系一目了然[agent]控制 Agent 执行超时、[verifier]控制验证超时、[environment]声明资源需求、[verifier.env]与[solution.env]声明需要注入的环境变量缺失时 Harbor 会提示用户导出见 jobs.py 的_confirm_host_env_access。验证器脚本tests/test.sh展示了测试 写奖励的标准写法安装 pytest 后运行用例成功则向/logs/verifier/reward.txt写入1失败写入0——这就是 Harbor 打分的最原始信号。任务中还包含terminal-bench-canary标记防止基准数据混入训练语料。本地运行这个示例任务的方式harbor run --path examples/tasks/hello-world --agent claude-code --model anthropic/claude-opus-5-5用 YAML 配置代替长命令行当参数变多时推荐用 YAML 作业配置。--config可重复使用遵循后者覆盖前者、列表累加、[]清空的合并语义。一个典型的 JobConfig 示例job_name: my-first-eval n_concurrent_trials: 8 agents: - name: claude-code model_name: anthropic/claude-opus-5-5 kwargs: reasoning_effort: high datasets: - name: terminal-bench version: 2.0 environment: type: daytona verifier: disable: false运行harbor run --config my-eval.yaml想确认最终解析结果先跑harbor run --config my-eval.yaml --print-config或--dry-run验证配置与 preflight再正式执行。从 JobConfig 源码 可以看到作业名默认是当前时间戳jobs_dir默认jobs并发默认 4超时倍率默认 1.0旧版orchestrator配置键会被自动迁移到顶层n_concurrent_trials/quiet/retry。学术引用如果研究工作中使用了 HarborREADME 推荐使用如下 BibTeX 条目DOI 为概念 DOI始终指向最新版本并聚合所有版本的引用software{Harbor_Framework, author {{Harbor Framework Team}}, title {{Harbor: A framework for evaluating and optimizing agents and models in container environments}}, year {2026}, doi {10.5281/zenodo.20953922} }如需引用某个特定版本请使用该版本在 Zenodo 记录中对应的版本 DOI。进一步探索本文覆盖了从安装到执行的核心链路。想继续深入仓库中还有大量可直接参考的资源完整 CLI 命令树查看 src/harbor/cli/main.py除run外还有exec直接执行单条指令、init初始化任务/数据集、publish发布到注册表、analyze/check轨迹分析与任务质量检查、viewWeb 浏览轨迹等更多任务示例examples/tasks 下包含 hello-mcp、hello-skills、hello-multi-step、llm-judge-example、separate-verifier-environment 等 30 余个主题示例第三方基准适配器adapters 目录收录了 SWE-Bench、Aider Polyglot、OSWorld、Terminal-Bench 等大量社区基准的 Harbor 适配实现源码与测试核心实现集中在 src/harbor单元测试见 tests/unit例如 test_config_init.py 验证了job init --dataset terminal-bench2.0的配置生成路径。赞分享【免费下载链接】harborFramework for evaluating and improving agents项目地址https://gitcode.com/gh_mirrors/harbor17/harbor点击查看免费下载相关推荐claude-code-router 接入钉钉 AgentClaw企业 IM 接力与消息转发的完整配置指南claude code router 接入钉钉 AgentClaw企业 IM 接力与消息转发的完整配置指南 导读 AgentClaw 是 claude cod后端API网关LLM 网关大模型Harbor项目安装与配置指南Harbor项目安装与配置指南 一、项目基础介绍 Harbor是一个用于运行大规模语言模型的开源项目它提供了便捷的工具和服务以便开发者能够轻松地部署和管理工人工智能大模型本地部署开发工具容器编排CANN opbase DFX_IN 宏详解L2 一阶段接口入参封装与 DFX 插桩机制CANN opbase DFX_IN 宏详解L2 一阶段接口入参封装与 DFX 插桩机制 DFX_IN 是 CANN opbase 算子开发框架提供的一个核心上一篇JetLinks物联网平台架构设计与响应式实现机制深度解析下一篇MobileCLIP实战指南构建高效图像-文本模型的完整解决方案创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

关于本文作者

来自尧图内容编辑团队

尧图内容编辑团队 内容团队

尧图内容编辑团队

本文由尧图网络内容编辑团队执笔。团队由资深项目经理、前端工程师与设计师组成,所有内容均来自亲手交付的真实项目,先讲清问题、再给出可落地的解法。尧图深耕北京网站建设十年,服务过京华建材集团、智造科技等各行业客户,把一线经验沉淀为可复用的行业观察。

  • 十年建站经验,覆盖建材、制造、服务、文创等
  • 项目经理把关选题与事实准确性
  • 工程师与设计师联合撰写专业细节
  • 统一编辑规范,保证文风与排版一致
  • 每月复盘转化数据,迭代选题方向

延伸阅读

相关资讯与近期热门内容

深度阅读推荐

建站决策前值得细读的三篇

网站改版的5个关键决策
2024-08-12

网站改版的5个关键决策

什么时候该改版、改到什么程度、如何避免流量掉光,京华建材集团改版复盘给出答案。

获取专属建站方案

看完文章,把您的行业与预算告诉我们,免费获取一份量身定制的官网建设方案与报价。

立即免费咨询