dsh-session-budget-guard:DeepSeek Harness 会话树预算熔断器

前言

在 DeepSeek Harness 中,一次 Prompt 调用可能通过子代理(Subagent)的递归调用,展开成一个庞大的会话树。这种结构虽然能处理复杂任务,但也容易导致资金快速流失:单个会话可能在短时间内产生大量模型请求,或者树结构的搜索和委托操作消耗大量 API 配额。

如果没有针对会话树的独立控制,开发者很难在树结构失控前及时止损。dsh-session-budget-guard 正是为了解决这一问题而设计,它作为“熔断器”介入运行时,确保会话树的总支出和支出速率在可控范围内。

插件定位

  • 名称:dsh-session-budget-guard
  • 定位:DeepSeek Harness 的会话树级预算与支出速率熔断器
  • 维护者:erya2000
  • 分类:admin-security
  • 许可证:MIT

核心功能

该插件主要提供以下控制能力:

  1. 支出监控:监控整个会话树(根节点 + 所有子代理)的累计支出和支出速率。
  2. 熔断拒绝:当累计支出或支出速率超过预设限制时,拒绝执行下一次模型请求或委托操作。
  3. 结构限制:限制树结构的深度、节点数量以及搜索次数,防止过度配额的委托或搜索。
  4. 管理手段:通过日志记录和通知机制进行管理。
  5. 自定义通知:支持通过 Shell 模板自定义通知命令。

安装与配置

安装

使用官方安装命令将插件添加到指定 Profile:

dsh plugin --profile web add github:erya2000/dsh-session-budget-guard

或者,通过本地挂载方式使用(无需安装步骤),在 cordis.patch.yml 中配置路径:

# ~/.dsh/cordis.patch.yml
- insert:
    - id: session-budget-guard
      name: /absolute/path/to/dsh-session-budget-guard/lib/index.js

配置示例

配置项均为可选,具体参数参考其源码默认值。以下是一个启用强制执行(enforce)模式的配置示例:

config:
  mode: enforce
  treeWarnCny: 5
  treeStopCny: 10
  maxDelegationDepth: 1

适用场景与注意

适用场景

适用于需要严格控制单次 Prompt 调用成本,或需要防止子代理无限递归展开的场景。

关键注意点

  1. 进程内运行:这是一个进程内的守卫插件。一旦 Harness 进程重启,会计数据不会恢复,之前的预算记录将丢失。
  2. 模式差异:默认模式为 notify(仅记录日志和发送通知)。如果启用 enforce 模式,插件会直接取消会话并拒绝请求,这可能会导致正在运行的任务中断。建议先在 notify 模式下观察日志,调整阈值后再开启 enforce。
  3. 速率限制依赖:速率限制需要至少一个旧样本数据。因此,插件刚加载时的第一个时间窗口可能无法触发速率限制,但累计支出和结构限制依然生效。
  4. 分支排除:普通分支(origin=fork)被故意排除在树结构统计之外,不计入预算限制。
  5. 环境要求:需要 Node.js 版本大于等于 20。

结语

dsh-session-budget-guard 为 DeepSeek Harness 的多智能体协作提供了资金与结构的防线。通过设置累计支出和支出速率的双重熔断阈值,可以有效避免因树结构失控导致的 API 消耗激增。更多细节与源码可参考 SkillHub 插件目录 或 GitHub 仓库。

羽毛球分组比赛记分
小程序二维码

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

小夜