前言¶
在 DSH 的插件化用法中,會話通常圍繞工作區(workspace)組織。dsh-project-context 是 buhuikongpan 維護的客戶端插件,許可證爲 MIT。它解決的是一個具體問題:當模型進入一個已有工作區目錄後,如何自動拿到一份簡短的“項目工作區約定”。
這個插件把有真實 cwd 的 DSH 工作區會話視爲項目:新會話自動注入精簡的項目上下文,並在輸入框旁提供每會話開關。
核心機制¶
- 通過
agent/pre-step鉤子注入一條獨立的 user 消息塊,來源標記爲project-context。 - 每次在工作區打開新會話時自動注入項目工作區約定,不需要手動追加提示詞。
- 不註冊
systemPrompt.context,不參與系統提示詞拼接。 - 僅對擁有真實 cwd 的會話生效;沒有 cwd 的系統/後臺會話不注入。
- 客戶端 Web UI 支持中文和英文界面語言跟隨。
每會話開關¶
輸入框右側提供「項目」開關,默認開啓。
關閉後,既有的上下文塊不會被刪除,而是渲染爲“已降級爲普通工作區”的狀態提示。這樣可以避免同一個會話裏項目約定突然消失,讓模型在下一輪步驟中能看到切換後的狀態。
如果需要調整注入文本或降級提示文本,可以修改 lib/index.js 中的 projectContextText() / projectDisabledText()。
安裝與啓用¶
使用安裝命令:
dsh plugin --profile web add dsh-project-context
安裝後重啓 dsh 服務。
也可以從源碼安裝:
dsh plugin --profile web add https://github.com/buhuikongpan/dsh-project-context
注意:不要在本包自帶的 cordis.patch.yml 激活行之外,再手寫同樣的 insert: id: project-context,否則可能觸發 duplicate loader entry id 導致啓動失敗。
典型用法¶
1、安裝並重啓 dsh 服務。
2、在一個工作區文件夾裏打開新會話。
3、查看對話中出現獨立的 <project_context> 消息塊;看到帶 project-context 來源標記的獨立 user 消息塊,說明注入成功。
4、點擊輸入框右側的「項目」按鈕,在開啓與關閉狀態之間切換。
5、在源碼中做語法檢查和單元測試:
npm run check
npm test
適用場景與注意¶
適合在 DSH Web 客戶端中,爲有明確工作區目錄的會話增加一個穩定的項目約定入口。它也適合在某個會話裏臨時關閉項目上下文,同時保留一條降級提示,避免模型誤以爲項目約定仍然有效。
插件以當前 dsh 進程權限運行,安裝前應檢查源碼與許可證。
資料中還提到兩個版本相關事項:舊版 0.1.x 的 plain-object 狀態文件會在啓動時一次性遷移並備份爲 .migrated;v0.3.x 寫自定義會話事件可能導致重啓後拒讀會話(SessionFormatUnsupportedError)。另外,英文資料與中文資料在開關狀態存儲方式上描述不一致,本文不把具體存儲位置作爲確定行爲。
鏈接¶
- 獨立插件目錄頁:https://www.skillhub.cn/plugins/buhuikongpan/dsh-project-context
- GitHub:https://github.com/buhuikongpan/dsh-project-context