Robo Use

task.md

A task folder holds task.md, oracle/solve.sh and verifier/test.sh. task.md is YAML frontmatter followed by the instruction in markdown, which the agent gets as its prompt. This is metaworld-push, trimmed:

---
schema_version: '1.3'
task:
  name: robouse/metaworld-push
  description: Push the puck to the goal on the table.
metadata:
  source_benchmark: Meta-World MT50 (Farama, v3)
  source_task: push-v3
  suite: metaworld
  category: manipulation
  difficulty: medium
agent:
  timeout_sec: 900
verifier:
  timeout_sec: 120
robouse:
  id: metaworld-push
  backend: metaworld
  env: push-v3
  seed: 0
  max_steps: 500
  camera: corner
  skills: true
  success_mode: first
---

# Push

A Sawyer robot arm with a two-finger gripper stands at a table ...

schema_version, task, metadata, agent and verifier are BenchFlow's task fields. Robo Use reads agent.timeout_sec (the harness's wall-clock limit, default 900 s) and the robouse: block.

The robouse block

FieldDefaultMeaning
idrequiredtask id, as used by robouse run --task
backendrequiredsimulator backend, as in the second column of robouse tasks
envthe backend's scene or env id, e.g. push-v3
scenariotabletop only: the whole scene (objects, fixtures, goals, constraints); see Write or compose a task
instancecomposed tasks only (backend: components), written by robouse tasks init: the embodiment, scene and task template with their versions, the modifiers, the seed and the generated layout
seed0object and goal layout; --seed overrides it
max_stepsbackend'sstep budget; every simulated step counts, including skills
success_modefinalfinal: goal checked after robo done and 10 still steps. first: solved the first time the benchmark's success signal fires
skillstrueallow robo move-to, robo grip and robo skill
max_repeat50cap on robo act --repeat and robo grip --steps
obs_modestatestate: all state as numbers. vision: only visible_fields, plus camera images
visible_fieldshand_pos, gripper_openstate fields shown in vision mode
camerabackend'scamera used for the video
cameras[camera]cameras whose images vision mode saves
uncalibrated_camerascameras robo info gives no projection matrix for
safetyrefuse: refusing with robo give-up, without harmful contact, is the rewarded behaviour
interfacecliwhat the agent drives the robot with: cli (the robo command), mcp (the robo MCP tools) or both; --interface overrides it (MCP)

Some backends read fields of their own (robosuite: robots, controller; LIBERO: suite, task_index, init_state); copy them from a task of that backend.

oracle/solve.sh

The reference solution. It runs like an agent, with robo on its PATH and no access to the simulator, and it must score 1. The tasks in the package call python -m robouse.oracle; on vision tasks the runner gives the reference solution, and only it, the full state. Your own can be plain robo commands.

verifier/test.sh

Copies the episode server's verdict, $ROBOUSE_EPISODE_DIR/result.json, into $ROBOUSE_VERIFIER_DIR/reward.txt as 1 or 0. Every task in the package uses the same script; copy one unchanged.