Skip to content

Configuration

OpenCastor is configured via config/arm.rcan.yaml (or the path set by CASTOR_CONFIG).

Minimal config

robot:
  name: "Bob"
  hardware_tier: pi5-hailo   # pi5-hailo | pi5 | pi4 | jetson-orin | server | generic

agent:
  model: anthropic/claude-sonnet-4-6
  harness:
    max_iterations: 8
    thinking_budget: 2048
    context_budget: 16384
    cost_gate_usd: 0.05
    retry_on_error: true
    drift_detection: true
    p66_consent_threshold: physical   # physical | digital | none

  contribute:
    enabled: false
    idle_after_minutes: 15
    projects:
      - harness_research

Key tunables

Key Default Description
max_iterations 8 Max agent loop iterations per task
thinking_budget 2048 Token budget for model thinking/CoT
context_budget 16384 Max context window tokens
cost_gate_usd 0.05 Abort task if estimated cost exceeds this
retry_on_error true Auto-retry on transient errors
drift_detection true Detect and abort drifting tasks
p66_consent_threshold physical Minimum consent level for physical actions

Environment variables

Variable Description
CASTOR_CONFIG Path to config file
CASTOR_RRN Robot Resource Name override
ANTHROPIC_API_KEY API key for Claude models
OLLAMA_URL Ollama endpoint (default: http://localhost:11434)
OHB_MODEL Model for OHB-1 benchmark (default: gemma3:1b)

Champion configs

When the research pipeline finds a better harness config, it's stored as a pending update in Firestore — never applied automatically. You choose when to apply it:

castor harness apply-champion        # apply to this robot
castor harness apply-champion --fleet # apply to all robots

Or use the client app to review and apply with one tap.