Claude Code Router(CCR)Fusion 组合模型完全指南:为稳定文本模型叠加视觉、联网搜索与媒体工具能力
【免费下载链接】claude-code-routerOne local control plane for every AI agent: route across models, fuse new capabilities, orchestrate tools, and stay fully in control.项目地址: https://gitcode.com/GitHub_Trending/cl/claude-code-router
Fusion 是 Claude Code Router(CCR)中的虚拟模型组合机制:把你已经在稳定使用的基础模型与独立的能力模型或工具组合成一个新的可选模型,让原本"只会说话"的文本模型升级为会看图、能搜索、可生成图片视频、能调用内部 MCP 工具的增强型 Agent 模型。读完本文,你将掌握 Fusion 的工作原理、五大内置能力的具体配置步骤、组合命名规范,以及它在 CCR 源码中的实现脉络,能够直接在自己的路由与 Agent Profile 中落地一个可复用的 Fusion 模型。
Fusion 的工作方式:保留手感,补齐能力
Fusion 的核心价值在于保留基础模型的手感,同时补齐它缺少的能力。从架构上看,它是一条清晰的职责链:
- 基础模型继续负责推理、写作、代码生成与最终输出——这部分行为与你熟悉的模型完全一致;
- 当请求中确实需要某种缺失能力(看图、联网、生成媒体、调用内部工具)时,CCR 调用对应的能力模型或工具;
- CCR 把能力层返回的结果整理进上下文;
- 最后把整理好的上下文交还给基础模型,由它产出最终回答。
关键设计是:能力层是"按需接入"的。基础模型并不真正变成多模态模型或搜索模型,而是通过工具调用间接获得这些能力,因此组合后的模型在推理、写作、编码上的行为不会因为换用视觉模型而漂移。
保存后的 Fusion 模型会像普通模型一样出现在路由和 Agent Profile 中,可以被路由选择器直接命中,也可以配置为 Agent 模型的执行目标。它是一个可复用的新模型资产,典型用法包括:
- 把强文本模型升级成视觉模型(
GLM-5.2 + GLM-5V-Turbo = GLM-5.2V); - 把稳定代码模型升级成可联网检索最新资料的模型;
- 把通用模型升级为可产出媒体素材(图片、视频)的 Agent 模型;
- 把 Agent 模型接入团队内部系统(自定义 MCP 工具)。
五大能力矩阵
Fusion 在 英文主文档 中定义了五类可叠加的能力:
| 能力 | 入口 | 效果 |
|---|---|---|
| 内置图像能力 | ccr-fusion-builtins / vision_understand | 让不支持多模态的模型拥有视觉理解(图片、截图、图表、OCR) |
| 内置联网搜索 | ccr-fusion-builtins / web_search | 让模型获得实时检索能力,把最新信息带入上下文 |
| 生图工具 | FusionTools中的内置媒体工具 | 让 Fusion 模型生成图片,或基于 1–3 张本地图片进行编辑 |
| 生视频工具 | FusionTools中的内置媒体工具 | 让 Fusion 模型提交文生视频、图生视频、参考图生视频任务 |
| 自定义 MCP 工具 | FusionTools中的Add custom MCP | 把本地脚本、内部系统或远程服务包装成模型可调用的工具 |
其中生图与生视频属于"媒体工具"类别,与内置搜索工具的使用方式一致,不属于 ToolHub,也没有单独的 Fusion 配置板块;内置图像与联网搜索则直接对应 CCR 内置 Fusion 工具运行时 中FusionBuiltinToolKind = "vision" | "web_search"两个分支。
内置图像能力:让文本模型拥有视觉
能力组合
内置图像能力会把视觉模型作为能力层接到基础模型前面,不需要替换你原本熟悉的文本模型。视觉模型负责理解图片、截图、图表或 OCR 内容,CCR 将视觉结果整理给基础模型,基础模型继续负责推理、写作、代码生成和最终输出。
典型组合形式:
GLM-5.2 + GLM-5V-Turbo = GLM-5.2V这一方式也适用于 Codex 的 computer use 场景:将 GLM-5.2 与 GLM-5V-Turbo 组合后,GLM-5.2 可以接收由视觉模型整理后的屏幕、截图和界面信息,从而使用 Codex 的 computer use 能力完成观察、判断和后续操作规划。
配置步骤
- 新建或编辑 Fusion 模型;
- 选择能力
ccr-fusion-builtins / vision_understand; - 为Vision model选择真正支持图像理解的模型;
- 可选配置视觉模型自己的重试次数和备用视觉模型;
- 保存后即可作为路由目标或 Agent 模型使用。
备用机制只作用于内置图像工具的调用:如果 Vision model 在整理图片上下文时失败,CCR 会先重试这个 Vision model,再尝试配置的备用模型,基础文本模型保持不变。
模型分工与排查要点
Vision model 决定图片、截图、图表和 OCR 内容的理解质量;基础模型决定最终回答的风格、推理能力和代码能力。图像请求失败时,重点检查 Vision model 是否支持视觉输入、视觉模型的重试次数与备用模型配置,以及请求日志中的 Fusion 工具调用报错。
从源码看,CCR 为每个启用的 Profile 生成一个独立的fusion-vision-<profile>MCP server(stdio 子进程),通过VISION_MODEL、VISION_FALLBACK_MODELS_JSON、VISION_RETRY_COUNT等环境变量把配置注入运行时,见 packages/core/src/mcp/fusion-config.ts。retryCount在读取时会被限制在0 ~ ROUTER_FALLBACK_MAX_RETRY_COUNT之间。当请求携带[media_ref:...]图像引用时,CCR 会注入提示词,要求模型先调用视觉工具再回答(对应withFusionVisionToolInstructions的实现,packages/core/src/mcp/fusion-config.ts)。
内置联网搜索:让模型拥有实时检索能力
选择能力ccr-fusion-builtins / web_search,然后配置搜索服务。支持In-app Browser、Brave、Bing、Google CSE、Serper、SerpAPI、Tavily、Exa 等搜索服务,对应的 provider 枚举可在 packages/core/src/mcp/fusion-config.ts 中确认。
In-app Browser 搜索
In-app Browser通过 CCR Desktop 的隐藏内置浏览器窗口执行搜索:打开搜索结果页面并提取可见内容,再把证据提供给 Fusion 模型。它不需要外部搜索 API Key,适合想用桌面端内置浏览器完成联网检索的场景。
可配置项包括:
- 搜索引擎:Bing、Google、DuckDuckGo;
- 语言:例如
en、zh-CN; - 地区:例如
US、CN; - 安全搜索级别:默认、中等、严格或关闭。
注意:
In-app Browser依赖 CCR Desktop 的 Electron 内置浏览器能力,只在桌面端可用。CLI、服务器部署或纯 Web 环境没有内置浏览器集成,请改用 Brave、Bing、Google CSE、Serper、SerpAPI、Tavily 或 Exa 等搜索服务。若在非桌面环境配置了 browser provider,CCR 会注册一个 fallback 工具并在调用时返回明确的不可用说明(见 packages/core/src/mcp/fusion-config.ts)。
搜索失败排查
搜索失败时,相关信息包括搜索服务 Key 是否有效,以及请求日志里的 Fusion 工具报错。web_search 运行时支持count、language、country、safeSearch、freshness、includeDomains/excludeDomains等输入参数(见 packages/core/src/mcp/fusion-vision-mcp.ts),可按需在调用中指定。
生图工具:让文本模型直接产出图片资产
与内置图像能力的区别
| 能力 | 用途 |
|---|---|
| 内置图像能力 | 理解用户提供的图片、截图、图表和 OCR 内容 |
| 生图工具 | 生成新图片,或编辑 1–3 张本地输入图片 |
两者是互补关系:一个负责"看",一个负责"画"。
配置步骤
- 在Providers页面配置支持图片生成协议的供应商及模型(或导入已登录的 Grok Agent);
- 新建或编辑 Fusion 模型;
- 在Tools下添加Image generation(生图工具);
- 选择图片模型,例如
Provider/model; - 保存 Fusion 模型,并作为 Agent 模型或路由目标使用。
导入 Grok Agent 后,CCR 会自动提供grok-imagine-image-quality;ai-gateway 复用已有的 OAuth 登录态访问api.x.ai,不会启动 Grok CLI,也不会再次要求输入 xAI API Key。
生图工具有独立的重试次数和备用图片模型:如果选中的图片模型因可重试的媒体供应商错误而失败,CCR 先重试该模型,再依次尝试配置的备用图片模型,基础文本模型保持不变。
请求协议与幂等
CCR 通过 ai-gateway 的通用媒体协议调用供应商:
| 请求 | 用途 |
|---|---|
images/generations | 根据文本生成图片 |
images/edits | 编辑本地图片输入 |
工具调用接受可选的idempotency_key:一次用户意图应复用稳定的 Key,避免网络重试期间产生重复计费。底层实现由GatewayMediaExecutor完成,见 packages/core/src/media/executors.ts,图片编辑支持单图(image)与多图(images)两种载荷形态。
本地图片输入安全
图片编辑会校验真实路径、文件签名(文件头)和文件大小。CCR 默认允许范围明确的当前工作目录、系统临时目录和 CCR 配置目录;文件系统根目录、用户主目录及其上级目录不会被隐式信任。确实需要扩大读取范围时,请显式配置allowedInputRoots。
产物
生成的图片保存在 CCR 私有数据目录,结果包含:
- 本地文件路径
- MIME 类型
- 文件大小
- SHA-256
- 限时访问 URL(使用独立 token,不复用 CCR API Key)
生视频工具:异步视频任务
生视频工具把文本模型升级为可提交视频生成任务的 Agent 模型,支持文生视频、图生视频、参考图生视频三种任务。视频生成始终异步执行:启动调用立即返回 Job ID,工具随后轮询任务状态,直到任务完成、失败或被取消。
配置步骤
- 在Providers页面配置支持视频生成协议的供应商及模型(或导入已登录的 Grok Agent);
- 新建或编辑 Fusion 模型;
- 在Tools下添加Video generation;
- 选择视频模型,例如
Provider/model; - 保存 Fusion 模型并作为 Agent 模型或路由目标使用。
导入 Grok Agent 后自动提供grok-imagine-video。生视频同样拥有独立的重试次数与备用视频模型,且与图片模型的配置彼此独立——不同 Fusion 模型也可以选择不同的媒体模型。
请求协议与运行时行为
| 请求 | 用途 |
|---|---|
videos/generations | 启动文生视频 / 图生视频 / 参考图生视频任务 |
videos/{id} | 查询视频任务状态与结果 |
运行时行为包括:启动任务并返回 Job ID、轮询任务状态并向模型汇报进度、任务完成后返回视频产物元数据、用户取消请求时尝试取消或停止等待。请求超时与客户端取消仍然生效;并发数、保留期和任务超时是 CCR 内部安全策略,通常不需要在 Fusion UI 中配置。视频 URL 支持HTTP Range,播放器可以按需加载内容。
产物与排查
视频产物同样包含本地路径、MIME、大小、SHA-256 和限时 URL。失败时检查:供应商模型是否声明或实际支持视频生成、Fusion 工具是否绑定正确的视频模型、配置的重试次数与备用模型、ai-gateway 状态码与请求日志中的错误、以及图生视频/参考图生视频的输入是否位于允许的读取根目录内。
自定义 MCP 工具:接入内部系统
在 Fusion 模型的Tools中选择内置工具,或点击Add custom MCP接入自定义服务。自定义 MCP 支持:
- stdio:本地命令行工具;
- streamable-http / sse:远程 MCP 服务;
- Discover tools:读取 MCP server 暴露的工具。
这样可以把本地脚本、内部系统或远程服务包装成模型可调用的工具,让通用模型成为"可访问内部系统的 Agent 模型"。
Fusion 工具循环的特性
Fusion 工具循环不再设置轮次上限或工具调用次数上限;请求超时和客户端取消仍然生效。每个工具配置一个主模型,并可选配置重试次数与备用模型。保存 Fusion 模型后,CCR 会为它生成独立的运行时工具名,防止多个 Fusion 配置之间的模型绑定互相覆盖。
直接接入 MCP 客户端
需要绕过 Fusion、直接以 MCP 客户端接入媒体能力时,可以连接:
http://127.0.0.1:3456/__ccr/media/mcp Authorization: Bearer <CCR API Key>该端点使用 CCR API Key 认证;产物 URL 则使用独立的限时 token。旧/__ccr/grok-media/*路径仍作为迁移兼容入口保留。Fusion 内部通过随 Core 配置生成的stdioMCP 代理注册这些工具——代理直接返回当前 Profile 的确定工具清单,再把实际调用转发到上述私有端点,从而避免 HTTP MCP 发现失败或启动时序导致工具缺失。
内部策略配置参考(通常无需手动修改)
媒体工具的默认安全策略在配置中以mediaTools形式存在,完整示例:
{ "mediaTools": { "enabled": true, "artifactTtlHours": 24, "jobTimeoutMs": 600000, "maxImageConcurrency": 2, "maxVideoConcurrency": 1, "allowedInputRoots": [] } }各字段含义:
enabled:是否启用媒体工具;artifactTtlHours:产物保留时长(示例为 24 小时);jobTimeoutMs:视频任务超时(示例为 600000ms,即 10 分钟);maxImageConcurrency:图片任务最大并发(示例为 2);maxVideoConcurrency:视频任务最大并发(示例为 1);allowedInputRoots:允许读取的本地目录白名单(默认空,仅信任工作目录、临时目录与 CCR 配置目录)。
旧的grokMedia配置会在读取时迁移到mediaTools;旧的grok-cli媒体绑定会解析到已导入的 Grok Agent 或已配置的 Grok API 模型,不会再启动 CLI。媒体执行也不会再启动嵌套 Agent 或 CLI 进程。
组合命名与落地建议
用组合命名让团队一眼看懂模型能力来源,例如:
GLM-5.2 + GLM-5V-Turbo = GLM-5.2V代码模型 + Web Search = 可检索最新资料的代码模型通用模型 + 生图/生视频工具 = 可产出媒体素材的 Agent 模型通用模型 + 自定义 MCP 工具 = 可访问内部系统的 Agent 模型
落地时注意两点:
- 验证供应商能力:先用一个测试 Fusion 模型验证供应商是否真正实现了对应的媒体端点(图片/视频协议),再投入生产路由——模型选择器显示的是"声明或检测到对应媒体能力"的供应商模型,实际能力仍需以供应商实现为准;
- 分层排查:任何能力层失败时,先检查能力模型本身(是否支持视觉输入 / 媒体协议)、再检查重试与备用模型配置、最后看请求日志中的 Fusion 工具调用报错,基础文本模型不会因能力层故障被替换。
相关阅读
- Fusion 主文档(英文) 与 Fusion 组合模型(中文)
- 内置图像能力配置
- 内置联网搜索配置
- 自定义 MCP 工具配置
- 生图工具详解
- 生视频工具详解
- 核心实现:Fusion 内置工具配置编译与 MCP 注册、内置 vision/web_search 工具运行时、通用媒体协议执行器
【免费下载链接】claude-code-routerOne local control plane for every AI agent: route across models, fuse new capabilities, orchestrate tools, and stay fully in control.项目地址: https://gitcode.com/GitHub_Trending/cl/claude-code-router
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考