所有配置存在 ~/.makerclaw/config.json 的 model_list[] 数组里,
API Key 单独存放在 .security.yml,不混进主配置。
所有路径的默认值都在 pkg/env.go 与 pkg/config/envkeys.go 里。
model_list[] 的真实字段从 pkg/config/config.go:738 的 ModelConfig struct 原样提取。
全部从 pkg/providers/factory_provider.go:25 protocolMetaByName + pkg/providers/provider_catalog.go:31 attachedModelProviderMetaByName 提取。
api_base + api_keys
另外有 7 个附件型 provider(认证方式特殊,不走普通 API key):
azure · bedrock · antigravity(OAuth)· claude-cli · codex-cli · github-copilot · elevenlabs(仅 ASR,不可作 chat 主模型)。
详见 pkg/providers/provider_catalog.go:31 attachedModelProviderMetaByName。
代码里 pkg/routing/route.go + pkg/config/config.go RoutingConfig,两套完全独立。
配置在 agents.dispatch.rules[]。when 字段只有 7 个,从 pkg/routing/route.go:151 dispatchView struct 原样提取:
规则自上而下匹配,第一条命中即胜出。不存在 tokens_gt / has_tool / hash 等字段 —— 这些是文档里可能写的,但代码里没有。
配置在 agents.defaults.routing,三字段从 pkg/config/config.go RoutingConfig struct 原样提取:
复杂度评估的内部信号(pkg/agent/instance.go):消息长度、代码块数量、近期工具调用频次、对话深度、媒体附件。一次回合内只切一次,中途跨工具调用不切换。如 light_model 在启动时验证失败,整个路由被自动关闭。
源码里 SecureStrings 类型 + SecureString 字段标记。让密钥不进 git 仓库。
model_list[].api_keys[]config.json 只写非敏感,密钥放 .security.yml主二进制 makerclaw,启动器 makerclaw-launcher。
没有列出的 provider?provider 填已有协议名 + api_base 自己指向新端点。
从 pkg/config/envkeys.go 提取,这是代码里全部 MAKERCLAW_* 开头的全局 env var。其余 MAKERCLAW_* 都来自 struct 的 env: tag,主要是 channels 子模块(MAKERCLAW_CHANNELS_*)。