Telegram vs Desktop 运行时差异实测裁决

结论

原文四条主张中只有一条被源码坐实:桌面端网关路径不传递记忆作用域键,导致桌面侧天然检索不到通信侧积累的上下文,这是“准不准”差异的真因。模型路由、服务优先级单边注入、工具回调缺失三条均被证伪或说反,本机实测两边用同一批模型、无优先级配置、两边都接了澄清回调。“更快”更可能是会话历史厚度差(桌面侧累计 turn 数约十倍于通信侧),而非运行时快车道。

现象与原文主张

  • 主张一:交互式路径用轻模型、后台用重模型,通信侧走快车道。
  • 主张二:通信侧正确注入服务优先级,桌面端网关没走同一套刷新逻辑。
  • 主张三:桌面端构建 Agent 时不传记忆作用域键,记忆被切成两个命名空间。
  • 主张四:网关会话中澄清工具看起来在、实际不可用,导致静默降级;桌面端快照竞态致对话“像没发生过”。

实测证据

判据实测
交互式轻模型配置项是否存在全仓库零命中,不存在该配置项;当前配置仅有一路默认模型
按通道绑模型是否存在全仓库零命中,该功能不存在
实际 serve 模型是否分叉通信侧与桌面侧用同一批模型,分布一致;自动降级全库仅个位数行
服务优先级配置是否存在配置文件中零出现;两边网关共用同一套优先级解析模块
记忆作用域键传递网关主路径多处传递该键;桌面端网关目录零命中,确实没传(2026-10-28 已本地修复,见末节)
澄清回调装配网关与桌面端网关各有一处装配,通信适配层另有专门回调处理,均已接线
会话体量桌面侧累计 turn 数约十倍于通信侧,上下文厚度差一个量级

逐条裁决

  • 模型路由:驳回。本机无该配置,两边同模型,无快车道。
  • 服务优先级单边注入:驳回。机制两边共有,且本机根本没配优先级,无“一边优先一边普通”。
  • 记忆作用域被切开:采信。这是唯一命中的一条,直接解释“准不准”。
  • 澄清工具不可用:说反了。两边都已接线,不存在单边缺失。
  • 快照竞态:存疑。属真实存在的风险类型,但本次未给出桌面侧不重校验的证据,列待实测。

边界

  • 分析阶段只读未改;修复阶段仅改一处构建参数(见末节),未动配置与日志。
  • 结论限于本机当前版本与当前配置;换配置或换版本后需重测。
  • 快慢的完整解释需补同提示词对照实验(模型名、延迟、记忆命中条数各跑三次),本次仅从历史日志分布推断。

外部信息复核

复核时间 2026-10-28,方式为公开仓库接口直查。总体:根因依然存在,缺陷报告仍开放,两个相关 PR 均未合并(原文误写为开放),最近稳定版本未包含该修复。

事项外部说法实测裁决
缺陷报告:桌面端不传记忆作用域键仍开放接口返回开放状态,标题与根因一致;桌面端网关目录实测零命中,构建函数只传用户标识采信
相关 PR:记忆会话键规范化开放接口返回已关闭且未合并;且该 PR 修的是记忆提供器键规范化,不是桌面端构建参数修正:已关闭未合并,目标也非本根因
相关 PR:缓存会话键路径开放接口返回已关闭且未合并;目标是缓存亲和键路径,不是桌面端构建参数修正:已关闭未合并,目标也非本根因
最近稳定版本是否含修复未包含版本存在,发布说明约三千字,零提及记忆作用域键;内容仅为远端面板会话刷新与状态库写入句柄两项采信

现状:在包含该修复的版本到达之前,桌面端续接通信侧会话时记忆作用域割裂将持续存在。本次只做笔记补充,未改任何代码与配置。

本地修复(2026-10-28)

  • 位置:桌面端网关 Agent 构建函数(agent_factory.py::_make_agent),在构造调用中新增一行 gateway_session_key=key。key 即四个调用方传入的稳定会话键,与网关侧 ctx.session_key 同义。
  • 原理:构造函数本就接受该参数,初始化时存为 agent._gateway_session_key,供记忆提供器、缓存亲和键、压缩会话标识、工具执行器调用方键使用;此前桌面端该值恒为 None。
  • 验证:改前已备份(暂存区 agent_factory.py.bak-20261028-gsk,哈希一致),改后编译通过;四个调用方全部确认传入 key,空值时行为与改前一致。
  • 风险与边界:该文件位于版本化安装目录,Hermes 升级或重装会覆盖,需上游合并同类修复才算根治;回退即用备份覆盖。桌面端网关进程重启后新建的 Agent 才带新键。