前言¶
在 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 標明尚未逐項端到端驗證。