dsh-chat-preset:DSH 下的 ChatOnly 純對話預設

前言

在 DeepSeek Harness(DSH)裏做模型能力評測或對照實驗時,默認請求往往並不「乾淨」:全局層仍會帶上工具 schema,用戶輸入之後還會追發一條 runtime-context 工作目錄消息。預設配置層無法單獨關掉這兩類注入。若只改系統提示詞、卻希望請求裏只有用戶文本(以及你明確指定的 system 內容),就需要在裝配瀑布和 context 註冊層另行處理。

下面介紹社區插件 dsh-chat-preset(維護者 Xxx-Bin),它在 DSH 中提供名爲 ChatOnly 的預設 agent:默認抑制工具與工作目錄注入,系統提示詞從本地文件熱讀,便於在受控條件下觀察模型本身的行爲。

這是什麼

dsh-chat-preset 是 DSH 的 ChatOnly 預設包:無工具(可開關)、無運行時工作目錄快照的純對話形態;系統提示詞存放在 ~/.dsh/chatonly-system-prompt.md,通過命令或直接編輯文件更新,下一條消息生效。

該包在 npm 上發佈爲 dsh-chat-preset(當前資料中版本 1.2.0,MIT 許可證,Node.js ≥ 18)。它聲明 dsh.bundle.patch,安裝後由 profile 的 layer stack 自動登記;分類上可歸入「模型推理」——側重控制請求形態以便評測,而非提供新的推理運行時。

需要事先了解:本包依賴 DSH 的三處內部語義(作用域同名 shadow 覆蓋、system-prompt/assemble 瀑布、refreshContext() 的合併順序)。DSH 升級若改變這些語義,插件可能靜默失效(不報錯,僅退回默認請求形態)。安裝前應閱讀倉庫說明中的「兼容性與脆弱性」一節,並自行覈對源碼與許可證。

默認請求裏多出來的東西

DSH 即便在精簡模式下,仍有兩類預設層無法消除的注入:

  1. 工具 schema:在全局層收集,預設只能追加、不能移除。
  2. 工作目錄消息:默認在用戶輸入之後追加 runtime-context,內容爲當前工作目錄;且該 contribution 以 required: true 註冊,includeRuntimeContext: false 只能過濾可選項。

本包在桌面端 desktop profile 下觀測到的抑制前後對比如下(工具數量隨已安裝插件變化,資料中給出本機區間 8–14 個):

  # 抑制前
- tools:    9 個 — acp_cache, acp_read_original_image, …
- messages: [ …, { source: { kind: "runtime-context" } } ]
  # 抑制後
+ tools:    該鍵不存在
+ messages: 僅用戶輸入

核心功能

ChatOnly 預設

安裝並在預設選擇中啓用 ChatOnly 後,本包通過 agent 作用域內的同名空 shadow、system-prompt/assemble 瀑布,以及 buildRequest() 在工具列表爲空時省略 tools 鍵的行爲,分別處理工作目錄與工具注入;section 角色從文件讀取系統提示詞,並以 complete: true 獨佔 deployment:persona-prefix 段。

/chatprompt:系統提示詞

提示詞文件:~/.dsh/chatonly-system-prompt.md。命令是讀寫入口,也可直接編輯文件。

命令 行爲
/chatprompt <text> 寫入文件,下一條消息生效
/chatprompt 預覽、字符數與路徑
/chatprompt show 輸出全文
/chatprompt clear 清空;此後不發送系統提示詞

文件爲空時不發送任何系統消息。該命令全局註冊,僅對 ChatOnly 生效;在其它預設下修改不會生效且無提示。

/chattools:工具抑制開關

默認抑制工具,即請求不攜帶工具 schema。狀態文件:~/.dsh/chatonly-strip-tools.state(內容爲 strip 或 pass),每次裝配重新讀取;不存在時採用配置項 stripTools(出廠默認 true)。

命令 行爲
/chattools 或 /chattools status 當前模式與狀態文件路徑
/chattools on 抑制工具注入
/chattools off 放行,assembly.tools 原樣傳遞
/chattools reset 刪除狀態文件,回退出廠默認

/chattools off 只放行工具;該會話中 working-directory:current 仍被抑制,模型不會從 runtime 獲得工作目錄。若評測需要文件類工具,資料建議同時限制工具集(例如通過 dsh-tool-manager)並在系統提示詞中寫明工作目錄等環境約束。

工具開關是全局單一文件,對所有 ChatOnly 會話同時生效;工作目錄抑制按 agent 註冊且在同一會話內切換預設後仍可能保持爲空,直至新建會話。兩者機制不同,使用評測方案時需分開考慮。

其它限制(摘自文檔)

  • 未掛載壓縮插件,不支持自動壓縮與 /compact;上下文超長時請求可能直接失敗。
  • 與 dsh-prompt-setting 的「我的 Prompt」互斥(同作用域 complete: true)。
  • 預設內不應再掛載同名 section(如 dsh-persona)。
  • 插件以當前 DSH 進程權限運行;安裝前請檢查源碼與 MIT 許可證,並知悉其對非公開 DSH 行爲的依賴。

安裝與啓用

依賴:dsh(桌面端或 CLI)、pnpm 在 PATH(dsh plugin add 內部轉發 pnpm add)、Node.js ≥ 18。安裝後須重啓 dsh(bundles 層僅在啓動時合成)。

桌面端(desktop):

# npm
dsh plugin --profile desktop add dsh-chat-preset

# GitHub
dsh plugin --profile desktop add github:Xxx-Bin/dsh-chat-preset

dsh web(web):

dsh plugin --profile web add -w https://github.com/Xxx-Bin/dsh-chat-preset

--profile 對應 ~/.dsh/profiles/ 下的目錄名。安裝完成後重啓,在預設中選擇 ChatOnly。

配置要點(cordis.patch.yml):presetId 須與預設 config.id(chatonly)一致;兩處 file 必須都指向 ~/.dsh/chatonly-system-prompt.md;toolsStateFile 不得與提示詞文件同路徑。

典型用法

  1. 按上文命令安裝並重啓 DSH,啓用 ChatOnly 預設。
  2. 寫入評測用 system prompt,例如:
# 在 DSH 對話中使用(亦可直接編輯 ~/.dsh/chatonly-system-prompt.md)
/chatprompt 你是嚴謹的評測助手。只根據用戶問題回答,不要假設當前工作目錄。
  1. 確認默認不攜帶工具;若需對照「帶工具但無目錄注入」的實驗,先評估是否接受全局 /chattools off,並自行在 prompt 中補環境信息:
/chattools status
/chattools off   # 放行工具;工作目錄仍被 ChatOnly 抑制
  1. 卸載插件後,命令與運行期註冊會 dispose;用戶文件(提示詞、開關狀態、調試日誌)需按 README 手動清理,重裝時舊 chatonly-strip-tools.state 會沿用上次開關,可用 /chattools reset 恢復出廠默認。

適用場景與注意

適合:需要在 DSH 裏做相對可控的純對話評測、對比不同 system prompt、或觀察「無工具簽名、無自動工作目錄行」時的模型輸出。

不適合或需額外準備:依賴默認工作目錄與全量全局工具的日常工作流;需要 /compact 的長對話;希望與「我的 Prompt」並存的人設配置。

社區插件目錄 SkillHub 上的 dsh-chat-preset 頁 與 GitHub 倉庫相互獨立引用,並非 DeepSeek / 幻方官方應用商店;安裝與啓用仍以上游 README 爲準。

結尾

dsh-chat-preset 把 DSH 請求收成「用戶輸入 + 可選文件 system」,並給出 /chatprompt、/chattools 兩個運維入口,適合把變量收窄到提示詞與模型本身。使用前請理解其對 DSH 內部行爲的依賴及靜默失效風險,並在安裝前審閱源碼。

  • 目錄頁:https://www.skillhub.cn/plugins/Xxx-Bin/dsh-chat-preset
  • 倉庫:https://github.com/Xxx-Bin/dsh-chat-preset
羽毛球分组比赛记分
小程序二维码

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

小夜