@ww-komi/kiro-claw-router
v0.7.6
Published
OpenClaw plugin: use AWS Kiro (CodeWhisperer) models via Builder ID or Kiro CLI
Maintainers
Readme
kiro-claw-router
OpenClaw Provider Plugin — 在 OpenClaw 中使用 AWS Kiro (CodeWhisperer) 模型。
功能
- 双认证方式:AWS Builder ID (Device Code OAuth) 和 Kiro CLI 令牌导入
- 多模型支持:auto、claude-sonnet-4.5、claude-haiku-4.5、deepseek-3.2、glm-5、minimax-m2.1/m2.5、qwen3-coder-next
- 多账号管理:支持 sticky、round-robin、lowest-usage 三种轮换策略
- 令牌自动刷新:支持 IDC OIDC 和 Desktop 两种刷新路径
- 协议转换:pi-ai Context → CodeWhisperer generateAssistantResponse,支持 AWS SDK JSON / REST 双协议可配置切换
- 原生事件流:通过
createStreamFnhook 直接返回 pi-aiAssistantMessageEventStream,与 OpenClaw 原生协议无缝对接 - 结构化日志:JSONL 文件日志,按天轮转,自动清理,可配置 API 调用日志详细程度
安装
openclaw plugins install @ww-komi/kiro-claw-router或手动安装:
npm install @ww-komi/kiro-claw-router认证
方式一:AWS Builder ID (推荐)
openclaw models auth login --provider kiro会自动打开浏览器进行 AWS Builder ID 授权。免费版可用。
方式二:从 Kiro CLI 导入
如果你已经安装并登录了 Kiro IDE,可以直接导入凭据:
openclaw models auth login --provider kiro --method kiro-cli使用
# 使用自动选择模型
openclaw agent --message "hello" --model kiro/auto
# 指定具体模型
openclaw agent --message "hello" --model kiro/claude-sonnet-4.5
openclaw agent --message "hello" --model kiro/deepseek-3.2配置
配置文件位于 ~/.config/openclaw/kiro/kiro.json(首次运行自动创建)。
默认配置
以下是推荐的默认配置,复制到 kiro.json 即可直接使用:
{
"$schema": "./config-schema.json",
"default_region": "us-east-1",
"auto_sync_kiro_cli": true,
"account_selection_strategy": "lowest-usage",
"api_transport_mode": "aws-sdk",
"rate_limit_retry_delay_ms": 5000,
"rate_limit_max_retries": 3,
"max_request_iterations": 20,
"request_timeout_ms": 120000,
"token_expiry_buffer_ms": 300000,
"log_retain_days": 7,
"log_api_level": "basic",
"log_api_body_max_chars": 2000
}提示:
$schema字段提供 JSON Schema 支持,在支持的编辑器中可以获得配置项自动补全和校验。config-schema.json在安装时自动复制到kiro.json同级目录。
IDC / SSO 认证配置(可选)
如果使用 AWS IAM Identity Center(企业 SSO)而不是个人 Builder ID,在上述默认配置基础上追加以下字段:
{
"idc_start_url": "https://d-xxxxxxxxxx.awsapps.com/start",
"idc_region": "us-west-2",
"idc_profile_arn": "arn:aws:codewhisperer:us-west-2:123456789:profile/my-team"
}| 配置项 | 说明 | 个人 Builder ID 是否需要 |
|--------|------|------------------------|
| idc_start_url | SSO Start URL(身份源入口)。不填则默认 https://view.awsapps.com/start(Builder ID 公共入口)。企业用户填写组织的 https://d-xxxxxxxxxx.awsapps.com/start,在 AWS IAM Identity Center → Settings 页面获取 | 不需要 |
| idc_region | SSO OIDC 服务所在区域。不填则取 default_region | 不需要 |
| idc_profile_arn | CodeWhisperer Profile ARN。从管理员处获取,格式 arn:aws:codewhisperer:{region}:{account}:profile/{name} | 不需要 |
以上三项仅在通过
openclaw models auth login --provider kiro进行交互式认证时生效。通过 Kiro CLI 导入凭据时不使用。详细说明见 docs/guide.md。
配置项说明
| 配置项 | 类型 | 默认值 | 说明 |
|--------|------|--------|------|
| $schema | string | - | JSON Schema 路径,用于编辑器自动补全 |
| default_region | string | us-east-1 | AWS 区域 |
| auto_sync_kiro_cli | boolean | true | 启动时自动从 Kiro CLI 同步凭据 |
| api_transport_mode | string | aws-sdk | API 传输协议:aws-sdk(匹配 Kiro CLI)/ rest(匹配 kiro-opencode-auth) |
| account_selection_strategy | string | lowest-usage | 多账号选择策略:sticky/round-robin/lowest-usage |
| idc_start_url | string | https://view.awsapps.com/start | SSO Start URL(身份源入口),个人用户无需配置,企业 SSO 填 https://d-xxx.awsapps.com/start |
| idc_region | string | 取 default_region | SSO OIDC 服务所在区域,企业 SSO 时填写 Identity Center 实例区域 |
| idc_profile_arn | string | - | CodeWhisperer Profile ARN,仅企业 SSO 需要,从管理员处获取 |
| rate_limit_retry_delay_ms | number | 5000 | 限流后默认等待时间(毫秒) |
| rate_limit_max_retries | number | 3 | 限流最大重试次数 |
| max_request_iterations | number | 20 | 单次请求最大迭代次数 |
| request_timeout_ms | number | 120000 | 请求超时时间(毫秒) |
| token_expiry_buffer_ms | number | 300000 | 令牌提前刷新缓冲时间(毫秒) |
| log_retain_days | number | 7 | 日志文件保留天数(1-90),超过后自动清理 |
| log_api_level | string | none | API 调用日志级别:none/basic/detailed/full |
| log_api_body_max_chars | number | 2000 | full 模式下请求/响应 body 截断长度 |
环境变量覆盖
所有配置项都可以通过大写蛇形环境变量覆盖,前缀为 KIRO_:
KIRO_DEFAULT_REGION=eu-west-1
KIRO_AUTO_SYNC_KIRO_CLI=false
KIRO_RATE_LIMIT_RETRY_DELAY_MS=10000
KIRO_LOG_API_LEVEL=detailed
KIRO_API_TRANSPORT_MODE=rest日志系统
插件使用结构化 JSONL 文件日志,日志文件位于 ~/.config/openclaw/kiro/kiro-logs/ 目录下:
- 按天轮转:每天一个文件(如
2026-04-14.log) - 自动清理:超过
log_retain_days天的日志自动删除 - 控制台最小化:仅
warn和error输出到控制台,其他级别仅写入文件
API 调用日志级别:
| 级别 | 记录内容 |
|------|---------|
| none | 不记录 API 调用 |
| basic | 模型名、响应状态码、耗时(推荐日常使用) |
| detailed | basic + 账号、URL、重试次数、错误详情 |
| full | detailed + 请求/响应 body(截断到 log_api_body_max_chars) |
API 日志会带 traceId,可串联同一次 OpenClaw 流式调用的请求上下文、HTTP 请求/响应和解析结果;解析结果包含 parsedStopReason、doneReason、toolCallCount、rawStopEventCount、stopEventWithoutToolCalls 等排障字段。
查看日志:
# 查看今天的日志
cat ~/.config/openclaw/kiro/kiro-logs/$(date +%Y-%m-%d).log
# 过滤 API 调用日志
cat ~/.config/openclaw/kiro/kiro-logs/$(date +%Y-%m-%d).log | jq 'select(.cat=="api")'
# 过滤错误
cat ~/.config/openclaw/kiro/kiro-logs/$(date +%Y-%m-%d).log | jq 'select(.level=="error")'调试模式:
设置 KIRO_DEBUG=1 环境变量可以将 debug 级别日志也写入文件(不输出到控制台)。
支持的模型
| 模型 ID | 说明 |
|---------|------|
| kiro/auto | 自动选择最佳模型 |
| kiro/claude-sonnet-4.5 | Claude Sonnet 4.5 |
| kiro/claude-haiku-4.5 | Claude Haiku 4.5 |
| kiro/deepseek-3.2 | DeepSeek 3.2 |
| kiro/glm-5 | GLM-5 |
| kiro/minimax-m2.1 | MiniMax M2.1 |
| kiro/minimax-m2.5 | MiniMax M2.5 |
| kiro/qwen3-coder-next | Qwen3 Coder Next |
数据存储
| 文件 | 路径 | 说明 |
|------|------|------|
| 配置文件 | ~/.config/openclaw/kiro/kiro.json | JSON 格式,可手动编辑 |
| JSON Schema | ~/.config/openclaw/kiro/config-schema.json | 配置校验 schema,安装时自动复制 |
| 账号数据库 | ~/.config/openclaw/kiro/kiro.db | SQLite,存储认证令牌 |
| 日志目录 | ~/.config/openclaw/kiro/kiro-logs/ | JSONL 按天轮转日志 |
Windows 上路径为 %APPDATA%/openclaw/kiro/。
故障排除
认证失败
- 确保网络可以访问
oidc.us-east-1.amazonaws.com - 如果使用 Kiro CLI 导入,确保 Kiro IDE 已登录且
~/.kiro/data.sqlite3存在 - 尝试删除
~/.config/openclaw/kiro/kiro.db后重新认证
请求失败 (400)
上下文可能过大。插件会自动递减 reductionFactor 截断历史。如果持续失败,请尝试更短的对话。
限流 (429)
免费版 Builder ID 有用量限制。插件支持多账号轮换来缓解此问题。可以通过多次运行 openclaw models auth login --provider kiro 添加多个账号。
令牌过期 (401/403)
插件会自动刷新令牌。如果持续出现此错误,请重新认证:
openclaw models auth login --provider kiro开发
npm install
npm run typecheck # 类型检查
npm test # 运行测试
npm run test:live # 端到端真实 API 调用测试
npm run build # 构建本地测试
test:live 脚本使用本机 Kiro CLI 令牌直接调用 AWS Q API,不依赖 OpenClaw:
# 基本测试
npm run test:live
# 带工具定义测试
npm run test:live -- --with-tools
# 指定模型和传输协议
npm run test:live -- --model claude-sonnet-4.5 --transport rest技术栈
- TypeScript (ESM)
- Node.js 22+
- sql.js — 令牌和账号持久化(纯 JS/WASM SQLite,无需原生编译)
- zod — 配置校验
- vitest — 测试
详细文档
完整的使用指南请参阅 docs/guide.md,包含:
- 认证流程详解(Builder ID OAuth / Kiro CLI 导入)
- 所有模型的使用方法与特点
- 完整配置参考与环境变量覆盖
- 多账号管理与轮换策略详解
- 架构原理(请求转换、事件流处理、错误重试)
- 故障排除与常见问题
许可
MIT
