Configuration keys
此内容尚不支持你的语言。
Generated from the dictionaries the validators use: a key not listed here is an error in its file (except under [runtime], which is open). Paths are relative to the file that names them; files may include others (Configure runs).
The agent
Section titled “The agent”configs/default.toml, and each ablation of configs/ablations/ (which includes it)
| Key | Meaning |
|---|---|
description |
one line, shown by harness config and the run viewer |
prompt |
the prompt: a pack directory (assembled for the enabled skills) or files, in order; or a table of them by embodiment kind (robot = …, desktop = …) |
mode |
program (default: the model writes programs) or direct (R0/R1: one action per call) |
roles |
the model roles the agent uses, among main, vlm, pointer, verifier (default all) |
skills |
layers = { learned, reactive, handlers }, or names = […]; enable = […] adds optional skills, disable = […] removes skills |
services |
segmenter, policies = […], world_models = […], mcp = […] (MCP tool servers for the mcp skill): services the skills use |
model |
the default model roles: a model file’s name (configs/models/<name>.toml), or the roles inline |
runtime |
runtime settings: the [runtime] keys |
budget |
max_model_calls per episode (default 30) |
[skills]: layers = { learned, reactive, handlers } (defaults false, true, true), or names = [...]; disable = [...] removes skills. [services]: segmenter = "sam3", policies = [...], world_models = [...]; each a service name, or { service = "...", ... } with client keys on top. [budget]: max_model_calls.
Models
Section titled “Models”configs/models/<name>.toml: one table per role, plus [runtime] (settings the model needs, merged into the agent’s) and description.
| Role | What for |
|---|---|
[main] |
writes the programs (or, in direct mode, the actions) |
[vlm] |
answers questions about images inside programs (query_vlm), and points without a pointer |
[pointer] |
open-vocabulary pointing (point_to, localize) |
[verifier] |
overrides on top of main for the success verifier (verify, <verify>) |
Keys of a role
Section titled “Keys of a role”| Key | Meaning |
|---|---|
service |
a service of the deploy instead of a hosted model: its client config, with this role’s keys on top |
backend |
openrouter (default) or openai_chat (any OpenAI-compatible server) |
model |
the model id |
base_url |
openai_chat: the server’s URL, e.g. http://127.0.0.1:8800/v1 |
api_key_env |
the environment variable that holds the key (default OPENROUTER_API_KEY for openrouter) |
reasoning_effort |
openrouter: none, low, medium or high |
max_output_tokens |
tokens per reply, reasoning included on OpenRouter (default 8192) |
temperature |
sampling temperature (default: the provider’s) |
stream |
stream the reply: a dead connection shows within the read timeout while a model thinks |
timeout_seconds |
read timeout of one request (default 300) |
retries |
retries of a failed request (default 2) |
retry_seconds |
keep retrying transient failures until this long after the request started |
extra_body |
extra request fields for OpenAI-compatible servers (e.g. max_image_side) |
on_demand |
written by the resolution for an on-demand service: the broker starts it first |
Runtime
Section titled “Runtime”[runtime] of the agent (or of a model file, or an experiment’s overrides). Some keys are written by the resolution itself.
| Key | Meaning |
|---|---|
bootstrap |
the kernel’s session factory, “module:function” (default the program runtime’s) |
cameras |
cameras whose images reach the model (default the three RoboDojo cameras) |
cell_timeout_seconds |
wall time one program cell may run before the kernel is stopped |
contract |
the observation contract: native (default) or xpolicylab (core/contract.py) |
default_max_seconds |
max_seconds of a bounded execution that names none |
fixed_skills |
direct mode: locate, pick and place in the action vocabulary (R1) |
isolation |
run programs isolated (default true; “auto”: where user namespaces work) |
keep_images |
images of the most recent turns kept in the history (default 2) |
label |
a name the run viewer shows instead of the interface rung |
layers |
written by the resolution from [skills] layers |
library |
a self-improvement library: [runtime.library] path = …; frozen during evaluation |
max_history_turns |
keep only this many exchanges after the first message |
mcp |
written by the resolution: the MCP servers’ client configs |
mode |
written by the resolution from the agent’s mode |
pointer |
written by the resolution: the pointer role’s client config |
policies |
written by the resolution: the learned policies’ client configs |
policy_progress_seconds |
a run of a learned policy also ends when no object the last locate tracks has moved 3 cm for this many seconds, measured every half of it (default none: only when it stops) |
post_policy_calls |
with learned policies: the model calls left after the first run of the task handed to the policy; then the policy runs on to the end of the episode (default none: no bound) |
python |
the kernel’s interpreter (default the driver’s) |
reactive_budget_ms |
time a guard or controller may take per tick (default 5) |
segmenter |
written by the resolution: the segmenter’s client config |
skills |
written by the resolution: the enabled skills |
skills_dropped |
written by the resolution: skills left out, and why |
strategy_first |
with learned policies: nothing moves before start(strategy, kind) (default false; the agent sets it) |
strict_skills |
driver-built configurations: fail instead of dropping a skill |
task_descriptions |
a directory of task descriptions (<task>.md) added to the first message, or false |
verifier |
check success with the verifier before finishing (default true) |
vlm |
written by the resolution: the vlm role’s client config |
world_models |
written by the resolution: the world models’ client configs |
Experiments
Section titled “Experiments”configs/experiments/<name>.toml
| Key | Meaning |
|---|---|
description |
one line |
agent |
the agent file (default configs/default.toml; an ablation of configs/ablations/) |
model |
the model roles: a name of configs/models/ (default the agent’s) |
bench |
one of robodojo, robotwin (default robodojo) |
tasks |
task names, dimension names, “moving” or “all” |
seeds |
a list, or a range such as “0-49” (default [0]) |
layouts |
one of procedural, eval: development or official evaluation layouts |
layout_pack_seed |
eval layouts: which official pack (0, 1, 2) |
dev_layout_dir |
development layouts’ directory (default <RoboDojo>/harness_dev_layouts/arx_x5) |
deploy |
the deploy to resolve against (else –deploy or $HARNESS_DEPLOY) |
strict |
fail instead of dropping a skill or service (default: true for eval layouts) |
endpoint |
harness program: a worker that already runs |
timeout_seconds |
worker request timeout (default 600) |
budget |
max_wall_seconds, max_cost_usd, max_model_calls per episode; max_total_cost_usd per suite |
worker |
options of the bench’s worker (record_video, ground_truth, task_config, seed_cache_dir) |
suite |
options of harness run (boot_timeout, …) |
overrides |
[overrides.agent] and [overrides.model]: changes for this experiment only |
Deploys
Section titled “Deploys”configs/deploy/<machine>.toml
| Key | Meaning |
|---|---|
weights |
root of the services’ weight directories (relative to the file, or absolute) |
state |
pid files and logs of the services it starts |
robodojo |
the RoboDojo checkout (default $HARNESS_ROBODOJO_ROOT, else third_party/RoboDojo) |
xpolicylab |
the XPolicyLab checkout (default <robodojo>/XPolicyLab) |
gpus |
the GPUs services and simulators may use |
gpu_memory_gb |
memory of each of those GPUs (default 24); gpu = “auto” plans with it |
sim |
simulator workers of harness run: gpus, workers_per_gpu, base_port |
services |
[services.<name>] for each service that runs here; a service not listed is off |
broker_port |
where the broker of on-demand services listens (default 8899) |
Placement of a service
Section titled “Placement of a service”[services.<name>] of a deploy.
| Key | Meaning |
|---|---|
mode |
one of resident, on_demand, external, off (default resident) |
gpu |
a GPU index, or “auto”: the GPU with the most room for its vram_gb |
port |
a port other than the manifest’s |
url |
for mode external: where it answers |
python |
another interpreter for it |
env |
extra environment variables |
swap |
on_demand: the swap group; services of one group share a GPU, one loaded at a time |
idle_seconds |
on_demand: stop it after this long without a request |
Service manifests
Section titled “Service manifests”services/<name>.toml
| Key | Meaning |
|---|---|
kind |
what the service is for: one of segmenter, pointer, vlm, llm, policy, world_model, kinematics, mcp |
summary |
one line: the model and where it comes from |
protocol |
how clients talk to it: one of http, openai_chat, xpolicylab, mcp (default http) |
port |
its default port (a deploy may give another) |
vram_gb |
GPU memory it takes, measured; placement and swapping use it |
load_seconds |
how long it takes to answer after a start (waits allow three times this) |
command |
argv that starts it, with {python} {port} {weights} {repo} {robodojo} {xpolicylab} … (protocol xpolicylab: optional, in place of XPolicyLab’s setup_policy_server.py) |
xpolicylab |
for protocol xpolicylab: policy folder, ckpt_name, action_type (joint, or ee: link6 poses that run_policy solves by IK), action_dim, cwd, pythonpath, overrides |
env |
environment variables of the process |
python |
interpreter (default {python}: the project environment’s) |
cwd |
working directory (default {repo}) |
client |
the config its users get: url = “{url}” and what the model is told about it (description) |
weights |
[[weights]] entries: dir below the deploy’s weights root and one source (modelscope_model, modelscope_dataset, hf_model, hf_dataset, local); harness fetch downloads them |
needs_files |
paths that must exist before it can start (checked by harness doctor and up) |
notes |
anything an operator should know |
Skills
Section titled “Skills”skills/<name>/skill.toml
| Key | Meaning |
|---|---|
name |
the skill’s name, the same as its directory |
summary |
one line: what the skill gives programs |
layer |
base, or the interface layer that turns it on: learned, reactive or handlers |
mixin |
the class with its methods, as “module:Class” (e.g. “skills.motion:Motion”) |
exports |
the names programs see: the mixin’s methods, or names its exports(session) returns |
required |
never dropped: the session cannot run without it (core) |
needs |
service kinds that must all be available |
needs_any |
service kinds of which at least one must be available |
requires |
skills whose API this one’s results or documentation refer to; dropped with them |
conflicts |
skills it cannot be enabled with: they export some of the same names |
optional |
not among the skills of its layer: only a configuration that enables it by name has it |
order |
position in the session’s method resolution and in the prompt (lower first) |
embodiments |
the embodiment kinds it runs on, among robot and desktop (default [“robot”]) |
Prompt packs
Section titled “Prompt packs”prompts/<pack>/pack.toml. Text inside a section is kept only when every skill or feature an <!-- if: a, b --> marker names is enabled (<!-- else -->, <!-- end -->; markers nest). Features: measured_gripper, step_limit.
| Key | Meaning |
|---|---|
sections |
the files of the pack in order: { file, skills = […] (included when one is enabled), optional = true (may be missing) } |
undocumented |
exported names the pack does not describe (the documentation check skips them) |