前言¶
DeepSeek Harness(DSH)的插件生态采用「一切皆插件」的理念,让开发者通过配置和扩展来定制工作流。在智能体开发中,资源配额管理是高频场景,尤其是订阅型产品往往只展示已用百分比和重置时间,但开发者更关心:按当前消耗速度,配额会在本月结束前耗尽吗?耗尽后是续订订阅更划算,还是改用按量计费 API 更省钱?
hugoou/dsh-opencode-go-eta 就是为了回答这个问题。它在 DSH 的 composer dock 中提供一个胶囊,展示配额消耗历史、预测耗尽时间(ETA)、与续费日期的对比,以及续订与溢出计费的成本建议。它不读取会话日志,而是通过官方接口采样,只保留配额读数与定价缓存,遵循 DSH 的隐私与权限设计。
是什么¶
这是一个为 DeepSeek Harness 设计的 OpenCode Go 配额预测组件。它维护本地历史采样记录,使用 Theil–Sen 回归计算当前周期的预测耗尽时间,并与订阅的 endsAt 对比,给出三种结论:耗尽在续费前、耗尽在续费后、当前周期内安全。当预测耗尽发生在续费日期之前,它会对比续订 OpenCode Go 与使用官方 API 支付溢出部分的费用,推荐更经济的方案。该插件运行在 DSH 进程内,不直接暴露 API 密钥,通过 Harness 的凭证服务解析。
插件由 HugoOu 维护,归类为「联网工具」。它依赖 DeepSeek Harness 0.2.x(桌面或 Web profile)以及 Node.js ≥ 22。
核心功能¶
1. 预测耗尽时间(ETA)¶
插件每天在固定时间锚点(本地 03:00、09:00、15:00、21:00)、任务结束、启动时以及按需采样官方配额接口,获取已用百分比与重置时间。采样记录保留 45 天,用于计算当前周期的趋势。它使用重置感知的 Theil–Sen 回归拟合当前周期的斜率,给出预测耗尽时间与置信层级。如果当前周期有效样本少于 3 个或跨度不足 6 小时,会报告样本不足,不给出预测。
2. 续费日期对比¶
插件将预测的耗尽时间与订阅的 endsAt 对齐,输出三种状态:耗尽在续费前、耗尽在续费后、当前周期内安全。这帮助开发者决定是否需要提前续费、切换到按量计费,或继续使用订阅。
3. 成本建议¶
当预测耗尽在续费日期之前时,插件会计算溢出量:(预测在续费时的百分比 − 100%) × 模型的月度配额金额。它对比两种方案的成本:续订 OpenCode Go 的费用(planPriceUsd)与使用官方 API 支付溢出部分的费用(基于当前模型的公开价格)。插件会推荐更经济的选项,并说明两种路径的费用差异。
4. 合并图表与胶囊¶
在 composer dock 中,胶囊采用 14px 直径与 2px 环的视觉规格,与 DSH 原生的上下文环保持一致,作为文本触发器。点击胶囊会展开卡片,其中包含历史采样、当前点、预测线、ETA 标记与续费标记,并以 0–100% 为轴绘制。卡片在深色模式下会自动调整高亮层的透明度,适配不同主题。
5. 按模型配额与货币单位¶
OpenCode Go 的月度配额是按模型区分的(例如 DeepSeek V4.1 Flash 在 Go 计划中为 $80,在 Go Plus 中为 $160;Kimi K3 为 $15)。插件在卡片上显示模型与该模型的配额金额,而百分比始终以官方控制台的数值为准。货币单位与配额金额基于用户配置,用于成本建议计算。
6. 无轮询风暴¶
插件通过时间锚点与任务结束、启动等事件触发采样,避免高频轮询。默认锚点为本地 03:00、09:00、15:00、21:00,可通过配置禁用定时采样。采样间隔与数据新鲜度阈值(staleAfterMs)可调,保证数据时效性与系统负载的平衡。
安装与启用¶
插件需要 DeepSeek Harness 0.2.x(桌面或 Web profile)以及 Node.js ≥ 22。安装后需完全重启 DSH 才能生效。
# 从 GitHub 安装
dsh plugin --profile desktop add github:HugoOu/dsh-opencode-go-eta
# 或从本地检出安装
dsh plugin --profile desktop add link:C:\path\to\dsh-opencode-go-eta
安装后,胶囊会出现在 composer dock 下方。点击胶囊可查看卡片。
配置说明¶
插件默认配置存储在 cordis.patch.yml 中,可通过在用户 profile 中添加配置来覆盖默认值:
- id: opencode-go-eta
name: dsh-opencode-go-eta
config:
apiKeyRef: OPENCODE_GO_API_KEY # 凭证引用,而非密钥本身
anchors: [3, 9, 15, 21] # 本地小时数;[] 禁用定时采样
sampleIntervalMs: 1200000 # 两次隐式采样之间的最小间隔
staleAfterMs: 2700000 # 超过此时间未采样的读取会触发新采样
retentionDays: 45 # 采样记录保留天数
planName: Go # 卡片上显示的计划名称
planPriceUsd: 10 # 单期价格,用于成本建议
modelLabel: DeepSeek V4.1 Flash
modelAllowancesUsd:
deepseek-v4.1-flash: 80 # Go 表格中的月度配额;Go Plus 用 160
pricingModel: deepseek-v4.1-flash
pricingUrl: https://models.dev/api.json
pricingTtlMs: 43200000
API 密钥通过 Harness 凭证服务解析(OPENCODE_GO_API_KEY),不会直接传递到浏览器。
工作原理¶
插件按阶段处理采样、历史、预测、判定与建议:
| 阶段 | 行为 |
|---|---|
| 采样 | 在 03/09/15/21 本地时间、任务结束、启动时,按需调用 GET /zen/go/v1/usage(获取百分比与重置)和 GET /console/api/go/status(获取计费周期起止、计费器等)。 |
| 历史 | 采样记录保存在 $DSH_HOME/opencode-go-eta/samples.json,采用原子写入,保留 45 天。 |
| 预测 | 只使用当前周期内的采样点,计算 Theil–Sen 斜率作为耗尽趋势。若有效样本少于 3 个或跨度不足 6 小时,报告样本不足。 |
| 判定 | 将预测耗尽时间与窗口重置时间及订阅的 endsAt 对比,给出「耗尽在续费前」「耗尽在续费后」「当前周期内安全」三种结论。 |
| 建议 | 计算溢出金额((预测在续费时的百分比 − 100%) × 模型月度配额),对比续订成本(planPriceUsd)与按量计费成本(溢出量 × 官方价格),推荐更经济的路径。 |
注意:官方控制台的计费器为计划信用上限(观察到 $60),而官方 Go 表格列出了按模型的月度配额(如 DeepSeek V4.1 Flash 为 $80)。插件中百分比始终以控制台数值为准,货币与配额金额基于模型配额,两者互不矛盾。
适用场景与注意¶
该插件适合在以下场景中使用:需要持续监控订阅型配额消耗、希望提前规划续费或切换计费方式、关注不同模型的配额差异与成本结构。它特别适合有多模型使用习惯的开发者,因为配额是按模型区分的,插件可以针对每个模型展示不同的配额与建议。
使用时需注意:插件运行在 DSH 进程内,需确保 DSH 有权访问官方配额接口;如果官方接口变更(例如 /console/api/go/status 改变),卡片将降级为仅显示百分比;预测是线性外推,不代表厂商的官方预测;成本建议假设配额计费器与官方价格在同一量纲上,且 token 估算为近似值;插件不存储提示或会话数据,仅保留配额读数与定价缓存。
短结尾¶
dsh-opencode-go-eta 在 DSH composer dock 中提供了一个轻量、隐私友好的配额监控入口,帮助开发者从被动查看百分比转变为主动规划资源消耗与成本。它通过本地采样与 Theil–Sen 回归,给出基于历史数据的耗尽预测与续费建议,适合需要精细管理订阅型配额的开发者。
- 目录页:https://www.skillhub.cn/plugins/HugoOu/dsh-opencode-go-eta
- GitHub:https://github.com/HugoOu/dsh-opencode-go-eta