前言¶
DSH 的插件思路是「一切皆插件」。在 LLM seam 這一層,開發者常常會遇到一個具體問題:機器上已經登錄了 AWS Kiro,但 DeepSeek Harness 仍然需要一條可用的 provider route,才能把 Claude 和開放權重模型接進來。caopu16/dsh-llm-kiro 做的就是這件事:註冊 kiro provider route,讓已登錄的 Kiro 賬號向 harness 提供模型服務,而不需要再單獨維護一套 API key。
這是什麼¶
caopu16/dsh-llm-kiro 是一個 DeepSeek Harness 插件,不是獨立工具。它由 caopu16 維護,許可證爲 MIT。
它的主要定位是:
- 作爲 DeepSeek Harness LLM seam 的 AWS Kiro(CodeWhisperer)adapter。
- 註冊
kiroprovider route。 - 讓同一臺機器上已登錄的 Kiro 賬號,通過 harness 提供 Claude 和開放權重模型。
使用前需要滿足兩個基本條件:
- 有一個可用的
dsh安裝。 - 同一臺機器上已有 Kiro sign-in。Kiro IDE 或
kiro-cli會寫入這個 adapter 讀取的 token。
Node 版本要求爲:
^22.19 || >=24
核心能力¶
下面介紹這個插件已經覈實過的能力。
註冊 kiro provider route¶
插件會註冊 kiro provider route,使 harness 可以按 kiro 這個 provider 來調用模型。
它自帶 patch layer,因此安裝後就能掛載 adapter,不需要額外修改 cordis.yml 來讓 route 存在。
使用已登錄 Kiro 賬號提供模型¶
已登錄的 Kiro 賬號可以向 harness 提供 Claude 和開放權重模型,不需要再單獨提供 API key。
模型 id 會作爲 wire modelId 直接傳給服務。插件自帶的 catalog 只是 advisory only;未列出的 id 仍然會到達服務,實際可用性可能因賬號層級不同而不同。
配置 namespace 支持熱加載¶
插件會把 llm-kiro 註冊爲 $DSH_HOME/settings.yaml 裏的 settings namespace。
這個配置段支持不停機 reload,並且優先級高於 composition entry。
支持以下配置字段:
proxyUrl
region
profileArn
thinking
reasoningEffort
defaultContextWindow
models
streamIdleTimeoutMs
tokenExpiryBufferMs
retryPolicy
代理連接方式¶
當使用代理時,插件會以 HTTP CONNECT tunnel 打開代理,並在隧道內完成 TLS 協商。
這意味着代理只能看到目標 host name,不會看到請求內容,也不會看到 bearer token。
憑據處理¶
adapter 會讀取 Kiro 的 credential cache。如果訪問 token 已過期,它會在內存中用 refresh token 換取新 token,並且只在內存中緩存,不會額外寫一份第二份憑據副本。
如果缺少 Kiro sign-in,首次請求會失敗,錯誤爲 MISSING_CREDENTIAL,並指出預期的路徑。
profileArn 發現與覆蓋¶
插件會從 Kiro 寫入的 profile.json 中發現 profileArn,該文件位於 Kiro 的 globalStorage 下。
配置中的 profileArn 優先級高於自動發現。對於 IdC 或 Enterprise 賬號,如果沒有顯式指定 profile,請求可能因爲無默認 profile 而被拒絕,返回 403。
安裝與啓用¶
下面給出一套可復現的安裝步驟。
先執行官方安裝命令:
dsh plugin --profile web add github:caopu16/dsh-llm-kiro
如果是在 harness 源碼檢出中運行,而不是依賴已安裝的 dsh 命令,先構建,再添加插件,然後啓動:
pnpm run build
pnpm dsh plugin --profile web add github:caopu16/dsh-llm-kiro
pnpm dsh --profile web
倉庫中提交了構建後的 lib/,因此從 git 安裝時不會額外執行構建腳本。如果修改了 src/,需要先重新構建並提交,改動纔會到達使用方。
典型用法¶
啓用後,選擇 provider kiro,然後選擇它提供的模型 id 即可。
事實中給出的示例模型包括:
claude-opus-5
claude-sonnet-4
deepseek-3.2
glm-5
minimax-m2.5
qwen3-coder-next
這些 id 會作爲 wire modelId 直接透傳給服務。
如果 Claude 模型需要通過允許的網絡出口訪問,可以在 $DSH_HOME/settings.yaml 的 llm-kiro: 段配置代理:
llm-kiro:
proxyUrl: http://proxy.example:1082
reasoningEffort: medium
這個 settings 段會熱加載,並且優先級高於 composition entry。
如果希望把某個字段固定到某個 profile,而不是固定到當前機器,也可以修改 profile 下的 patch 文件:
# ~/.dsh/profiles/<name>/cordis.patch.yml
- id: llm-kiro
config:
proxyUrl: http://proxy.example:1082
這裏有兩個注意點:
- 這個 entry 是 targeting 現有 row by id,不要把它包在
insert:list 裏。 - patch layer 只在重啓後生效;settings section 可以熱加載。
不要插入第二個 id: llm-kiro 的 patch entry,因爲重複 loader entry 會導致 profile 在啓動時失敗,錯誤爲:
duplicate loader entry id: llm-kiro
適用場景與注意¶
這個插件比較適合已經在本機完成 Kiro sign-in,並希望在 DeepSeek Harness 中使用 kiro provider route 的開發者。
使用前需要注意:
- 它依賴可用的
dsh安裝,不是 standalone tool。 - Claude 模型需要 permitted network egress;插件默認不附帶代理。
- 如果
proxyUrl值無效,插件加載會失敗。 - 如果沒有 Kiro sign-in,首次請求會以
MISSING_CREDENTIAL失敗。 - catalog 是 advisory only,未列出的模型 id 仍會發送到服務;可用性可能因賬號層級不同而不同。
- IdC 或 Enterprise 賬號可能沒有 implicit default profile;如果沒有命名
profileArn,請求可能被拒絕爲 403。 - 插件以當前
dsh進程權限運行。安裝前建議檢查源碼與許可證;本項目許可證爲 MIT。 - DSH 社區目錄是獨立站點,與 DeepSeek / 幻方無官方從屬關係,不應理解爲官方應用商店。
獲取¶
GitHub 倉庫:
https://github.com/caopu16/dsh-llm-kiro
目錄頁:
https://www.skillhub.cn/plugins/caopu16/dsh-llm-kiro
經過上面的步驟,dsh-llm-kiro 會註冊 kiro provider route,讓已登錄的 Kiro 賬號在 DeepSeek Harness 中提供 Claude 和開放權重模型,同時把代理、憑據和 profile 配置限制在明確、可檢查的範圍內。