PTC Tool Search:为 DeepSeek Harness PTC 做渐进式工具发现

前言

在 DeepSeek Harness(DSH)里跑 PTC(Programmatic Tool Calling)时,新会话往往一次性挂上整套 PTC SDK 里的工具定义。工具越多,首轮对话的输入 token 就越长,上下文里还会反复带上大量暂时用不到的 schema。若你更关心「先让智能体看见最少工具面,再按任务按需加载」,就需要在 Harness 侧做渐进式发现,而不是默认全量暴露。

下面介绍社区维护的 PTC Tool Search(hrygo/dsh-ptc-tool-search):通过官方 scoped tool registry,在保留对话历史的前提下按需加载 PTC 工具定义。

这是什么

PTC Tool Search 是面向 DSH PTC 的独立社区 Host bundle,维护者为 hrygo。它使用官方 scoped 工具注册表,让新建 PTC 智能体初始只看到 tools.tool_search 以及智能体自有工具;在 run_code 里搜索并选定工具后,Harness 会在后续模型请求中重新生成 SDK,再调用具体工具(例如 tools.bash)。

包名 @hrygo/dsh-ptc-tool-search,当前版本 0.1.1,声明支持 Harness 0.2.1-rc.2 与 Node.js 24+。许可证为 MIT。该包未发布到 npm,需按官方插件安装方式从 GitHub 引用。

核心功能

按需发现,不丢会话

插件在 bundle 中插入配置行 ptc-tool-search。对新创建的 PTC 智能体启用发现后,API 层面仍只暴露 run_code 等既有入口;在代码内通过 tools.tool_search 查询可调用工具名,选定结果会累积在该 live agent 上。已选工具在后续 SDK 中保留完整定义。

搜索为确定性词法匹配,不发起网络请求,也不使用 embedding。README 建议优先使用精确可调用名称,并配合 limit: 1;短英文能力关键词也可用。

与全量 SDK 的取舍

README 记载的 2026-10-18 实测(macOS ARM64、Desktop 0.2.1-rc.2、CLIProxyAPI Responses)中,启用本插件相对「完整 PTC SDK」组,在 12 次四轮 live 会话上,GPT 6.1 Sol 与 Muse Spark 1.3 的平均累计对话输入分别约降 51.46% 与 50.00%;首轮 SDK 从 35 个定义缩到 2 个 时,平均首次请求输入约降 80.27–80.79%。同一轮次内模型请求次数会增加(发现带来额外往返),输出 token 与活跃耗时未必下降;未缓存输入还可能上升。文档明确说明未报告实际计费,不能据此断言账单节省。

策略与模式边界

Standard/native 模式不受影响。既有策略限制仍生效,发现不能绕过被排除的能力。安装后已存在的 live agent 保持原有工具面;重启或 resume 后重建的智能体会重新发现。在 agent 创建之后新注册的工具,需要新建 agent 才能进入其目录。同一时间只能启用一个 tool_search 类插件。

安装与启用

先做环境核对:Harness 0.2.1-rc.2、Node 24+。若本机曾装过本地开发版同名插件,请先移除,避免与发行版并存。

在 Desktop 中可通过 Plugins → Add plugin,填入:

github:hrygo/dsh-ptc-tool-search#v0.1.1

或使用官方 CLI(profile 为 desktop):

dsh plugin --profile desktop add github:hrygo/dsh-ptc-tool-search#v0.1.1

若需要不可变安装,可将 v0.1.1 换为 release v0.1.1 中的完整 commit SHA;也可下载 tarball 并校验 SHA-256 后执行:

dsh plugin --profile desktop add ./hrygo-dsh-ptc-tool-search-0.1.1.tgz

包内为可执行 ESM,无需编译、无运行时依赖、无 prepare 或 build 脚本权限。替换已安装版本后请重启 Desktop,再新建 PTC 会话。

典型用法

新建 PTC 智能体后,在 run_code 中搜索工具并结束该次调用;下一次模型请求会带上所选工具的定义,再在新的 run_code 里调用具体工具。

return await tools.tool_search({ query: 'bash', limit: 1 });

结束上述 run_code 后,在后续回合中可调用 tools.bash 等已发现工具。搜索结果只需打印或返回一次即可。

配置与回滚

通过 Harness 插件配置管理 ptc-tool-search 行:

Key 默认值 含义
enabled true 是否对新 PTC 智能体启用发现
maxResults 3 单次搜索最多接受的结果数(正整数)
maxQueryChars 256 查询字符串最大长度(正整数)
maxDescriptionChars 160 搜索结果描述截断长度(正整数)

过宽的查询可能加载不必要的定义,SDK 会随选用工具而变大。若要恢复全量 SDK 可见性,在 Plugin Manager 中禁用或卸载 PTC Tool Search,并新建 PTC 会话即可,无需改应用或代理配置。

适用场景与注意

适合:PTC 工作流里工具 catalog 较大、希望控制首轮上下文体积,且能接受多一轮 tool_search 往返的开发者。

注意:

  1. 插件以当前 DSH 进程权限运行;安装前请阅读 GitHub 仓库 源码与 MIT 许可证,自行评估风险。
  2. 发现增加模型往返,延迟与输出 token 可能上升;应结合自己的任务与计费方式评估,而非仅看输入降幅。
  3. 社区插件目录 SkillHub 条目 与 GitHub 为分发与文档入口,与 DeepSeek / 幻方无官方从属关系;DSH 生态强调「一切皆插件」,本包亦遵循官方 package and install guide 分发。

仓库提供 npm test、npm run check 等校验脚本;详见 README 中的 benchmark 方法说明 与 acceptance 说明。

结尾

PTC Tool Search 把 PTC 工具暴露从「会话开局全量」改为「搜索—选定—再生成 SDK」,在文档记载的固定四轮工作流样本里显著降低了累计对话输入,同时保持工作流完成率。若你在 Harness 上做 PTC 且工具面持续膨胀,可以按上文命令安装 v0.1.1,新建会话后用 tools.tool_search 试一轮。

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

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

小夜