Skip to content

About

把散落在输入栏的功能收进一个可开关的工具箱:额度 / 缓存命中率 / 速度 / 优化提示词

Resources

Stars

0 stars

Watchers

0 watching

Forks

Latest commit

 

History

6 Commits

Folders and files

Repository files navigation

输入栏工具箱 · input-toolkit

把常用能力收进聊天输入栏上方的状态行,每一项独立开关。

在输入栏上从左到右显示:

额度 · 缓存命中率 · 速度 · 优化提示词

每一项都能在设置里单独关掉,互不影响。放不下的条目会收进输入栏上方的 … 溢出条, 所以常留哪几项由你决定。


作者

  • 开发者:放线菌
  • QQ:11991234

四个功能

额度

显示所选供应商的账户额度。在设置里勾选要显示的,取消勾选就不再请求。

5H 89% / 周 71%  ·  ¥36.21
  • 同一家公司的多个额度之间用 / 分隔,不同公司之间用 · 分隔
  • 点一下立即刷新
  • 取数失败时显示 ✗,并在悬停提示里给出失败类别(无 Key / 401 / 限流 / 超时 / 网络)
  • 勾选哪几个额度、在设置里定;轮询间隔可选 1 / 5 / 10 / 15 / 30 / 60 分钟
  • 只在勾选了额度项时才显示;一项都没勾会显示「额度 · 未选」

需要 app/provider.credentials.read 权限读取 API Key。凭证由宿主统一管理,本应用不存储。

支持的供应商:

供应商 可显示的额度
MiniMax 5 小时窗 · 周窗
DeepSeek 账户余额
智谱 GLM 剩余配额
月之暗面 Kimi 账户余额
OpenRouter 剩余额度 · 累计已用(美元)

只在宿主里已配好 Key 的供应商之间匹配,没配的不会显示。金额按接口返回的币种显示, 不会一律印成人民币。

暂不支持:硅基流动(官方余额接口已于 2026-08-14 停用)、商汤(需账号密码登录)。 OpenAI / Anthropic / Google 没有公开的余额查询接口。

缓存命中率

显示当前对话正在使用的那个模型的缓存 token 占比。

命中 99.90%

它算的是什么(token 口径,行业称 cached token fraction):

Σ 缓存读取 token ÷ (Σ 缓存读取 token + Σ 未命中缓存的输入 token)

Anthropic 的 cache_read_input_tokens、OpenAI 的 cached_tokens 都是这个口径。

不是请求命中率。 请求口径(命中请求数 ÷ 总请求数)在长对话里会必然饱和成一个长期显示 100% 的死数字——缓存本来只在上下文足够长时才生效,一旦生效就几乎每轮都命中。而 token 口径 会随对话推进持续变化,天然到不了 100%:长对话通常从 20% 一路升到 99% 以上,这个梯度才有 观察价值。

显示规则:

  • 固定两位小数,末尾的 0 不丢(80.00%,不是 80%)
  • 采用向下截断而非四舍五入,且封顶 99.99%——真实值 ≥99.995% 时四舍五入会输出 100.00%, 把「很多轮都命中」渲染成「每次都命中」,那是显示误导
  • 没有可用记录时显示 命中 —,而不是 命中 0.00%——那是「没数据」不是「一次没中」
  • 只统计当前会话最近 200 条用量记录
  • 只统计「当前会话正在用的那个模型」的记录;取的是时间上最新的记录对应的模型, 不依赖记录在返回数组里的位置

需要 app/usage.read 权限。

速度

显示当前这一轮的平均 token 输出速度。

112 tok/s

口径:这一轮的输出 token 总数 ÷ 这一轮的实际耗时。轮次边界与计时取自宿主的 turn_start / turn_end 事件,所以一轮结束就出数,不靠等。

需要知道两件事才能读懂这个数:

  1. 分母含工具执行时间。 一轮回复不是一次生成,中间可能夹着多次工具调用。 工具执行的时间算在耗时里。所以同一段输出,调用 5 次工具和调用 1 次会显示出不同的速度。 它的含义是「从你按下回车到这一轮出完,实际有多快」,不是模型的纯生成吞吐。
  2. 轮末才更新。 一轮进行中算不出完整数字(token 数还没全部入账), 此时沿用上一次的有效值,悬停会说明。

显示规则:

  • 取整,不显示小数——速度抖动大,小数位是虚假精度
  • 只显示 1~2000 tok/s 之间的值,区间外判为轮次切分异常、不显示
  • 本轮算不出时沿用上一次的有效值,不闪破折号
  • 取数暂时失败时同样沿用旧值并标为已过期,而不是清空
  • 悬停会说明当前显示的是本轮、上一轮、还是更早的一轮

需要 app/usage.read 权限。

优化提示词

点一下,把输入框里的草稿交给小工具模型改写,再原地替换回去。

🪄  →  ⋯  →  ↶
  • 点第一下:优化当前输入框文本,完成后按钮变成 ↶
  • 点第二下:撤销,还原成优化前的原文
  • 生成过程中按钮置灰,避免重复触发
  • 你在优化完成后又动手编辑了输入框,按钮会自动复位成 🪄(原文随之作废)
  • 模型返回被长度限制截断时会放弃写回并明确提示,不会拿半截内容覆盖原文

平台限制:仅 Windows。 它通过 Windows 的 UI 自动化读写其他窗口的输入框, 其他系统上这个功能不可用。其余三个功能跨平台可用。

需要 app/process.spawn 权限(调用 PowerShell 完成窗口操作)与 app/models.infer 权限 (调用模型改写)。

安全约束:写回前会校验前台窗口仍是本应用,输入框位置失效或窗口被最小化时直接取消; 模拟按键前会再次校验。所有按键只会作用于本应用的输入框,不会打进其他窗口。


权限

首次安装或升级到需要新权限的版本时,宿主会弹出授权请求。

权限 用途 哪个功能需要
app/input.status 在输入栏写状态行 全部
app/usage.read 读取用量台账 缓存命中率、速度
app/sessions.read 识别当前会话 全部
app/provider.credentials.read 读取 API Key 额度
app/network → www.minimaxi.com / api.deepseek.com 查询额度 额度
app/process.spawn 调用 PowerShell 操作窗口 优化提示词
app/models.infer 调用模型改写文本 优化提示词

网络访问只允许额度查询所需的五个域名(MiniMax / DeepSeek / 智谱 / 月之暗面 / OpenRouter),不访问其他任何地址。


设置

在宿主设置 → Apps → 输入栏工具箱。四项各有一个独立开关。

配置项 说明
四项功能开关 独立控制,缺省为开
额度勾选 选显示哪几个额度,顺序即显示顺序
额度轮询间隔 1 / 5 / 10 / 15 / 30 / 60 分钟

环境要求

  • HanaAgent ≥ 0.970.9
  • 额度功能需要已在宿主里配置好 MiniMax 或 DeepSeek 的凭证;没有凭证会显示「无 Key」

安装

把 input-toolkit 目录(或其 zip 包)交给目标机器,在宿主里选择从本地安装。

安装目录默认是 %USERPROFILE%\.hanako\apps\input-toolkit。

About

把散落在输入栏的功能收进一个可开关的工具箱:额度 / 缓存命中率 / 速度 / 优化提示词

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages