# Server configuration for the air-gapped compose deployment. Secrets and # host-specific values are overlaid via CLAWMATES_* environment variables in # docker-compose.yml (e.g. CLAWMATES_DATABASE__URL carries the password). deploy_target = "air_gapped" listen_addr = "0.0.0.0:8080" [database] # Overridden by CLAWMATES_DATABASE__URL; kept here so the file is complete. url = "postgres://postgres:placeholder-overridden-by-env@postgres:5432/clawmates" [llm] provider = "openai_compat" base_url = "http://local-llm:8000/v1" model = "qwen2.5-72b-instruct" # GLM, so a phase verdict is judged by a DIFFERENT provider family than the one # that did the work. `evaluator.rs` refuses to call a same-family judge # `independent`, and until now this stack had only Anthropic credentials — so # every verdict was Anthropic grading Anthropic and the boot log said so: # # validator_preflight: no CLAWMATES_VALIDATOR_MODEL — phase verdicts are # judged by the house model, which is NOT an independent check # # `format = "anthropic"` is required, not cosmetic: z.ai's OpenAI-compatible # endpoint is ToS-throttled for raw SDK access, while its Anthropic-format # endpoint accepts them. Mirrors gw-04's clawmates.toml exactly. [[llm.providers]] name = "glm" base_url = "https://api.z.ai/api/anthropic" api_key_env = "ZAI_API_KEY" format = "anthropic" [auth] mode = "local" [broker] socket_path = "/run/clawmates/broker.sock"