Files
ycode/docs/协作/多模型协议桥接-交付-01.md
T

42 lines
4.4 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 多模型协议桥接:交付 01
2026-10-21。源码提交:`d773961168062aebb2d97aa05bde398fe382e2d7`。
基线:`8fcfb69408716a98d4fd09bd34912048ba419891`。
## 已实现
- 同批支持 OpenAI Chat Completions 和 Responses;Gemini 未开放。Anthropic 保留原直连路径与默认行为。
- 新增/编辑模型的现有“接口协议”下拉变成三个选项。独立 `apiPreference` 避免 Chat 与 Responses 混淆;编辑、重开、模型发现、生成测试与缓存均包含该身份。旧配置与现有密钥存储兼容。
- 模型选择器只放开真实支持的协议和能力;未改 CSS、原选择器实现、ChatPane、MessageBubble 或授权/思考布局。
- 主进程内回环桥按内核分配独立认证租约;上游配置冻结,真实上游 key 不传给 SDK。本机认证不转发给上游,日志不输出凭据。
- Messages 与两种 OpenAI API 的请求、普通响应、SSE、文本、图片、工具定义/调用/结果、参数片段、结束原因与实际上报用量转换。工具结果图片以带归属说明的后续用户图片内容转交上游;工具本身仍由现有内核执行。
- Responses 无服务端状态依赖(`store:false`、完整历史);不透明 reasoning items 按历史前缀和助手内容哈希匹配,保存到本地会话隔离目录,原子写入、限制大小、失败不伪装成功。重复相同回答不会串用另一回合推理数据。
- 已知推理历史在 compact/fork 后前缀变化,明确拒绝恢复而非猜测。取消、断连、启动失败、并发启动、内核结束与应用退出释放租约;删除会话同时移除其桥接历史,其他会话不受影响。
- 保留原队列语义:新回合解析当时会话模型,立即追加沿用活跃回合;不改权限快照或执行授权。
## 验证
- `npm test`:类型、chat、sessions、persistence、conversation 全部通过。
- `npm run test:model-bridge`:97 项本地协议/回环检查,16 组 mock SDK 主机检查通过。
- model-registry 独立离线回归通过:偏好持久化、缓存隔离、无隐式跨 API 回退、旧 Anthropic、Gemini 拒绝、密钥安全等。
- 严格 alignment:11 offline + 8 DOM 通过;原“下次消息权限”真实 host/mock kernel 隔离回归通过。
- `npm run build` 通过。CRLF-aware diff 检查通过。独立审查覆盖生命周期、推理历史匹配与 UI 源码变更边界。
- 证据:[model-bridge-01](evidence/model-bridge-01)。所有模型服务均为测试内的本机模拟端点;没有真实 SDK/CLI、外部模型、用户凭据或用户电脑调用。
## 明确限制与待验收
- 未完成真实 Claude Agent SDK、真实供应商、Windows 实机 UI 验收。mock、DOM 和构建通过不能代表实际模型工具执行兼容。
- 需要实际确认 SDK 的模型名称规则、思考块接收、工具多轮、cancel、compact、续接、恢复和所有供应商特有参数。
- 不支持的文档/音频/服务端工具/签名或外来思考块明确报错,不宣称全协议无损转换。不透明 Responses 历史文件缺失、换供应商或无法识别来源时无法可靠重建;已知前缀变化要求新会话,不承诺任意跨协议恢复。
- count_tokens 使用明确标记的保守 UTF-8 字节估算,不是真实 tokenizer,会影响压缩时机;生成用量只使用上游报告,不混入该估算。
- reasoning 历史上限每条路由 1024 项/16 MiB,达到上限明确报错不静默淘汰。文件包含本地对话内容与上游 opaque reasoning,JSON 本身未额外加密,不含 API Key;POSIX 权限 0600,Windows 权限继承用户数据目录。正常删除会话会清理该目录。
- 没有订阅账号发现、插件、自动跨模型故障转移、独立供应商页面或 wuli-go 对接;没有打包/发布安装程序。
## Windows 验收顺序
1. Anthropic 旧模型编辑、保存、选择、聊天截图与原版一致;三种协议分别编辑重开,确保不被改回其他协议。
2. 分别配置已授权的 Chat 与 Responses 测试端点,确认普通对话、工具调用/结果、图片、思考和用量。
3. 两会话不同配置并行、运行中修改下一请求配置、停止后重试、退出重开、删除会话与立即追加。
4. 401/429/超时/半截 SSE、无用量、无思考、超出能力输入;错误明确、无伪造完成、无重复工具操作。
5. 浅/深色、正常/窄窗对照旧截图:仅协议选项及模型文案有变化,布局不漂移。