前言¶
用 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 統計。
- 倉庫:github.com/x01Jin/dsh-oc-go-usage
- 目錄頁:skillhub.cn/plugins/x01Jin/dsh-oc-go-usage
- 許可證:MIT(見倉庫 README)
社區插件目錄是獨立站點,與 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。
- 打開 https://opencode.ai/console,打開 DevTools Network。
- 刷新頁面,選中任意
request-logs請求。 - 複製該請求 完整
cookie請求頭值。 - 在本會話 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。