dsh-oc-go-usage:在 DSH 里查看 OpenCode Go 订阅的会话成本

前言

用 DeepSeek Harness(DSH)跑长会话时,模型调用会落在 OpenCode Go 订阅上,但控制台里的 request log 和 DSH 会话界面是分开的。想回答「这一轮 DSH 会话到底花了多少美元、用了哪些模型」,往往要在 opencode.ai 控制台里自己筛时间窗口、加总 cost 字段。

下面介绍的插件 dsh-oc-go-usage(维护者 x01Jin,社区分类 admin-security)把 OpenCode 控制台推理请求日志接到 DSH Web GUI:在会话标题栏增加 Opencode Go 标签页,并提供 /opencode-go 命令输出同一套数字。数据来源是官方 console API,不是估算。

这是什么

一句话:DSH 插件,按 当前 DSH 会话的时间窗口 汇总 OpenCode Go 订阅在控制台 request log 里的 USD 成本与 token 统计。

社区插件目录是独立站点,与 DeepSeek / 幻方无官方从属关系;DSH 本身遵循「一切皆插件」的扩展方式,本插件是其中一条 admin-security 类工具链。

核心功能

界面与命令

  • 会话头部分页:Chat、Trajectory 旁增加 Opencode Go;会话开始后才出现。
  • 斜杠命令:/opencode-go,以纯文本打印与标签页相同的汇总。

标签页展示内容(README 已列)

  • 会话窗口内:总成本、请求次数、token 合计(input / output / cache reads)。
  • 按模型:成本与请求次数。
  • 最近六条请求。
  • 按本地小时:成本与请求次数。
  • 从 DSH 宿主读取的会话指标:轮次、步数、LLM 与 tool 耗时、tokens/s、缓存命中率、上下文构成等。
  • Refresh 手动刷新;Save .txt 用系统文件夹选择器写入纯文本快照。

数字怎么算

OpenCode 在控制台为每次推理保留一行 request log,含 startedAt、finishedAt、模型、token、outcome、USD cost。插件请求:

GET https://opencode.ai/console/api/request-logs
    ?category=inference&since=<session start>&until=<now>&limit=100

since 取 DSH 会话 header.createdAt,until 为当前时间,窗口即会话生命周期;窗口内各行 cost 相加为总成本。匹配依据是 时间,不是 session id——同一 OpenCode Go workspace 在窗口内若有其他客户端请求,也会被计入。

安装与启用

前提(README Requirements):

  • 带 Web GUI 的 DSH
  • OpenCode Go 订阅
  • 能访问 opencode.ai 控制台

安装命令(原文):

dsh plugin add github:x01Jin/dsh-oc-go-usage

或在 GUI:Settings → Plugins → Add plugin,粘贴 github:x01Jin/dsh-oc-go-usage。重启 DSH 或刷新页面后,会话开始后可见标签页。

连接控制台(典型用法)

该 API 需要 浏览器控制台会话,个人 API key(oc_sk_...)访问此端点会返回 403。

  1. 打开 https://opencode.ai/console,打开 DevTools Network。
  2. 刷新页面,选中任意 request-logs 请求。
  3. 复制该请求 完整 cookie 请求头值。
  4. 在本会话 Opencode Go 标签页,粘贴到 Console session,点 Save。

workspace id(控制台 URL 中的 wrk_...)在控制台允许时会自动发现;若界面要求填写,可粘贴 id 或完整控制台 URL。插件接受 cookie: ... 或 authorization: Bearer ...;凭证存于 DSH credential store 的 OPENCODE_CONSOLE_COOKIE,workspace 为 OPENCODE_CONSOLE_WORKSPACE。仅宿主进程向 opencode.ai 发送,浏览器端不直连 opencode.ai。

快照与本地路由

Save .txt 打开系统目录选择器,取消则不写文件。文件名形如 20261028-072459-eb5c23ae.txt(本地时间 + 会话 id),便于按时间排序;内容含窗口、合计、衍生比率、宿主侧 DSH 数字、按模型拆分、本地小时直方图及当时适用的说明。

宿主提供的 HTTP 路由(前缀默认 /opencode-go,可配置):

method path 用途
GET /opencode-go/session-cost 单会话合计,session、refresh 查询参数
POST /opencode-go/session-cookie 保存凭证与可选 workspace
DELETE /opencode-go/session-cookie 清除二者
POST /opencode-go/session-export 导出快照到所选文件夹

可选配置

各键均可省略:

key default 含义
credentialRef OPENCODE_CONSOLE_COOKIE 存放控制台会话的 DSH credential
apiBase https://opencode.ai console 源站
cacheMs 20000 单次 console 响应复用时长(毫秒)
maxPages 25 单次读取分页上限(每页 100 行)
routePrefix /opencode-go 本地路由前缀
orgId 未设置 发现 workspace 被拒绝时手动指定 workspace id

credentialRef 也可指向环境变量名(DSH credential 会回退到进程环境)。

适用场景与注意

适合谁:已用 DSH Web GUI 且订阅 OpenCode Go,需要在会话内对照美元成本、模型分布,并偶尔导出 .txt 留档的开发者或运维。

行为与限制(README Limits):

  • 标签页在会话打开时每 30 s 刷新;宿主对 console 答案缓存 20 s(与 cacheMs 默认一致)。
  • 控制台 request log 保留约 30 天;更老的会话可能只有部分数据,标签页会标注。
  • 控制台会话随浏览器会话过期;出现 unauthorized 时需重新粘贴 cookie。
  • 恢复的会话仍从原始 createdAt 起算窗口,中间时段若落在同一 workspace 也会被计入。
  • 无 cost 的行计入请求数但不参与加总,面板会报告条数。

安全与安装前检查:插件以 当前 DSH 宿主进程权限 运行,并向 opencode.ai 携带你保存的控制台凭证。安装前应阅读 源码与 LICENSE,确认凭证存储与网络行为可接受;不要将 console cookie 泄露到不可信环境。

结尾

dsh-oc-go-usage 把 OpenCode Go 控制台推理日志与 DSH 会话时间窗对齐,在 GUI 和 /opencode-go 里给出可刷新的成本与用量视图,并支持导出文本快照。需要安装或 issue 时见目录页 skillhub.cn/plugins/x01Jin/dsh-oc-go-usage 与 GitHub x01Jin/dsh-oc-go-usage。

羽毛球分组比赛记分
小程序二维码

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

Xiaoye