状态栏升级:缓存命中率、延迟、每秒 Token 一眼看穿

你盯着终端底部那行状态栏:模型名、上下文百分比、压缩图标……信息不少,但你心里真正想问的是“这个模型现在到底快不快?我的缓存有没有命中?每秒能吐多少 token?”——毕竟缓存命中率直接决定你的 API 账单是打 1 折还是全价。8 月 30 日合入的更新(PR #98250)把这三个答案直接放进了状态栏:缓存命中率(◎)、滚动平均延迟(◷)、每秒输出 token(↑),而且每个字段都能用配置自由开关。
状态栏多了什么
以宽终端为例,更新后的状态栏长这样:
⚕ model │ 3% │ ◎ 87.4% │ ◷ 3.2s │ ↑ 50 t/s │ 2m
从左到右:模型名、上下文占用 3%、缓存命中率 87.4%、平均延迟 3.2 秒、每秒输出 50 token、本次会话时长 2 分钟。三个新指标都是滚动统计——延迟和吞吐量取最近 10 次调用的移动平均,而不是从启动算起的“终身平均值”,所以它反映的是当前的模型状态。
几个聪明的细节:
- 缓存命中率在切换模型和上下文压缩时会重置基准——它反映的是当前这一轮缓存体系的命中情况,不是被历史稀释的平均数;
- 完全没有缓存读取时,它隐藏这个字段而不是显示吓人的 0%——避免误导;
- 负数或异常延迟有防护——统计不会被一次抖动污染。
字段开关:display.status_bar.fields
新指标不是硬塞给你的,每个字段都可以独立开关。配置键是 display.status_bar.fields,空列表表示“全部默认字段”:
display:
status_bar:
fields: [] # 空 = 全部默认字段
比如你只关心缓存命中率和速度,可以只保留这几个:
display:
status_bar:
fields: [model, ctx, cache_hit, latency, tps]
这样状态栏就只剩 ⚕ model │ 3% │ ◎ 87.4% │ ◷ 3.2s │ ↑ 50 t/s。对照源码(hermes_cli/config_defaults.py),完整的字段清单是:cache_hit、latency、tps、compressions、bg_tasks、bg_processes、bg_subagents、goal、duration、prompt_elapsed、idle_since、focus、yolo、stash、battery、title、total_tokens。注意两点:
total_tokens(本次会话累计 token)是“选择性加入”的——你不在列表里写它,它就永远不显示;- 窄终端会自动丢弃宽屏专属字段(
context_detail、prompt_elapsed、idle_since),不管你怎么配。
为什么缓存命中率值得盯
这是三个新指标里最“值钱”的一个。主流 API 提供商(Anthropic、OpenAI、DeepSeek 等)对提示词缓存(prompt caching)的收费通常是正常输入价的 1/10 甚至更低。状态栏显示命中率,等于给你的省钱策略装了一块实时仪表盘:如果命中率长期偏低,说明你的会话结构在频繁变化(比如系统提示词被反复改动、工具描述不稳定),缓存一直失效;如果稳定在 80% 以上,说明你的钱花在了刀刃上。
怎么用上
PR #98250 于 2026 年 8 月 30 日合入,目前只在 main 分支,v0.20.6 还没有。更新到最新 main 后,直接跑 hermes 就能看到新字段;想调整就用 hermes config edit 改 display.status_bar.fields。
状态栏是 Hermes CLI 的“仪表盘”,而这几个新指标把它从“装饰”变成了“经营数据”。想知道缓存和 token 的完整省钱玩法,可以搭配 免费搜索 5 通道、上下文 token 优化指南 一起看;命令行里的其他隐藏效率点,见 CLI 命令面板指南。