Repository navigation
v4.1.9
AIClient-2-API 发布说明 (v4.1.9)
v4.1.9 是跨协议转译语义、流内错误收尾与 Schema 保真的稳定性版本,无破坏性 API/协议变更。
本版本汇总 v4.1.8 与 v4.1.9 的修复:补齐 Responses → Gemini 的 system/结构化输出/多模态工具回传,收口同协议与跨协议流内错误,增强 Schema Polyfill,并完成 19 个真实模型的最终 E2E 验收。
🌟 核心变更
1. Responses → Gemini 语义补齐
input内的system/developer消息不再降级为 user,统一并入systemInstruction。text.format的json_object/json_schema映射为 GeminiresponseMimeType/responseSchema,并复用 Schema Polyfill。- 多模态
function_call_output数组归一化为{ content },图片/文件拆为同轮inlineData,避免把数组直接塞进 GeminiFunctionResponse.response。 - 只有
instructions/ system / developer 而没有 user/assistant turn 的请求本地返回 400,不再把必然被拒绝的空contents发往上游。
2. 流内错误终态与错误体语义
- 识别
response.failed、event: error、data.error,包括choices: []/candidates: []形态。 - 转换器无法表达错误帧时返回 502,不再静默返回空 200 流。
- 非流式 HTTP 200 错误体统一转为 502,不再伪装成合法截断。
- 错误帧不再提前污染
hasMessageStop,重试成功后仍能正确补发终止帧。
3. Schema Polyfill 增强
- 补齐
allOf的 type/enum/items 提升,scalarallOf不再生成空properties。 - 支持可空
oneOf、patternProperties、additionalProperties、not、dependentRequired、dependentSchemas、if/then/else。 - 摘要保留子 Schema 的
description,min/maxLength等内层约束可传递到父摘要。 - 阶段 2 裁剪只统计清洗后可达节点,按真实描述差值回缩;
allOf/oneOf/$ref登记父节点,避免修改不可达分支导致虚减。
4. Antigravity 与 GPT-6 预适配
- Antigravity 过滤
oss与-low模型,模型列表动态刷新恢复正常。 - User-Agent 更新为 CLI 标识。
- Chat → Antigravity 的 thinking gating 覆盖
gpt-*、-thinking、-high、-medium与 Claude 5.5,GPT-6 预适配补齐。
5. 测试与文档
- 单元测试:29 suites / 489 tests 全绿。
- 19 模型全量 E2E:35 / 35 通过,19/19 模型 11/11,16/16 定向用例通过;核心矩阵 209/209。
- 新增 Responses→Gemini developer/text.format 与 system-only 400 定向用例。
- 文档收敛为单一 19 模型复评入口,删除过期的 27 模型 review。
✅ 验收结果
| 项目 | 结果 |
|---|---|
| 单元测试 | 29 suites / 489 tests |
| E2E Jest 用例 | 35 / 35 |
| 19 模型核心矩阵 | 19 / 19 模型 11/11 |
| 核心子用例 | 209 / 209 |
| 定向 E2E | 16 / 16 |
| 收尾异常 | 0 |
E2E 运行期间上游存在长尾与空响应波动(Zed Gemini 单模型约 230s;4 个 unary 空响应请求、1 个 stream 空响应请求),均由网关重试或 E2E 透明重试恢复,最终无转译断言失败。
⚠️ 已知限制
- 显式
cache_control仍不可跨协议保留,仅做cached_tokens → cache_read_input_tokens计费回填。 - Anthropic 历史
thinking需要真实签名、官方 Responsesreasoning需要encrypted_content,跨协议默认跳过;Gemini 目标可通过CONVERT_REPLAY_COT_SUMMARY=true回放摘要。 - Gemini 原生签名由
vsig1虚拟签名替代;严格校验签名的客户端可能不接受非标准格式。 - Schema 中不支持的关键字仍以 description 约束表达,而非结构等价。
- Reasoning 可用性由 Provider/模型/采样决定;Zed Claude/Gemini 与 Antigravity Claude 默认不暴露 thought 文本。
📦 升级建议
- 建议直接升级到 v4.1.9;无破坏性配置/API 变更。
- 使用 Responses → Gemini 结构化输出时,请确认客户端传入标准
text.format。 - 如依赖历史 CoT 回放,请按目标 Provider 的签名能力选择是否开启
CONVERT_REPLAY_COT_SUMMARY。