☰
为什么它从不消耗一个token?opencode-quota零上下文污染的设计原理
2026/10/17 2:20:40 网站建设 项目流程

【免费下载链接】opencode-quota

OpenCode quota & tokens usage with zero context window pollution. Supports OpenCode Go, Cursor, GitHub Copilot, OpenAl, Kimi Code, Alibaba Coding Plan, Chutes Al, Google Antigravity, Z.ai Coding Plan and more.

项目地址:https://gitcode.com/gh_mirrors/op/opencode-quota
点击查看免费下载

opencode-quota 是一款为 OpenCode 提供quota(配额)与 token 用量查询的开源插件,支持 OpenCode Go、Cursor、GitHub Copilot、OpenAI、Kimi Code、Alibaba Coding Plan 等数十家服务商。它的最大卖点写在标语里:zero context window pollution——即"零上下文窗口污染"。

什么意思?很多聊天插件把统计信息直接塞进对话,这些文字会被发给大模型参与下一轮推理,白白烧掉你的 token 余额。而 opencode-quota 通过三条硬核设计原则,让配额报告"看得见、用得上,却从不进模型"。

一、先搞懂:什么才是真正的"上下文污染"?

AI 编程工具的每一轮请求,都会把完整会话历史发给模型。于是:

  • 插件往聊天里 post 一条报告 → 下次请求时,模型要"读"一遍这份报告;
  • 会话压缩(compaction)生成摘要 → 报告文字被复制进摘要;
  • 自动生成会话标题 → 又是一次隐藏的模型调用。

表面上你只是"看了一眼配额",实际上下一次对话的 prompt 里多躺了几 KB 的无用文本。

二、原理一:数据根本不经过大模型 🚫

项目规则第一条就写得很直白(见 CONTRIBUTING.md):

No AI calls.绝不请求 AI 模型来生成插件要展示的任何内容,那会花掉用户的 token。调用服务商的配额/账单 API 是允许的。

也就是说,opencode-quota 的所有数字都来自两条"干净"通道:

数据来源说明例子
服务商 Quota API直接查询官方的配额、余额、限流接口GitHub Copilot、OpenRouter、Kimi Code
本地估算读取 OpenCode 本地会话数据库统计 token本地 token 报告、Cursor 预算

报告里没有一个字是由 LLM"写"出来的,自然也就没有任何一次请求是为它而发的。

三、原理二:服务端计算,界面只负责"画"

插件采用严格的Server vs TUI 分层(见 src/plugin.ts 与 src/tui-v2.tsx):

  1. 服务端插件(src/plugin.ts)负责全部计算:读取登录态、请求配额接口、格式化文本;
  2. 计算结果注册为一条名为slkiser.opencode-quota的 RPC 接口(定义在 src/rpc.ts);
  3. TUI 界面插件只订阅 RPC 返回值并绘制,从不接触服务商与凭据代码。

这种"一次计算、多处渲染"的架构,让下面这些展示面全部零模型开销:

  • 侧边栏面板:常驻显示各服务商配额进度条;
  • 悬浮 toast:闲置时弹出提醒;
  • 状态栏:输入框下方一行紧凑摘要;
  • 斜杠命令:/quota、/tokens_weekly等主动查询。

四、原理三:报告消息的全链路隔离 🧱

/quota这类命令确实会把报告 post 进聊天(方便 Web/Desktop 查看),但项目用了四道"围栏"保证它永远不会泄漏给模型:

  1. 投递不触发模型回合:报告以resume: false方式投递,只静静躺在会话收件箱里,绝不开启新的一轮模型推理(src/plugin.ts);
  2. 双重标记:每条报告消息都带上opencodeQuota元数据,正文再用[OpenCode Quota report]…[End of OpenCode Quota report]围栏包裹(src/lib/quota-report-message.ts);
  3. 三个请求钩子实时切除:拦截context、compaction、generate三类会话钩子,任何由历史构建的模型请求在发出前都会被withoutQuotaReports()剥掉全部报告(src/plugin.ts);
  4. 标题生成也拦截:若会话第一条消息就是报告,title钩子会跳过标题生成请求,连这次隐藏调用也不放过(src/plugin.ts)。

元数据 + 文本围栏是双保险——因为 OpenCode 压缩会话时复制消息文本会丢失元数据,围栏标记保证"退而求其次"时依然切得干净(src/plugin.ts)。

五、效果:一份完整的 token 报表,成本为零 📊

命令报告支持时间窗口、Top 会话、花费明细,且数据同样来自本地数据库与服务商 API:

命令说明
/quota当前配额总览
/tokens_today今日 token 用量
/tokens_weekly//tokens_monthly近 7 / 30 天用量(月度含定价)
/tokens_session_all本会话及子代理会话
/quota_status登录、服务商、定价体检

CLI 端npx @slkiser/opencode-quota@latest show甚至可以在 OpenCode 关闭时独立运行。

六、快速上手:一条命令接入 ⚡

npx @slkiser/opencode-quota init

重启 OpenCode 后输入/quota即可。要求 OpenCode2.0.16+与 Node.js22.13+(完整指引见 README.md)。

小结

opencode-quota 的"零上下文污染"不是营销话术,而是三层工程决策的叠加:

  1. 数据源头不碰 LLM——只查配额 API 与本地统计;
  2. 架构上计算与渲染分离——服务端算一次,RPC 广播给所有界面;
  3. 消息层面全链路切除——投递、元数据、围栏、四类钩子层层兜底。

对重度使用 AI 编程工具、同时订阅了多家服务商配额的同学来说,这相当于一个"免费搭售"的用量仪表盘:信息始终在眼前,账单从不为它买单。

【免费下载链接】opencode-quota

OpenCode quota & tokens usage with zero context window pollution. Supports OpenCode Go, Cursor, GitHub Copilot, OpenAl, Kimi Code, Alibaba Coding Plan, Chutes Al, Google Antigravity, Z.ai Coding Plan and more.

项目地址:https://gitcode.com/gh_mirrors/op/opencode-quota
点击查看免费下载
上一篇:如何免费解锁英雄联盟全皮肤?LeagueSkinChanger完整使用指南
下一篇:5个关键理由:为什么Reloaded-II正在重新定义游戏模组开发的未来

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询