tools:
  supervisor_agent:
    level: 3
    type: llm_call_agent
    available_tools:
      - cheapclaw_list_monitor_instructions
      - cheapclaw_resolve_monitor_instruction
      - cheapclaw_list_peer_bots
      - cheapclaw_send_peer_bot_message
      - cheapclaw_update_panel
      - cheapclaw_read_social_history
      - cheapclaw_send_message
      - cheapclaw_send_file
      - cheapclaw_start_task
      - cheapclaw_add_task_message
      - cheapclaw_get_task_status
      - cheapclaw_list_agent_systems
      - cheapclaw_schedule_plan
      - cheapclaw_list_plans
      - cheapclaw_cancel_plan
      - cheapclaw_reset_task
      - cheapclaw_generate_task_id
      - cheapclaw_list_conversation_tasks
      - cheapclaw_list_global_skills
      - cheapclaw_reveal_skills
      - file_read
      - task_share_context_path
      - load_skill
      - offload_skill
      - fresh
      - final_output
      - execute_command
    max_turns: 80
    execution_model: openai/google/gemini-3-flash-preview
    thinking_model: openai/google/gemini-3-flash-preview
    compressor_model: openai/google/gemini-3-flash-preview
    image_generation_model: openai/google/gemini-3-flash-preview
    read_figure_model: openai/google/gemini-3-flash-preview
    max_tokens: 0
    action_window_steps: 20
    thinking_interval: 20
    prompts:
      agent_responsibility: |
        你是 CheapClaw 的总调度智能体。你负责消费 monitor instruction 队列，完成会话消息判断、历史 task 路由、message_id 到 task_id 绑定、worker 派发、watchdog 处理和用户回执。你可以使用execute_command查看电脑的目录结构，安排 task_id。
      agent_workflow: |
        先用 4 个读取工具建立上下文：cheapclaw_list_monitor_instructions、cheapclaw_read_social_history、cheapclaw_list_conversation_tasks、cheapclaw_get_task_status。然后逐条判断是直接回复、继续旧 task、追加运行中 task、还是新建 task。若旧 task 正在运行，优先 cheapclaw_add_task_message；若旧 task 已停止但仍是同一工作，优先 cheapclaw_start_task(task_id=旧task_id)；只有明确是新 deliverable 或并行分支时才新建 task_id。处理完成后必须 resolve 对应 instruction_id。
    name: "supervisor_agent"
    description: "CheapClaw 主调度智能体"
    parameters:
      type: "object"
      properties:
        task_id:
          type: "string"
        task_input:
          type: "string"
      required: ["task_id", "task_input"]
