dsh-think-summary:把长程推理收成可扫读的进度行

前言

在 DeepSeek Harness(DSH)里跑长任务时,「思考」区块往往是两套都不舒服的体验:折叠时只有一行摘要不说明白在干什么,展开则是按流式顺序堆出来的整段内心独白,几千字很难扫。OpenAI Codex 侧有模型自己产出的 reasoning-summary 通道;DSH 默认渲染的是原始 chain-of-thought,没有等价通道。要在本地得到「每步一两句进度、完整推理仍一点开就看」的体验,只能在每个推理步落定后额外做一次便宜的摘要调用——这正是社区插件 dsh-think-summary(npm:@drifter-yh/dsh-think-summary,维护者 Drifter-yh)要做的事。下文按安装、配置、行为与边界说明,事实与 GitHub 仓库 README 一致。

这是什么

dsh-think-summary 是挂在 DSH Cordis 体系上的社区插件(非 DeepSeek 官方维护)。它在每个 assistant-step 落定后,用你配置的 LLM 路由把该步推理压成一两句白话(README 示例为带「› 思考 · 进度」的短行);点击该行仍可展开,按原先方式看完整 Markdown 推理。简介中的「1–3 bullet points」与 package 描述一致;界面上的呈现以 README 前后对比为准。

分类上在 SkillHub 目录中归于模型推理;当前仓库星标为 0(以目录页为准)。许可证 MIT,package 版本 0.2.0,要求 Harness >=0.2.2-rc.1 <0.2.3-0,已在 0.2.2-rc.1 的 desktop profile 上验证。

核心功能

界面上的变化

折叠态不再只是无信息量的 excerpt,而会变成类似:

› 思考 · 进度
  我读完了插件的两半代码,确认摘要走的是本地端点;接下来改客户端的额度逻辑。

展开后仍是原始推理全文,渲染规则与内置 renderer 对齐。

Codex 式「只显示进度、不反复展开」

若希望最新一轮在收到下一条用户消息前保持展开、且每步只出现进度行,可在 profile 的 cordis.patch.yml 里为 ui-chat 设置 collapseTiming: next-input(README 说明)。这与插件摘要配合,更接近「步进式进度条」的阅读流。

运行机制(摘要)

客户端在 conversation.chat.node、优先级 -1 上影子替换 assistant-step 的渲染;仅在步 落定 时请求摘要,不在流式中途调用。宿主进程提供 POST /summarize,经 ctx.llm.stream() 用配置里的 provider/model 生成 1–2 句结果;对(截断后的)推理文本做 SHA-1 内容哈希缓存,相同文本不重复计费。任意失败(无路由、超时、截断、空输出)会降级为内置的一行 excerpt,README 明确:插件不会让对话比 stock 更差。

工具调用仍由 Harness 自身渲染;只 shadow assistant-step 节点。

安装与启用

安装命令须使用 README 原文(勿用 github:owner/repo 自行拼接):

dsh plugin --profile <your-profile> add @drifter-yh/dsh-think-summary

部分构建可在 Settings → Plugins 里从 registry 添加;否则用上述命令。安装后需重启 Harness 一次:宿主半以 fork 模块加载,不能热替换。

插件以当前 DSH 进程的权限运行;安装前建议自行审阅 源码 与 MIT 许可证。社区目录站 SkillHub 插件页 与 GitHub 无 DeepSeek / 幻方官方从属关系。

配置

配置写在 profile 的 cordis.patch.yml,或使用插件配置面板。README 给出完整示例:

- id: think-summary
  name: '@drifter-yh/dsh-think-summary'
  config:
    provider: opencode-go          # any registered LLM route
    model: deepseek-v4.1-flash     # a cheap, fast model is the point
    enabled: true                  # master switch; false = no model calls at all
    maxOutputTokens: 2000          # budget for (reasoning + answer) tokens
    maxInputChars: 6000            # longer reasoning is clamped head+tail
    maxCallsPerSession: 300        # per-session cost ceiling
    maxCallsTotal: 600             # per-process cost ceiling

常用项含义(默认值以 README 表格为准):

Key 默认 含义
enabled true 总开关;false 保留 UI 但不发起模型调用
provider / model opencode-go / deepseek-v4.1-flash 摘要用的路由
maxInputChars 6000 超长推理头尾截断
maxOutputTokens 2000 单次 completion 预算
timeoutMs 25000 单次调用超时
minChars 160 短于该长度的步不调用
maxCallsPerSession / maxCallsTotal 300 / 600 会话 / 进程硬上限
cacheFile ~/.dsh/storages/think-summary/cache.json 本地持久缓存

浏览器应急关闭(不改 profile):在控制台执行 localStorage.setItem('dsh-think-summary.enabled', 'false'),仅对当前页停请求。

成本、延迟与限流

每个落定步对应一次廉价调用。README 在 deepseek-v4.1-flash 上给出典型单步约 3–20 s、输入数千 token、输出约三行短文的量级;40 步量级在多数路由上「远不到一个货币单位」,但仍是付费能力,故配置里有 session/process 上限。

超过三小时的历史会话不会回填摘要,避免打开旧对话触发调用风暴。客户端另有10 分钟滑动窗口 60 次自限流;窗口满时行内显示「摘要已暂停」,滑出窗口后自动恢复。宿主侧 budget/disabled 的 skipped 会在十分钟内抑制重复请求,避免滚动重复打端点。

隐私与安全

推理文本仅发向你配置的 provider(与对话同源)。摘要缓存在本地 cacheFile 路径。HTTP 端点 /dsh-think-summary/* 仅接受 loopback,请求体上限 512 KB,摘要须 POST,并发模型调用最多 2。README 声明无遥测、无除模型请求外的额外出网。

适用场景与注意

适合:长时间 Harness 任务、需要扫读「现在在干什么」又不想丢完整 CoT 的开发者;已具备可注册的便宜快速模型路由(默认 deepseek-v4.1-flash 即为此设计)。

注意:

  • 依赖 Harness 对 assistant-step 节点契约;大版本变更可能破坏 shadow renderer(有 error boundary 回退纯文本)。
  • Prompt 要求中文要点;README 写明暂不支持其他语言 bullet。
  • 文中 @path 文件提及目前按纯文本显示。
  • 部分路由的 reasoning effort 无法关闭,maxOutputTokens 需为 thinking 留空间,默认 2000 即出于此因。

故障排查(节选)

现象 建议检查
完全没有要点 插件是否启用;curl http://127.0.0.1:<port>/dsh-think-summary/status
显示「摘要已暂停」 悬停看原因:限流窗口或 budget;可调高 maxCallsPerSession / maxCallsTotal
宿主日志「摘要输出超长」 提高 maxOutputTokens 或降低 maxInputChars
Harness 升级后摘要停掉 带版本与控制台错误到仓库提 issue

结尾

dsh-think-summary 用「每步额外一次本地摘要调用」补上 DSH 没有 reasoning-summary 通道的空档:界面保持 Codex 式的可扫读进度,完整推理仍在单击之内。安装用 dsh plugin --profile <your-profile> add @drifter-yh/dsh-think-summary,配好 cordis.patch.yml 中的 provider/model 与预算项后即可使用。

  • 目录页:https://www.skillhub.cn/plugins/Drifter-yh/dsh-think-summary
  • 源码与文档:https://github.com/Drifter-yh/dsh-think-summary
羽毛球分组比赛记分
小程序二维码

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

Xiaoye