JianFeeeee
c0e08f907a
fix(channels): buddy 目录过滤不可调用模型(照参考 isChatModel 四类判据)
## 真实缺陷
`/v3/config` 的 `data.models` 混着**不是对话模型**的条目,我们原样全收 ⇒
生产源里 24 个模型,其中 `nes-gf` / `codewise-completions` / `codewise-rewrite` /
`codewise-jump` / `codewise-default-model-v2` / `hunyuan-image-alpha` / `auto`
全部调不通(`glm-5.1` 也 404)。用户选中报错,而错误文案指向**模型**
⇒ 极易被误判成"这个模型坏了"。
参考实现(buddy.ts `isChatModel` / `isAutoSelectAlias`)逐条给出四类判据,
且都有实测依据;本轮逐条移植:
① 自动选择别名 `auto` / `default`
⚠️ **只按这两个字面量**过滤,不做前缀匹配 —— 前缀会误伤
`default-model` / `fast-model`(国际版抽象别名,但被 craft agent 引用,
是官方推荐入口)。参考注释专门警告过这点。
② 补全/NES 专用:前缀 `nes-` / `completion-` / `codewise-`,或 `supportsExtra`
(参考实测 codewise-default-model-v2 → `code 11102 service info not found`)
③ `maxOutputTokens > 0 且 ≤ 256`(补全用途;对话模型普遍 ≥24000)
④ 带 `text-to-image` 标签(如 hunyuan-image-alpha)
⇒ 故 `models` 先建成 id→meta 映射(③④ 需要元数据),再逐条判定。
同时收 `data.agents[].models` 里**被 agent 引用**的清单并合并 —— 参考据此给
`agentReferenced` 打标(`hy4-preview-f` 只由本端点下发且被 agent 引用,
白名单式重建会把它丢掉)。
## 判据(1 条 + 变异 1/1)
`TestBuddyCatalogFilterDropsNonChatModels`:断言四类规则**都在**源码里
("有人精简掉一条"就会把不可调用模型放回选择器),并**反向**断言
`default` 没被写成前缀匹配(那会误伤 `default-model`)。
变异:删掉 `nes-` 规则 → 报红。
## 说明
这是上一提交(v2.0.30)同一轮的第二个发现:v2.0.30 修掉 URL 拼接后,
buddy 通道**才真正可达**,于是"可达之后目录里哪些真能调"这件事第一次暴露出来。
两个缺陷是串联的 —— 不先修 URL,这个目录问题无法被观察到。
2026-10-16 14:06:51 +08:00
..
2026-10-14 16:52:58 +08:00
2026-10-14 16:52:58 +08:00
2026-10-14 16:52:58 +08:00
2026-10-14 20:01:24 +08:00
2026-10-14 20:01:24 +08:00
2026-10-14 16:52:58 +08:00
2026-10-16 14:06:51 +08:00
2026-10-14 16:52:58 +08:00
2026-10-14 16:52:58 +08:00
2026-10-14 16:52:58 +08:00
2026-10-16 07:51:59 +08:00
2026-10-14 20:01:24 +08:00
2026-10-14 16:52:58 +08:00
2026-10-16 00:56:35 +08:00
2026-10-14 16:52:58 +08:00
2026-10-14 16:52:58 +08:00
2026-10-14 16:52:58 +08:00
2026-10-14 16:52:58 +08:00
2026-10-11 20:50:52 +08:00
2026-10-16 13:52:02 +08:00
2026-10-14 20:01:24 +08:00
2026-10-14 16:52:58 +08:00
2026-10-14 16:52:58 +08:00
2026-10-14 16:52:58 +08:00
2026-10-14 16:52:58 +08:00
2026-10-14 16:52:58 +08:00
2026-10-14 16:52:58 +08:00
2026-10-13 07:41:56 +08:00
2026-10-15 22:43:58 +08:00
2026-10-14 16:52:58 +08:00
2026-10-16 09:01:01 +08:00
2026-10-14 16:52:58 +08:00
2026-10-14 16:52:58 +08:00
2026-10-14 20:01:24 +08:00
2026-10-14 16:52:58 +08:00
2026-10-14 16:52:58 +08:00
2026-10-14 16:52:58 +08:00
2026-10-14 16:52:58 +08:00
2026-10-14 16:52:58 +08:00
2026-10-16 10:26:55 +08:00
2026-10-16 09:36:23 +08:00
2026-10-14 20:12:10 +08:00
2026-10-14 16:52:58 +08:00
2026-10-14 16:52:58 +08:00
2026-10-16 08:28:47 +08:00
2026-10-14 16:52:58 +08:00
2026-10-14 16:52:58 +08:00
2026-10-16 00:56:35 +08:00
2026-10-14 16:52:58 +08:00
2026-10-14 16:52:58 +08:00
2026-10-16 13:52:02 +08:00
2026-10-15 08:23:25 +08:00
2026-10-15 08:23:25 +08:00
2026-10-15 20:31:45 +08:00
2026-10-15 08:23:25 +08:00
2026-10-16 01:38:51 +08:00
2026-10-16 01:13:24 +08:00
2026-10-14 16:52:58 +08:00
2026-10-14 16:52:58 +08:00
2026-10-14 16:52:58 +08:00
2026-08-13 12:25:07 +08:00
2026-10-11 20:50:52 +08:00
2026-10-11 20:50:52 +08:00
2026-10-14 16:52:58 +08:00
2026-10-15 08:23:25 +08:00
2026-10-14 16:52:58 +08:00
2026-10-14 16:52:58 +08:00
2026-10-11 13:52:29 +08:00
2026-10-03 08:01:37 +08:00
2026-10-03 07:45:54 +08:00
2026-10-14 16:52:58 +08:00
2026-10-07 17:37:22 +08:00
2026-09-28 22:52:51 +08:00
2026-10-14 16:52:58 +08:00