前言¶
在 DeepSeek Harness(DSH)裏同時開着多個倉庫時,常見矛盾是:前端項目需要 pnpm 和中文提交說明,後端要 Gradle,文檔庫又希望回答儘量短。把這些規則寫進每次對話既重複又容易漏;寫進全局提示詞,又會串到別的項目。
下面介紹的插件把提示詞綁在工作區(會話的絕對工作目錄 cwd)上:寫一次、按需打開開關,該工作區的新會話可以帶上這段上下文,且與 AGENTS.md 一樣以摺疊的「上下文注入」形式出現,而不是用戶氣泡。
這是什麼¶
dsh-workspace-prompt(npm 包名 @linbin-mk/dsh-workspace-prompt)是第三方 DeepSeek Harness 插件,由 linbin-mk 維護,不改 Harness 源碼;配置與開關界面只在 Web Client 提供。
社區目錄頁:linbin-mk/dsh-workspace-prompt
源碼與文檔:GitHub
核心功能¶
資料中明確的行爲如下。
按工作區隔離
提示詞與開關都以會話 cwd 的絕對路徑爲 key;不同工作區互不影響。會話的 cwd 須與設置頁裏的工作區路徑完全一致。
默認不注入
保存只寫入插件 Config;在輸入框工具行打開「工作區提示詞」開關後,纔會在 agent/pre-step 鉤子裏進入模型上下文。沒有配置提示詞的工作區不顯示該開關。
每個會話只問一次
開關打開後,某會話第一次真正需要注入時,通過官方 ctx.userQuestions 彈出確認卡:選「帶上」則併入本會話上下文(選項說明裏會展示配置的提示詞原文);選「不帶」則本會話不再詢問、也不再注入,開關狀態不變(下個新會話會重新問)。選過「帶上」的會話,若提示詞文本變更或上下文被壓縮,會用最新文本直接重新注入,不再詢問。
持久化
數據落在插件 Config 的 prompts 與 enabled 兩個可實時編輯字段,由 Harness 的 user-settings provider 寫入 profile 用戶層,重啓不丟。
與 AGENTS.md 共存
複用官方 agent-instructions 的注入形態,transcript 裏顯示爲摺疊的「上下文注入」行。
集中管理
除斜槓命令與輸入框開關外,設置 → 工作區提示詞 提供工作區列表:已配置的排在前面(預覽、開關),未配置的只讀展示;行內可編輯、保存或清除。
無 userQuestions、headless、子代理或被託管(DELEGATED_CALLER)時,退回「開關語義」直接注入;用戶關閉或忽略提問視作本輪「不帶」。
安裝與啓用¶
環境要求(來自 README):Node.js ^22.19 或 >=24;DeepSeek Harness 0.2.1-rc.2 或兼容的 0.2.1 預發佈版本,以及提供 ctx.settings / ctx.configForms / ctx.agent 的 Web profile;會話首次確認還需要 ctx.userQuestions(Web profile 默認含 @deepseek-ai/dsh-user-questions)。
把已發佈包裝進自定義 Web profile 時,按官方 README 執行:
dsh --profile web-prompt --from-default-profile web --dump-config
dsh plugin --profile web-prompt add @linbin-mk/dsh-workspace-prompt
dsh --profile web-prompt
dsh.bundle patch 會自動加入 Host 與 Client 插件行;包聲明瞭 dsh.client 入口,web shell 會加載 lib/client.js,Host 端 lib/index.js 負責 Config 與 agent/pre-step 注入。
本地從 tarball 安裝時,在插件倉庫內構建並 pack 後:
pnpm install
pnpm build
pnpm pack
dsh plugin --profile web-prompt add ./linbin-mk-dsh-workspace-prompt-<version>.tgz
插件以當前 DSH 進程權限運行;安裝前應自行查看 源碼 與 MIT 許可證。
典型用法¶
README 給出的五步流程可直接復現:
- 在要配置的工作區裏打開任意會話;
- 輸入
/workspace-prompt,選擇 配置工作區提示詞,編輯後點 保存(命令僅在當前會話綁定了cwd時出現); - 在輸入框工具行點擊「工作區提示詞」,標籤從
-關變爲-開; - 正常發消息;本會話第一次需要注入時,在確認卡上選 帶上 或 不帶;
- 不再需要時關閉開關,或在彈窗 / 設置頁點 清除(清除會連同該工作區的開關狀態一起刪除)。
改動從下一步生效:中途打開開關,當前會話的下一次請求就會帶上提示詞;中途改文本,下一次請求追加新文本,歷史裏更早的值不變。
適用場景與注意¶
適合
多倉庫並行、各項目規範不同(包管理器、語言、回答風格等),又希望避免全局提示詞污染其他工作區的 DSH Web 用戶。
界面入口
配置入口是斜槓命令 /workspace-prompt,不是工作區側欄「更多」菜單:官方 ui-workspace 的操作菜單未提供插件擴展點,本插件通過 commandUi 與 shell.overlay 擴展,無需改 Harness 源碼。
上下文預算
提示詞只在開關打開時佔用該工作區的上下文;內容越長,留給對話的空間越少。開關按工作區記憶:在一個會話裏打開,同工作區的其他會話也會生效,直到再次關閉。
平臺
本包只在 Web Client 提供界面,不提供終端或桌面端入口。
生態說明
DSH 採用「一切皆插件」的架構;SkillHub 等社區目錄爲獨立站點,與 DeepSeek / 幻方無官方從屬關係。
結尾¶
dsh-workspace-prompt 把「項目專屬規則」從全局提示詞和重複粘貼裏拆出來,按 cwd 隔離、默認關閉、會話首次確認後再注入,並與官方上下文注入形態對齊。需要試用或貢獻時,見 目錄頁 與 GitHub 倉庫。