dsh-plugin-auxiliary-runtime:DSH 可取消輔助模型調用與來源保留用量賬本

前言

在 DSH 的智能體流程裏,有些模型調用並不需要進入主 Session 的正式 transcript,但仍然需要調用、限制、取消,並且要能單獨統計用量。比如 Clarify 類工具可能需要生成上下文問題、選項和演進的 Draft 預覽,SeekTTY 類工具可能需要在 /status 裏分別展示官方用量、輔助用量和合計用量。

如果這些輔助調用全部混入官方 tokenUsage,來源就不清楚了;如果沒有併發和總 token 限制,主 Session 的運行面也會變得難控制。下面介紹 dsh-plugin-auxiliary-runtime,它把這類輔助模型調用放在一個可取消、可限制、可審計的運行時裏,並維護一份獨立於官方 tokenUsage 的用量賬本。

這是什麼

dsh-plugin-auxiliary-runtime 是 DeepSeek Harness(DSH)的社區 Host 插件,由 Hilbert-beinghappy 維護,許可證爲 MIT。當前版本爲 0.1.1。

它解決的問題可以概括爲三點:

1、把可取消的輔助模型調用綁定到已經存在的 live Session。
2、按 Session 做策略限制,而不是讓輔助調用無限併發或無限消耗 token。
3、把輔助調用的用量記錄到官方 storageDomain 中,形成與官方 tokenUsage 分開的賬本。

Clarify 和 SeekTTY 可以作爲可選消費者使用它,但它們不是安裝要求。

核心功能

可取消的輔助模型調用

插件支持可取消的輔助模型調用。調用綁定到一個已經存在的 live Session,並且屬於 no-tools 輔助模型調用。

取消不是簡單丟棄請求。運行時通過 AbortController 組合調用方信號和服務信號,使取消路徑與 provider 調用路徑保持一致。

准入與流式輸出邊界

輔助調用在 provider metadata 已經物化之後、streaming 開始之前進行 token-limit admission。

成功 live 調用會把模型文本臨時返回給同進程調用方。返回內容按流順序拼接,並且被限制在 65,536 個 UTF-16 code units。

terminal replay 返回持久化的狀態和用量,並帶有:

replayed: true
output: null

如果調用方需要新的文本,需要發起新的調用,而不是依賴 replay 返回新的模型輸出。

per-Session 策略限制

插件支持 per-Session policy limits,配置項包括:

maxConcurrentCalls
maxCallsPerSession
maxAuxiliaryTotalTokens

這些限制用於控制同一 Session 內輔助調用的併發數、調用次數和輔助 token 總量。

三來源用量視圖

插件提供三種來源不同的用量視圖:

視圖 含義
Official 官方 Host tokenUsage 投影。
Auxiliary 本插件維護的 auxiliary_runtime 賬本。
Combined 供消費者查看的合計值,不進入官方投影。

用量按四個分桶記錄:

uncachedInputTokens
outputTokens
cacheReadTokens
cacheWriteTokens

Combined 值用於消費端合計展示,並且保持獨立於官方 tokenUsage。

持久化賬本

賬本使用官方 storageDomain:

auxiliary_runtime
version 0

其中包含兩張表:

calls
policies

持久化行用於保存調用和策略記錄。它不包含 prompts、messages、system text、model output、custom answers、credentials、environment values 或 filesystem paths。

失敗記錄只保存歸一化後的:

{ category, code }

版本 0 會保留 audit rows,並在達到 10,000 rows 時拒絕新的輔助調用。

Session fencing

記錄通過 Session id 和 session.header.createdAt 做 fencing。如果複用同一個 Session id,也會按新的 usage 和 policy identity 開始。

這個設計避免了複用 Session id 時把舊用量和舊策略混進新生命週期。

Fail closed

以下情況會 fail closed,避免在狀態不完整時繼續 dispatch:

  • missing Host services
  • missing live Session
  • domain version mismatch
  • invalid stored records

安裝與啓用

已覈實材料未提供官方安裝命令,因此本文不給出安裝命令,也不根據倉庫名拼接 dsh plugin add 一類的命令。

啓用前先確認 Host 版本。當前版本爲:

0.1.1

測試的 Host 版本包括:

0.1.0-rc.8
0.1.1-rc.2

其中 testedHost 爲:

0.1.1-rc.2

支持的部署形態是:

one Host process per DSH_HOME

插件以當前 DSH 進程權限運行。安裝前應檢查源碼、許可證和倉庫構建流程。

典型用法

官方 web Typert remotes

官方 web Typert 可以調用以下 remotes:

auxiliary-runtime/snapshot
auxiliary-runtime/cancel

這些 remotes 在 stock Host 0.1.1-rc.2 上可用。

auxiliary-runtime/snapshot 用於讀取快照,auxiliary-runtime/cancel 用於取消輔助調用。

同進程 run 服務

run 服務在同進程內可用,並且保持私有,不開放給其他 Host 插件。

這意味着其他 Host 插件不能直接複用同進程 run 服務來發起輔助調用。

Clarify 可選用法

Clarify 可以使用 Auxiliary Runtime 的同進程 run 服務,在主 Session transcript 之外生成:

  • 上下文問題
  • 選項
  • 演進的 Draft 預覽

這裏的關鍵是“在主 Session transcript 之外”。Clarify 的問答和 Draft 預覽不需要被寫成主會話的正式 transcript。

SeekTTY 可選用法

SeekTTY 可以消費只讀快照,並在能力健康時於 /status 中展示:

Official
Auxiliary
Combined

這個用法適合需要在終端狀態裏區分官方用量、輔助用量和合計用量的場景。

適用場景與注意

適合使用這個插件的場景包括:

1、需要在 DSH 裏做 no-tools 輔助模型調用。
2、需要把輔助調用綁定到已有 live Session。
3、需要按 Session 限制併發、調用次數和輔助 token 總量。
4、需要區分 Official、Auxiliary 和 Combined 用量。
5、需要在 /status 或快照中查看輔助運行時狀態。

需要注意的邊界包括:

  • 它不替代主 Session 的正式模型路由。
  • Clarify 和 SeekTTY 是可選消費者,不是安裝要求。
  • 插件以當前 DSH 進程權限運行,安裝前應檢查源碼與許可證。
  • 已覈實材料未提供官方安裝命令,本文不猜測安裝命令。
  • Combined 用量是消費端合計值,不進入官方 tokenUsage 投影。

鏈接

已覈實材料未提供目錄頁 URL,本文不猜測目錄頁地址。

GitHub 倉庫:

https://github.com/Hilbert-beinghappy/dsh-plugin-auxiliary-runtime
羽毛球分组比赛记分
小程序二维码

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

小夜