前言¶
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 登录¶
- 在 DSH Web 界面打开 Settings → Kiro。
- 选择登录方式:AWS Builder ID、IAM Identity Center、Google 或 GitHub。
- 按页面提示完成设备码流程。Google/GitHub 会显示一次性
XXXX-XXXX代码和app.kiro.dev/account/device授权 URL,等待完成。 - 登录成功后,插件会查询
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 的代码助手能力。