dsh-workspace-prompt:按工作區掛載自定義提示詞

前言

在 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 給出的五步流程可直接復現:

  1. 在要配置的工作區裏打開任意會話;
  2. 輸入 /workspace-prompt,選擇 配置工作區提示詞,編輯後點 保存(命令僅在當前會話綁定了 cwd 時出現);
  3. 在輸入框工具行點擊「工作區提示詞」,標籤從 -關 變爲 -開;
  4. 正常發消息;本會話第一次需要注入時,在確認卡上選 帶上 或 不帶;
  5. 不再需要時關閉開關,或在彈窗 / 設置頁點 清除(清除會連同該工作區的開關狀態一起刪除)。

改動從下一步生效:中途打開開關,當前會話的下一次請求就會帶上提示詞;中途改文本,下一次請求追加新文本,歷史裏更早的值不變。

適用場景與注意

適合
多倉庫並行、各項目規範不同(包管理器、語言、回答風格等),又希望避免全局提示詞污染其他工作區的 DSH Web 用戶。

界面入口
配置入口是斜槓命令 /workspace-prompt,不是工作區側欄「更多」菜單:官方 ui-workspace 的操作菜單未提供插件擴展點,本插件通過 commandUi 與 shell.overlay 擴展,無需改 Harness 源碼。

上下文預算
提示詞只在開關打開時佔用該工作區的上下文;內容越長,留給對話的空間越少。開關按工作區記憶:在一個會話裏打開,同工作區的其他會話也會生效,直到再次關閉。

平臺
本包只在 Web Client 提供界面,不提供終端或桌面端入口。

生態說明
DSH 採用「一切皆插件」的架構;SkillHub 等社區目錄爲獨立站點,與 DeepSeek / 幻方無官方從屬關係。

結尾

dsh-workspace-prompt 把「項目專屬規則」從全局提示詞和重複粘貼裏拆出來,按 cwd 隔離、默認關閉、會話首次確認後再注入,並與官方上下文注入形態對齊。需要試用或貢獻時,見 目錄頁 與 GitHub 倉庫。

羽毛球分组比赛记分
小程序二维码

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

小夜