前言¶
在 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 覆蓋。
典型用法¶
- 在管理頁建立系統模板,或在「對話前綴」頁建立消息數組;工具歷史須包含完整調用與結果配對。
- 回到尚未發送的新會話,在模式選擇器旁選擇系統模板與前綴;按需配置「自動上下文」「工具」並應用。
- 發送第一條真實消息;之後僅能通過新建會話更換配置。
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 預設並存的工作流開發者。
注意:
- 引擎要求
dsh0.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