前言¶
DeepSeek Harness (DSH) 的长会话容易触达上下文窗口上限,导致自动压缩卡顿或进度丢失。此插件通过结构化交接文档和主动剪枝,解决会话中断与上下文溢出问题。
安装¶
dsh plugin --profile web add github:snow-The/dsh-session-handoff
安装后需要重启 dsh web。
核心模块¶
会话交接¶
插件提供结构化的交接文档导出与恢复能力,支持在断点处无缝切换会话。
- 导出与恢复:handoff_export 将会话解析为 Markdown 文档,写入 <workspace>/.dsh-handoff/handoff-<session>.md,并生成可复用的交接包(支持 OpenViking/archify 增强时)。handoff_resume 用于在新会话中加载文档并继续工作。
- 状态查看:handoff_status 输出会话概览,包括回合数、消息、工具使用、检查点及上下文压力。
活跃上下文剪枝¶
使用官方压缩 API,在上下文窗口填满前主动压缩已消耗的历史,避免卡顿。
- 压力监控:acp_status 检查使用量、表面序列映射及限制(软/硬压力等级)。
- 手动压缩:acp_compress {start} {end} {summary} 将指定范围替换为摘要。
- 配置调整:acp_set_limit 主动设置新的软/硬限制,持久化至配置文件。默认软/硬限制为 60% / 70%。
- 辅助功能:acp_decompress(读取隐藏文本)、acp_search(搜索压缩历史)。
会话管理¶
对会话进行回收站、恢复或永久清除,防止数据丢失。
- 操作工具:session_list 列出会话;session_trash 归档并移动会话至回收站(可恢复);session_restore 恢复回收站会话;session_purge 永久删除会话及回收站条目。
- 垃圾箱持久化:回收站条目以 JSON 格式持久化在 $DSH_HOME/dsh-session-handoff-trash/ 下,保留最新的 10 个。
模型路由¶
支持跨供应商、跨计划切换同一模型 ID,解决单一模型 ID 在多供应商间的管理问题。
- 路由查看:model_routes 列出所有注册路由(供应商、baseURL、key family)。
- 路由切换:model_switch {route} 切换当前模型至指定路由。支持 --vision 选项使用视觉包装器。
Web 界面¶
插件内置手写 Web 客户端(无构建步骤),提供图形化管理。
- 模型路由面板:在设置页新增“模型路由 / Model Routes”面板,支持拖拽排序、删除、添加路由。
- 自动故障转移:当当前路由出现错误时,自动切换至优先级列表中的下一个路由,工作不中断。
- 交互控制:提供“交接导出”按钮和压缩阈值滑块(软/硬限制),支持一键填充默认值。
典型用法¶
在旧会话中:
handoff_export # 导出交接文档
在新会话中:
handoff_resume # 加载交接文档,继续工作
在长会话中:
acp_status # 检查压力
acp_compress {start} {end} {summary} # 剪枝已消耗的范围
acp_set_limit # 主动调整软/硬限制
切换供应商时:
model_routes # 查看路由
model_switch deepseek # 使用 Ark 路线
model_switch deepseek-official # 使用官方路线
model_switch deepseek --vision # 使用视觉包装器
注意事项¶
- 插件核心零依赖;内存与图表功能在检测到对应增强(如 OpenViking、archify)时自动启用。
- 主机路由逻辑与代理工具共享,不会偏离。
- Web 客户端无构建步骤。
- 垃圾箱条目作为 JSON 持久化在
$DSH_HOME/dsh-session-handoff-trash/下(保留最新的 10 个)。
结语¶
该插件旨在解决 DSH 开发中的记忆与上下文管理难题,适合需要长周期、多会话协作的开发场景。