前言¶
在 DeepSeek Harness(DSH)Web UI 裏開發或日常使用智能體時,很多人會同時掛 CPA 反代與 CPA-Manager-Plus 做賬號池和用量統計。Token 用量往往在管理面板裏看,連接狀態又要另開頁面,和側邊欄已有的 dsh-token-pill 是割裂的。dsh-cpamc-pill 在側邊欄底部補一塊只讀「小膠囊」:一顆狀態點和一行今日 token 數字,數據從 CPA-Manager-Plus 拉取,管理端密鑰留在 Host 側,瀏覽器只訪問插件註冊的同源路由。
這是什麼¶
dsh-cpamc-pill(npm 包名 @local/dsh-cpamc-pill,當前版本 0.1.0)由 ChrisZqaq 維護,歸類爲客戶端插件。它掛在 sidebar.footer.action,order: 21,緊挨 dsh-token-pill(order: 20)右側,刻意做得很小,例如:
● CPA · 18.72M
懸停可看今日彙總、調用健康與滾動 30 分鐘速率;點 Details 可看模型拆分與上游賬號池。
核心功能¶
讀什麼數據¶
插件只讀 CPA-Manager-Plus 兩個管理端接口(admin key 在 Host 解析,不進入瀏覽器):
| 接口 | 用途 |
|---|---|
GET /v0/management/dashboard/summary?today_start_ms=<ms> |
今日 token、調用、成功率、延遲、滾動 rpm/tpm、top models |
GET /v0/management/auth-files |
每個上游賬號:提供商、狀態、禁用與冷卻 |
瀏覽器側僅調用插件註冊的同源路由:
GET /dsh-cpamc-pill/status
Token 統計方式¶
插件採用 CPA-Manager-Plus 返回的 total_tokens(input_tokens + output_tokens),並約定 input_tokens 已包含 cache_read_tokens。若在展示時再疊加重算 cache,實測會把單日用量從約 9.09M 誤擴到約 17.61M;因此單獨推導 fresh = input - cached,便於保留 cache 命中率可讀性。
不展示費用¶
膠囊內故意不出現金額。反代後賬號多爲訂閱、無按次賬單,且 CPA-Manager-Plus 在價格同步前可能報告 total_cost: 0;顯示 ¥0.00 反而誤導,不如不顯示。
健康狀態¶
| 狀態 | 圓點 | 含義 |
|---|---|---|
ok |
綠 | 至少一個可用賬號,今日無失敗 |
degraded |
琥珀 | 全部賬號冷卻或禁用,或今日有失敗調用 |
offline |
紅 | 127.0.0.1:18317 上 CPA-Manager-Plus 無響應 |
unconfigured |
紅 | 無法解析 admin key |
無法連上服務時仍渲染膠囊(紅點),不會空一塊側邊欄。
依賴的 DSH 客戶端注入¶
與 dsh-token-pill 類似,在 dsh.client.inject 中聲明:
@deepseek-ai/dsh-api-remotes@deepseek-ai/dsh-client-locale@deepseek-ai/dsh-client-ui-sidebar
安裝與啓用¶
官方 README 給出的方式是把本地包鏈入 profile,而不是 dsh plugin add github:... 一類命令。先把插件源碼放到本機絕對路徑,再執行:
# 1. Link the package into your profile
cd ~/.dsh/profiles/<name>
npm pkg set "dependencies.@local/dsh-cpamc-pill=link:/absolute/path/to/dsh-cpamc-pill"
# 2. Add it to the bundle list
npm pkg set 'dsh.profile.bundles[]=@local/dsh-cpamc-pill'
# 3. Link the module the way the existing @local packages are linked
ln -sfn /absolute/path/to/dsh-cpamc-pill \
node_modules/@local/dsh-cpamc-pill
說明:桌面 profile 會用自帶安裝器處理 link: 依賴;若手寫改 package.json,第 3 步才必要,因爲普通 npm install 對 link: 會報 EUNSUPPORTEDPROTOCOL。
完成後重啓 Harness,或在 Plugin Manager 裏觸發 profile 重編排,通常可掛載插件而無需重啓。
配置 admin key¶
解析順序爲「先命中先用」:
- 環境變量
CPAMP_ADMIN_KEY - 文件
~/.dsh/cpamc-pill.json:{ "adminKey": "cpamp_..." } ~/Applications/cpa-stack/credentials.env內的CPAMP_ADMIN_KEY=
第 3 條針對從 Dock 啓動、進程不帶 shell 環境變量的場景;僅從 process.env 讀取會漏掉。缺 key 時進入 unconfigured,不發起網絡請求。響應裏會有 keySource(env / file / stack),不包含密鑰本身。
典型用法與自檢¶
- 確保 CPA-Manager-Plus 在 Host 可訪問(README 健康檢查默認
127.0.0.1:18317)。 - 按上一節配置
CPAMP_ADMIN_KEY或等價文件。 - 打開 DSH Web UI,在側邊欄底部
dsh-token-pill右側查看膠囊;懸停、點 Details 覈對用量與賬號池。
離線驗證(無需瀏覽器、Host 或外網):
node scripts/verify.mjs
或在包目錄執行 npm run verify。套件會 mock ModuleLoader、React 與 Cordis,覆蓋 slot 契約、翻譯鍵、token 摺疊、密鑰優先級、四種健康狀態等約 80 項斷言。
適用場景與注意¶
適合:已在本地或同機部署 CPA-Manager-Plus,希望在 DSH 側邊欄一眼看到反代健康與今日 token,又不想把 admin key 暴露給前端的用戶。
注意:
- 插件以當前 DSH 進程權限運行;安裝前建議閱讀 倉庫源碼 與 MIT 許可證。
- 社區目錄 SkillHub 插件頁 爲獨立收錄,與 DeepSeek / 幻方無官方從屬關係;DSH 生態遵循「一切皆插件」,本包是其中一類客戶端擴展。
結尾¶
dsh-cpamc-pill 把 CPA-Manager-Plus 的只讀彙總收成側邊欄一顆小膠囊:同源 GET /dsh-cpamc-pill/status、明確的 token 計賬規則、四種健康狀態,並與 dsh-token-pill 並排展示。進一步瞭解可訪問目錄頁 skillhub.cn/plugins/ChrisZqaq/dsh-cpamc-pill 與 GitHub ChrisZqaq/dsh-cpamc-pill。