Skip to content

Kiro.rs 0.5.9

Choose a tag to compare

@github-actions github-actions released this 03 Jun 16:29

主题:客户端行为纠偏 + 按凭据拉取上游真实可用模型。此前客户端传入的畸形请求体(tool_use/tool_result 不配对等)会导致上游 Bedrock 返回 503,触发重试风暴;批量工具混入 native web_search 也缺少端到端 handler。模型列表方面,免费凭据无法用 Opus 但此前无可见性——现在可按凭据实时查看上游订阅的真实可用模型。

✨ 新功能

  • 凭据级上游模型查询(PR #12 @ZyphrZero):新增 GET /api/admin/credentials/{id}/models 接口,实时查询上游 ListAvailableModels API 获取该凭据当前可用模型(随订阅等级变化,FREE 不含 Opus)。在凭据卡片「更多操作」弹出独立弹窗,展示模型名、ID、最大输入 token 数。后端整条链路对标现有"余额"功能,新增 src/kiro/model/available_models.rs 响应 DTO、token_manager 抽出 prepare_request_token helper 消除重复的 token 刷新逻辑。

    仅限 admin 面板按需拉取,不影响客户端 GET /v1/models 静态聚合列表。

🛠 修复

  • 从源头阻断 503 风暴@ZyphrZero):provider.rs 与 endpoint 层新增 is_bad_request 判别,把上游 Bedrock 因客户端格式错误(tool_use/tool_result 不配对等)返回的 503 在结束即刻识别为不可重试错误——不走重试、不切换凭据,直接返回 400 给客户端。此前这类错误被当成瞬态故障反复重试,会放大成一次坏请求 → 全部凭据接连被打 → 瞬时数百次 503。
  • Bedrock 客户端校验错误映射为 400(PR #10 @xiaojiou176):src/anthropic/handlers.rs 对 Bedrock 返回的 ValidationException(消息序列非法、缺少 content 等)统一返回 400 Bad Request 而非 502 Bad Gateway,避免下游客户端误判为上游故障并无效重试。

✨ 新功能 — 来自社区贡献

感谢以下 PR 贡献者 🙏

  • Native WebSearch 端到端循环(PR #9 @xiaojiou176):批量工具中混入 web_search 时,进入 agentic 内部循环——先调上游获取搜索结果,把结果注入回消息作为 tool_result,再继续对话。完全在 MCP 端点 q.{region}.amazonaws.com/mcp 上完成,不依赖外部搜索 API。
  • output_config.effort 直通上游(PR #8 @xiaojiou176):Anthropic 协议 reasoning.effort 字段(low/medium/high)映射到 Kiro/Q 协议 outputConfiguration.agentMode 字段,让不同推理强度的请求在 Kiro 上游获得对应的资源分配。
  • 图片 MIME 修正与智能降采样(PR #7 @xiaojiou176):用 magic-bytes 从二进制头识别真实图片格式,修正错误声明的 MIME;超尺寸图片自动降采样到 1M 像素并重编码为 JPEG;tool_result 中的 base64 图片上浮到 user message 级 images: [...],避免被上游忽略。

📦 升级指南

  1. docker compose pull && docker compose up -d 即可。无破坏性变更,无需清理状态文件。
  2. 查看凭据可用模型:登录管理面板 → 凭据管理 → 任一凭据卡片「更多操作」→「查看可用模型」,实时查询上游。

Docker image:

zyphrzero/kiro-rs:0.5.9
zyphrzero/kiro-rs:latest

Release assets include SHA256SUMS.txt for checksum verification.