前言¶
长对话会越来越长,中间的上下文也会越来越模糊。虽然 DSH(DeepSeek Harness)支持会话历史,但直接跳转回某一段再继续,往往需要翻阅大量消息。Branchpoint 是一个插件,在对话头部添加一个 fork 按钮,点击后把当前对话的关键信息提炼成摘要,并在新会话中打开,让对话在干净的基础上继续。
是什么¶
Branchpoint 是 DeepSeek Harness 的一个工作流插件。它通过在对话头部插入一个 fork 图标,将当前会话的上下文提炼为一份简洁摘要,然后在新的会话中打开。这样可以在不丢失上下文的前提下,把长对话“分支”出去。
维护者是 TimRad1,项目版本 0.3.0,许可证为 MIT。
核心功能¶
Branchpoint 主要做三件事:
- 在对话头部添加 fork 图标,位置在分支标题旁边。
- 当需要分支时,会从当前会话事件日志中提取信息,构建一份摘要。
- 打开一个新的会话,并将摘要放入编辑器,等待用户确认后再发送。
摘要包含以下内容:
- 目标:最后一条用户提示。
- 最新结论:助手最近的一条总结性回复。
- 已完成:最近一次完整轮次中完成的事项。
- 待办:尚未完成的事项,例如
in progress: <prompt>。 - 状态:涉及的关键信息,包括工具报错、变更文件、版本、命令和核心概念。
示例摘要格式如下:
🌿 BRANCHPOINT — BRANCH SUMMARY
🎯 Goal: the handoff button does nothing
📌 LATEST CONCLUSION:
Fixed the silent no-op: the digest builder now keeps orphan assistant text and
pages older history before summarizing.
✅ DONE (1):
- silent no-op on empty digest → alert + fallback summary
⏳ OPEN (1):
- in progress: verify the button in a fresh session
📂 STATE:
· changed: lib/client.js
· files: lib/client.js, package.json
· run: npm test
(Summary, not a transcript: intermediate steps are omitted. Continue from this.)
安装与启用¶
当前版本尚未发布到 npm,需要从 GitHub release 下载预构建的 tarball 安装。
在 PowerShell 中执行以下命令:
$tgz = "$env:TEMP\branchpoint.tgz"
Invoke-WebRequest "https://github.com/TimRad1/dsh-plugin-branchpoint/releases/latest/download/branchpoint.tgz" -OutFile $tgz
& "$env:LOCALAPPDATA\Programs\DeepSeek Harness\resources\runtime\cli\bin\dsh.cmd" `
plugin --profile desktop add ("file:" + ($tgz -replace '\\', '/'))
或者在 DSH 的 Settings → Plugins 中,安装下载好的 .tgz 压缩包。
安装后需要完全退出并重新启动 DSH。桌面配置在启动时会加载插件组合,不支持热更新。
典型用法¶
使用步骤如下:
- 打开一个已有至少一轮对话的会话。
- 在对话头部点击 fork 图标。
- 在新会话的编辑器中查看摘要,确认无误后发送。
如果会话为空,fork 图标会隐藏。DSH 会在对话有历史记录后才显示头部操作按钮。
适用场景与注意¶
适合需要把当前对话的关键信息提取出来,在新会话中继续开发或梳理逻辑的场景。插件以当前 DSH 进程的权限运行,在安装前建议查看源码并确认许可证。
结尾¶
长对话的上下文管理是开发中常见的问题,Branchpoint 通过提取摘要并在新会话中分支,提供了一种实用的解决方案。
- 项目目录:https://www.skillhub.cn/plugins/TimRad1/dsh-plugin-branchpoint
- GitHub 仓库:https://github.com/TimRad1/dsh-plugin-branchpoint