EAIPS 中转代理迁移
从 model-provider-config 提取。2026-04-11 更新:5 Provider 全面启用 + EAIPS 中转代理。
Provider 架构变更
liwei-eastus2 的 API Key 失效后,通过 EAIPS 中转代理 (dp.eaips.net) 重新恢复可用性。同时新增 eaips-sweden 作为第五个 provider,最终 5 个 Azure provider 全部在线:
| Provider | Base URL | 模型数 | 状态 | 说明 |
|---|---|---|---|---|
| us2 | resley-east-us-2-resource.cognitiveservices.azure.com | 13 | ✅ | 美东2 |
| clawfood | clawfood.openai.azure.com/openai/v1 | 9 | ✅ | — |
| sweden-ext | resley-sweden-ext.openai.azure.com/openai/v1 | 28 | ✅ | 最全,含音频/实时/图像/Sora |
| eaips-sweden (新) | dp.eaips.net/openai/v1 | 19 | ✅ | EAIPS 中转代理 |
| eaips-eastus2 (原 liwei-eastus2) | dp.eaips.net/openai/v1 | 16 | ✅ | 从直连迁移到 EAIPS 中转 |
关键操作
- sweden-ext apiKey 轮换 — 更新 azure provider 和 memory embedding 的 apiKey
- eaips-sweden 新增 —
dp.eaips.net中转代理,密钥sk-fin...-001,19 个模型全部测试通过 - liwei-eastus2 迁移 — 原直连
liwei-m6u2eooi-eastus2.openai.azure.com已改为走 EAIPS 中转 - 命名规范统一 — 所有中转 provider 统一使用
eaips-{区域}格式 - Memory embedding baseURL 同步 — 从旧的
dp.eaips.net更新为sweden-ext
模型可用性测试结果
全量测试所有 provider 的模型可用性:
- gpt-5.4 — 全部 5 个 provider ✅
- gpt-4.1 / gpt-4o — us2、clawfood、sweden-ext、eaips-sweden ✅
- DeepSeek-V3.2 — eaips-eastus2、sweden-ext ✅
- Kimi-K2.5 — us2、clawfood、sweden-ext ✅
- codex 系列 — 全部返回 400(需走 Responses API / Codex 专用接口,非 bug)
2026-04-19 eagle-claude provider + api_mode 传播 bug
ottor-laptop 接入 Anthropic 原生协议代理 eagle-claude:
- Base URL:
https://api.eagle.openclaws.co.uk/ - API Key:
sk-proxy-...(写到 Claude Code~/.claude/settings.json的ANTHROPIC_BASE_URL+ANTHROPIC_AUTH_TOKEN) - 协议:Anthropic
/v1/messages,对外伪装chat-completions不行 — Claude Code CLI 必须命中原生 messages
踩坑:api_mode 字段在 named custom provider 注册时被吞。hermes_cli/runtime_provider.py:_get_named_custom_provider() 处理 dict 分支时漏拷 api_mode 字段,注册后默认 chat_completions,请求打到 /v1/chat/completions 直接 404。修复:dict 分支显式透传 api_mode = cfg.get("api_mode", "chat_completions"),eagle-claude 显式声明 api_mode: anthropic_messages。
2026-04-28 sweden-ext key 第二次轮换(ottor-laptop)
距 04-26 第一次轮换 2 天后,Azure 又轮换了 sweden-ext 资源 key(embedding / extraction / rerank 三处共用同一把 cognitiveservices key)。daddy 直接给新值,验证两个 baseURL(*.openai.azure.com/openai/v1 和 *.cognitiveservices.azure.com/openai/deployments/...)都返 200。
修法:sed 替换 ~/.openclaw/openclaw.json 里 3 处旧 key(embedding / extraction / rerank),baseURL 不动(最小变动)。备份 ~/.openclaw/openclaw.json.bak.before-key-rotate-...。
铁律重申:Hermes 显示层把 key 渲染为 CSj30o...HF9W mask,不能把 mask 字符串当 old_string 喂给 patch — 会把真值替换成占位符。读真值用 od -c 或 base64 round-trip。
2026-05-02 OpenClaw copilot-proxy → eagle 全局改名(ottor-laptop)
把 OpenClaw 配置里 copilot-proxy provider 全局改名为 eagle,统一品牌(与 copilot-anthropic-proxy 后端 api.eagle.openclaws.co.uk 对齐)。
| 项 | 值 |
|---|---|
| Provider key | copilot-proxy → eagle |
| baseURL | https://api.eagle.openclaws.co.uk/v1 |
| 模型数 | 16 个 eagle/* |
| Default | agents.defaults.model.primary = eagle/gpt-5.5 |
| Fallbacks | 15 条 eagle/* |
| 备份 | ~/.openclaw/openclaw.json.bak.eagle |
一条 jq 命令完成 4 处替换(provider key + primary + fallbacks + agents.defaults.models 的 key 前缀):
cp ~/.openclaw/openclaw.json ~/.openclaw/openclaw.json.bak.eagle && jq '
(.models.providers.eagle = .models.providers["copilot-proxy"]) |
del(.models.providers["copilot-proxy"]) |
(.agents.defaults.model.primary |= sub("^copilot-proxy/"; "eagle/")) |
(.agents.defaults.model.fallbacks |= map(sub("^copilot-proxy/"; "eagle/"))) |
(.agents.defaults.models |= with_entries(.key |= sub("^copilot-proxy/"; "eagle/")))
' ...新机部署版本读 EAGLE_API_KEY env 幂等写入。直连验证:POST https://api.eagle.openclaws.co.uk/v1/responses 用 eagle key 调 gpt-5.5 返 200,actual model = gpt-5.5-2026-04-23。⚠️ gpt-5.5 只暴露在 Responses API,/v1/chat/completions 不通;其他 chat 模型走 openai-completions provider api 字段。
注意:wx-gateway apps 表里 copilot-proxy 是网关侧业务方注册名(不是 OpenClaw provider key),改名不影响该侧。
相关页面
- model-provider-config — 父页面:模型均匀分配策略