DeepSeek Harness 插件:dsh-session-rename

前言

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

插件详情与源码请参考:
* GitHub 仓库
* 技能中心目录

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

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

小夜