前言¶
在 DeepSeek Harness(DSH)的使用过程中,随着会话变长,上下文窗口逐渐被填满,模型处理速度会变慢,且容易丢失关键信息。手动复制粘贴历史记录到新会话既繁琐,又容易破坏工作流。dsh-session-handoff 插件旨在解决这个问题:它通过一条命令,将当前会话的内容总结并移交到一个全新的会话中,同时保持原会话不变。
插件介绍¶
dsh-session-handoff 是一个 DSH 插件,用于将长会话平滑交接给一个新的会话。
- 维护者:WeiYe6
- 许可证:MIT
- 核心价值:在同一个 workspace 中创建一个干净的新 session + agent,通过 LLM 生成结构化摘要,并自动打开新会话。
核心功能¶
该插件主要提供以下能力:
- 单命令操作:输入
/handoff即可触发,支持指定摘要的消息数量或使用all获取全部历史。 - 干净的交接:新会话继承原 workspace、模型路由和 agent preset(包含 system prompt、tools、skills),但不复制旧的历史上下文,避免上下文膨胀。
- 结构化摘要:生成的交接文档包含明确的分类,包括任务目标、当前进度、关键决策、涉及文件、下一步和遗留问题。
- 自动打开:客户端会等待新会话就绪并自动导航过去。每个子会话只会自动打开一次,不会重复跳转。
- 鲁棒性设计:摘要默认关闭思考(fast/cheap),超大输入截取最新消息而非报错,并将结束原因转换为可操作的错误信息。
- 零核心改动:仅需一行
dsh.bundle.patch,仅依赖公开服务。
安装与启用¶
安装需要先获取包文件,然后通过 DSH 命令行安装。
- 获取插件包(例如
dsh-session-handoff-0.2.1.tgz)。 - 使用 DSH 命令将其添加到 web profile:
dsh plugin --profile web add ./dsh-session-handoff-0.2.1.tgz
- 重启 DSH 并验证。在 web 模式下查看配置,应能看到
dsh-session-handoff相关的挂载项。
使用示例¶
在任意会话的输入框中输入以下命令:
/handoff:默认总结最近 8 条用户消息。/handoff 20:总结最近 20 条用户消息。/handoff all:总结所有用户消息。
执行后,界面会显示“summarizing…”,随后新会话会自动打开,第一条消息即为生成的结构化交接文档。
配置说明¶
可以在配置文件中调整摘要的行为。默认配置如下:
- id: handoff
name: dsh-session-handoff
config:
turns: 8 # 抽取的用户消息轮数 (1-50)
maxInputChars: 24000 # 摘要输入的字节上限(超出则丢弃旧消息)
maxTokens: 2000 # 摘要输出的 token 预算
reasoningEffort: off # 思考模式:off (默认,快速/便宜) | high | max | inherit
timeoutMs: 120000 # 摘要调用超时时间
# provider: deepseek-official # 可选:固定模型路由
# model: deepseek-v4-flash # 必须与 provider 配对
如果不配置 provider 和 model,系统将使用当前会话的模型路由。
注意事项¶
- 隐私:为了生成摘要,最近会话的文本(包括用户和助手消息)会被发送到配置的模型进行处理。
- 版本兼容性:支持 DSH
0.1.0-rc.5到rc.8以及0.1.1-rc.2。DSH0.1.2-alpha.1因架构变更被排除,不支持。 - 存储位置:交接文档仅存在于会话内存中,不会写入磁盘(
HANDOFF.md是未来的增强功能)。
结语¶
dsh-session-handoff 解决了 DSH 开发中上下文管理的痛点。通过自动化会话交接,开发者可以保持会话的整洁与高效。更多细节与源码,可参考社区目录或GitHub 仓库。