前言¶
在 DSH 智能体开发里,会话通常是上下文边界。会话变长后,继续聊容易把无关内容越堆越多;换一个新会话又可能丢掉已经建立的上下文。dsh-session-fork 把会话 fork 变成类 git 的 branch refs:fork 出来的会话成为可管理的分支,分支上的新增 turns 也可以再合并回主线。
这是什么¶
dsh-session-fork 是一个 DeepSeek Harness(dsh)插件,描述为:
dsh plugin: git-like conversation forking (branch refs on sessions)
它不能独立运行,需要安装到 dsh 中使用。已核实资料给出的仓库地址为:
https://github.com/Jason-skd/dsh-session-fork
许可证为 MIT。当前资料未额外给出作者字段;仓库地址中的账号为 Jason-skd。
核心功能¶
下面介绍三类已核实能力:
- 接管原生 fork:官方 dsh fork action 被接管,因此每次 fork 都会成为 managed branch。
- 分支间操作:可以把某个分支独有的 turns 和 conclusions squash 回 main 分支或其他分支。
- 分支可视化:使用 vendored VS Code Source Control Graph,提供类似 VS Code 的分支查看体验。
安装与启用¶
安装要求一个基于 web-app 的 dsh profile。命令如下:
dsh plugin --profile web add dsh-session-fork
安装后,可以在任意 session 中使用分支命令,也可以切到 branch tab,通过图形界面执行相同操作。
package.json 中列出了若干 peerDependencies,并标记为 optional。启用前可以结合 dsh profile 环境确认这些可选依赖是否已经存在。
典型用法¶
下面的示例来自已提供的用法示例:
- 先把当前 session 命名为
main分支:
/branch adopt main # name the current session as branch 'main'
- 在最后一个已完成 turn 处 fork 出
review分支:
/branch review # fork a 'review' branch at the last completed turn
- 在
review分支上,把新增 turns 压缩回main:
/squash into main # (on 'review') compress the new turns back into main
执行完上面几步后,也可以切到 branch tab,用图形界面查看分支并做同类操作。
适用场景与注意¶
适合在 DSH 中做长会话管理、希望把一条会话拆成多个分支、并在保留主线上下文的同时把分支结论合并回来的使用者。
使用前注意:
- 这是 DSH 插件,不能脱离 dsh 独立运行。
- 安装命令要求 web-app-based dsh profile。
- 插件会随当前 dsh 进程运行,安装前应检查源码、许可证,以及
package.json中的可选 peerDependencies。 - 当前已核实资料未给出 star 数、分类等字段;目录页是社区插件目录,不应写成官方应用商店。
相关链接¶
目录页:
https://www.skillhub.cn/plugins/Jason-skd/dsh-session-fork
GitHub:
https://github.com/Jason-skd/dsh-session-fork