# 引擎一致性对比(2026-09-29) 同一套用例(服务端 agent/conformance.ts)对两个引擎各跑一遍;引擎由配置切换,业务代码不改。 | 检查项 | 假引擎(fake) | Pi(pi:deepseek/deepseek-flash) | | --- | --- | --- | | createSession 返回会话 | 通过 | 通过 | | 单轮产出文本并正常结束 | 通过 | 通过 | | 结束原因为 stop | 通过(reason=stop) | 通过(reason=stop) | | turn_end 是最后一个事件 | 通过(turn_end 在第 2/2 个) | 通过(turn_end 在第 9/9 个) | | 同一会话可多轮 | 通过 | 通过 | | 发出 tool_call 并带能力 id | 通过(期望 test.echo) | 通过(期望 fake.echo) | | 回执回流后产出 tool_result | 通过(执行模式:platform) | 通过(执行模式:runtime) | | 工具回合以 turn_end 收尾 | 通过 | 通过 | | 取消后以 turn_end(cancelled) 结束 | 通过(reason=cancelled) | 通过(reason=cancelled) | | 错误事件带合法分类 | 通过(kind=unavailable) | — | | 带历史恢复后仍可对话 | 通过 | 通过 | | 错误分类:跳过 | — | 通过(真实模型难以稳定注入错误;错误映射已由假密钥实测覆盖(401→forbidden)) | - 假引擎(fake):全部通过 - Pi(pi:deepseek/deepseek-flash):全部通过 ## 结论 - 两个引擎共用同一套用例与同一份工具契约;差异集中在工具面(假引擎由平台执行,Pi 由扩展桥在子进程内执行)与模型行为。 - 业务侧改动为零:应用服务、Core、客户端、协议都没有因换引擎而变化。