Kiro.rs 0.7.3
主题:以 Kiro 上游实际返回的模型目录替代本地静态列表,新增按凭据缓存、分组聚合和模型感知路由,并开放未知合法模型 ID 的直接透传。本次兼容性补丁同时扩展了 Admin 模型面板:可按账号池策略查询模型、查看输入/输出 Token 上限,并发送真实的最小化请求验证模型。已有 customModels、-thinking 请求方式和静态上下文估算继续兼容。
✨ 新功能 — 动态模型发现与模型感知路由
GET /v1/models改为上游动态目录:按当前客户端 Key 的凭据分组查询可访问账号,合并并去重各账号实际返回的模型;保留上游显示名和输入/输出 Token 上限,自定义模型元数据优先,最终按模型 ID 稳定排序。- 逐凭据模型缓存:新增
modelCacheTtlSecs配置(默认3600秒),每个凭据独立缓存并使用 singleflight 锁避免并发重复刷新;启动后后台预热。刷新失败时可继续使用最后一次成功结果,部分凭据失败不会丢弃其它凭据已经取得的模型。 - 缓存随凭据状态失效:编辑代理、刷新或替换凭据、删除凭据以及整体重载时会清理对应缓存,避免模型目录与实际账号配置脱节。
- 路由优先选择已确认支持模型的凭据:账号缓存明确包含目标模型时优先使用,明确不包含时跳过;尚无缓存的账号仍可尝试,确保上游模型列表临时不可用时不会退化成本地硬白名单。该规则同时适用于
priority和balanced模式,并保持客户端 Key 分组隔离。
✨ 增强 — 开放模型 ID 透传
- 未知模型不再被静态映射表拦截:
customModels显式别名仍具有最高优先级;常见 Claude 日期后缀、latest、-thinking、点号/连字符版本和旧式命名会先规范化,其余非空且格式合法的 ID(如glm-5、minimax-m2.5、deepseek-3.2)原样下发给 Kiro,由上游决定可用性。 - 未来 Claude 型号兼容:Claude 模型规范化不再局限于当前硬编码版本,新增型号和常见别名可复用现有请求路径;未知动态模型不会盲目附加尚未确认支持的
output_config。 - 请求默认值与校验补齐:Anthropic 请求缺省
max_tokens时使用32000,显式传入0或负数会返回参数错误;动态目录未提供输出上限时同样展示32000,GPT-5.6 和自定义模型的既有上限仍保留。
✨ 新功能 — Admin 模型查询与真实请求测试
- 账号池模型查询:新增
GET /api/admin/models,按正常账号池策略选择凭据并返回specified/priority/balanced选择方式;原单凭据模型接口也返回选择方式和maxOutputTokens。 - 真实模型验证:新增
POST /api/admin/models/test,使用所选凭据向指定模型发送最小化请求,返回响应文本、凭据 ID、耗时及可用的 credit 计费信息,便于区分“目录可见”和“实际可调用”。 - 管理端模型面板升级:支持当前账号池与指定凭据两种查看方式,展示模型 ID、名称和输入/输出 Token 上限,并可直接触发真实请求测试;刷新模型不会修改账号池的调度指针。
🔧 修复 — 负载模式状态语义
- 均衡模式不再伪造当前账号:
balanced模式下状态接口的currentId固定为0,所有凭据的isCurrent固定为false;priority模式继续准确展示当前优先凭据。 - 只读查询不扰动调度:模型目录查询所需的账号选择不会增加成功计数或改写均衡调度状态;从均衡模式切回优先级模式时会重新选择最高优先级的可用凭据。真实模型测试仍走正常请求链路并反映实际账号状态。
- 不再发布合成的 thinking 别名:动态模型列表只展示上游真实模型与显式自定义模型,不额外生成
-thinking条目;请求中使用-thinking后缀自动启用 Thinking 的兼容行为保持不变。
🧪 测试
- 新增动态目录聚合、Token 上限、自定义模型覆盖、开放透传与非法 ID、
max_tokens校验、逐凭据缓存 TTL / singleflight / 失效、陈旧缓存降级、分组隔离、模型感知路由,以及 priority / balanced 状态切换和只读选择等回归测试。
Docker image:
zyphrzero/kiro-rs:0.7.3
zyphrzero/kiro-rs:latest
Release assets include SHA256SUMS.txt for checksum verification.