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 分开的账本。

ClarifySeekTTY 可以作为可选消费者使用它,但它们不是安装要求。

核心功能

可取消的辅助模型调用

插件支持可取消的辅助模型调用。调用绑定到一个已经存在的 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、需要区分 OfficialAuxiliaryCombined 用量。
5、需要在 /status 或快照中查看辅助运行时状态。

需要注意的边界包括:

  • 它不替代主 Session 的正式模型路由。
  • ClarifySeekTTY 是可选消费者,不是安装要求。
  • 插件以当前 DSH 进程权限运行,安装前应检查源码与许可证。
  • 已核实材料未提供官方安装命令,本文不猜测安装命令。
  • Combined 用量是消费端合计值,不进入官方 tokenUsage 投影。

链接

已核实材料未提供目录页 URL,本文不猜测目录页地址。

GitHub 仓库:

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

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

小夜