dsh-custom-conversation-prefix:以更小顆粒度管理系統提示詞與對話前綴

前言

在 DeepSeek Harness(DSH)裏做智能體或固定工作流時,系統提示詞和「開場幾輪對話」往往綁在 Agent 預設或宿主默認行爲上:改一處可能影響全局,新開空白會話也未必能單獨選一套 system 與歷史前綴。若還需要在單次會話裏關掉部分自動上下文注入,或只禁用預設裏的某幾個工具,宿主原生界面通常沒有獨立入口。

Phantom-Algo 維護的 dsh-custom-conversation-prefix(當前版本 0.0.9)面向上述需求:通過 Host、Client 雙入口加載,無需改 DSH 源碼或安裝包;在側欄提供「提示詞與前綴」管理頁,並在新會話發送首條真實消息前完成 system 替換、多角色前綴注入,以及可選的自動上下文與工具裁剪。首版針對 DSH 0.2.1-rc.3 驗證,構建提交 be72761ee1a6736ebcdf4f3739363b083ae53c98。

這是什麼

dsh-custom-conversation-prefix 是 DSH 社區插件(分類:工作流),倉庫 Phantom-Algo/dsh-custom-conversation-prefix,目錄頁見 SkillHub。它解決的是:系統提示詞模板、對話前綴模板獨立管理;新開會話時按需替換;前綴支持 User、Assistant、Tool 預設消息;可啓用或禁用當前所選 Agent 預設帶來的上下文注入與工具定義——且首條真實用戶消息發出後配置鎖定爲快照,續聊不會重複注入。

核心功能

提示詞與前綴管理

獨立管理頁支持搜索、新建、保存、複製、刪除及修訂衝突檢查;同類標題唯一,保存時對標題 trim 並做 Unicode NFC 規範化。系統模板與前綴可獨立選擇;新建會話默認沿用 DSH 系統提示詞、不使用前綴。選擇器右側「預覽」可跳到對應模板的只讀詳情;草稿離開編輯項時由 DSH 彈窗確認。

系統提示詞爲完整替換,{{...}} 佔位原文保留。對話前綴爲多輪 JSON 消息數組,支持 user / assistant(含 tool_calls)/ tool 結果;表單與 JSON 編輯均可,字段錯誤可定位。前綴不能包含 system / developer、圖片或音頻;未知字段會報錯。新建前綴默認兩條空消息,佔位提示爲「你好」與「你好,我是 DeepSeek,有什麼可以幫到您?」,右下角可繼續追加消息。

會話選擇與鎖定

在尚未發送真實消息的新會話中,於模式選擇器旁分別選擇系統模板與前綴;持久化以 Host 確認後的顯示爲準。DSH 複用空白會話時,原生新建按鈕及其快捷鍵會先恢復本插件的默認選擇;已開始的會話保留鎖定快照。

發送第一條真實消息後,配置變爲只讀,輸入區上方可展開快照;更換 system 或前綴需新建會話。已選模板後續修訂不影響已鎖定快照;未發送時可重新選擇以更新。刪除模板不改變已有快照。0.0.9 起修復:首條真實問題發出後、模型尚未輸出時,聊天頁不再錯誤顯示最後一條預設助手回覆;前綴不參與聊天回覆、過程計數和工具狀態,模型上下文與獨立軌跡仍保留。

自動上下文與工具

模式選擇器旁提供「自動上下文」「工具」菜單:可全部啓用、全部禁用或部分禁用。部分禁用時搜索並勾選目標,點擊「應用」保存;「取消」、Escape 或點擊菜單外部會放棄未應用的菜單選擇。

自動上下文可逐項關閉工作目錄、環境策略、技能目錄、時間及工作區指令等自動貢獻(含 required 上下文);用戶主動輸入、附件、顯式技能調用和預設歷史保持原樣。工具菜單按當前 Agent 預設列出可用工具,可搜索多選禁用;模型側定義與實際執行同時受限,覆蓋 PTC 的 run_code 與嵌套調用。禁用插件後恢復宿主默認,不修改 Agent 預設或宿主全局配置。

軌跡與存儲

預設消息在軌跡中獨立顯示角色;預設工具標明「預設歷史,未執行」。模板保存在宿主 storage domain custom_conversation_prefix;選擇與快照等寫入會話的 ignorable plugin record。插件配置可設 maxMessages(默認 200,上限 2000)與 maxCharacters(默認及上限 100 萬 UTF-16 代碼單元);變小後超限舊快照會在應用前被拒絕。

安裝與啓用

安裝前應完全退出 DeepSeek Harness,並自行審閱倉庫源碼與 LICENSE。插件以當前 DSH 進程權限運行,安裝腳本會向 profile 寫入 bundle,不會編輯宿主源碼。

先在本機構建產物(在克隆後的項目目錄內,需要 Node.js 22.19+ 與 pnpm):

npm run build
mkdir -p releases
npm --cache .cache/npm pack --pack-destination releases

當前 pack 產物名爲 releases/dsh-custom-conversation-prefix-0.0.9.tgz。其他環境安裝示例(路徑按本機調整;若設置了 DSH_HOME,將 --profile 改爲該目錄下的 profiles/desktop):

node scripts/install-profile.mjs \
  --profile "$HOME/.dsh/profiles/desktop" \
  --package ./releases/dsh-custom-conversation-prefix-0.0.9.tgz \
  --pnpm "$HOME/.dsh/dsh-runtimes/dsh-primary-runtime/dependencies/pnpm/bin/pnpm.cjs"

腳本會覈對 profile 的 pnpm 主版本、備份 manifest / lockfile,將安裝包按 SHA-256 存入 profile 的 .prefix-packages/ 後安裝並添加 bundle。重啓 DSH 後,在側欄打開「提示詞與前綴」。回滾:退出 DSH,從腳本打印的備份目錄恢復 package.json 與原 lockfile,再運行 profile 依賴安裝。

開發者本地驗收(不讀正式賬號與歷史):

pnpm install --frozen-lockfile
npm run check
npm run dev:installed

在模型選擇器選「插件驗收模型(離線)」即可走發送流程,無需 API Key;macOS 默認 CLI 路徑可通過 DSH_CLI、DSH_ASAR、DSH_TEST_PORT 覆蓋。

典型用法

  1. 在管理頁建立系統模板,或在「對話前綴」頁建立消息數組;工具歷史須包含完整調用與結果配對。
  2. 回到尚未發送的新會話,在模式選擇器旁選擇系統模板與前綴;按需配置「自動上下文」「工具」並應用。
  3. 發送第一條真實消息;之後僅能通過新建會話更換配置。

README 中的前綴示例(lookup_stock 僅爲歷史示例,插件不會執行該調用):

[
  { "role": "user", "content": "查詢示例庫存。" },
  { "role": "assistant", "content": null, "tool_calls": [
    { "id": "example_1", "type": "function", "function": { "name": "lookup_stock", "arguments": "{\"sku\":\"demo\"}" } }
  ] },
  { "role": "tool", "tool_call_id": "example_1", "content": "{\"stock\":12}" },
  { "role": "assistant", "content": "示例庫存爲 12。" }
]

適用場景與注意

適合:需要在單次新會話中固定 system 與多輪「假歷史」、演示工具調用格式、或臨時關掉部分自動上下文 / 個別工具,且希望與 DSH 原生 Agent 預設並存的工作流開發者。

注意:

  • 引擎要求 dsh 0.2.1-rc.3;宿主升級後需重驗,README 指向 兼容性報告 與 0.0.9 驗證記錄。
  • 存在其他有效 complete section 時宿主會報告衝突;DeepSeek 推理配置下需 reasoning / replay 的工具歷史組合,首版明確拒絕。
  • 靜態 JSON 通過校驗不等於遠端模型或提供方必然接納。
  • SkillHub 爲社區目錄,與 DeepSeek / 幻方無官方從屬關係;DSH 生態理念是「一切皆插件」,本插件是其中一條工作流向擴展。

結尾

dsh-custom-conversation-prefix 把 system、對話前綴、自動上下文和工具開關收到同一套會話級配置裏,並在首條真實輸入後鎖定快照,避免續聊重複注入。若你的 DSH 版本與 README 一致,可從目錄頁瞭解概要,在 GitHub 查看構建與安裝細節:

  • 目錄頁:https://www.skillhub.cn/plugins/Phantom-Algo/dsh-custom-conversation-prefix
  • 倉庫:https://github.com/Phantom-Algo/dsh-custom-conversation-prefix
羽毛球分组比赛记分
小程序二维码

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

小夜