OpenClaw 升级后还是慢?剖析影响响应时间的两个参数
升级 9.4 之后,最让我关心的指标恢复了:缓存命中率从 9.3 时代的 4% 回到 85%,跑稳后稳定在 98%,模型调用的平均耗时也从 3638ms 降到 3096ms。但实际用起来还是觉得慢——回复里总有一段固定的时间,花在「模型说完话」和「下一句话开始」之间。这段跟模型没关系,是网关自己在干活。
翻配置时我发现,9.3 之后新增的两个参数,管的正好是这一段。先划清边界:这俩参数都动不了缓存命中率。命中率是服务端决定的——它拿每次请求开头那段固定内容(系统提示词、工具定义、历史记录,术语叫「前缀」)去对书签,对上了才算命中;换模型、改思考档位才会让书签作废。这两个参数省的是另一笔账:每一轮的固定开销。
第一个参数:sessionObserver——没人看的状态摘要
Control UI 左侧的会话列表,每行会显示一句实时状态(「正在处理」「已完成」这种)。这句状态文字不是写死的:简单状态网关自己就能拼,但更细致的评估和结束摘要(官方叫 utility model 和 terminal summaries),要额外调一次小模型来生成。
这功能默认开启。问题在于:如果你平时主要用微信跟 OpenClaw 对话,根本很少打开网页看侧边栏——那这条链路对你就是纯开销,每轮多一次模型调用、多一份 token,生成的摘要没人看。
关掉:
{ "gateway": { "controlUi": { "sessionObserver": false } } }
两个注意点:官方把它列在热生效配置里,改完刷新网页就行,不用重启网关;界面上也有开关(Settings > Appearance > Sidebar)。关掉后只有侧边栏状态不再实时更新,微信收发、定时任务、记忆全都不受影响。
第二个参数:fastModeDefault——给请求贴「加急」标记
Fast mode 的官方定义:把请求标记为优先处理(以前叫 Priority processing),在 OpenAI 接口上具体动作就是发一个 service_tier=priority 字段。说白了是贴标记,不是让模型跑快点。
这个开关有一条从高到低的优先级链:
- 消息里临时发
/fast指令 - 会话级设置
- 单个 agent 的设置
- 全局开关
agents.defaults.fastModeDefault——我改的就是这层 - 单个模型的设置
- 都没设 = 关
改全局这层的价值:所有没单独配置的会话都跟着生效,一处开关管全部。
诚实的边界(官方文档原话的意思):贴了标记,不等于供应商端一定给你加速。我用的火山兼容端点就在「未承诺」名单里。我的实测是纯回复 1.1 秒、没有劣化,所以留着开了——把它当「请求多了个优先标记」,别指望它让模型变快。
这俩参数管不到的地方
回复慢拆开是三段:
- 模型自己想的时间——供应商的事。我实测白天 2 秒上下、深夜能到 5 秒,本地参数改变不了它
- 两轮之间的调度——上面两个参数优化的就是这段
- 缓存没命中时的整段重算——代价跟上下文大小成正比,要靠压缩或等官方修复,跟这俩参数无关
两个开关能省的就是中间那段固定开销。省完还想继续挖,就得换一套工具去量了——那是另一篇文章的事。