模型均匀分配策略

跨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 代理服务:通过逆向 GitHub Copilot 链路实现免 Anthropic API Key 使用 Claude 模型,含 Dashboard 和 Claude Code CLI 集成。

详见 Copilot 详情:MiniMax Provider 配置、CraftBot Azure 端点迁移(39个模型)、GitHub Copilot stream:false 崩溃调试。

模型端点健康检查(2026-04-09)

来源:research Agent 自动心跳检查

Research Agent 定期执行模型端点健康检查。04-09 检查发现所有端点均可达,部分返回 400 是因为 max_tokens=1 过小导致模型拒绝生成(非故障)。调高为 max_tokens=10 后全部返回 200。

04-09 健康检查结果

Provider模型状态说明
us2gpt-5.4✅ 200
us2gpt-4o✅ 200
sweden-extgpt-5.4✅ 200
github-copilotclaude-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-extgpt-4o✅ 200
us2 (备)gpt-5.4✅ 可达
clawfood (备)gpt-5.4✅ 可达
liwei-eastus2 (备)gpt-5.4⚠️ 401API Key 失效,非主用,有 fallback
github-copilotclaude-opus-4.6当前会话运行中

详见 EAIPS 中转代理迁移:2026-04-11 liwei-eastus2 API Key 失效后通过 EAIPS 中转代理恢复,最终 5 个 Azure provider 全部在线。

2026-05-04 备用 Azure provider 三连 401

dora 在 09:54 / 13:55 CST infra-alert-check 巡检里发现 3 个备用 Azure OpenAI provider 同时返回 401(API key 过期/已轮换),主生产端点不受影响:

Provider模型状态
⚠️ us2 (Azure 直连)gpt-4o / gpt-5.4401 key 失效
⚠️ sweden-extgpt-5.4 / gpt-4o401 key 失效
⚠️ clawfoodgpt-4o401 key 失效
✅ eaips-eastus2 (主)gpt-5.4 / gpt-4o200
✅ eaips-sweden (主)gpt-5.4200
✅ github-copilotclaude-opus-4.5/4.6200

主生产链路 eaips-eastus2 / eaips-sweden + github-copilot 仍稳定,不影响当前任务,但需 Resley 有空时刷新这三个 provider 的密钥。dora 判定为 warning 级别,未触发告警通知。

2026-04-25 GPT-5.2 / GPT-4.1 实际使用审计

Resley 在 main 频道同时问 dora / ottor / nexora:「检查所有任务里有哪个调到 GPT-5.2 或 GPT-4.1」。三家对账后定版结论:

模型在哪用到类型
github-copilot/gpt-5.2仅在 openclaw.json 模型注册表未被任何 cron / agent 主动调用
github-copilot/gpt-5.2-codex仅在 openclaw.json 模型注册表未被任何 cron / agent 主动调用
github-copilot/gpt-4.1~/.openclaw/skills/housework/SKILL.md 第 27 行 显式要求用 github-copilot/gpt-4.1 spawn 子 agent 做摘要唯一实际使用点
azure-foundry/gpt-4.1仅在 openclaw.json 模型注册表未被任何任务调用

nexora 历史调用清单(验证用):Claude Opus 4.6 占绝对主力(4837 次),Sonnet 4.6 (420)、Haiku 4.5 (154)、Opus 4.5 (98)、Gemini 3.1 Pro (88)、GPT-5.3 Codex (46)、GPT-5.4 (13),GPT-5.2 / GPT-4.1 调用次数为 0

dora 早先一次回复误把「GPT-5.4 是 GPT-5.2 的超集 → Labor Hour Reminder cron 算调用了 GPT-5.2」算进去 ⚠️ 已被 ottor / nexora 后续审计推翻:5.4 ≠ 5.2,注册表存在 ≠ 实际调用。以 ottor / nexora 的审计为准。

实践含义:清理 openclaw.json 时可以把 gpt-5.2 / gpt-5.2-codex / azure-foundry/gpt-4.1 三个模型注册项移除而不影响任何运行任务;housework skill 是唯一需要保留 GPT-4.1 access 的地方。

2026-04-25 LLM Wiki / Hermes 任务模型链路

Resley 在微信问「llm wiki 整理这个任务调了哪些模型,费用大不大」。明确化:

  • 当前 Hermes session(discord/微信/cli)默认 claude-opus-4.7 via provider=copilot(GitHub Copilot proxy → Anthropic API),代理在 localhost:4819~/projects/github-copilot-anthropic-proxy 反代到 api.eagle.openclaws.co.uk
  • LLM Wiki 的检索(wiki-query / llm-wiki skill)是纯本地 ripgrep + read_file,不调任何远程模型
  • 6 个 wiki 相关 cron 任务(clawline-raw-ingest 03:00 / hermes-raw-ingest 每小时 / wiki-compactor-daily 周一-六 05:00 / wiki-compactor 周日 04:00 / wiki-archive-stale 周日 06:00 / daily-summary-weixin 03:15)都用默认模型 = Claude Opus 4.7 via copilot proxy;quartz-wiki-rebuild 每 10 分钟纯构建无 LLM
  • 费用:走 GitHub Copilot 订阅(39 Pro+),按订阅而非 token 计费 — 这些 cron 跑多少次都不额外花钱。对照官方 Anthropic Opus 4.7 75 per M token,6 任务/天估算 $5-15/天才是直接调用的成本

详见 copilot-anthropic-proxyllm-wikihermes-agent-setup

2026-04-25 infra-alert-check Copilot 全军覆没事故

04-25 13:59 infra-alert-check cron 报 FallbackSummaryError: All models failed (4)

  • github-copilot/claude-opus-4.6LLM request rejected: thinking: Input tag 'adaptive' found using 'type' does not match any of the expected tags: 'disabled', 'enabled' — 请求体里塞了 thinking.type=adaptive,但 Copilot Anthropic proxy 只接受 disabled/enabledschema 不兼容 ⚠️
  • github-copilot/claude-opus-4.5 / sonnet-4.6 / sonnet-4.5No available auth profile for github-copilot (all in cooldown or unavailable) — 多 token 全部进 cooldown,无 fallback 资格
  • 全 4 个候选模型走完都失败后 fallback summary 也炸出,cron 任务整体 fail

待办:① 排查 Hermes/cron 谁在请求里硬塞 thinking.type=adaptive(应只在 Anthropic 直连或 enabled/disabled 字典内);② Copilot 多 token cooldown 命中需要 stagger / 换成本 provider,不能让一个心跳任务把订阅打死。详见 copilot-anthropic-proxy cooldown 章节、hermes-agent-setup

2026-04-28/29 默认模型切到 claude-opus-4.7-1m-internal

04-29 18:34 clawline/models22 模型

  • Anthropic 9haiku-4.5 / sonnet-4 / sonnet-4.5 / sonnet-4.6 / opus-4.5 / opus-4.6 / opus-4.6-1m / opus-4.7 / opus-4.7-1m-internal
  • OpenAI 6gpt-5.2 / gpt-5.2-codex / gpt-5.3-codex / gpt-5.4 / gpt-5.4-mini / gpt-5.5
  • Azure OpenAI 2gpt-4.1(128K) / gpt-5-mini(264K)
  • 其余 5 为 minimax/glm 等社区模型;无 Gemini 下发(账号档位 / settings.Copilot.Models 没启 Google / 区域 gating)

04-29 20:12 Hermes config.yaml model.default: claude-opus-4.7claude-opus-4.7-1m-internal(200K → 真 1M ctx),系统提示同步触发 [Note: model was just switched ... Adjust your self-identification accordingly.]

opus-4.7 effort medium-only 限制

claude-opus-4.7 上游强制:

400 invalid_reasoning_effort:
  output_config.effort "high" is not supported by model claude-opus-4.7;
  supported values: [medium]

只有 claude-opus-4.7-1m-internal(以及独立的 -high/-xhigh 变体)才支持 high effort。-high/-xhigh 首次试用还撞 Something went wrong,回退到 claude-opus-4.6 + --effort high(或 --think high)暂稳。

Hermes 派 CC 命令模式

MAX_THINKING_TOKENS=10000-15000 \
zsh -ic 'claude --print --dangerously-skip-permissions \
  --model claude-opus-4-7 --effort medium --max-turns N'

要 high effort 必须把 --model 切成 claude-opus-4.7-1m-internal,否则 400。

2026-04-30 GitHub Copilot 模型清单大换血

dora 让 clawline 重扫 api.enterprise.githubcopilot.com /models,更新 models.json

  • 🆕 新增 6 个claude-opus-4.7 / claude-opus-4.7-high / claude-opus-4.7-xhigh / claude-opus-4.6-1m(百万上下文显式条目)/ gpt-5.5 / minimax-m2.5
  • 🗑️ 下线 7 个gemini-3-pro-preview / gpt-5 等(清单未全列)
  • 当前 github-copilot provider 30 个模型可用(旧 24 个 → 新 30 个)
  • /model github-copilot/claude-opus-4.7 切换正常;高思考模式(claude-opus-4.7-high/xhigh)首次尝试时一度 Something went wrong,回退 claude-opus-4.6 + /think high 稳定,疑 4.7 高思考通道未完全 ready

2026-04-12 更新

  • OpenClaw 支持多个 model provider:clawfood(7)、eaips-eastus2(15)、github-copilot(15/20)、sweden-ext(12)、us2(10)
  • GitHub Copilot 提供了最新模型:claude-opus-4.6(百万上下文)、gemini-3.1-pro-preview、gpt-5.4
  • resley-sweden 的 API key 认证已被禁用,需切换到其他 provider

2026-04-13 Hermes 上下文长度 Bug

Hermes Agentagent/model_metadata.pyget_model_context_length() 里,对 provider=copilotclaude-opus-4.6 错报 144K,应为 1M。

根因: step 5 优先查 models.dev,而 models.dev 对 github-copilot 的 Opus 4.6 返回的是 144K(错误数据),代码没走到硬编码 fallback DEFAULT_CONTEXT_LENGTHS = 1000000

修复方案 A(已落地): 在 step 5 之前加 copilot 专用 override:

if effective_provider == "copilot":
    for default_model, length in sorted(
        DEFAULT_CONTEXT_LENGTHS.items(), key=lambda x: len(x[0]), reverse=True
    ):
        if default_model in model.lower():
            return length

未命中的模型仍走 models.dev。同时 Copilot Proxy 在请求层把 claude-opus-4.6 remap 到 claude-opus-4.6-1m,两侧一致拿到 1M 上下文。

2026-04-15 Copilot 1M Context 终极方案 — config override

hermes:discord/resley/2026-04-15。Resley 在 fries 频道复现「opus 4.6 还是 144K」,几次尝试后定型「只有 config 层 context_length 覆盖能赢」。

已 fail 的 3 条路(都不要再试):

  1. 加新模型变体 claude-opus-4.6-1mhermes_cli/models.py Copilot 模型列表 + DEFAULT_CONTEXT_LENGTHS 都加了,但 Copilot API 不认 -1m 后缀,回 400 model_not_supported
  2. 加 alias claude-opus-4.6-1m → claude-opus-4.6:API 那侧能识别了,但 alias 在 normalize 阶段把名字转回 claude-opus-4.6,context length 又走回 144K
  3. 在 normalize 钩子里 special-case:Copilot provider 走的是 _STRIP_VENDOR_ONLY_PROVIDERShermes_cli/models.py:377),只去 vendor 前缀,且 Discord gateway 在 normalize 之前就把模型名发出去了——hook 接管不到

唯一可靠方案:

# ~/.hermes/config.yaml
model:
  name: claude-opus-4.6
  context_length: 1000000   # priority 0,绕过 models.dev

context_length 在 resolution chain 里是 step 0,永远赢 models.dev 的 144K。Hermes 内部有 1M 上下文,超长请求 Copilot 服务端真拒就靠 probe-down 自动降级。

经验已 dump 进 Hermes skill hermes-copilot-context-override(root cause / fix / 失败方案备忘 / 关键代码路径)。下次复发查 skill 不重蹈。

2026-04-19 Copilot Context Override 表 + reasoning_effort 修正

承接 04-13/04-15 的 Copilot 1M 上下文调试,最终方案落到 agent/models_dev.py 的硬编码 override 表 _CONTEXT_OVERRIDES

Provider/模型Context修正原因
copilot/claude-opus-4.7200Kmodels.dev 错报 144K
copilot/claude-opus-4.7-high200K同上
copilot/claude-opus-4.7-xhigh200K同上
copilot/claude-opus-4.61000000models.dev 错报 144K,实际 1M
copilot/claude-opus-4.6-1m1000000显式条目,避免 alias 转回 144K

get_model_context_length() 的 step 0 优先查 _CONTEXT_OVERRIDES,命中即返回,不再走 models.dev → 不再被错误数据污染。

reasoning_effort 配置修正:之前 ottor 把 reasoning_effort: high 写进 hermes config,但 Copilot Anthropic proxy 对 high 经常 503 / 长尾延迟 + cooldown 触发率高(详见 04-25 infra-alert-check 事故的前因)。改为 medium 后稳定。high/xhigh 只在显式选择对应模型变体时生效,不再做全局默认。

2026-04-13 summary_model 误配

Hermes config.yamlsummary_model 被设为不存在的 github-copilot/gemini-3-flash-preview,导致每次上下文压缩 400 model_not_supported。改为 gpt-4o-mini 后正常。详见 hermes-agent-setup

2026-05-07 claude-opus-4.7-1m-internal 进入 Copilot 公开模型清单

之前要用 1M 上下文的 Opus 4.7 必须靠 Copilot proxy 内部 list 拼名 + Hermes config.yaml 手动 model.default 写死(-1m-internal 不在 /models 返回列表,CLI selector 看不到)。5-07 重新拉 Copilot /models 后该模型已直接出现在公开清单hermes model selector 可一键切换,不再需要手 patch config。

含义:① skill / hermes-agent-setup 里”必须手写 default”的备忘可以撤回;② github-copilot/* 的注册表里也可以正式列入这一条而不是留作隐藏 fallback;③ 同时观察 claude-opus-4.7-high/xhigh 是否也跟着开放(截至 5-07 仍只是 1m-internal 露面)。