dsh-opencode-go-eta:OpenCode Go 配额消耗与续费决策插件

前言

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
羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜