模型均匀分配策略
跨4个 Provider(GitHub Copilot、my-azure、prism-foundry、liwei-eastus2)的 ~73 个模型部署,按角色能力需求均匀分配给10个 Agent。
概述
模型均匀分配策略是为 OpenClaw 多代理架构设计的资源管理方案。随着系统从单一 provider 扩展到4个 Azure + GitHub Copilot provider、约73个模型部署,如何合理地将模型资源分配给不同职能的 Agent 成为关键问题。
分配原则遵循”避免 pro 模型(成本高)、按角色匹配能力、均匀分散到各 provider 避免单点瓶颈”。核心推理任务使用 Claude Opus 4.6,研究任务使用 Claude Sonnet 系列,工作和开发任务使用 GPT-5.4/5.2/5.3,英语教学使用中文底座 FW-GLM-5。
经过多轮测试和调整,最终形成了 GitHub Copilot 3个、my-azure 3个、prism-foundry 2个、liwei-eastus2 2个的均衡分布,并清理了闲置9天的 javis 和 javis-code 代理。
关键点
- 4个 Provider:GitHub Copilot (15模型)、my-azure/resley-sweden (39模型)、prism-foundry (3模型)、liwei-eastus2 (16模型)
- 总计约73个模型部署:涵盖 Claude、GPT-5.x、DeepSeek、GLM-5 等
- 分配原则:避开 pro 系列,按角色匹配,均匀分散
- 闲置清理:删除了闲置9天的 javis 和从未运行过的 javis-code
- Azure AI 模型 API 差异:三种 API 路径格式各不相同(Cohere rerank / Cohere embed / OpenAI embed)
- 新 Provider 添加:us2 (resley-east-us-2-resource) 包含8个模型,所有 bot 可用
技术细节
最终分配方案
| Bot | Provider | 模型 |
| ---------------- | ---------------- | --------------------------- |
| @dora | github-copilot | claude-opus-4.6 |
| @researcher | github-copilot | claude-sonnet-4.6 |
| @research-craft | github-copilot | claude-sonnet-4.5 |
| @work-assistant | my-azure | gpt-5.4 |
| @clawline-gw | my-azure | gpt-5.2 |
| @clawline-ch | my-azure | gpt-5.3-chat |
| @misse | prism-foundry | FW-GLM-5 |
| @research-portal | prism-foundry | gpt-5.4 |
| @clawline-web | liwei-eastus2 | DeepSeek-V3.2 |
Provider 配置
# prism-foundry
Base URL: https://prism-foundry-b2p.openai.azure.com/openai/v1
Models: gpt-5.4, FW-GLM-5, text-embedding-3-large
# liwei-eastus2
Base URL: https://liwei-m6u2eooi-eastus2.openai.azure.com/openai/v1
Models: 16个 (GPT-5.x系列, DeepSeek, FW-GLM-5, embedding等)
# us2 (resley-east-us-2-resource)
Base URL: https://resley-east-us-2-resource.cognitiveservices.azure.com/
Models: gpt-5.3-codex, gpt-5.4, gpt-5.4-pro, gpt-4o, gpt-4.1, gpt-5-mini, FW-GLM-5, FW-MiniMax-M2.5
Azure AI 模型 API 清单
| 模型 | 路径格式 | 备注 |
| ------------- | ---------------------------------- | -------------- |
| Cohere rerank | /providers/cohere/v2/rerank | model 在 body 里 |
| Cohere embed | /openai/v1/embeddings | input 必须是数组 |
| OpenAI embed | /models/embeddings?api-version=... | input 可以是字符串 |
GPT-5.3-codex 测试
- 在 Azure Foundry 部署后通过 OpenClaw 测试成功
- 需要将模型添加到 provider list 和
agents.defaults.models允许列表 - 注意
gpt-5.4需要用max_completion_tokens而非max_tokens
时间线
- 2026-03-02: 测试 Azure 模型 gpt-5.3-codex,确认可用
- 2026-03-18: 添加 prism-foundry provider(3个模型),全部测试通过
- 2026-03-18: 添加 liwei-eastus2 provider(16个模型)
- 2026-03-18: 整理全部73个模型部署,删除闲置 javis/javis-code
- 2026-03-18: 完成10个 agent 模型均匀分配到4个 provider
- 2026-03-19: 验证6个 Azure AI endpoint(Cohere rerank/embed + OpenAI embed × 2节点)
- 2026-03-20: 添加 us2 provider (resley-east-us-2-resource),8个模型,所有 bot 可用
相关页面
Copilot→Anthropic 代理服务(2026-04-06)
researcher agent 开发了一个 Copilot→Anthropic 代理转发服务 copilot-anthropic-proxy.mjs,通过逆向分析 GitHub Copilot 调用 Claude 的完整链路,发现 Copilot 端点原生支持 Anthropic Messages API,实现了免 Anthropic API Key 使用 Claude 模型的代理方案。
代理服务信息
| 属性 | 值 |
|---|---|
| 服务端口 | 4819 |
| Dashboard | http://127.0.0.1:4819/ |
| 源码 | ~/.openclaw/workspace-researcher/prototypes/copilot-anthropic-proxy.mjs |
| 数据库 | prototypes/proxy-logs.db(SQLite) |
| 进程管理 | launchctl (com.leway.copilot-anthropic-proxy) |
优化内容(2026-04-06)
在运行稳定后进行了以下优化:
| 优化项 | 说明 |
|---|---|
| CST 时间 | 所有时间戳统一使用 UTC+8(中国标准时间) |
| SQLite 持久化 | 日志存入 proxy-logs.db,服务重启不丢失 |
| 时间筛选 | Dashboard 支持从/到时间范围筛选请求记录 |
| 模型筛选 | 下拉框按模型过滤请求 |
| 模型统计卡片 | 每个模型的调用次数、token 总量、平均耗时 |
与 Claude Code CLI 集成
代理服务同时支持 Claude Code CLI 接入:
- 配置
ANTHROPIC_BASE_URL到 zshrc - 禁用 Azure Foundry 旧配置
- 通过代理成功运行 Claude Code(免 Anthropic API Key)
MiniMax Provider 配置
wukong-bot 使用 MiniMax 作为模型提供商,通过 minimax-portal 和 minimax 两个 provider 接入。
minimax-portal Provider
- 认证方式: OAuth (minimax-portal:default)
- 可用模型:
- MiniMax-M2.5(主力模型)
- MiniMax-M2.1
- MiniMax-M2.1-lightning
- MiniMax-M2.5-highspeed
- VL-01(视觉-语言多模态,可能测试阶段)
- Token 上限: 128k in / 200k context window
minimax Provider
- 可用模型: 3个(包括 MiniMax-M2.5 等)
MiniMax 官方模型矩阵
| 类型 | 模型 |
|---|---|
| 文本 | M2.5, M2.5-highspeed, M2.1, M2.1-highspeed, M2, M2-her |
| 语音 | Speech 2.6, Speech 2.5 |
| 视频 | Hailuo 2.3 |
| 音乐 | Music 2.5+ |
VL-01 不在官方文档中,推测为 Vision-Language 多模态模型。
CraftBot Azure 端点迁移
craftbot 在 2026-03-17 完成了 Azure OpenAI 端点迁移:
端点变更
- 旧端点:
resley-sweden-ext.openai.azure.com(模型:gpt-5.2, gpt5.2-codex) - 新端点:
resley-sweden.openai.azure.com(39 个模型)
新增模型清单(39 个)
| 类别 | 模型 |
|---|---|
| GPT-5.x | 5.4, 5.4-pro, 5.3-chat, 5.3-codex, 5.2, 5.2-chat, 5.2-codex, 5.1, 5.1-codex, 5.1-codex-max, 5-pro, 5-mini, 5-nano, 5-codex |
| GPT-4.x | 4.1, 4.1-mini, 4.1-nano, 4o, 4o-mini |
| 推理 | o3, o3-mini, o3-pro, o4-mini, o1-pro |
| Embedding | 3-large, 3-small, ada-002 |
| 多模态 | gpt-image-1, gpt-image-1.5, dall-e-3, whisper, tts, tts-hd |
| 代码 | codex-mini |
| 第三方 | claude-opus-4.6, claude-sonnet-4.6, deepseek-v3.2, deepseek-r1, grok-4 |
GitHub Copilot 调试经验(来自 quokka)
stream: false 导致 Claude API 崩溃
在 claw-bot (192.168.31.141) 的 openclaw.json 中,github-copilot/claude-opus-4.6 被配置了 "stream": false。这导致:
- 超时:GitHub Copilot 底层代理 Anthropic 的 Claude API 强依赖 SSE 流式输出,
stream: false使上游网关尝试”憋完全部回答再返回”,在大上下文时必然超时 - 数据流错乱:超时断开时吐出残缺 SSE 数据,报错
got message_start before receiving "message_stop" - 降级雪崩:主模型超时后触发 24 个模型的降级轮询,每个超时约 80~150 秒,一轮下来半小时
修复:删除 params.stream 配置,恢复默认流式输出。
GitHub Copilot 静默限流
即使修复了 stream: false,claw-bot 上绑定的 GitHub Token 仍偶发被 Copilot 后端静默限流(不返回 429,而是直接挂起请求直到客户端超时)。通过更换 Token(从 ottor-laptop 拷贝)暂时恢复。
关键发现:两台机器使用不同的 GitHub Token(hash 不同),被限流的仅是 claw-bot 的 Token。
Azure Foundry 模型查询
quokka 帮助查询 Azure AI Foundry 中的模型部署:
- 已部署模型:GPT-5.x 系列、DeepSeek-V3.2、Kimi-K2.5、Cohere rerank、语音/图像多模态等
- MiniMax 2.5/2.7:在 Azure ML Registry 公共列表中未找到
- GLM-5:公共注册表中未找到
- Jina Embeddings v3:Azure 上可用但需在 AI Studio 界面手动部署(Marketplace 条款需交互式确认)
模型端点健康检查(2026-04-09)
来源:research Agent 自动心跳检查
Research Agent 定期执行模型端点健康检查。04-09 检查发现所有端点均可达,部分返回 400 是因为 max_tokens=1 过小导致模型拒绝生成(非故障)。调高为 max_tokens=10 后全部返回 200。
04-09 健康检查结果
| Provider | 模型 | 状态 | 说明 |
|---|---|---|---|
| us2 | gpt-5.4 | ✅ 200 | — |
| us2 | gpt-4o | ✅ 200 | — |
| sweden-ext | gpt-5.4 | ✅ 200 | — |
| github-copilot | claude-opus-4.6 | ✅ 200 | 当前会话验证 |
关键发现:400 错误不代表端点故障。Azure OpenAI 在 max_completion_tokens 过小时会返回 400(模型成功连接并响应,只是拒绝以极小 token 数生成)。健康检查应使用 max_tokens=10 或更高值。
04-10 健康检查结果
| Provider | 模型 | 状态 | 说明 |
|---|---|---|---|
| sweden-ext (主) | gpt-5.4 | ✅ 可达 | 400=max_tokens 限制,非故障 |
| sweden-ext | gpt-4o | ✅ 200 | — |
| us2 (备) | gpt-5.4 | ✅ 可达 | — |
| clawfood (备) | gpt-5.4 | ✅ 可达 | — |
| liwei-eastus2 (备) | gpt-5.4 | ⚠️ 401 | API Key 失效,非主用,有 fallback |
| github-copilot | claude-opus-4.6 | ✅ | 当前会话运行中 |
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)