DSH Plugins
返回列表
🖥️

dsh-tool-call-limit

客户端 更新于 2026.09.03

在终端中运行以下命令:

dsh plugin install zhourenke/dsh-tool-call-limit

将以下提示词粘贴到 DeepSeek Harness 对话框中:

在 DeepSeek Harness 中运行 dsh plugin install zhourenke/dsh-tool-call-limit 安装本插件(开源地址:https://github.com/zhourenke/dsh-tool-call-limit)。

插件介绍

在多 Agent、多步的 DSH 对话中,一个 step 内反复调用 web_search 或 grep 会迅速膨胀上下文、推高成本。maxParallelToolCalls 只约束并发宽度,并不限制单个 step 内某工具总共被调用多少次。dsh-tool-call-limit 正是补上这一缺口:按工具名、按 live Agent、按 step 分别设置独立配额,为每一步划定明确的调用上限。

插件在 tools/pre-execute 钩子中同步预占配额,因此同一 step 内的两个并行 web_search 调用最多只有一个能通过。名额一经消耗即不退还,即便工具随后失败、超时或被下游策略拒绝,也不会回补,从而防止重试循环绕过限制。不同工具名各自独立计数,一次 web_search 不会占用 grep 的配额。状态以 live Agent 对象为键保存在 WeakMap 中,step 结束、Agent 被销毁或进程重启时自动清理,不写入 session transcript,也不在多个 DSH 实例间共享。

适合在 DSH 上构建生产级多 Agent 应用、需要对每步工具调用频次施加硬性上限的开发者。插件约束的是进入 DSH ToolRuntime 的调用次数,不涉及单次 web_search 内部发出的多个 query、单次 bash 调用内的多条命令,或 MCP 及自定义工具内部的 API 请求,这些仍由各工具自身的配置负责。并发宽度由 maxParallelToolCalls 另行管理,本插件回答的是另一个问题:这一步中,某个工具总共最多能被调用几次?

使用场景

  • 多 Agent 并行时防止某一个 Agent 在单步内反复调用搜索工具撑爆上下文窗口
  • 阻断工具重试、超时后再次发起调用等循环,避免单步内无限消耗配额
  • 生产环境为每个工具的每步调用设定硬性上限,降低不可预期的成本波动

适合人员

  • 构建生产级多 Agent 应用的 DSH 开发者
  • 需要在步骤粒度控制工具调用频率、而非仅限并发数的工程团队
  • 关注上下文窗口与 LLM 调用成本管控的应用架构师