前言¶
在 DeepSeek Harness (DSH) 的標準工作流中,會話標題通常依賴首條用戶消息或 LLM 自動生成。當 Agent 需要根據對話進展顯式重命名會話(例如將需求 ID 注入標題)時,現有方案缺乏模型側的直接操作能力。dsh-session-rename 插件通過提供 rename_session 工具,填補了這一空白,讓 Agent 能夠在對話內部自主管理會話標題。
插件介紹¶
dsh-session-rename 是一個 DSH 工作流插件,由開發者 9Ashwin 維護。它將 rename_session 工具暴露給模型,允許 Agent 在對話上下文中直接修改當前會話的標題。
核心功能¶
- 工具定義:提供
rename_session工具。 - 參數:
title(必填):新標題。歸一化後必須包含可見字符。session_id(可選):目標會話 ID。省略時默認重命名當前會話。
- 返回值:返回
{ session_id, title, seq }格式的 JSON 文本。 - 機制:
- 釘住標題:取代自動生成機制,後續用戶消息不再觸發自動修訂。
- 語義由定:標題的語義解析由
@deepseek-ai/dsh-session-title負責。 - 隱私保護:標題僅寫入會話日誌,絕不進入模型輸入。
安裝與啓用¶
安裝前請確保已安裝 Node.js >= 22。
從 GitHub 安裝:
dsh plugin --profile web add -w github:9Ashwin/dsh-session-rename
注意:
-w參數用於兼容新版 profile 目錄中的pnpm-workspace.yaml。若安裝報錯ERR_PNPM_ADDING_TO_ROOT,請檢查 profile 是否包含該文件,或去掉-w。
本地開發安裝:
dsh plugin --profile web add -w link:/absolute/path/to/dsh-session-rename
安裝完成後,重啓 dsh web 即可生效。
典型用法¶
插件本身不觸發改名,需要在 AGENTS.md 中定義規則,由模型決定何時調用。以下是示例規則:
在 AGENTS.md 中添加以下內容:
- 開始一個新需求(出現 PRD-NNN、Issue #NNN 等需求 id)時,調用 `rename_session`,
把會話標題改成 `<需求 id> <一句話描述>`,例如 `PRD-042 重構 router 層`。
模型會根據此規則自行調用工具,插件僅負責執行重命名邏輯。
適用場景與限制¶
適用場景:需要 Agent 根據對話上下文動態調整會話命名結構的工作流。
限制說明:
1. 會話加載限制:只能修改已加載的會話。若通過 session_id 指定非當前會話,必須確保該會話已打開或處於激活狀態,否則會報錯 not loaded — open or switch to it first。
2. 無專屬視圖:工具調用在對話流中顯示爲通用卡片,不提供專屬 UI 界面。
3. 非自動觸發:不會自動執行,必須由模型通過規則主動決定。
4. 標題語義:標題的具體語義化處理(如去噪、歸一化)由 @deepseek-ai/dsh-session-title 負責,插件僅負責注入原始標題。
結語¶
dsh-session-rename 通過零運行時依賴的設計,解決了 DSH 中模型側無法直接管理會話標題的痛點。它將標題的“生成權”和“修改權”交還給 Agent,使其能更靈活地維護會話上下文。