前言¶
DeepSeek Harness(dsh)的 Web 工作臺裏,會話默認綁定在創建時所在的工作目錄(文件夾)上;側欄只能歸檔,不能把會話遷到其他 workspace,也無法從磁盤上徹底刪掉。會話標題往往只反映首條消息,長對話後很難從列表裏一眼認出內容。若你經常在多個項目目錄間切換、或希望 Agent 也能整理會話,官方 UI 會缺這幾塊能力。
下面介紹社區插件 dsh-session-move(維護者 hwangjunjie,分類:客戶端):在瀏覽器端補全「跨文件夾移動」「永久刪除」「整段對話 AI 重命名」,並把同一套能力暴露給 Agent 工具與 HTTP 接口。
這是什麼¶
dsh-session-move 是面向 DeepSeek Harness 的雙端插件(host + browser),在 Web UI 中管理會話:拖拽或菜單把會話移到另一個文件夾、經確認後永久刪除、以及用 LLM 根據整段對話生成標題。與官方行爲對比如下(摘自插件 README):
| 能力 | 官方 dsh | 安裝本插件後 |
|---|---|---|
| 將會話移到另一文件夾(workspace) | 會話鎖定在創建目錄 | 支持拖拽或菜單選擇目標文件夾 |
| 永久刪除會話 | 僅歸檔(隱藏,未真正刪除) | 菜單確認後完整移除 |
| AI 重命名 | 自動標題多來自首條消息 | 一鍵:LLM 採樣整段對話後生成 concise 標題 |
每項能力還對應 Agent 工具,便於自動化整理會話。
核心功能¶
移動會話¶
- 拖拽:在側欄抓住某條會話,拖到另一文件夾標題上;懸停時目標高亮,鬆手即移動。
- 菜單:會話
...→ Move to folder… → 選擇目標 → 確認。
移動會改寫會話工作目錄:更新會話頭中的 cwd,把持久化日誌遷到目標文件夾的 storage slug,並更新 workspace 記賬;歷史隨會話一起走,之後在新目錄下繼續可用。
永久刪除¶
會話 ... → Delete session → 勾選理解後果 → 確認。會先停止正在運行的 Agent,再移除日誌目錄、projection-cache 行與 workspace 記賬,不會留在「未分組」裏。
AI 重命名¶
會話 ... → AI Rename。LLM 在 token 預算內對整段對話做代表性採樣,修正筆誤並生成與對話語言一致的短標題。默認 timeoutMs 爲 60 秒,運行中可取消;按鈕在 Cancel(進行中)與 Done(完成)之間切換。
路由:若在插件配置裏固定 renameAi.provider 與 renameAi.model,優先使用該路由;否則使用各會話最近一次請求的路由,失敗或超時會 failover。可在 profile 的插件行中配置,例如:
- id: session-move
name: dsh-session-move
config:
renameAi:
provider: deepseek-official
model: deepseek-v4-flash
targetWords: 6
targetCjkCharacters: 14
maxInputBytes: 8192
maxOutputTokens: 96
timeoutMs: 60000
Agent 工具¶
| 工具名 | 說明 |
|---|---|
workbench_session_move |
按 session id + workspace id 移動會話 |
workbench_session_delete |
永久刪除會話 |
workbench_session_rename_ai |
AI 重命名會話 |
HTTP 接口(供 UI 或直接調用)¶
| 路徑 | 方法 | Body | 返回 |
|---|---|---|---|
/__sessionmove/info |
GET | — | 全部 workspace 及會話當前 workspace |
/__sessionmove/move |
POST | { sessionId, workspaceId } |
移動結果(舊/新 cwd、workspace id、agentReleased 等) |
/__sessionmove/delete |
POST | { sessionId } |
已移除內容 |
/__sessionmove/rename-ai |
POST | { sessionId } |
新標題 |
/__sessionmove/rename-ai-cancel |
POST | { sessionId } |
{ ok, cancelled },中止進行中的 AI 重命名 |
安裝與啓用¶
插件要求 Node >=22.19.0、dsh >=0.1.0-rc.6(見 package.json)。安裝命令以 README 原文爲準:
# from GitHub (recommended until published to npm)
dsh plugin --profile web add https://github.com/reinocheong/dsh-session-move/archive/refs/tags/v0.1.2.tar.gz
加載插件需重啓對應 profile,例如 systemd 部署:
# systemd-managed installs
sudo systemctl restart dsh
若手動把包拷到 ~/.dsh/profiles/node_modules/,還需在 profile 的 cordis.patch.yml 中註冊(dsh plugin add 會自動完成):
- insert:
- id: session-move
name: dsh-session-move
許可證:MIT。
典型用法小結¶
- 安裝並重啓 dsh Web profile。
- 在側欄用拖拽或 Move to folder… 把會話遷到目標項目文件夾。
- 需要清理時用 Delete session 做永久刪除(勿與官方歸檔混淆)。
- 長對話列表難辨時,用 AI Rename;需要固定模型時在
cordis.patch.yml的插件config.renameAi中配置。 - 在 Agent 流程中調用
workbench_session_move/workbench_session_delete/workbench_session_rename_ai做批量或腳本化整理。
移動的實現會同步 header cwd、日誌目錄、projection cache 與 workspace 註冊表;對正在執行任務的會話,v0.1.2 起會釋放 Agent 註冊,避免移動後無法重新打開或續聊。細節見插件 README 的 “How it works” 與 Reliability 小節。
適用場景與注意¶
適合:在多 workspace / 多目錄間整理 dsh 會話的開發者;希望徹底刪除誤開會話或歸檔仍佔存儲的場景;需要基於整段對話生成側欄標題;或讓 Agent 代爲移動、刪除、重命名會話。
注意:
- 插件與當前 dsh 進程同權限運行,安裝前請自行審閱 GitHub 源碼 與 MIT 許可證。
- 永久刪除不可恢復,操作前確認會話 ID 與目錄。
- AI 重命名依賴已配置的 LLM 路由與網絡;超時或失敗會嘗試 failover。
- 社區目錄 SkillHub 插件頁 與 DeepSeek / 幻方無官方從屬關係;DSH 生態強調「一切皆插件」,本插件爲社區貢獻的客戶端能力擴展。
結尾¶
dsh-session-move 把官方 Web UI 未覆蓋的會話遷移、真刪除和整對話 AI 標題補到側欄與 Agent 工具裏,適合日常多項目使用 dsh 時保持側欄整潔。更多信息見 SkillHub 目錄頁 與 GitHub 倉庫。