sapi-budget:在 DSH 裏同步 AiSpot 分組價並顯示會話與子代理成本

前言

在 DeepSeek Harness(DSH)裏跑多輪對話、子代理(subagent)時,主機側通常不會直接給出「這一會話花了多少錢」。若你接的是 AiSpot(sapi)一類按分組定價的部署,分組和模型單價還會隨提供商更新,硬編碼價表很快失效。sapi-budget 是社區插件,從兼容的 sapi 部署拉取分組與價目,在界面裏展示會話合計與每輪 assistant 成本,並把子代理子樹一併計入;切換分組時歷史數字會按當前價目即時重算,無需重載或重放會話。

這是什麼

sapi-budget(包名 dsh-sapi-budget,GitHub:Lanstzz/sapi-budget)由維護者 Lanstzz 發佈,分類爲模型推理。它解決的是:在 DSH 中把 AiSpot 各分組的模型價格同步到本地緩存,並在對話標題區與會話末尾用瀏覽器側價目計算展示費用;主機不發佈金額,投影只攜帶 token 分桶,由前端對照實時目錄計價。

核心功能

會話與子樹合計

對話標題區顯示會話總成本,計算方式爲 subtree(s) = own(s) + Σ subtree(children),即當前會話自身加上所有後代 subagent 的開銷。

每輪成本與明細

每條 assistant 回合結束處顯示當輪成本。鼠標懸停可查看 breakdown:模型名、各 token 分桶數量與合計。

分組列表與即時重定價

分組列表從提供商抓取,不寫死在插件裏;分組增減會隨提供商變化。在對話標題區的下拉里選擇當前分組;歷史會話數字會立即按新分組重算,無需 reload 或 replay。

價目數據來源

插件向提供商三個無需認證的公開接口取數:

接口 用途
/api/pricing 模型列表、ratio 與 tiered_expr 表達式
/api/status 額度單位與匯率
/api/user/groups 分組名與各分組 ratio 乘數

分層表達式由 pricing.js 中的手寫 tokenizer 與遞歸下降解析器求值,不使用 eval 或 new Function。

精度與邊界說明

  • 分層(tiered)模型在 UI 中標註爲「估算」/ estimate。
  • subagent 的花費按根會話的模型費率計價(主機側無法跨會話歸因模型),相關行同樣標爲估算。
  • 插件安裝前已結束的 subagent 沒有可讀投影,顯示爲 unknown,不會顯示爲 $0.00。

主機側能力

index.js 提供定價服務、三個 HTTP 路由、sapiCost 會話投影,以及 sapi_price agent 工具;client.js 負責 Web 端插槽、分組選擇與 tooltip。

安裝與啓用

插件以當前 DSH 進程權限運行;安裝前請自行審閱 GitHub 倉庫 源碼與 MIT 許可證。

官方安裝方式:

dsh plugin add github:Lanstzz/sapi-budget

若使用本地檢出目錄:

dsh plugin add /absolute/path/to/sapi-budget

安裝後需重啓應用:bundle 在啓動時加載。

配置(可選)

在 profile patch(cordis.patch.yml)中可設置:

- id: sapi-budget
  name: 'dsh-sapi-budget'
  config:
    baseUrl: https://aispot.swj0227.icu   # 任意兼容部署
    group: ''                             # '' 表示由提供商選最便宜分組
    currency: USD
    refreshMinutes: 30

分組通常是在 UI 中選擇並寫入瀏覽器 localStorage(鍵 sapi-budget.group);配置裏的 group 僅作回退。

典型用法

  1. 按上文命令安裝並重啓 DSH。
  2. 打開對話,在標題區下拉選擇 sapi 分組(或使用默認最便宜分組)。
  3. 正常多輪對話或觸發 subagent;觀察標題區會話合計與各 assistant 回合末尾的當輪成本。
  4. 需要覈對單價時,懸停當輪成本查看模型與 token 分桶 breakdown。
  5. 切換分組後,同一會話內已有輪次的顯示金額應即時更新,無需刷新頁面。

開發自檢(來自 README,供貢獻者參考):

node --check index.js && node --check client.js && node --check pricing.js
node --test test/index.host.test.js
node --test test/client.test.js
node probe-tooltip.mjs

適用場景與注意

適合:接 AiSpot(或兼容 baseUrl 的 sapi 部署)、需要在 DSH Web 界面直觀看到會話/輪次/子代理樹成本,並隨分組切換重算曆史的開發者。

注意:

  • DSH 生態是「一切皆插件」;社區目錄站點 SkillHub 插件頁 與 DeepSeek / 幻方無官方從屬關係,並非官方應用商店。
  • 分層模型與 subagent 費率歸因存在估算與 unknown 邊界,不宜當作賬單級精確結算。
  • 價目緩存默認每 30 分鐘刷新(refreshMinutes),極端情況下與提供商即時價可能有短暫偏差。

結尾

sapi-budget 把 sapi 分組價目同步進 DSH,並在對話標題與會話輪次上展示含 subagent 子樹的成本;分組來自提供商、歷史可即時重定價,適合在 Harness 裏做成本可見性而非硬編碼價表。

  • 目錄頁:https://www.skillhub.cn/plugins/Lanstzz/sapi-budget
  • 源碼與說明:https://github.com/Lanstzz/sapi-budget
羽毛球分组比赛记分
小程序二维码

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

小夜