CanglongCl/dsh-tool-retry

DeepSeek Harness 的工具调用重试插件:自动暂存每次工具调用,失败后让 AI 只改一部分参数并重放,免去整段长参数重新生成。

项目介绍Project Overview

为DeepSeek Harness提供工具调用重试机制。每次模型发出的工具调用自动暂存,失败后可修改部分参数重放,无需重新生成整段参数。适用于长参数工具调用失败场景。注意:非PTC模式注册重放工具,PTC模式需脚本替换执行。

A retry mechanism for tool calls in DeepSeek Harness. Each model-issued tool call is auto-saved; on failure, the model can modify part of the original parameters and replay it, avoiding full regeneration. Use when long-parameter tool calls fail. Note: replay tool is registered only in non-PTC mode; PTC mode uses script replacement.

或使用命令行安装(适合开发者)Or use CLI install (for developers)

命令行安装CLI Install

dsh plugin --profile web add @canglongcl/dsh-tool-retry

CanglongCl/dsh-tool-retry 加入你的 DSH 配置(web profile)即可启用。

READMEREADME

dsh-tool-retry

English

⭐ 如果这个项目对你有帮助,欢迎点个 Star 支持一下!你的支持是我持续维护和改进的动力。

为 DeepSeek Harness 提供工具调用重试:每一次模型发出的 tool call block 都会自动暂存;调用失败后,模型可以修改原调用的一部分以重新调用工具,而不必重新生成整段长参数。

安装

dsh plugin --profile web add @canglongcl/dsh-tool-retry

工作方式

非 PTC 模式下,提供 editPreviousToolCalling 工具,允许模型使用该工具修改过往工具调用的部分参数。修改后会立刻以新参数调用过往工具。

PTC 模式下,不注册新工具。程序失败后通知给出 checkpoint 路径;Agent 可以在新的 run_code 程序里读回它,通过脚本修改后用 AsyncFunction 构造器把修正后的程序作为函数执行。

工作原理

自动暂存

  • 每次直调按调用 id 全量保留储存至 `/.../by-id/.json),内容与模型发送的原始参数字符串一致。

失败通知

  • 在模型调用参数超过 150 字节的工具且失败时,向模型注入「已保存 + call id + 一个用占位符写成的重试示例」的提示。

重放工具 editPreviousToolCalling

  • 允许模型通过失败的工具调用 ID 修改原调用的一部分参数,并重新执行该工具。
  • 仅非 PTC 模式下注册该工具(PTC模式下使用脚本替换与重新执行)。

插件能力评测

项目包含一套面向真实使用流程的评测,用于验证模型在收到通知后是否真的采用重放路径、每次重试实际少重发多少参数、任务是否照常完成。评测覆盖:长/短参数、计划驳回、参数类型错误、旧片段过期、整值替换、文件覆盖拒绝等失败形状。

评测结果显示,模式在调用长参数工具失败后,本插件机制采用率 ≈94%,相比全量输入并重新调用工具,工具调用部分节省 Token 74%,总 Token 节省 42%。

评测设计、运行方式和结果解释见 Eval suite;各期报告见 reports/index.html

参与开发

开发环境、加载模型、设计不变量与验证流程见 AGENTS.md;完整设计见 docs/tool-calling-checkpoint-replay-plan.md

上一个 Prev dsh-chime 下一个 Next HDSL