前言¶
在 DSH 里做智能体开发时,常见做法是固定一套提示词和工具循环,再挂接不同 API。若要在同一条原生会话里改用 Kimi Code 的执行方式(提示词、工具、Skills、权限与压缩),又不想单独起 Kimi CLI 子进程,就需要在 DSH 侧做模型与 harness 的显式绑定。下面介绍社区插件 dsh-harness-switch(维护者 AlyceStocking)如何在这一场景下工作。
这是什么¶
dsh-harness-switch 是在 DSH 原生会话中选择模型与 harness 的插件。自 v0.3 起,它将开源 Kimi Code 的实际执行核心嵌入插件:提示词、工具定义与执行、Skills、权限规则、MCP 和上下文压缩由 Kimi 核心提供,不启动 Kimi CLI 聊天子进程。npm 包名 dsh-harness-switch,当前公开版本 0.3.3,许可证 MIT。
核心功能¶
三种 Harness 模式¶
每个模型绑定可在设置里选择一种 harness:
| Harness | 行为 |
|---|---|
| Kimi Code · embedded core | 完整嵌入式 Kimi 执行核心,默认选项 |
| Kimi prompt · legacy | v0.2 的适配提示词,工具、Skills、压缩使用 DSH |
| DSH native | Kimi API + DSH 原生提示词、工具与执行循环 |
比较同一模型在不同 harness 下的表现时,添加两个绑定并选择相同模型别名即可。README 说明尚未实现其他厂商 harness。
原生 UI 与执行投影¶
DSH 的 session 列表、输入框和最终回答保持原生。一次 Kimi 执行在界面上显示为 kimi_harness_turn 工具卡片,卡片内展示 Kimi 工具调用/结果、思考、Skill 与压缩事件;真实工具只在 Kimi 内执行一次,DSH 外层模型适配器仅编排本地入口,不再对同一轮调用模型执行第二遍。
权限与桥接命令¶
Kimi 核心采用 manual 权限模式:需审批的动作、工作区信任和提问映射到 DSH 原生审批/问题界面;拒绝、取消或不可用均不自动放行。DSH 需配置可用的审批 UI 与允许询问的策略(policy: ask);never 策略会拒绝需要审批的动作。插件不修改全局审批设置。
输入框可直接发送:
/kimi-skill <名称> [任务]:通过上游 SDK 显式激活 Skill/kimi-compact [保留内容要求]:调用 Kimi 自身压缩
同会话内切换 DeepSeek 与 Kimi¶
当前生成结束或停止后,可在同一原生 session 选择已有 DeepSeek 模型,恢复其 DSH 提示词与工具;再切回 Kimi 时,其他模型的历史会作为参考历史导入 Kimi(跨模型历史导入时会移除其他模型的思考字段)。
图片输入(embedded core)¶
v0.3.1 起,embedded core 支持文字、单图和多图混合输入:读取 DSH 已验证的附件,通过 Kimi SDK 原生 image_url 内容块提交。模型配置须包含 capabilities = ["image_in", "thinking"](可保留其他能力);legacy 与 DSH native 路径仍仅支持文字。
安装与启用¶
从 npm 安装(推荐)¶
资料给出的桌面 profile 安装命令为:
dsh plugin --profile desktop add dsh-harness-switch@0.3.3
0.3.3 包含 0.3.2 的 profile 内不可变安装包修复,以及 DSH 0.2 RPC / tool-result 兼容修复。若本机曾用 @local/dsh-harness-switch,迁移前请备份 profile、完全退出 DSH 并移除旧包后再装新包,避免重复注册;不要删除 $DSH_HOME/storages/harness-switch 或 Kimi home。README 注明包名迁移尚未做真实桌面端到端验证,既有本机安装不强制立即迁移。
环境与验证范围¶
README 已验证 Windows、DSH Desktop 0.2.0-rc.2;最低 Node 24.15。桌面安装使用应用自带的 CLI 和 pnpm。
从源码安装到桌面 profile 时(资料示例,非 git clone 替代 npm 市场安装的唯一路径):
cd dsh-harness-switch
npm ci
npm run install:desktop
# 完全退出 Desktop 后执行
npm run install:desktop -- --apply
默认 DSH 目录为 %USERPROFILE%\.dsh(或环境变量 DSH_HOME)。自定义 home 或桌面目录时:
node scripts/install-profile.mjs --home <DSH_HOME> --desktop-dir <桌面安装目录> --profile desktop --apply
Kimi 配置¶
无需安装 Kimi CLI,但需要有效 Kimi 配置及授权。示例 config.toml 片段:
[providers.kimi]
type = "kimi"
base_url = "https://api.kimi.com/coding/v1"
api_key_env = "KIMI_API_KEY"
[models."kimi-code/k3"]
provider = "kimi"
model = "k3"
max_context_size = 262144
capabilities = ["image_in", "thinking"]
模型 ID、端点与上下文上限以账户权限及 Kimi 官方配置文档为准;启动 DSH 的进程须能读取对应环境变量。
典型用法¶
重启 DSH 后,进入 设置 →「模型 Harness」:
- 确认 Kimi 配置目录,点击「读取已配置模型」。复用
config.toml的端点、模型与 API key / 环境变量 / 文件 OAuth;凭据不复制进插件配置或前端。 - 为
kimi-code/k3等模型别名选择 Kimi Code · embedded core,保存。旧版配置不会静默迁移,需手动改选 embedded core。 - 在原生模型选择器的 Kimi · Harness Switch 中选择该绑定,选定工作区后正常聊天。
- 需要对比 harness 或切回 DeepSeek 时,在同一 session 内按上文切换绑定或模型即可。
插件设置文件默认位于 $DSH_HOME/storages/harness-switch/<DSH_PROFILE 或 default>.json;多 profile 时可在插件配置中指定独立绝对路径 settingsFile。
适用场景与注意¶
适合谁:已在 DSH Desktop 上做原生会话开发、需要 Kimi Code API 且希望在同一 session 里对比 embedded / legacy / DSH native 三种执行路径的开发者。
一致性与边界:插件固定复用 Kimi Code 指定 commit 的 Node SDK、agent core 等模块,构建产物与 MIT 许可保留在 vendor/。同一核心版本和配置能尽量保持行为一致,但不承诺与 Kimi CLI 逐字节相同;宿主身份、工作区、会话状态与跨模型导入历史均会影响请求。
存储与恢复:原始 Kimi 日志与执行状态在 Kimi home;DSH 侧存执行投影与最终回答。完整恢复需同时保留 DSH 存储、设置旁的 engine/ 目录与 Kimi home。更改同一 session 的 Kimi home、工作区或固定核心版本会拒绝复用旧状态,需新建 session;不要与 CLI 同时操作插件正在使用的同一 Kimi session。
安全与权限:这是插件执行桥接,不是操作系统沙箱;嵌入模式使用 Kimi 的策略,DSH 全局系统提示词扩展不会自动注入 Kimi 核心。安装前请阅读仓库源码与 MIT 许可证;插件以当前 DSH 进程权限运行,涉及 Bash、MCP 与文件访问时与宿主环境同等敏感。
未覆盖能力:视频、Kimi CLI 专属面板、终端快捷键及全部 slash 命令未移植;Kimi 原生 token 用量尚未映射到 DSH 外层统计;后台任务、MCP 与全部平台工具 README 标明尚未逐项端到端验证。