前言¶
在 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 估算。
- 仓库:turboegg1145/dsh-prompt-inspector
- 社区目录:SkillHub 插件页
- 许可证:MIT(见仓库 README)
- 当前包版本(package.json):0.1.0
DSH 生态主张「一切皆插件」;SkillHub 等为社区目录,与 DeepSeek / 幻方无官方从属关系。
它解决什么问题¶
README 中的描述可以概括为三点:
- 可见性:平时看不见的装配结果,按「系统提示词分段 / 上下文块 / 工具 schema」分栏展示,并给出合计统计。
- 可裁剪:分段可编辑保存、静音或还原;工具可取消勾选以从后续请求中移除。
- 可估 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
装完后刷新页面,确认输入框右侧出现「提示词」按钮即可。
典型用法¶
- 在已满足版本要求的 Web Harness 中安装 bundle 并刷新。
- 在目标会话中先发送一条消息,使 live agent 存在。
- 点击「提示词」,在抽屉中查看三部分 token 合计,定位占用最大的类别。
- 若需减 token:对过长 system 段使用编辑或静音;对不需要的工具取消勾选。
- 发送后续消息,观察行为与 token 变化;需要时用「全部还原」或单段「还原」恢复。
适用场景与注意¶
适合谁
- 调试系统提示词装配顺序与插值结果的工作流开发者。
- 需要评估「工具 schema vs 提示词」谁更占 input token 的 DSH 用户。
- 想在当前会话临时收窄工具面或改写某段 system 内容,而不改仓库全局配置的场景。
应注意
- 插件以当前 DSH 进程权限运行;安装前建议阅读 源码与 LICENSE,确认可接受其 Host 路由与对
systemPrompt/tools的修改方式。 - 会话级修改在重载插件后会丢失;不适合当作永久配置替代品。
- README 中的 token 数为启发式估算,不等于上游计费器的精确值。
结尾¶
dsh-prompt-inspector 把对话前不可见的注入内容摊开在抽屉里,并支持按段编辑、静音与按工具隐藏,配合分项 token 统计,适合作为 DSH Web 工作流里的「提示词与工具体积」排查工具。