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