前言¶
在 DeepSeek Harness(DSH)裏跑智能體,經常需要在獨立目錄裏試命令、改腳本或做一次性任務。若直接在主工作區裏折騰,容易和長期項目混在一起;若每次手動建文件夾、再單獨開 workspace 和會話,步驟又偏碎。社區插件 @s0meb0dy3/dsh-scratch-workspace(倉庫 s0meb0dy3/dsh-scratch-workspace)面向這類場景:在 Harness 側邊欄提供「臨時工作區」面板,一次點擊創建帶獨立 workspace 與會話的任務目錄,集中查看狀態,並在用完後做帶校驗的清理;也可選啓用空閒自動過期。下面介紹它的定位、能力與安裝用法。
這是什麼¶
該插件由維護者 s0meb0dy3 發佈,npm 包名爲 @s0meb0dy3/dsh-scratch-workspace(當前資料中 package 版本爲 1.7.0),許可證 MIT,分類上屬於 DSH 客戶端插件(向 Web 客戶端注入 UI 與能力)。DeepSeek Harness 的生態是「一切皆插件」;插件目錄站點 SkillHub 上的條目 與 GitHub 倉庫由社區維護,與 DeepSeek / 幻方無官方從屬關係。
一句話:爲 DSH 提供可丟棄的臨時工作區——創建、列表管理、安全刪除(移入系統廢紙簍),會話對話會保留並歸檔,可選按空閒時間自動清理。
核心功能¶
資料中與實現一致的能力包括:
- 同一入口完成創建與管理:側邊欄「Temporary workspaces」面板裏,通過
+ Temporary task創建任務,並在同一處列出、打開、清理。 - 列表信息:友好名稱、運行狀態(running / terminal open)、空閒倒計時、文件夾大小,以及該目錄下的會話。
- 安全刪除:清理前做歸屬與 inode 等校驗,使用 durable retry journal;智能體或終端仍在使用該目錄時會拒絕刪除。清理將任務文件夾移入系統 Trash / Recycle Bin,誤刪可在廢紙簍恢復;對話不會隨文件夾一起丟掉,而是保留並歸檔。確認不再需要後再清空廢紙簍以釋放磁盤空間。
- 可選空閒過期:默認關閉;開啓後僅對新創建的任務生效,每個任務在創建時固定當時的策略與小時數,後續改設置不會影響已有任務。
智能體側還提供 scratch_workspace 工具:可讀狀態、改 root/prefix、創建任務;不能執行刪除或關閉確認類保護(刪除與相關確認僅用戶 UI 可操作)。
安裝與啓用¶
要求 DeepSeek Harness 0.2.1 或更新版本。
- 在 DSH 側邊欄打開 Plugins → Install。
- 粘貼 npm 包名:
@s0meb0dy3/dsh-scratch-workspace
- 完全退出 DeepSeek Harness 後重新打開,再在側邊欄進入 Temporary workspaces。
安裝前建議閱讀 GitHub 倉庫 源碼與 MIT 許可證;插件以當前 DSH 進程權限運行,與 Harness 內其它插件相同,不應在未審閱的情況下盲目安裝。
典型用法¶
經過上面的安裝步驟後,日常流程可以概括爲:
- 打開側邊欄 Temporary workspaces。
- 點擊 + Temporary task,在配置的存儲根目錄下生成帶前綴的子文件夾,並綁定獨立 workspace 與會話。
- 在該目錄內讓智能體或終端工作;面板中可查看空閒倒計時與佔用大小。
- 任務結束後在面板中選擇清理;若開啓了「刪除前確認」,會先詢問再執行。清理進行中若 agent、子任務、計劃任務或終端仍佔用目錄,操作會被拒絕。
首次使用前若未設置存儲根目錄,插件會引導選擇 Storage root(僅影響之後新建的任務)。
配置說明¶
在 Settings → Temporary workspaces,或 Plugins 中該插件頁面可調整(摘自官方配置文檔):
| 設置項 | 默認值 | 含義 |
|---|---|---|
| Storage root | 未設置(首次使用時詢問) | 臨時文件夾的父目錄;每個任務一個子文件夾;修改僅影響新任務 |
| Folder prefix | task |
文件夾名前綴,1–40 字符(字母、數字、漢字、_、-) |
| Confirm before deletion | 開啓 | 手動清理前是否確認;關閉則 Clean up 立即執行 |
| Automatic cleanup | 關閉 | 空閒自動清理,僅對新任務 |
| Idle hours | 24 | 1–8760 小時 |
空閒計時規則要點:用戶消息、回合開始/結束、工具調用/結果、助手消息、agent 運行/空閒切換等算作活動;僅打開會話或瀏覽歷史不算。Harness 關閉期間不跑定時檢查,下次啓動會根據會話日誌重建計時;讀不到日誌時跳過該任務而非猜測。檢查大約每分鐘一次,過期時間略有誤差。
開啓自動清理或修改已啓用策略的小時數時,UI 會要求一次性確認(同意永久刪除策略,不是每個任務都彈)。
任務文件夾被清理後進系統廢紙簍;也可通過環境變量 DSH_SCRATCH_TRASH_DIR 指定其它丟棄位置。插件狀態(設置、任務註冊表、刪除授權等)位於:
~/.local/share/deepseek-harness/scratch-workspace/<profile-hash>/tasks.json
任務文件在配置的 storage root 下;已歸檔對話保存在 DSH 自有會話存儲中,不在上述路徑。
適用場景與注意¶
適合:需要與主倉庫隔離的短時實驗、一次性腳本、並行多個互不干擾的 agent 會話目錄,且希望在一個面板裏統一查看與收尾的場景。
平臺:官方文檔註明 macOS 已驗證;Windows 有單獨說明(見倉庫 docs/platforms.md)。Linux 清理依賴 gio trash;若平臺無法使用廢紙簍,清理會失敗並報錯,不會靜默改爲永久刪除。
安全邊界(見倉庫 docs/security.md):這不是 OS 級沙箱;路徑類 API 仍存在 TOCTOU 窗口。廢紙簍裏的內容在清空前仍可恢復,但不應把插件當作備份——重要數據需自行導出。同一 profile 假設單進程 DSH;多進程併發可能爭用同一狀態文件。插件無法在清理期間阻止無關進程向該目錄寫入。
結尾¶
s0meb0dy3/dsh-scratch-workspace 把「建臨時目錄 + 開 workspace + 管生命週期」收進側邊欄一條線,並用校驗、佔用檢測和廢紙簍刪除降低誤刪風險;需要時再打開空閒自動清理即可。更多細節見倉庫內 Configuration、Security model。
- 目錄頁:https://www.skillhub.cn/plugins/s0meb0dy3/dsh-scratch-workspace
- GitHub:https://github.com/s0meb0dy3/dsh-scratch-workspace