前言¶
在 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,使其能更灵活地维护会话上下文。