shutdown_timeout: 30s address: ":8080" stt: url: "http://localhost:8178" tts: url: "http://localhost:8880" voice: "af_heart" timeout: "60s" default_model: provider: "llama.cpp" model: "qwen3.6-27b" providers: - name: "llama.cpp" key: ${LLM_API_KEY} url: "http://localhost:8081/v1" timeout: "5m" - name: "openrouter" url: "https://openrouter.ai/api/v1" key: "${OPENROUTER_KEY}" timeout: "5m" models: - "~anthropic/claude-opus-latest:exacto" - "~google/gemini-pro-latest:exacto" - "~openai/gpt-latest:exacto" - "deepseek/deepseek-v4-pro:exacto" - "deepseek/deepseek-v4-flash:exacto" - "minimax/minimax-m3:exacto" - "mistralai/mistral-medium-3-5:exacto" - "moonshotai/kimi-k2.6:exacto" - "moonshotai/kimi-k2.7-code:exacto" - "qwen/qwen3.6-27b:exacto" - "z-ai/glm-5.1:exacto" tools: - name: get_weather description: "Get current weather for a location" command: "curl" arguments: - "-s" - "https://wttr.in/{{ .location }}?format=j1" parameters: type: object properties: location: type: string description: "City name or location" required: - location timeout: "10s" - name: sandbox_run description: | Execute a shell command inside a bubblewrap sandbox. The sandbox has read-write access to the current directory, read-only access to system binaries, no network access, no SSH keys, isolated /tmp, and process isolation. Use this for all file operations (cat, grep, find, mkdir, sed, tee, patch), building, testing, and any command execution that does not require network access. command: "sandbox_run" arguments: - "{{ .command }}" parameters: type: object properties: command: type: string description: "The complete shell command to execute inside the sandbox." required: - command timeout: "30s" - name: host_run description: | Execute a shell command on the host system with no sandbox. Use only when you need network access (curl, SSH, git clone), system-level changes (package installs, service management), or access to files outside the current directory. Prefer sandbox_run for all other command execution. command: "bash" arguments: - "-c" - "{{ .command }}" parameters: type: object properties: command: type: string description: "The complete shell command to execute on the host" required: - command timeout: "60s" jobs: - name: "daily_summary" schedule: "0 9 * * *" system_message: "You are an assistant." task: "Report the uptime on your host." timeout: "3m" max_iterations: 5 # 0 means unlimited