DeepSeek Harness 的 Kiro 提供商插件(dsh-kiro)

前言

DeepSeek Harness(DSH)采用「一切皆插件」的架构,用户需要通过插件接入不同的模型提供商。Kiro(CodeWhisperer)是 Amazon 的代码助手服务,原生不提供 DSH 适配。dsh-kiro 是一个第三方集成插件,让 DSH 能够通过 Kiro 的 API 进行模型推理,同时解决多账户管理、自动刷新、模型发现等常见问题。

插件定位

dsh-kiro 是 DeepSeek Harness 的 Kiro 提供商适配,由 liujiesmart 维护。它基于 MIT 许可证,从 dat-lequoc/dsh-kiro fork 而来,后者又源于 caopu16/dsh-llm-kiro。插件注册 dsh-kiro 路由,安装后自动挂载,无需手动配置 cordis.yml。

核心功能

  • 多方法登录:支持 AWS Builder ID、IAM Identity Center、Google、GitHub 登录,也可以直接导入 Kiro refresh token、API key 或 Microsoft external-IdP 证书。可以在 Web 界面和终端分别使用。
  • 多账户管理:可以保存多个账户,任意组合 Builder ID、IAM Identity Center、Google、GitHub、导入 token、API key 和 external-IdP 证书,在设置中选择当前使用的账户。
  • 自动刷新:Managed 设备流凭证(Builder ID、Google、GitHub、IDC)通过区域 AWS OIDC 自动刷新;导入的 refresh token 使用 Kiro 桌面认证服务;Microsoft external-IdP 凭证只与已批准的 Microsoft 登录主机交互。刷新后 profile ARN 和 token 会原子写入存储。
  • 实时模型发现:查询 Kiro 的 ListAvailableModels 接口,模型选择器会显示已登录账户的可用模型(Opus、Sonnet、Haiku 和可用 open-weight 路由)。插件会自动发现每个模型的推理 effort(包括 none、xhigh、max)。
  • 流式响应:支持从 Kiro 的 Amazon EventStream 协议流式获取文本、推理过程和工具调用。支持 Claude 风格和 open-weight 模型的流式输出。
  • 工具调用:完整支持工具调用协议。
  • 图片支持:向支持图片的模型发送图片,可以解锁图片附件和 DSH 自带的图片阅读工具。
  • 静默拒绝恢复:当 Kiro 返回静默拒绝时,插件使用有界缩窄梯级(bounded narrowing ladder)尝试恢复,而不是在第一次尝试时结束对话。
  • 回退机制:当插件管理的登录不存在时,适配器会读取 Kiro IDE/CLI 的 ~/.aws/sso/cache/kiro-auth-token.json 及其引用的客户端注册文件。
  • 代理支持:支持直接出站或经过认证的 HTTP/HTTPS CONNECT 代理。
  • 热重载设置:无需重启 DSH 即可热重载 llm-kiro 设置。

安装与启用

插件要求 DeepSeek Harness 0.2.1-rc.2 或更高版本。

从 GitHub 安装:

dsh plugin --profile web add github:liujiesmart/dsh-kiro
dsh --profile web

从 DSH 源码 checkout 安装(使用源码自带的 launcher):

cd ~/deepseek-harness
pnpm dsh plugin --profile web add github:liujiesmart/dsh-kiro
pnpm dsh --profile web

插件内置了 lib/ 构建产物,GitHub 安装无需执行依赖构建脚本。

典型用法

Web 登录

  1. 在 DSH Web 界面打开 Settings → Kiro。
  2. 选择登录方式:AWS Builder ID、IAM Identity Center、Google 或 GitHub。
  3. 按页面提示完成设备码流程。Google/GitHub 会显示一次性 XXXX-XXXX 代码和 app.kiro.dev/account/device 授权 URL,等待完成。
  4. 登录成功后,插件会查询 ListAvailableProfiles,保存选定的 profile ARN,并在该 ARN 的区域进行推理。

导入已有凭证

在 Settings → Kiro 中选择导入:

  • Refresh token:粘贴 refresh token,插件会验证并保存。
  • Kiro API key:粘贴 API key,插件会先检查模型目录,显示可用模型数量。
  • Microsoft external IdP JSON:粘贴 JSON 文件内容,插件会在本地整理格式后保存,不进行实际验证。

导入成功后,对话框关闭,页面上的使用卡片会更新为当前账户。

终端登录

运行安装的二进制文件:

dsh plugin --profile web exec kiro-login

常用选项:

# 指定区域
kiro-login --region eu-central-1

# 使用 IAM Identity Center
kiro-login --method idc --start-url https://company.awsapps.com/start --region eu-central-1

# 使用 GitHub
kiro-login --method github

# 使用 refresh token
KIRO_REFRESH_TOKEN='...' kiro-login --method refresh-token

# 使用 API key
KIRO_API_KEY='...' kiro-login --method api-key

# 使用 external-IdP 证书文件
kiro-login --method external-idp --credentials-file ./kiro-auth.json

# 使用代理
kiro-login --proxy http://user:pass@proxy.example:8080

# 不自动打开浏览器
kiro-login --no-open

# 登出
kiro-login --logout

kiro-login --help 显示所有选项。支持的环境变量包括 KIRO_REGION、KIRO_PROXY_URL、KIRO_START_URL、KIRO_REFRESH_TOKEN、KIRO_API_KEY。优先使用环境变量或受保护的凭证文件,避免在命令行参数中暴露密钥。

多账户切换

插件将所有凭证存储在 $DSH_HOME/storages/kiro-auth/accounts.json,一个原子化、仅所有者可读的文档。每行显示账户标签、方法、区域和凭证状态(Ready、Refreshes on next use、Needs sign-in),并提供 Use 激活、Sign in again 重新认证、Remove 删除操作。移除当前活动账户时,选择会移交给另一个已存储账户。Sign out all 会删除所有账户和设备注册,但不会影响 Kiro IDE/CLI 的回退凭证。

从静默拒绝恢复

当 Kiro 返回静默拒绝时,插件会使用有界缩窄梯级策略,在保持对话上下文的同时尝试不同的策略,直到达到有界次数或成功。

适用场景与注意

适合需要使用 Kiro(CodeWhisperer)服务的 DSH 用户,特别是需要多账户管理、自动刷新、模型发现、图片支持或工具调用的场景。

注意事项:

  • 插件以当前 DSH 进程的权限运行,安装前应检查源码与许可证。
  • 插件是独立集成,与 AWS 或 Kiro 无官方从属关系。Kiro 和其 logo 是 Amazon 商标。
  • 插件仅在 Kiro 服务上以操作员与 Kiro 签订的协议运行,而非任何项目授予的权利。

总结

dsh-kiro 为 DeepSeek Harness 提供了完整的 Kiro 适配,涵盖多方法登录、自动刷新、实时模型发现、流式响应、工具调用、图片支持和静默拒绝恢复。通过多账户管理和便捷的终端命令,用户可以在 DSH 中无缝使用 Kiro 的代码助手能力。

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

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

Xiaoye