Skip to content

Configuration

RoboSmith looks for robosmith.yaml or robosmith.yml in the command working directory unless you pass --config.

Terminal window
robosmith run --config robosmith.yaml --task "Walk forward"

Example:

llm:
provider: anthropic
model: anthropic/claude-sonnet-4-6
fast_model: anthropic/claude-haiku-4-5-20251001
temperature: 0.7
max_retries: 3
reward_search:
candidates_per_iteration: 4
num_iterations: 3
eval_timesteps: 50000
eval_time_minutes: 2.0
training_backend: sb3
max_iterations: 3
skip_stages: []
scout_source: semantic_scholar
runs_dir: ./robosmith_runs
env_registry_path: ./my_envs.yaml

For robosmith run, the effective config comes from:

  1. Built-in model defaults.
  2. Auto-detected robosmith.yaml or robosmith.yml.
  3. Explicit --config file.
  4. CLI flags.
  5. Runtime LLM provider detection from environment variables.

The --llm, --scout, --backend, --candidates, --skip, and task-related CLI flags override file values.

RoboSmith loads .env.local and .env.

Terminal window
ANTHROPIC_API_KEY=sk-ant-...
OPENAI_API_KEY=sk-...
GEMINI_API_KEY=AIza...
GROQ_API_KEY=gsk_...
OPENROUTER_API_KEY=sk-or-...
S2_API_KEY=...

S2_API_KEY is optional and only affects Semantic Scholar rate limits.

FieldDefaultMeaning
llmLLMConfig()LLM provider, model, fast model, temperature, retries.
reward_searchRewardSearchConfig()Reward candidate and evaluation budget.
runs_dir./robosmith_runsBase directory for artifacts and logs.
env_registry_pathNoneOptional custom environment registry YAML.
max_iterations3Max outer loop iterations.
skip_stages[]Optional stages to skip: scout, intake, delivery.
scout_sourcesemantic_scholarsemantic_scholar, arxiv, or both.
verboseTrueVerbose behavior for configured callers.
dry_runFalseParse and plan only.
FieldDefaultMeaning
provideranthropicProvider label.
modelclaude-sonnet-4-20250514Main model for code generation.
fast_modelclaude-haiku-4-5-20251001Fast model for routing and parsing.
temperature0.7Sampling temperature.
max_retries3Retries for LLM calls.
FieldDefaultMeaning
candidates_per_iteration4Number of reward candidates generated per generation.
num_iterations3Reward evolution iterations.
eval_timesteps50000Short evaluation steps per candidate.
eval_time_minutes2.0Max candidate evaluation time.

TaskSpec can be built directly from Python or produced by intake.

from robosmith.config import TaskSpec
spec = TaskSpec(
task_description="A Franka arm picks up a red cube",
robot_type="arm",
robot_model="franka",
environment_type="tabletop",
algorithm="auto",
time_budget_minutes=60,
num_envs=1024,
)

Important fields:

FieldMeaning
task_descriptionNatural language desired behavior.
raw_inputPreserved original user input.
robot_type, robot_modelMorphology and optional exact robot.
environment_type, environment_idEnvironment class and optional forced registry ID.
success_criteriaList of SuccessCriterion.
safety_constraintsList of SafetyConstraint.
algorithmppo, sac, td3, or auto.
time_budget_minutes, num_envsTraining budget hints.
use_world_modelFuture world-model pretraining switch.
push_to_hubOptional HuggingFace repo ID.