dsh-turn-recap:回合结束后的「停在哪」摘要卡

前言

在 DeepSeek Harness(DSH)的 Web UI 里,一轮对话往往包含多段工具调用、长回复和中间状态。关掉页面或隔天再打开时,很难快速判断「这一轮到底做到哪一步、还有什么没收尾」。手动往上翻日志成本高,也不等于一句人话里的进度说明。

下面介绍社区插件 dsh-turn-recap(维护者 littepointR,分类为客户端)。它在每一轮正常结束且会话进入短暂静默后,用模型生成一到三句简短回顾,并以卡片形式挂在该回合末尾;需要时还可以用 /recap 立刻为最近一轮补一张同样的卡。插件归属与安装方式以 SkillHub 目录页 与 GitHub 仓库 为准;社区目录为独立站点,与 DeepSeek / 幻方无官方从属关系。

这是什么

dsh-turn-recap 是一个持久化 DSH bundle:Host 侧监听回合结束流程并调用模型写摘要,Client 侧在 conversation.chat.turnTail 插槽渲染卡片。它解决的是「回合级进度锚点」问题——不是第二份正在阅读中的回复摘要,而是「我停在哪」的回顾;文案跟随对话语言,并随宿主主题与 locale(内置英文与简体中文词典)切换。

运行环境要求 DSH >=0.2.1-rc.2(package.json 中 engines.dsh 声明的下限;启动器在安装与 profile 启动时会校验,不满足会报 incompatible-version)。可用 dsh --version 查看当前 profile 将使用的运行时。

核心功能

静默后出现回顾卡

一轮结束后,若会话进入安静窗口(默认 120 秒,即 idleMs: 120000),该回合末尾会出现一张卡片:一到三句话说明本轮完成了什么;仅在确有未竟事项时才会点出。若你在安静窗口内继续在同一轮上工作,卡片不会出现——设计意图是「离开现场时的书签」,而不是打断仍在进行的阅读。

卡片与 turn/end 提交在同一帧进入客户端可见的 recap session projection;展示时间由客户端根据 revealAt 与「是否有更新的回合已开始」共同决定,因此安静等待不会阻塞你继续对话。

/recap 按需生成

输入 /recap 会立即为最近一轮生成与自动流程相同风格的卡片,适用于:该轮从未等到安静窗口、卡片被滚过、或你想重新读一遍当前进展。

何时不产生卡片

被中断、失败或内容为空的回合不会生成回顾;默认 skipSubagents: true,子 agent 会话不做自动回顾(可在配置中改为 false)。

Next step 行

当且仅当回合留下一个明确的下一步(未答问题、已约定的行动、或针对阻塞的补救)时,卡片在摘要下方增加单行 Next step;干净结束的回合没有这一行。

安装与启用

本包为 DSH bundle(含 dsh.bundle.patch 与 dsh.client 半部),通过启动器的 dsh plugin 安装进 profile,不发布到 npm。安装完成后,bundle patch 会在 Loader 中插入一行 id: turn-recap、name: '@local/dsh-turn-recap'。

默认分支最新提交:

dsh plugin add github:littepointR/dsh-turn-recap

固定标签发布(README 示例为 v1.0.1):

dsh plugin add github:littepointR/dsh-turn-recap#v1.0.1

指定 profile:

dsh plugin --profile <name> add github:littepointR/dsh-turn-recap

profile 的 YAML 若开启 HMR,组合会立即重载;否则下次启动 profile 时生效。在 Plugin Manager 中禁用再启用该行即可重新加载 Host 模块,无需重启整个 Harness。

配置

在 profile 的 cordis.patch.yml 里,于上述 Loader 行的 config 块中写入可选项(该层在包升级后仍保留)。各键含义如下(均为 README 所列默认值):

键 默认 含义
enabled true false 时注销 projection、回合监听与 /recap
maxTokens 200 回顾请求的输出 token 上限
temperature 0.2 采样温度
timeoutMs 12000 单次回顾请求超时(毫秒)
digestChars 6000 送入模型的回合摘要字符上限
idleMs 120000 回合结束后须保持安静的时长;0 表示立即允许展示
skipSubagents true 是否跳过子 agent 会话的自动回顾
provider, model 未设置 显式指定路由;默认复用该回合请求所用的路由

示例:

- insert:
    - id: turn-recap
      name: '@local/dsh-turn-recap'
      config:
        maxTokens: 300
        skipSubagents: false

典型用法

  1. 将插件安装到日常使用的 profile,保持默认 idleMs,正常完成一轮对话后稍等或切换去处理别的事;回到 Web UI 时在该回合尾部查看回顾卡。
  2. 长回合或频繁滚动时,在输入框执行 /recap,立即为最新一轮拿到回顾与可选的 Next step。
  3. 若希望子 agent 会话也有自动回顾,将 skipSubagents 设为 false;若希望卡片几乎不等待,可将 idleMs 设为 0(会改变「仅在你离开该轮后才出现」的体验)。

Host 侧在 agent/turn-stopping 阶段从会话日志抽取用户请求、最新工具调用(含失败标记)与最终助手回复,向服务该回合的模型发起短回顾;/recap 为普通 DSH 命令,走同一套生成与 projection 逻辑。

适用场景与注意

适合需要多步工程型对话、经常跨会话续写同一任务的 DSH 用户:用一两句话对齐「 proposed / implemented / tested」等实际进度,比纯靠记忆或全文搜索更省事。

使用前请注意:

  • 插件以当前 dsh 进程权限在 profile 内运行;安装前建议阅读仓库源码与 MIT 许可证(package.json 中 license: "MIT")。
  • 回顾内容由模型根据回合摘要生成,可能遗漏或过度概括;Next step 仅在模型与解析逻辑认为存在单一明确行动时出现,不能替代 issue 或任务系统。
  • 若必须在低于声明下限的运行时上尝试,README 提供 dsh plugin --profile <profile> allow-version '@local/dsh-turn-recap@1.0.1' --dsh-version '<runtime>' --accept-risk 等精确版本豁免路径;未经验证的组合存在文档所述的崩溃与数据风险,一般应优先升级 DSH 至 >=0.2.1-rc.2。

结尾

dsh-turn-recap 把「回合结束且会话安静之后停在哪」做成 Web UI 里轻量的模型回顾卡,并用 /recap 补上按需刷新。更多信息见 SkillHub 目录 与 GitHub:littepointR/dsh-turn-recap。

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

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

Xiaoye