HarborBackend 会在 Harbor trial 中运行 Osmosis AgentWorkflow 或已注册的原生 Harbor agent。每个 rollout 都会获得复制的 task directory、task-defined environment,以及 Harbor-managed agent 和 verifier phases。
安装与 Import
安装 Harbor 和 rollout-server features:uv 还必须位于 PATH 上:截至 v0.3.0rc3,Harbor extra 不会安装它,而 backend 在打包 AgentWorkflow 或 Grader bundle 时会运行 uv build。
从 Harbor submodule import backend:
HarborBackend 不会从 osmosis_ai.rollout 或 osmosis_ai.rollout.backend re-export。不要安装 harbor[skypilot];managed rollout runtime 会提供兼容的 SkyPilot SDK。
选择 Task Mode
task_mode 决定谁拥有 instruction、如何选择默认 task,以及 request prompt 是否进入 task。
两种 mode 都使用 Harbor trials,并提供相同 isolation。Mode selection 改变 task semantics,不改变 sandbox technology。
Template Mode
Template mode 会让每个 rollout 从一个 task directory 开始。Request 包含 prompt 时,backend 会复制 task,并在 Harbor 启动 trial 前用序列化后的 message list 替换instruction.md。
instruction.md。如果还希望该目录通过 Harbor 独立 task validation,请添加 placeholder instruction。Backend 提供 Osmosis Grader 时,tests/test.sh 可选。
LocalBackend 的 Harbor 路径:一个 workflow 处理变化的 dataset prompts。当这些 prompts 每次都需要同一套隔离 operating system、tools、services 或 filesystem setup 时,请选择它。
Dataset Mode
Dataset mode 会把每个 Harbor task 当作完整工作单元。Task 保留自己的instruction.md、environment、configuration 和 verifier。
AgentWorkflow。通常由 task verifier 计算 reward;如果缺少 tests/test.sh,则由配置好的 Osmosis Grader 提供 verifier。
集成已有 Harbor Dataset
如果本地 dataset 已经可以通过harbor run 运行,可复用的边界是其 task directories:
1
保留 task directories
把
tasks_dir 指向本地 dataset root。每个 child 都必须是 Harbor task,包含 task.toml、instruction.md、environment/,以及该 task 所需的 verifier files。2
选择受支持的 agent track
如果符合需求,请使用
agent="terminus-2"、"mini-swe-agent" 或 "oracle"。否则请把 agent behavior 打包为 Osmosis AgentWorkflow,并传入其 class 或 import path。3
创建 selector dataset
上传 Osmosis metadata-mode dataset,其中
harbor_task_id values 与 task directory names 对应。Platform dataset 负责选择 trials;Harbor task directories 仍与 rollout code 放在一起。4
训练前先运行 evaluation
开始 training 前,确认原生 verifier 会输出
reward channel,并且 trainable agent 会生成可用 trajectory。这条路径会复用 task content,而不是完整 Harbor job definition。
HarborBackend 不会读取 Harbor JobConfig、dataset filters、attempt counts、任意 agent configs 或 harbor run CLI flags。Osmosis 会提供 request scheduling、model endpoint、callbacks 和 rollout identity。动态 Task Sources
在任一 mode 中,request 都可以设置metadata["harbor_task"],替代配置好的默认选择:
为保证可复现性,请固定 package references 和 Git commits。Instruction ownership 仍由
task_mode 决定:template mode 会替换 fetched task 的 instruction,dataset mode 则保留它。
Agent 执行轨道
agent 会选择两种 execution track 之一:
AgentWorkflow project 必须包含 pyproject.toml 和可导入 Python package,task image 也必须支持 Python。无法推断 project 时请传入 code_dir,也可以传入预构建 bundle wheel。Task Dockerfile 应专注于 task dependencies;backend 会安装 rollout bundle,并可把其声明的 dependencies 预装到复制后的 image。
已注册 native names:
AgentWorkflow 使用 workflow_config。native_agent_kwargs 只能用于已注册原生 agent。model_name 默认为 openai/osmosis-rollout;每个 request 的 metadata 可以通过 harbor_model 覆盖它。
Reward Source 与优先级
Harbor 始终把 task-provided verifier 作为权威来源:
v0.3 不再提供
custom_tests_dir。请把原生 verifier files 放在每个 task 的 tests/ directory 中。原生 verifier 必须写入 Harbor 的 reward channel,通常通过 /logs/verifier/reward.txt,或包含 reward key 的 reward.json;backend 不会猜测其他 channel。
Constructor 参考
Prewarming、Capacity 与 Cancellation
prewarm() 会在 server 接收 traffic 前构建 task images 并运行 agent setup。Template mode 会 prewarm 配置好的 task;dataset mode 需要显式传入要 prewarm 的 task IDs。
TrialQueue(n_concurrent=<n>) 控制 Harbor trial concurrency。max_queue_depth 限制等待中的 rollouts,让 server 可以返回 HTTP 429,而不是无限扩展 queue。rollout_status() 报告 queued、running、grading 或最近完成的 state;cancel_rollouts() 可以按 ID、prefix 或全部取消 queued 或 running work。
保持 TrialQueue 的默认 RetryConfig(max_retries=0)。Backend 的 terminal-event contract 不支持 queue-level attempt retries;如需重试,请使用新的 rollout ID 重新提交。
Managed 与 Self-Hosted Environments
Osmosis Platform Harbor rollouts 使用EnvironmentType.SKYPILOT。Platform 会构建选中 task 的 Dockerfile,并提供兼容 SkyPilot runtime;您不需要构建或推送 image、配置 registry credentials 或选择 cluster。
EnvironmentType.DOCKER 仍适用于有 Docker daemon 的自托管 SDK harness,但 managed rollout server 不提供该 daemon。
下一步
执行后端概览
比较 LocalBackend、Harbor template mode 和 Harbor dataset mode。
v0.3 迁移
替换 legacy Harbor constructor 和 execution model。