前言¶
在 DeepSeek Harness(DSH)的开发与调试中,长会话往往会导致 API 调用次数激增,不仅消耗配额,还可能引发不可预期的行为。现有的 dsh-repeat-stop 插件主要用于拦截连续的相同调用,但无法解决“单次会话内频繁使用不同工具”的问题。
dsh-tool-budget 正是为了解决这一场景而生。它作为一个安全护栏,在单次会话的工具调用达到预设阈值后,强制停止后续的工具使用,防止预算耗尽。
插件介绍¶
dsh-tool-budget 是 DeepSeek Harness 的一个插件,属于 dsh-wsl-kit 套件的一部分。它不直接限制产品许可证,而是运行时对工具调用次数进行硬性拦截。
- 插件名:
dsh-tool-budget - 许可:MIT
- 版本:0.1.2
- 核心功能:在单次会话结束后硬停止工具使用。
核心功能¶
- 硬停止机制:当单次会话的工具调用次数超过阈值时,插件会直接阻止新的工具调用。
- 默认预算:默认允许 80 次跟踪调用,第 81 次调用将被拒绝。
- 默认排除:默认排除
job_*系列工具(如job_output、job_list、job_kill),以便长时任务监控不受影响。 - 安全护栏:它是一个运行时安全限制,而非产品层的许可证限制,用户可以根据需要手动调整。
安装与启用¶
安装该插件需要满足以下系统环境:
* DeepSeek Harness (dsh) 版本 >= 0.1.2
* Node.js 版本 >= 18
执行以下命令进行安装:
dsh plugin --profile web add github:173787247/dsh-tool-budget
安装完成后,重启 dsh web 进程以使配置生效。在 Trajectory(轨迹)中,被拦截的调用会显示为 dsh-tool-budget: blocked。
配置方法¶
配置文件位于 cordis.patch.yml。你可以通过调整配置项来改变预算限制或排除规则。
- id: dsh-tool-budget
name: dsh-tool-budget
config:
enabled: true
maxCalls: 80
exclude:
- job_output
- job_list
- job_kill
# include: [] # 如果设置此项,仅统计列表中的工具名称
| 配置项 | 默认值 | 说明 |
|---|---|---|
enabled |
true |
总开关 |
maxCalls |
80 |
每个会话允许的最大跟踪调用次数 |
exclude |
job_* |
不计入预算的工具名称 |
include |
(空) | 如果非空,仅统计列表中的工具 |
如果觉得 80 次的限制过紧,可以在配置文件中提升 maxCalls 的数值。
与 dsh-repeat-stop 的区别¶
这两个插件配合使用,能覆盖不同的工具调用场景:
| 插件名称 | 阻断逻辑 |
|---|---|
dsh-repeat-stop |
阻止连续的相同调用 |
dsh-tool-budget |
阻止单次会话内的累计调用次数超过上限 |
适用场景¶
此插件适用于需要严格控制单次会话 API 消耗的场景,例如长时间运行的 WSL 任务或高频调用的自动化脚本。
总结¶
dsh-tool-budget 提供了一种简单有效的手段,防止智能体在单次会话中无限制地消耗资源。配合 dsh-repeat-stop 使用,可以同时解决“重复刷屏”和“总次数超限”两个问题。