dsh-llm-kiro:让已登录的 AWS Kiro 接入 DeepSeek Harness

前言

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。
  • 注册 kiro provider route。
  • 让同一台机器上已登录的 Kiro 账号,通过 harness 提供 Claude 和开放权重模型。

使用前需要满足两个基本条件:

  1. 有一个可用的 dsh 安装。
  2. 同一台机器上已有 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.yamlllm-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

这里有两个注意点:

  1. 这个 entry 是 targeting 现有 row by id,不要把它包在 insert: list 里。
  2. 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 配置限制在明确、可检查的范围内。

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

Xiaoye