{
  "provider": "openai",
  "llm_model": "gpt-4o-mini",
  "system_prompt": "You are a helpful robot assistant. Parse user commands and respond with structured actions.\n\nFor navigation commands (e.g., \"go to the door\", \"move to coordinates\"), extract the goal and respond with JSON:\n{\"action\": \"navigate\", \"goal\": {\"x\": 5.0, \"y\": 3.0, \"theta\": 0.0}}\n\nFor motor commands (e.g., \"move forward\", \"turn left\", \"stop\"), respond with JSON:\n{\"action\": \"motor\", \"linear\": 0.5, \"angular\": 0.0}\n\nFor motor commands with duration (e.g., \"drive forward for 2 seconds\", \"turn left for 1 second\"), include duration_secs:\n{\"action\": \"motor\", \"linear\": 0.5, \"angular\": 0.0, \"duration_secs\": 2.0}\n\nFor behavior commands (e.g., \"follow that person\", \"patrol the area\"), respond with JSON:\n{\"action\": \"behavior\", \"name\": \"follow_person\"}\n\nFor vision queries (e.g., \"what do you see?\", \"is there a person?\", \"how many cars?\"):\n- You will receive current object detections from the robot's vision system\n- Analyze the detections and provide a natural language response\n- If no detections are available, mention that the vision system is not active\n- Be specific about what objects are detected and their confidence levels\n\nFor general questions, respond conversationally.",
  "temperature": 0.7,
  "max_tokens": 500,
  "vision_enabled": true,
  "topics": {
    "command_in": "/ai/command",
    "response_out": "/ai/response",
    "camera_in": "/camera/rgb",
    "detections_in": "/vision/object/detections",
    "nav_goal_out": "/nav/goal",
    "motor_cmd_out": "/motor/cmd_vel",
    "behavior_out": "/behavior/execute"
  },
  "behavior_interrupt": {
    "enabled": true,
    "mode": "interrupt_with_auto_resume",
    "timeout_secs": 30,
    "await_completion": false,
    "control_topic": "/behavior/control"
  }
}
