前言¶
DeepSeek Harness(DSH)的理念是“一切皆插件”。當需要將 LLM 接縫(ctx.llm)路由到本機運行的工具時,dsh-llm-kiro 插件通過註冊 kiro provider 路由,複用本地 kiro-cli 的登錄態和功能。它基於 kiro-cli 自帶的 ACP(Agent Client Protocol,JSON-RPC 2.0 over stdio)。
核心功能¶
- 無配置接入:完全複用本機 kiro-cli 登錄態(IAM Identity Center / Builder ID),不需要 API key 或 settings 段。
- 零運行時依賴:不依賴任何 agent SDK,純 Node
child_process+ 手寫 JSON-RPC。 - 長駐會話:每個宿主 session id 對應一個 warm kiro-cli acp 子進程,對話延續、工具輪次都發生在會話內部;
maxSessions上限內按插入序 LRU 淘汰。 - 工具橋接:宿主工具通過每會話一個 loopback HTTP MCP server(
dsh-host)暴露給內層模型。 - 原生工具隔離:kiro 以
--trust-tools=(零信任)啓動,只有@dsh-host MCP工具被放行。 - 真實上下文佔用:kiro 流中通過
_kiro.dev/metadata上報contextUsagePercentage,插件按模型窗口折算成inputTokens上報。 - 實時模型目錄拉取:
kiro-cli chat --list-models --format json實時拉取。 - 思考檔位:每個模型支持 low / medium / high / xhigh / max 五檔。
- 旁路請求:標題生成、compaction 等 side-channel 請求走冷啓動一次性 ACP 會話。
- 代理自動接入:自動探測已安裝的 kiro-proxy 進程級代理包裝器。
- 溢出可恢復:內層報錯文本經分類爲 CONTEXT_WINDOW_EXCEEDED / QUOTA_EXCEEDED 上報。
安裝與前置¶
前置條件:本機已安裝並登錄 kiro-cli(kiro-cli whoami 可運行)。插件完全複用 kiro-cli 登錄態,不需要 API key 或 settings 段。
安裝命令:
dsh plugin --profile <profile> add lizheng1992123-dsh-llm-kiro-<version>.tgz
重啓服務後模型選擇器會出現 kiro。
配置¶
| 字段 | 類型 | 默認值 | 說明 |
|---|---|---|---|
maxSessions |
number | 8 | 同時保持 warm 的內層 kiro-cli 會話上限(超出按插入序 LRU 淘汰) |
modelCacheTtlSeconds |
number | 300 | CLI 模型目錄的緩存保鮮秒數 |
cliPath |
string | kiro-cli | kiro-cli 可執行文件名或絕對路徑。默認值會自動探測 kiro-proxy 包裝器;填真實 CLI 的絕對路徑則強制直連 |
典型用法¶
手動掛載配置:
- id: llm-kiro
name: '@lizheng1992123/dsh-llm-kiro'
上下文管理:加載 dsh-compaction-basic 與 dsh-token-meter,並把 thresholdRatio 調低到 0.6:
- id: compaction-basic
config:
auto: true
thresholdRatio: 0.6
retainRatio: 0.16
注意事項¶
- 會話重建:模型/思考檔位切換會重建內層會話(kiro-cli 的
--model/--effort是進程啓動參數)。 - 持久化:kiro 會話在 CLI 側持久化,可用
kiro-cli chat --list-sessions/--delete-session 清理。 - 圖片渲染:圖片消息渲染爲
[圖片附件]佔位符。 - 靜默窗口:turn 結束依賴 400ms 靜默窗口(ACP 沒有工具等待事件)。
作者:LiZheng1992123
許可證:MIT
GitHub:https://github.com/LiZheng1992123/dsh-llm-kiro
目錄頁:https://www.skillhub.cn/plugins/LiZheng1992123/dsh-llm-kiro