dsh-prompt-inspector:对话前提示词与工具 schema 的可视化体检

前言

在 DeepSeek Harness(DSH)里新开一轮对话时,系统在用户第一条消息发出之前就会装配并注入大量内容:分段的系统提示词、工作目录与沙箱策略等上下文块,以及数十个工具的 schema。这些内容都会计入 input token,但默认界面里几乎看不到它们各自占了多少、哪一块最贵。

若你关心 token 预算、想裁剪过长的系统段或减少工具暴露,需要先看清「对话开始前到底注入了什么」。下面介绍社区插件 dsh-prompt-inspector(维护者 turboegg1145,分类:工作流),它在 Web 版 Harness 输入框旁提供「提示词」入口,用抽屉逐项展示并可编辑、静音或隐藏工具。

这是什么

Prompt Inspector for DeepSeek Harness(中文常称 DSH 提示词体检)是一个 DSH bundle 插件:查看并裁剪对话前注入的每一段 system-prompt、每一个 context block 和每一个 tool schema,并对每一项给出 token 估算。

DSH 生态主张「一切皆插件」;SkillHub 等为社区目录,与 DeepSeek / 幻方无官方从属关系。

它解决什么问题

README 中的描述可以概括为三点:

  1. 可见性:平时看不见的装配结果,按「系统提示词分段 / 上下文块 / 工具 schema」分栏展示,并给出合计统计。
  2. 可裁剪:分段可编辑保存、静音或还原;工具可取消勾选以从后续请求中移除。
  3. 可估 token:估算沿用 Harness 启发式 ceil(字符数 / 4),便于对比哪一类占用最大。

README 举过一个本机典型会话的实测量级(仅供参考,随会话与工具集变化):约 23 段提示词 ≈ 1.8k token,7 个上下文块 ≈ 80 token,43 个工具 ≈ 9.5k token。工具 schema 往往是 input token 的大头,若要节省预算,通常应优先审视工具列表,而非只改提示词正文。

界面与核心功能

安装并在页面刷新后,输入框右侧会出现「提示词」按钮;点击后打开右侧抽屉。若当前会话尚未开始(没有 live agent),抽屉会提示先发一条消息。

抽屉内大致包含:

部分 内容
系统提示词分段 名称、顺序、token 数;展开可看插值后的完整文本
上下文块 工作目录、沙箱策略、审批策略等
工具 schema 各工具描述与参数 JSON、单项体积
合计 三部分分别统计,便于对比

能改什么

依据 README,修改只影响之后的请求,历史对话不变;状态按会话保存,重载插件后清空。

  • 改文本:任意分段「编辑」→「保存并应用」,用同名 section 覆盖并保持原顺序;「静音」将该段置空;「还原」恢复原文。
  • 藏工具:取消勾选即从后续请求中移除(实现上走 tools.restrict)。合计只统计仍可见的工具;被隐藏的工具划线并标注 −X。
  • 全部还原:清空该会话内的所有修改。

插件在 Host 侧通过 agent.ctx.systemPrompt.section() 做同名覆盖,通过 agent.ctx.tools.restrict({ deny }) 隐藏工具;二者随 agent 生命周期自动回收。

实现要点(给想读源码的开发者)

  • Host 注册 webServer 前缀 /prompt-inspector:GET /ping、GET /snapshot?session=、POST /apply、POST /reset。
  • snapshot 使用 ctx.systemPrompt.assemble({ scope: agent }) 取真实装配结果,再按 layers.merge() 中的 order 建立可覆盖段。
  • 客户端为纯 React:shell.overlay 抽屉 + conversation.input.right 触发按钮,样式使用 --dsw-alias-* 主题变量,无第三方依赖。

仓库主要文件:index.js(Host 路由与快照/应用)、client.js(按钮与抽屉)、cordis.patch.yml、locale/{zh,en}.json 等。

安装与启用

要求 DeepSeek Harness 0.2.x(Web profile);Node 引擎要求 >=18(见 package.json)。

官方 README 给出的安装方式如下。

从 GitHub 仓库安装 bundle:

plugin_manager install_bundle  target=https://github.com/turboegg1145/dsh-prompt-inspector

也支持 tarball 或本地目录:

plugin_manager install_bundle  target=https://github.com/turboegg1145/dsh-prompt-inspector/archive/refs/heads/main.tar.gz
plugin_manager install_bundle  target=/绝对路径/dsh-prompt-inspector

装完后刷新页面,确认输入框右侧出现「提示词」按钮即可。

典型用法

  1. 在已满足版本要求的 Web Harness 中安装 bundle 并刷新。
  2. 在目标会话中先发送一条消息,使 live agent 存在。
  3. 点击「提示词」,在抽屉中查看三部分 token 合计,定位占用最大的类别。
  4. 若需减 token:对过长 system 段使用编辑或静音;对不需要的工具取消勾选。
  5. 发送后续消息,观察行为与 token 变化;需要时用「全部还原」或单段「还原」恢复。

适用场景与注意

适合谁

  • 调试系统提示词装配顺序与插值结果的工作流开发者。
  • 需要评估「工具 schema vs 提示词」谁更占 input token 的 DSH 用户。
  • 想在当前会话临时收窄工具面或改写某段 system 内容,而不改仓库全局配置的场景。

应注意

  • 插件以当前 DSH 进程权限运行;安装前建议阅读 源码与 LICENSE,确认可接受其 Host 路由与对 systemPrompt / tools 的修改方式。
  • 会话级修改在重载插件后会丢失;不适合当作永久配置替代品。
  • README 中的 token 数为启发式估算,不等于上游计费器的精确值。

结尾

dsh-prompt-inspector 把对话前不可见的注入内容摊开在抽屉里,并支持按段编辑、静音与按工具隐藏,配合分项 token 统计,适合作为 DSH Web 工作流里的「提示词与工具体积」排查工具。

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

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

Xiaoye