Skip to content

Releases: Qsir-Q/cc-switch-intention

Release list

intention-router

intention-router Pre-release
Pre-release

Choose a tag to compare

@Qsir-Q Qsir-Q released this 28 Feb 03:02

✨ 本次更新概要

本次版本主要围绕 Claude CLI 意图路由 能力展开,支持在多个供应商 / 模型之间,根据请求内容自动选择更合适的目标,同时保证同一会话内供应商稳定不跳变。并补充了相关用户手册与设计文档。


🧠 新增:Claude CLI 意图路由

仅对 Claude CLI /v1/messages 生效,前提是已启用代理和 Claude 接管。

  • 支持为 多个 Claude 供应商 配置“意图描述”,由路由模型根据描述与当前请求内容自动选择最合适的供应商。
  • 支持指定 “路由专用供应商/模型”
    • 在设置中可选定一个供应商作为“路由模型”提供方;
    • 由该供应商的主模型负责阅读各供应商描述 + 用户请求,返回一个供应商/模型索引。
  • 供应商内部支持 模型级路由
    • 在同一供应商下,根据请求长度,在默认模型 / 其他 Claude 模型之间自动选择;
    • 路由模型调用失败时,自动回退到基于长度的简单启发式策略。

🔁 会话级绑定供应商

为避免“同一个任务中途换供应商”的体验问题,引入 会话级绑定策略

  • 仅在 会话首轮请求 时执行跨供应商意图路由:
    • 请求的 messages 中只有一条 role: "user" 消息;
    • 尚无任何 role: "assistant" 消息。
  • 一旦首轮请求为该会话选定了供应商,后续轮次不再做跨供应商路由
    • 后续请求只会在该供应商内部做模型级路由;
    • 即使中途修改了供应商的意图描述,老会话不会被重新路由,只对新会话生效。

这样保证了:

同一会话内只在第一次提问做意图识别,后面都用第一次选中的供应商继续。


🧩 供应商级配置:意图路由描述

在「编辑供应商」中新增 / 完善了意图路由相关字段:

  • 意图路由描述(Intent Description)
    • 用于告诉路由模型“这个供应商适合什么场景”;
    • 路由时优先使用该字段;为空时回退到供应商的 notes 描述。

推荐写法:

  • 适合复杂数学推理与公式推导
  • 适合大规模代码库的跨文件分析与重构建议
  • 适合高并发下的日常对话与短代码解释
  • ❌ 仅写 官方代理 等信息不足的描述

🖥️ UI 与交互改进

  • 主界面顶部(Claude 应用区域)新增 “意图路由”开关
    • 图标为 ✨(Sparkles),风格与接管 / 故障转移开关一致;
    • 直接映射到「设置 → 高级 → 代理服务 → 启用 Claude CLI 意图路由」。
  • 意图路由开关文本说明中去掉了对 Haiku/Sonnet/Opus/Reasoning 等具体模型名的硬编码描述,改为面向“已配置的不同模型”,适配跨供应商场景。

📚 文档更新

  • 更新 docs/proxy-guide-zh.md
    • 在代理功能概览中补充了 “意图路由(Claude CLI)” 作为一项核心特性。
  • 用户手册新增章节:
    • docs/user-manual/4-proxy/4.6-intent-routing.md
      • 说明如何启用意图路由(代理 + Claude 接管 + 设置开关 + 主界面开关);
      • 解释供应商意图描述的作用与写法;
      • 详细说明会话级绑定行为和内部路由流程;
      • 提供数学 / 代码场景下的实际使用示例与 FAQ。
  • 设计文档(SDD):
    • 新增 docs/INTENT_ROUTING_SDD.md
      • 记录意图路由的设计背景、目标与范围;
      • 描述 Claude /v1/messages 入口的处理流程、会话 ID 提取与“首轮判定”逻辑;
      • 拆解供应商级 / 模型级路由实现细节与数据结构;
      • 说明未来扩展到 Codex / Gemini / OpenCode 的方向与潜在风险。

⚠️ 兼容性与注意事项

  • 目前意图路由只影响 Claude CLI 请求,不会改变 Codex / Gemini / OpenCode 的行为。
  • 某些 Claude 兼容接口供应商如果不完全支持 /v1/messages 语义,路由模型调用可能返回错误,此时会:
    • 打印警告日志;
    • 自动回退到基于长度的简单路由策略。
  • 修改供应商的“意图路由描述”后:
    • 不会影响已有会话
    • 只对新开启的会话生效(即仅首轮请求会重新跑跨供应商路由)。