English | 简体中文

月汐 kimi-tide — 装在 DSH 上的小插件:自动替你换 AI,日常活交给便宜的,关键活交给更聪明的,省钱又不用自己切

Awesome DSH Plugin Release CI License Contributors

**月汐(kimi-tide)是一个小插件,装在 DSH 上。DSH 就是你平时跟 AI 一起写代码、干活的工具(DeepSeek 官方开源)。** **它只做一件事:自动替你换一个更合适的 AI。** 你手里通常接了好几个 AI——有的便宜、有的聪明、有的看得懂图。以前全靠自己手动切,切完还常忘了切回来;装上月汐,它每一轮自己挑:**日常活先给便宜的,要紧的活交给更聪明的,图交给看得懂图的。** **它给你三样东西:** - **省钱**——不该花的地方不花。闲聊、翻译、改文案、整理资料这类活,继续用最便宜的那个,**好钢只用在刀刃上**。 - **不掉链子**——关键处有强模型兜着。写代码、审代码、做数学各自走更强的那个;要紧的产出还能先让强模型审一遍(问题按严重度列出 + 改进建议 + 通过/不通过),再交到你手上。 - **不用记着切回来**——贴完一张图,只有那一轮换到看得懂图的 AI,下一轮自动回到你原来用的。**贵 AI 是按「段」用的,不是按「整场会话」用的。** (下文里「AI」和「模型」是一回事——DSH 管它们叫模型。) **适合谁**:在用 DSH、且接了不止一个模型的人。 **不适合**:只用一个模型,或还没跑起 DSH 的人(先把 DSH 用起来,再回来装这个)。 --- ## 它解决什么问题 **场景一:贴了张截图,模型说看不了** - 以前:手动切到能看图的模型 → 贴图 → 问完 → 记得切回来。 - 装后:直接贴。带图的消息自动交给能看图的模型,下一条纯文字消息自动回到默认模型。 **场景二:切完模型,忘了切回来** - 以前:为一张图切到贵的模型,之后整场会话都在烧贵的额度。 - 装后:月汐按「每一步」决策,一会话不绑死——图处理完,下一条消息就回到你的默认模型。 **场景三:额度总比预期烧得快** - 以前:所有消息——包括「你好」和「帮我看下这句翻译」——都走最贵的模型。 - 装后:选「省钱」预设(一套配好的「默认模型 + 规则」方案),闲聊、翻译、日常杂活自动走便宜模型,代码和图才动用贵的模型;面板实时显示套餐余额(Kimi/GLM 等带套餐的模型,无套餐的置灰不显示)。 --- ## 30 秒看懂路由逻辑 一条消息进来,月汐按这个顺序决定用哪个模型: 1. **显式点名**:消息里写 `@kimi`(provider 级:模型取你预设里配过的那个)或 `@kimi/k3`(精确钉到某个模型)→ 最高优先。 2. **规则命中**:按预设规则判定——带图?命中哪组关键词?→ 规则按**特异度**排序(命中词多者优先、带图恒第一、平手按列表序),排序后**首条目标可用的规则**说了算(目标不可用自动降级下一条)。 3. **默认打底**:都没命中 → 用预设的默认模型。 4. **带图保险**:就算选了纯文本模型,消息带图也会被强制改道给能看图的模型——不会崩。 ```mermaid flowchart LR A["💬 你的消息
(本轮新消息)"] --> B{"显式 @模型?"} B -- "@kimi 等" --> H["🎯 显式指令
最高优先"] B -- 否 --> C["📏 预设规则链
带图 / 关键词组
特异度降序 · 首条可用生效"] C -- 命中 --> D["🌙 规则目标:模型|协作流
(不可用则降级跳过)"] C -- 未命中 --> E["💰 预设默认模型
(打底)"] H --> J D -- "目标=协作流" --> T["🌊 转述流
vision-exp 读图转文字"] D -- "目标=模型" --> F E --> F{"带图且目标
文本-only?"} T --> K["✍️ 转述文字
文本模型接力"] F -- 是 --> G["🖼️ 图像护栏
改道多模态候选"] F -- 否 --> J["📋 dock 面板留痕
选谁 + 为什么"] G --> J K --> J ``` > 图中「协作流」= 一条「先 A 后 B」的自动流程(比如:图先转成文字,再交给便宜模型作答);「多模态」= 能看懂图片的模型;「转述」= 让能看图的模型(图中 vision-exp 是 Kimi 家一款能看图的模型名)把图里的内容写成文字;「dock 面板」= 输入框下方的「🌙 月汐」面板。 ## 它长什么样 [![kimi-tide 1.0.0 架构图(协作编排)](docs/assets/readme/architecture-overview.png)](docs/assets/readme/kimi-tide-architecture.html) *点图看大图。`docs/assets/readme/kimi-tide-architecture.html` 下载后用浏览器打开,是可平移缩放/搜索的交互式架构图(明暗双主题,节点可溯源到源码)。* --- ## 快速开始 ### 1. 前置条件 - Node.js ≥ 22 - DSH `@deepseek-ai/dsh@0.1.2-rc.1` 及以上(本版实机验证于 `0.1.5-rc.1`) - 你想互相调度的模型已接入 DSH——**不限哪一家**。想用 Kimi,就准备一把 **Kimi Code Console API Key**(在 Kimi 控制台生成的密钥;配额面板也用这把 key) ### 2. 接入候选模型(DSH「设置 → Models」页) 「设置 → Models」里添加模型来源(示例:**`kimi-coding`**,`apiKeyEnv` 填 `KIMI_API_KEY`,然后在凭据区粘贴你的 Key——k3 等 4 个 Kimi 模型会自动出现在目录里)。**接几家都行**:月汐的候选池就是这页的全部模型。密钥由 DSH 托管保存,**不会写进任何插件配置文件**。 ### 3. 安装插件 ```bash cd packages/dsh-kimi-tide npm install && npm run build && npm pack dsh plugin --profile web add ./dsh-kimi-tide-.tgz ``` ### 4. 用起来 重启 `dsh web`: - **设置 → 月汐**:预设行选「省钱」或「能力」,路由器即刻上岗; - 消息里 **`@kimi`** 可以显式点名,或者靠内置关键词组自动改道(比如消息里出现「代码」就走编码模型); - 输入框下方的「🌙 月汐」面板实时显示每一步选了谁、为什么; - ✅ **30 秒验收**:发一句「帮我写个函数」——面板应显示命中 code 规则并改道到编码模型。看不到理由条 = 路由器没上岗,回「设置 → 月汐」确认已选预设。 --- ## 预设与规则 预设 = 一套「默认模型 + 规则」方案,一键全局切换;月汐自带两套: | 预设 | 默认模型(没规则命中时用它) | 规则 | 适合谁 | |---|---|---|---| | 关闭 | — | — | 想完全手动选模型的人 | | 省钱 | `deepseek-v4-flash` | 带图 → `k3`;代码关键词 → `kimi-for-coding`;翻译关键词 → `deepseek-v4-flash` | 额度敏感、日常杂活多 | | 能力 | `k3` | 带图 → `k3`;审查 → `k3`;代码 → `kimi-for-coding`;数学 → `deepseek-v4-pro`;长文 → `k3`;写作 → `deepseek-v4-pro`;翻译 → `deepseek-v4-flash`;闲聊 → `deepseek-v4-flash` | 追求最佳产出质量 | 内置 7 组关键词(词表可改,也可自建新组): | 组 | 方向 | 内置词表(可改) | |---|---|---| | `code` | 编码 | 代码, code, bug, 重构, refactor, 实现, 函数, 测试, 接口, 联调, 部署, 性能, 报错, 日志, 编译, 命令, 脚本 | | `review` | 审查 | 审查, review, 评审, 挑毛病, 复检, 检查, audit, 意见, 打分 | | `writing` | 写作 | 写作, 文案, 润色, 改写, 扩写, 标题, 推文, 周报, 演讲稿, 总结 | | `translate` | 翻译 | 翻译, 译成, 中译英, 英译中, translate, 本地化 | | `longdoc` | 长文 | 长文档, 通读, 逐段, 全文, 上万字, 大文档 | | `math` | 数学 | 数学, 证明, 推导, 求解, 公式, 数论, 概率, 逻辑题 | | `chitchat` | 寒暄 | 你好, 谢谢, 怎么样, 随便, 聊聊, 天气 | > `review` 组默认服务于**评审协作流**(请强模型评审本轮产出)——机制、三个开关与今天的边界见下文「多模型协作评审」一节。 两个常用微调(都在「设置 → 月汐」里点几下就能配): - **最少命中词数**:给规则配一个下限(比如 2),一句话里至少命中这个词组的 2 个词才触发——避免「做个方案」这种顺带提到关键词的普通句子误触发。 - **推理力度(effort)**:给规则目标或默认模型指定「思考深度」档位(想得越深越慢越贵);模型不支持你配的档位时自动忽略,不会报错。 ### 用量与余额(跟着命中的目标自动切) 面板第二行的额度槽会**跟随当前命中的目标**自动换形态:订阅类(code plan)显示用量窗(周 / 5h,条画的是**剩余**比例),API 计费类显示**余额**(余额不足以调用 API 时会明确标注)。旁边还有一个**总览**按钮——一屏列出全部已注册的源,以及某个源为什么没数据:「该套餐无公开 API」/「key 未配置」/「取数失败」三态分别说清,不用你猜。 > 取数用的凭据按 **`settings.yaml` 里该 provider 配置的 `apiKeyEnv` 名字**解析(并自动兼容内置别名)——**你给 provider 起的 key 名与插件内置默认名不一致时,面板照样取得到数**。 ### 说明页与语义确认闸 - **「设置 → 月汐 → 说明」**:面板每个元素是什么、设置里每个字段什么意思,八个分区讲清,关键条目带**当前值**(如「触发方式:当前=手动 ⇒ 关键词命中不会触发评审」),另有一张**症状 → 原因**表。 - **语义确认闸**(默认关闭,需在配置里开):开启后关键词命中不会立刻改道——先让**本预设的打底模型**确认「这是本轮真意图吗」,判否就跳过该条规则、继续匹配后续规则。超时/模型不可用/输出解析失败一律**按原关键词结果走**;显式 `@` 轮与「带图规则已排首位」的轮不发判官调用。配置项 `preset.hitConfirm`。 - **判词写在决策原因里**:判否 / 确认 / 无结论会前置到面板的决策原因串(如「语义闸无结论 1200ms(code-kfc)」)。因为判否会让规则出链、最终落打底,带判词注记的**打底决策也会照常上报**——否则「判否」这个最该被看见的结果反而看不见。 - **判官按目标能力关掉思考**:判官是推理模型,而这道闸只给它 64 token 的预算——如果放任它先思考,预算会被思考吃光、正文一个字都不剩,判词必然不可解析(**闸门静默失效,什么都不改**)。所以判官目标声明支持「off」档位时,插件会显式关掉思考;目标不支持(例如 k3)就不下发,绝不硬塞一个它不认的档位。 ### 显式 @ 的两种写法 - `@kimi`(provider 级):模型取**你预设里配过的那个** kimi 目标(不是目录里碰巧排第一的),决策原因里会写明依据; - `@kimi/k3`(精确到模型):直接钉到该模型——想用哪个模型就用哪个,不受候选池顺序影响;模型不可用时会**明确告诉你回落到了谁**,不会静默换人。 - **只有真的 provider 才算指令**:`@` 后面若不是本插件认识的 provider——例如工作区路径引用 `@README.md`、scoped 包名 `node_modules/@deepseek-ai/…`、路径里的 `@xxx`——**不会被当成显式指令**,该轮照常走关键词规则,决策原因里写明「`@x` 非本路由器已知 provider(已忽略)」。 匹配细节(词边界、特异度排序、降级语义)、带图行为、配置全字段:见[路由器架构详解](packages/dsh-kimi-tide/docs/router.md)。候选池 = Models 页全量目录,任何模型都能当默认或规则目标。 ## 多模型协作评审(强模型把关) 路由决定「这一步用谁」,评审决定「这一步干得够不够好」。两者可以分开用,也可以一起用。 **它做什么**:一轮结束后,月汐把「本轮你的需求 + 主模型产出」发给**你指定的评审模型**(通常是更强、更贵的那个),拿回一份结构化评审——问题(按严重度分级:阻塞/建议/可选)→ 改进建议 → 结论(通过/有条件通过/不通过),并以**评审卡**贴在那一轮下面。 **三个开关**(设置 → 月汐 → 协作流): | 开关 | 今天的实际行为 | |---|---| | 触发方式 | `关键词`:消息命中指定关键词组才评审;`手动`:随时敲 `/kimi-tide review` 评审上一轮 | | 轮数 | 1–3,约束评审往返次数 | | 自动修订 | **尚未实现的配置项**——勾选不会产生任何行为(字段保留,实现排在规划中) | **它今天不做的事**:不会自动把产出退回重做,也不会替你改代码。评审判「不通过」时,下一步由你决定——这是有意的取舍:默认不烧强模型额度,也不自动改掉你满意的产出。 **成本**:评审只发生在**命中的轮**,且只把该轮产出切片发给评审模型(单段上限 12000 字符、60 秒超时、失败不打断本轮)。研究仓库引用的业界数据里,对抗式评审回路的 token 消耗常在单模型的 2–3 倍量级——**本插件自身尚未测量**。 **证据分级**:机制设计与三轮实证见 [kimi-tide-research](https://github.com/tafcear/kimi-tide-research)。其中「评审能否提升弱模型产出质量」**尚未度量**(意见接受率、与「强模型独立完成」的对照基线、修复引入新问题的比率均无数据),因此本节不写效果数字;「转移效率对照实验」已立为 v1.4.0 的发布前证据。 --- ## 常见问题 **Q:以前的 OAuth 接入方式去哪了?** A:退役了。DSH 官方生态已原生支持 Kimi 接入,自研的那层属于重复造轮,已整体删除。现在一把 Console API Key + 官方 Models 页配置即可。历史存档见 [`docs/legacy-setup.md`](docs/legacy-setup.md)。 **Q:还需要装 Kimi CLI 并 `kimi login` 吗?** A:不需要。一把 Console API Key + 官方 Models 页配置即可。 **Q:带图会话有什么限制?** A:默认「锁存」姿态下,会话一旦带过图就锁定在能看图的模型上——如果它的额度/Key 失效,这个会话切不回文本模型,只能新开。想避免:把预设的带图兜底改成「懒转述」(图片先转成文字,文本模型接力)或「盲答」(当没图处理)。转述结果有缓存,失败不会反复重试。重要的带图任务,保持模型额度健康即可。 **Q:之前听说有个「能力评分引擎」?** A:退役了。以前靠机器打分选模型,黑箱难懂;现在改成你写得出的规则——命中即路由,未命中走默认,每个决策你都能读懂、改得动。旧评分配置升级时自动转成预设。 **Q:路由配置存在哪里?升级会丢吗?** A:存在 DSH 设置里(「设置 → 月汐」编辑,重启保持)。跨版本升级自动迁移,旧配置自动留档;细节见[路由器架构详解](packages/dsh-kimi-tide/docs/router.md)的「迁移链」节。 --- ## 版本与路线 > 当前版本:**v1.3.0(2026-09-15)** - 每个版本你得到了什么:[CHANGELOG.md](CHANGELOG.md) - 维护者证据链(commit 锚点 / 验收记录):[docs/release-evidence.md](docs/release-evidence.md) - 规划中:子代理转述、0.8.5「强化与包装」小版本——详见[证据链文档](docs/release-evidence.md)「规划中」条。 --- ## 文档索引 > 这个项目的三条原则:**官方优先 · 规则透明 · 决策可观测**——路由依据是你写得出的规则,每次自动选路都有理由、有留痕。 **我想用** - 快速开始(本页) - 常见问题(本页) - [更新日志](CHANGELOG.md) **我想深挖** - [路由器架构详解](packages/dsh-kimi-tide/docs/router.md):预设/规则/降级/迁移链/配置全字段 - [交互式架构图](docs/assets/readme/kimi-tide-architecture.html)(下载后浏览器打开;静态版见上文「它长什么样」) - [DSH 宿主平台契约调研](docs/host-platform-map.md) - [项目定位与维护策略](docs/positioning.md) - [双模型协作闭环方法论](docs/agent-collaboration-loop.md)(本项目自己的开发方式;独立研究见 [kimi-tide-research](https://github.com/tafcear/kimi-tide-research)) **我想参与** - 来 [Discussions](https://github.com/tafcear/kimi-tide/discussions) 聊使用体验 - 报告问题、提交修复(欢迎任何形式的贡献,见下方贡献者) --- ## 开发与测试 ```bash cd packages/dsh-kimi-tide npm install npm run typecheck # tsc --noEmit npm test # vitest npm run build # tsc 宿主 + esbuild 浏览器 ``` 质量基线:全量测试绿 + typecheck 0 错误 + build 通过方可提交。本仓库实践「实施 → 独立审查 → 修复 → 复检验收」双模型协作闭环(见 [`docs/agent-collaboration-loop.md`](docs/agent-collaboration-loop.md))。 **文档门禁**:`npm run check` 跑三条机器门禁——CHANGELOG / README / package 版本三方一致、全库文档链接不断、两个 README 双语对一致(版本行 / 章节骨架 / 徽章 / 本地文档链接集合四项,规则见 [`docs/agents/readme-pair.md`](docs/agents/readme-pair.md))——任何用户可见改动,中英两份 README 必须同一次提交里一起改。 **Release 双语四段式**:每个新版本的 Release 正文(= 附注 tag 消息)必须是**双语**——中文整块在上、English 整块在下,每种语言内部四段:① 一句话定位 ② `本次更新` / `What's new` ③ `安装与升级` / `Install & upgrade` ④ `验证与验收` / `Verification & acceptance`。打 tag 前用 `node scripts/check-release-notes.mjs --file <正文草稿>` 自检,Actions 在 `gh release create` 前再拦一次(模板与细则见 [`docs/agents/release-notes.md`](docs/agents/release-notes.md))。 **发布门禁**:任何版本发版(打 tag / 触发 Actions Release)前,必须在真实宿主上跑通该版本的实机验收清单并全绿,且由维护者裁定 tag——「单元测试绿」不等于「宿主里能跑」。各版本验收记录见 [docs/release-evidence.md](docs/release-evidence.md)。 > **发布规范(维护者)**:DSH 插件必须声明 `dsh.bundle.patch`(指向 `cordis.patch.yml`)才能作为 profile 层加载。本插件已按官方规范声明,升级版本时请勿移除该字段。 --- ## 贡献者 - 感谢 [@dracpet](https://github.com/dracpet) 的实机诊断与社区贡献:[PR #1](https://github.com/tafcear/kimi-tide/pull/1)(OAuth 过期刷新)、[PR #2](https://github.com/tafcear/kimi-tide/pull/2)(`commands/execute` 跨宿主契约容错)、[PR #3](https://github.com/tafcear/kimi-tide/pull/3)(YAML null 配置归一化)与 [Issue #4](https://github.com/tafcear/kimi-tide/issues/4)(rc.2 投影 wire 契约诊断)——你的反馈直接加固了 0.5.x–0.6.0 的发布质量。 - 感谢 [@pandashere](https://github.com/pandashere) 的 [dsh-kimi-bridge](https://github.com/pandashere/dsh-kimi-bridge)(MIT):项目初期的 Kimi CLI 桥接由此起步,早期审查轮与双面插件/投影机制为月汐的面板链路提供了先行验证;该组件已随官方接入路径成熟而退役归档(git 历史保留),特此致谢。 - 也欢迎任何形式的贡献:报告问题、提交修复,或来 [Discussions](https://github.com/tafcear/kimi-tide/discussions) 聊聊使用体验。 ---

README made with beautify-github-readme

## 许可证与合规提示 - **kimi-tide 本体**:[MIT](LICENSE)(Copyright 2026 kimi-tide contributors) - **第三方组件**:`@earendil-works/pi-ai`(MIT)、`@deepseek-ai/dsh-llm-pi-ai`(MIT, DeepSeek)、`schemastery`(MIT)、`zod`(MIT)、`yaml`(MIT)、`dsh-kimi-bridge`(MIT,历史致谢,已归档) - **合规**:默认走 **Console API Key 官方路径**,个人使用安心;Kimi Code 订阅条款仍以官方表述为准,请勿高频批量调用或共享密钥。 - 本仓库**不含任何凭据**;请勿将 `~/.dsh/.credentials.yaml`、环境变量中的密钥提交到仓库。