dsh-kimi-tide

modeltested: passnpmMIT

Per-step model router: named presets with ordered image/keyword-group rules route each agent step across every mounted provider and model, adding collaboration flows for image transcription, an image guard, a multi-plan quota panel, and per-step decision observability.

下载量 / Downloads
1,894
依赖体积 / node_modules
6.61 MB
测试时间 / Tested
2026-11-06
DSH 版本 / Version
0.2.2-rc.1

Install

dsh plugin --profile web add dsh-kimi-tide

Sandbox test results

StageResult
1 install✓
2 list✓
3 mount✓
4 boot—

Four stages run in an isolated sandbox: install (network on) → list → mount → boot (last three with no network).

README

dsh-kimi-tide(月汐)

DeepSeek Harness(DSH)的「按模型强项编排工作流与各路代理」插件:命名预设 + 有序规则 + 分工表 + 协作流——每一步(含派出去的每一步)按你写一次的口径选模型;没有规则命中时使用默认目标(预设默认模型)。带图像护栏、图像转述流、多 plan 配额显示,每次选了谁、为什么,面板上看得见。

当前状态:v2.2.4(2026-10-15,Releases),1227/1227 测试绿。v2.2.4 修掉"档位不可选"被说成"模型未声明档位":设置页分工表的档位下拉全部禁用时,唯一的禁用文案把"没数据"说成了"模型能力缺失"(实机:后端的 zai-coding-cn/glm-5.3 在运行包里明明声明了 low/high/max,真身是宿主发布的档位表是空表);现在禁用态分两态(「档位表未取到」/「该模型未声明档位」)+空表时卡片顶部给一条可核对的来源说明,宿主对「枚举到模型却无档位」留警告并按 5s/20s 自动重枚举(不必重启),配置里的目标不在挂载表时同样留痕;单帧空表的启动窗口不报警。v2.2.3 修掉分工表第 3 档「队友角色改道」的一处静默失效:设置页显示第 3 档已就绪(8 个角色参与派发改道),但按认领名派出去的队友全部跑在默认目标上(实测 backend/data/qa 三个认领队友全落 deepseek-official/deepseek-flash,面板与日志都无异常)。根因是身份只读了一个面:宿主名册的非抛错探测面 tryMembership() 对带 subagent/descriptor 的 continuable 子会话(=今日 spawn_teammate 队友的形态)恒返回 undefined(roster.js:64-98 的 descriptor 抢判),而宿主 Team 工具自己走的抛错版权威面 membership(agent) 对同一形态答得出真身份。现在身份解析改为 resolveTeamMembership:权威面优先 → 失败回落探测面 → 两面皆无则 undefined(与修前逐字节一致),第 3 档分工表与派发护栏共用同一条判据(不再出现「分工表认、护栏不认」的分叉);改道生效时派发台账记 basis='role' +队友名。回归钉:把身份判定改回只用探测面 ⇒ 新用例红(落默认目标、via default、台账 keep)。v2.2.2 修掉两条会让人白等一轮的缺陷:①规则目标的上下文窗口纳入路由判定——此前规则链只判「目标在候选目录里可用」与「带图时支持图像」,从不读目标的 contextWindow,于是一旦会话累积超过规则目标的窗口(明确复现:33 万 token 的会话命中 256K 的模型),整轮请求在网关侧被拒、报错信息还是空的({"code":400,"message":""});现在装不下就跳过该条规则继续降级链、全部装不下落默认目标,占用读宿主令牌度量、预留 32,000 token,窗口或占用未知一律放行(行为与修前逐字节一致),降级原因写进决策原因串供面板判读;默认目标自身装不下时也会预警(仍照旧路由,不替你改道),并注册宿主 agent/request-error,在「空 message 的 400 + 本插件选定的目标 + 窗口已知」时记一条可检索的归因日志(不改写那条报错、不重试)②派发护栏在岗可见 + fail-closed(开关开着而环境给不出护栏时不再静默;dock 标记三态:在岗 / 用户关闭置灰 / 环境不满足警示),并修掉一处真机抓到的注册回归(环境探测把宿主的 tools.guard 摘成裸引用 ⇒ this 丢失 ⇒ 注册必抛,dock 显示「未在岗(注册失败)」);同批修掉 dock 紧凑态主按钮不自收导致的显示错位(长 provider/model 溢出按钮、盖住宿主的模型选择控件)。v2.2.1 修掉 v2.2.0 派发护栏的一处致命判据——护栏此前对主会话(它唯一的设计对象)完全不生效:宿主给「没有父会话的根会话」返回的 role: 'lead' 被误当成队友身份,于是主会话自己派出的活从不被拦(子代理侧倒是拦得住);同批把拦截范围扩到 workflow(脚本里 agent() 一次都没点名目标 ⇒ 拒绝,拒绝理由给出两条改法,确实要走默认目标就把默认目标显式写进去),给分工表技能正文补「派完怎么验」一节(判据只有子会话首条 request/header),新增派发路由核验脚本 scripts/acceptance/check-dispatch-routing.mjs,并加了密钥门禁(npm run check 第六条:cordis*.yml 出现赋值型密钥字段或密钥字面量即红,输出只给掩码)。v2.2.0 新增派发护栏(dispatchGuard,默认关):分工表认的是队友身份,所以派给裸 subagent / subagent_fork 的活结构上不可能被改道——开启后这类派发被拒绝,拒绝理由写明该把活派给哪个角色的队友(护栏只拒绝、不自动改派);同批新增角色领域词(roles.<id>.keywords)与判据文档 [docs/dispatch-guard.md](docs/dispatch-guard.md),并把本 README 首屏、hero 素材与架构图统一换到「按模型强项编排」的对外定位。v2.1.4 是文档与门禁版本(产品行为与 v2.1.3 一致、无功能变更):把这份 README 补齐到与已发布内容一致(面板滚动修复/显示名守卫/反馈与提问),并把它的首屏状态行接进版本一致性门禁(npm run check 会拦「只升状态行、正文不动」);v2.1.3 给预设/角色的显示名加密钥守卫(疑似密钥或超 40 字符即拒绝落盘),并把反馈入口补进 README 与 issue 模板;v2.1.2 修掉决策面板「自身滚动被当成页面滚动」导致滚动条拖不动、点一下就消失的缺陷(判据改按事件源归属,页面/聊天区滚动仍照旧收起);v2.1.1 只做文档与验收回填(无功能变更);v2.1.0 把路由页从「四个并列控件」重排成一条五档决策链(显式 @ > 调用方点名 > 分工表 role > 关键词规则 > 默认目标)+顶部摘要说明,并新增作用域徽标(主会话 / 派发时)、重叠解释条、测试场「派给谁」与统一路由表 routes(v7 配置);同时完成文案 locale 化(600 键 × 2 语言,英文界面可用,中文逐字不变)。路由决策语义零变更——配置里没有 routes 的文档行为逐字节不变。版本历史见仓库根 [CHANGELOG](../../CHANGELOG.md);项目介绍与快速开始见[根 README](../../README.md)。匹配语义(词边界/特异度排序/最少命中词数)、effort 推理档位、v7 配置全字段与迁移口径,见 [docs/router.md](docs/router.md);v2.1.0 实机验收清单与 v2.1.1 追加面核对(§4.1)见 [docs/routing-ia-acceptance.md](docs/routing-ia-acceptance.md)。

0.4.x 起插件零接入层代码——Kimi 模型经官方 pi-ai 原生 kimi-coding 路由(设置 → Models 配一把 Console API Key)进 DSH LLM 注册表,自研 OAuth 接入层(约 740 行)整体退役。插件只保留官方生态没有的能力:路由、护栏、协作编排、观测。

模型(经 kimi-coding 路由)

模型 · 说明 · 上下文

kimi-for-coding · Kimi K2.7 Code(编码任务主力) · 256K

kimi-for-coding-highspeed · K2.7 Code 高速版 · 256K

k3 · Kimi K3 旗舰 · 1M

k3-256k · Kimi K3 256K 版 · 256K

模态:以上 4 个模型在 pi-ai 目录中均声明 input: ["text", "image"](能看图)。

前置条件

  • Node.js ≥ 22、DSH @deepseek-ai/dsh@0.1.2-rc.1 及以上(本版实机验证于 0.1.5-rc.1;0.4.0 起声明 peer 依赖,设置卡片依赖 dsh-settings)
  • 一把 Kimi Code Console API Key(Kimi 控制台获取)

安装

npm install && npm run build && npm pack
dsh plugin --profile web add ./dsh-kimi-tide-<version>.tgz

然后到 DSH「设置 → Models」添加 provider kimi-coding,apiKeyEnv 填

KIMI_API_KEY(或自建引用名),在凭据区粘贴你的 Key。模型目录自动就位——密钥由

DSH 托管凭据存储,不落任何插件配置文件。重启 dsh web 生效。

配置(cordis.patch.yml 可覆盖)

键 · 默认 · 说明

usagePollMs · 60000 · 月汐 dock 配额轮询周期(毫秒)

usagePollOnStart · true · 启动时立即轮询配额

patchFile · $DSH_HOME/profiles/web/cordis.patch.yml · legacy 路由静态种子的部署基座(仅 base 层)

sidecarFile · <patch 目录>/kimi-tide-router.yml · 无设置服务宿主的回退存储

路由配置本体持久化在官方设置面板「设置 → 月汐」,落在**本插件条目配置的
router 段**(命名空间 dsh-kimi-tide,profile 的 cordis.patch.yml)。
配置形状以 v7 为准:routes(统一路由表——session 行 = 主会话关键词/带图
规则,dispatch 行 = 分工角色)+ presets(默认模型 + imageFallback 三态)
/ keywordGroups(内置 7 组)/ flows(协作流注册表)/ auxTargets /
roles / driver / driverSticky / rulesApplyToChildren。迁移后 routes
是唯一真源,presets[*].rules 与 roles 保留为镜像(删掉 routes
段即回退旧字段口径,功能不崩);没有 routes 的存量文档照旧按旧字段读,
行为逐字节不变。存量配置经迁移链自动桥接并留档。
配置全字段见 [docs/router.md](docs/router.md) 的「配置参考(v7 全字段)」与
「2.1.0 统一路由表(v7)」两节;迁移链见「迁移链」节。

月汐状态行(只读仪表)

输入框工具行右端(提交按钮左侧,与权限 / 模型 / 语音并排)的「🌙 月汐」紧凑行提供:

  • 预设 → 目标 chip:月汐 省钱 → deepseek-flash——本步有决策时右侧显示实际路由目标

(如 → glm-5.3),否则显示预设默认模型;点击展开决策面板(命中规则、理由、

候选池逐步决策),空态也渲染并解释「暂无本步决策」。

  • 配额/余额 chip:跟随当前命中目标——余额源显示 ¥3.94,用量源显示 周剩NN%;

点击展开用量总览(全部注册源一屏)。刷新配额走 /kimi-tide refresh。

  • 面板滚动(v2.1.2):决策面板与用量总览自身可滚动,拖动其滚动条或滚动其内容

不会关闭面板;页面与聊天区的滚动仍会收起面板(面板为 fixed 定位,页面一滚即错位)。

内容不足一屏时面板不可滚动,此时滚轮会滚到页面并收起面板。

  • kimi 接入指示:kimi-coding 路由未注册或 Key 不可解析时,主 chip 内嵌 ⚠(title 给出

设置路径);其它通道(如 moonshotai-cn)不计入这个判据。

  • 预设管理(选择/编辑/新建/复制/删除 + 规则表 + 关键词组)在官方设置页「月汐」

卡片(settings.section,id kimi-tide-router)。

  • 显示名守卫(v2.1.3):预设显示名与角色显示名命中密钥形态(12 组常见前缀,或

≥32 字符且不含空白的随机串)或超过 40 字符时不保存,字段下方直接给出原因;

AKIA / ASIA 前缀另设 20 字符下限(真实 AWS 访问密钥 id 恒为该前缀加 16 位

…(truncated)

Rendered from the README published on npm. Formatted only, not edited.

Versions

Published on npm::7,最后更新 2026-10-15

Links

GitHub · Homepage · npm

Same category