Kiro.rs 0.5.9
主题:客户端行为纠偏 + 按凭据拉取上游真实可用模型。此前客户端传入的畸形请求体(tool_use/tool_result 不配对等)会导致上游 Bedrock 返回 503,触发重试风暴;批量工具混入 native web_search 也缺少端到端 handler。模型列表方面,免费凭据无法用 Opus 但此前无可见性——现在可按凭据实时查看上游订阅的真实可用模型。
✨ 新功能
- 凭据级上游模型查询(PR #12 @ZyphrZero):新增
GET /api/admin/credentials/{id}/models接口,实时查询上游ListAvailableModelsAPI 获取该凭据当前可用模型(随订阅等级变化,FREE 不含 Opus)。在凭据卡片「更多操作」弹出独立弹窗,展示模型名、ID、最大输入 token 数。后端整条链路对标现有"余额"功能,新增src/kiro/model/available_models.rs响应 DTO、token_manager抽出prepare_request_tokenhelper 消除重复的 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: [...],避免被上游忽略。
📦 升级指南
docker compose pull && docker compose up -d即可。无破坏性变更,无需清理状态文件。- 查看凭据可用模型:登录管理面板 → 凭据管理 → 任一凭据卡片「更多操作」→「查看可用模型」,实时查询上游。
Docker image:
zyphrzero/kiro-rs:0.5.9
zyphrzero/kiro-rs:latest
Release assets include SHA256SUMS.txt for checksum verification.