Harbor 任务中 Verifier 环境模式解析:从 shared-default 到多步混合矩阵的完整实践指南
【免费下载链接】harborFramework for evaluating and improving agents项目地址https://gitcode.com/gh_mirrors/harbor17/harbor点击查看免费下载Harbor 的verifier-mode-matrix是一组运行时检查任务用于验证 verifier评分器环境路由机制的正确性。本文以其中的shared-default案例为主线结合 harbor 源码中environment_mode的解析实现系统讲解 verifier 的 shared / separate 两种环境模式、单步任务与多步任务的配置继承规则以及如何用harbor run一键验证整套矩阵。读完本文你将掌握在task.toml中为 verifier 配置独立容器的全部方法并能读懂 harbor 内部的环境路由决策链路。背景verifier 为什么要区分环境模式在 harbor 的任务模型中Agent 在[environment]描述的容器中执行任务而 verifier 负责在 Agent 运行结束后对产物进行评分。verifier 究竟运行在哪里直接影响评分的可信度与隔离性shared共享模式verifier 直接运行在 Agent 的同一个环境中可以看见Agent 运行期间留下的所有现场状态ambient state适合那些需要依赖 Agent 环境副作用的评分逻辑separate分离模式verifier 运行在一个独立容器中只接收显式声明的 artifacts 与日志挂载环境隔离更强适合需要干净、可复现评分的场景。harbor 通过task.toml中的[verifier]段来声明这一行为而examples/tasks/verifier-mode-matrix/下的 8 个示例任务则把每一种模式组合都固化为可运行的运行时检查。核心配置语义environment_mode 与 verifier.environment在 配置模型 中verifier 的环境模式由两个字段共同决定配置项类型含义[verifier].environment_modeshared/separate显式指定 verifier 运行在 Agent 环境shared还是独立容器separate[verifier.environment]与顶层[environment]同 schemaseparate 模式下独立容器使用的环境定义关键推断规则与 verifier_mode.py 中_resolve_mode的实现一致显式设置environment_mode时以显式值为准未显式设置environment_mode但配置了[verifier.environment]时隐式推断为separate两者都未配置时默认使用shared——这正是shared-default案例名称的由来。同时配置模型内置了一致性校验config.py若environment_mode shared却同时配置了[verifier.environment]会直接抛出ValueError提示二者互斥。shared-default 案例拆解默认共享模式的完整闭环shared-default是矩阵中最简单也最典型的案例其指令文件 instruction.md 只有一句话Create the marker files expected by the verifier.而真正的技术细节藏在三个配套文件中。task.toml省略即共享shared-default/task.toml 声明了schema_version 1.3的任务[verifier]段只设置了timeout_sec既没有environment_mode也没有[verifier.environment]schema_version 1.3 [task] name harbor/verifier-mode-shared-default description Runtime check for the default shared verifier environment. [agent] timeout_sec 30.0 [verifier] timeout_sec 30.0 [environment] network_mode no-network build_timeout_sec 600.0 cpus 1 memory_mb 2048 storage_mb 10240 gpus 0根据上述推断规则该任务解析出的模式为sharedverifier 将与 Agent 共用同一个容器。solve.shAgent 侧产出标记文件solution/solve.sh 模拟 Agent 的解题行为核心逻辑是探测共享环境是否真的可用mkdir -p /logs/artifacts if [ ! -d /logs/verifier ]; then echo shared verifier log mount missing from agent environment /tmp/shared-default-failure.txt else echo shared-default /logs/artifacts/mode.txt echo shared verifier can see ambient agent state /tmp/shared-default-agent-only.txt fi这里验证了两个共享模式的典型特征/logs/verifier目录在 Agent 环境中直接可见harbor 会为共享 verifier 在 Agent 环境中挂载该日志目录Agent 写入/tmp/shared-default-agent-only.txt的现场文件后续 verifier 应当能直接读到。test.shverifier 侧的三重断言shared-default/tests/test.sh 是共享模式下的评分脚本输出reward前依次断言/logs/verifier目录存在否则说明共享挂载未生效/tmp/shared-default-agent-only.txt存在否则说明 verifier 无法看到 Agent 的环境状态/logs/artifacts/mode.txt内容为shared-default否则说明产物标记未正确写入。#!/bin/bash set -u reward1 fail() { echo $1; reward0; } if [ ! -d /logs/verifier ]; then fail shared verifier should run with /logs/verifier available fi if [ ! -f /tmp/shared-default-agent-only.txt ]; then fail shared verifier did not see ambient agent file fi if [ ! -f /logs/artifacts/mode.txt ]; then fail shared verifier did not see /logs/artifacts marker elif [ $(cat /logs/artifacts/mode.txt) ! shared-default ]; then fail unexpected /logs/artifacts marker fi echo $reward /logs/verifier/reward.txt三个断言全部通过才说明默认共享模式确实让 verifier 与 Agent 共享了环境、挂载与现场状态——这正是 shared 模式与 separate 模式的根本差异所在。separate 模式的三种配置形态矩阵中另外三个单步案例演示了 separate 模式的三种写法其 test.sh 都通过反向断言agent-only文件不得泄漏进 verifier 容器来验证隔离性。separate-explicit显式分离 专属环境separate-explicit/task.toml 显式声明environment_mode separate并给出独立的[verifier.environment]schema_version 1.3 artifacts [/tmp/separate-explicit-configured.txt] [verifier] timeout_sec 30.0 environment_mode separate [verifier.environment] network_mode no-network build_timeout_sec 600.0 cpus 1 memory_mb 2048 storage_mb 10240 gpus 0注意顶层artifacts声明了/tmp/separate-explicit-configured.txtseparate 模式下Agent 容器中只有显式声明的 artifacts 才会被拷贝到 verifier 容器。tests/Dockerfile 把 test.sh 拷入镜像tests/test.sh 断言 artifacts 标记存在同时用[ -e ... ]断言 Agent 侧的agent-only文件不存在验证环境隔离。separate-implicit配置环境即隐含分离separate-implicit/task.toml 不写environment_mode只配置[verifier.environment]。按源码中的_resolve_mode逻辑环境配置的存在会自动把模式推断为separate——这正是implicit隐式的语义。separate-reuse-env复用顶层环境 tests/ 构建上下文separate-reuse-env/task.toml 是最值得注意的形态声明了environment_mode separate但没有[verifier.environment]。此时根据 resolve_effective_verifier_env_config 的查找顺序会回退到顶层[environment]的深拷贝作为 verifier 容器配置并且以tests/目录作为 verifier 镜像的构建上下文build context。其 test.sh 通过检查/image-context.txt内容为verifier-build-context来验证构建上下文确实来自tests/。多步任务模式继承与 step 级覆盖task.toml支持[[steps]]定义多步任务verifier 模式在每个 step 上可以独立覆盖。核心解析函数 resolve_step_verifier_mode 定义了优先级显式 step 模式 step 级[verifier.environment]隐含 separate 继承 task 级解析结果 默认 shared。矩阵中四个多步案例覆盖了全部组合multistep-all-shared顶层无模式默认 shared两个 step 均不声明全部共享验证multistep-all-separate顶层environment_mode separate所有 step 继承 separate且每个 step 可声明自己的artifactsmultistep-top-shared-mixed顶层environment_mode shared其中separate-step-env这个 step 通过[steps.verifier.environment]切换为独立容器形成顶层共享 step 级分离的混合形态multistep-top-separate-mixed顶层environment_mode separateshared-overridestep 用environment_mode shared覆盖回共享separate-step-envstep 再配置独立环境形成双向混合。例如 multistep-top-separate-mixed/task.toml 中step 级覆盖的写法为[steps.verifier] timeout_sec 30.0 environment_mode shared # 覆盖顶层的 separate # 另一个 step 则用 environment 隐式切回 separate [steps.verifier.environment] network_mode no-network cpus 1 memory_mb 2048 storage_mb 10240 gpus 0多步任务中 shared 与 separate 的任意混用是允许的这正是矩阵命名为 mode matrix 的原因。运行整套矩阵验证在仓库根目录执行矩阵 README 中给出的命令即可运行全部 8 个运行时检查verifier-mode-matrix/README.mdharbor run --path examples/tasks/verifier-mode-matrix -e daytona -a oracle --n-concurrent 1 -y--path examples/tasks/verifier-mode-matrix指向包含多个任务的目录harbor 会批量运行其中全部任务-e daytona选择 daytona 环境提供者-a oracle使用 oracle agent直接按solution/生成答案用于验证环境路由本身--n-concurrent 1串行执行避免并发干扰运行时检查-y跳过交互确认。源码视角环境路由的完整决策链路从源码结构看verifier 环境路由的决策集中在 verifier_mode.py 的几组函数中构成一条清晰的分层链路_resolve_mode对单个VerifierConfig做显式优先、环境推断、缺省为 None的初步解析resolve_task_verifier_mode单步任务场景将缺省值落到sharedresolve_step_verifier_mode多步任务场景先看 step 自身再看 task 级结果resolve_effective_verifier_env_config模式为 separate 时按step 环境 task 环境 顶层环境深拷贝的顺序确定容器配置resolve_verifier_environment_definition进一步决定 verifier 镜像与构建上下文优先 step/task 的tests/目录中的 Dockerfile 或docker_image否则回退到environment/目录task_has_any_shared_verifier/task_has_any_separate_verifier供执行层判断是否需要为 verifier 准备独立会话。执行侧trial.py 中的_run_shared_verifier约 L867、_run_separate_verifier约 L898与_separate_verifier_env约 L969分别对应两条运行路径shared 复用 Agent 会话与挂载separate 则为 verifier 建立独立的 session 与环境策略校验。矩阵中每个示例的 test.sh 正是针对这两条路径的运行时断言。配置要点小结编写带 verifier 的 harbor 任务时可遵循以下决策速查希望 verifier 直接复用 Agent 环境什么都不写默认 shared或显式写environment_mode shared希望 verifier 独立容器、且需要自定义环境写environment_mode separate[verifier.environment]希望独立容器但接受顶层环境配置只写environment_mode separate构建上下文将落在tests/希望省掉一行配置、依赖推断只写[verifier.environment]模式自动推断为 separate多步任务在[steps.verifier]下用同样的规则逐 step 覆盖别忘了environment_mode shared与[verifier.environment]互斥同时出现会导致配置校验失败separate 模式下Agent 环境中的文件只有被artifacts显式声明才会进入 verifier 容器。赞分享【免费下载链接】harborFramework for evaluating and improving agents项目地址https://gitcode.com/gh_mirrors/harbor17/harbor点击查看免费下载相关推荐Harbor Verifier 环境模式矩阵shared 与 separate 路由解析的完整实战指南Harbor Verifier 环境模式矩阵shared 与 separate 路由解析的完整实战指南 Harbor 中验证器verifier可以选择复用Harbor 多步骤任务 Verifier 环境模式实战shared 与 separate 的配置、状态传递与源码解析Harbor 多步骤任务 Verifier 环境模式实战shared 与 separate 的配置、状态传递与源码解析 本文以仓库中的 separate veSurfSense for Obsidian 插件完全指南把 Obsidian 笔记库同步为 SurfSense 可检索知识源SurfSense for Obsidian 插件完全指南把 Obsidian 笔记库同步为 SurfSense 可检索知识源 本文以仓库内 surfsens上一篇PureScript与AWS Lambda无服务器函数的类型安全开发下一篇终极Android下载引擎指南如何用FileDownloader实现高效断点续传与多任务管理 创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关新闻

AI芯片软硬件协同设计:从计算图到硬件的完整映射与优化实践

AI芯片软硬件协同设计:从计算图到硬件的完整映射与优化实践

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/12 1:37:53 阅读更多 →
semantic-router 使用 Qdrant 作为缓存、记忆与向量存储后端:Docker/K8s 部署与 Router 配置实战指南

semantic-router 使用 Qdrant 作为缓存、记忆与向量存储后端:Docker/K8s 部署与 Router 配置实战指南

后端API网关模型推理服务AI Agent 【免费下载链接】semantic-router An open, programmable decision layer for models and compute. 项目地址: https://gitcode.com/gh_mirrors/sem/semantic-router 点击查看 免费下载 导读 本文基于开源项目 semantic-router&a…

2026/10/12 1:37:53 阅读更多 →
OpenSpiel 观测张量布局(observation_tensor_layout)详解:CHW / HWC 约定与张量解释实战

OpenSpiel 观测张量布局(observation_tensor_layout)详解:CHW / HWC 约定与张量解释实战

人工智能强化学习深度学习 【免费下载链接】open_spiel OpenSpiel is a collection of environments and algorithms for research in general reinforcement learning and search/planning in games. 项目地址: https://gitcode.com/gh_mirrors/op/open_spiel 点击…

2026/10/12 1:37:53 阅读更多 →

最新新闻

【深度学习新浪潮】Meta Muse 智能体:它是什么?有哪些特点?为什么突然火了?

【深度学习新浪潮】Meta Muse 智能体:它是什么?有哪些特点?为什么突然火了?

1. 引言 近期,Meta Muse 智能体在 AI 领域引发广泛关注,开发者、创作者与科技从业者纷纷展开讨论。许多初次接触者不禁疑惑:这是 Meta 推出的又一款大模型?抑或仅是蹭热度的 AI 玩具? 事实并非如此。Meta Muse 是 Meta 在 AI 智能体方向的一次战略性布局,它并非简单的对…

2026/10/12 2:24:22 阅读更多 →
Spring-boot-3 -注解 yaml配置 -日志

Spring-boot-3 -注解 yaml配置 -日志

4、核心技能1. 常用注解SpringBoot 摒弃 XML 配置方式,改为全注解驱动1. 组件注册Configuration 自定义配置类、SpringBootConfiguration 用来标注SpringBoot主启动类的Bean 可以在自定义配置类面创建对象交给ioc容器,组件在容器中的名字为方法名、Scope…

2026/10/12 2:24:22 阅读更多 →
Neuroimage: 动态功能连接方法的重测信度比较

Neuroimage: 动态功能连接方法的重测信度比较

本篇文献发表在Neuroimage杂志。所发布内容旨在与大家分享学术新知,促进交流学习版权归原作者或原出处所有,感谢各位学者的辛勤付出与研究成果。1.引言大脑的功能组织具有丰富的时空结构,可以使用功能连接指标进行探测。功能连接被定义为两个…

2026/10/12 2:24:22 阅读更多 →
page_alloc __rmqueue

page_alloc __rmqueue

__rmqueue() 是伙伴系统分配路径的核心调度器。它在持有 zone->lock 的前提下,按照碎片化风险从低到高的顺序,依次尝试不同的分配策略,直到成功或彻底失败。核心作用与策略链它的本质是一个多级降级策略链:先尝试最“干净”的方…

2026/10/12 2:24:22 阅读更多 →
游戏引擎中物理步进与动画采样的同步机制解析

游戏引擎中物理步进与动画采样的同步机制解析

1. 这不是教科书,是我在三个项目里拆过七次引擎后写下的物理与动画系统手记“游戏引擎架构深度解析(三):物理与动画系统”——看到这个标题,你大概率正卡在某个角色落地时穿模、布料抖动像癫痫发作、或者刚加完一个新关…

2026/10/12 2:24:22 阅读更多 →
产业与汇率全景分析深入分析多表格形成一篇文章

产业与汇率全景分析深入分析多表格形成一篇文章

产业与汇率全景深度分析:汇率是外生变量,产业是底层根基引言汇率从来不是孤立的数字,它是一国产业竞争力、贸易结构、资本流动、宏观政策、全球供需格局共同定价的结果;反过来,汇率波动又会重塑产业成本、订单、利润、…

2026/10/12 2:23:21 阅读更多 →

日新闻

复古胶片颗粒感噪点合成器:Canvas ImageData 像素高斯杂色注入算法

复古胶片颗粒感噪点合成器:Canvas ImageData 像素高斯杂色注入算法

在数码相机、高清显示屏与现代矢量图形技术高度发达的今天,画面可以做到绝对的锐利、平滑与无瑕。然而,当一张秋日手账插画或拍立得照片过于“平整无瑕”时,往往会散发出一种冰冷生硬的“数码塑料感(Digital Plasticity&#xff0…

2026/10/12 0:00:59 阅读更多 →
活字印刷古籍线装排版:Canvas 竖排文字与栏线自适应算法

活字印刷古籍线装排版:Canvas 竖排文字与栏线自适应算法

在现代网页与移动端设计中,横排(Horizontal Layout)早已经成为了绝对的主流。然而,当我们翻开泛黄的线装古籍、宋版木刻诗集,或是欣赏一张茶道雅集的手写便签时,那种**自上而下纵向书写、自右向左逐列铺展&…

2026/10/12 0:00:59 阅读更多 →
周日晚间的“精神松绑减震器”:无压力情绪倾倒箱与温和轻声陪伴

周日晚间的“精神松绑减震器”:无压力情绪倾倒箱与温和轻声陪伴

每到周日的晚上八点到十点,很多人心里都会悄悄亮起一盏警示灯。 在心理学上,这种现象有一个专门的称谓——“周日夜晚焦虑症(Sunday Scaries)”。明天又是周一,闹钟又要重新在七点响彻卧房;脑海里仿佛有一个…

2026/10/12 0:00:59 阅读更多 →

周新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介:基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码,面向计算机相关专业课程设计与期末大作业学生,以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程,…

2026/10/12 0:16:30 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化,十个新手有八个栽在"往输入框里填东西"这件事上:要么填不进去,要么填了一半,要么直接把原来内容追加在后面。这背后的根因&…

2026/10/12 0:16:38 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀:什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面,跳转链路清晰。这种场景非常适合影刀自动化&#x…

2026/10/12 0:16:43 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/11 10:45:37 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/11 14:36:53 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/11 14:36:54 阅读更多 →