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 工作流裏的「提示詞與工具體積」排查工具。

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

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

小夜