前言¶
在使用 DeepSeek Harness(DSH)进行长会话开发时,上下文膨胀是一个常见问题。随着历史记录堆积,token 消耗增加,模型推理速度变慢,且可能丢失细节。传统的手动压缩操作会丢失关键信息。此外,主模型承担了过多的执行负担,许多适合更廉价模型的任务也被主模型处理。
dsh-switchman 旨在解决这些问题。它是一个 DSH 插件,将主模型从执行转变为调度。它实时测量上下文水印,将任务分发到合适的调度池,并管理智能体团队。这不是一个新的模型,而是一套挂载在 DSH 上的调度策略。
插件概述¶
dsh-switchman 是 DeepSeek Harness(DSH)的一个插件,提供上下文水印控制、调度池管理和智能体团队管理,支持自主编码工作流。该插件由 mrzturn 维护,采用 MIT 许可证。
核心功能¶
1. 上下文水印控制¶
插件通过三个阈值监控会话 token 数量,防止上下文无限膨胀:
- 50k tokens:软阈值,提示模型可能需要委托任务。
- 90k tokens:硬阈值,限制单次读取预算,引导会话结束。
- 130k tokens:强制截断阈值,自动 fork 会话、压缩上下文并唤醒备份会话继续任务。后台子代理的 ID、任务和报告路径会写入交接文档,确保不丢失状态。
用户可以通过以下命令手动干预:
- /ctx-pause:暂停水印动作,但继续测量。
- /ctx-resume:恢复水印动作。
- /ctx-handover:立即触发会话交接,无需等待阈值到达。
2. 六个调度池¶
插件定义了六个调度池,每个池对应不同的任务类型。用户可以在设置页面配置每个池的模型优先级和等级(S/A/B/C)。
- 经济池:处理小型批量任务。
- 机械池:处理模板重写。
- 主模型池:日常编码任务。
- 困难池:处理困难推理和大重构。
- 视觉池:处理图像任务。
- 审查池:独立验证。
调度模式包括关闭、建议和强制模式。在强制模式下,超出池定义的模型会被拒绝。
3. 智能体团队模式¶
默认为轻量级子代理调度。开启“智能体团队”后,会启用团队策略(默认委托、分层验证、共享任务板)。
- 分层验证:超过 20 行的变更由测试者检查;超过 300 行或涉及核心/安全/数据一致性的变更,会额外提交给独立审查者。
- 共享任务板:主模型可以通过 team_task_* 命令将任务发布到共享任务板。
- 模型白名单同步:开启此选项后,插件会将所有调度池的模型合并写入 DSH 的子代理模型白名单,作为单一事实来源。
4. 语言偏好与界面¶
- 语言偏好:支持全局或项目级配置回复、注释和文档的语言。
- 界面本地化:支持多语言界面,无需额外下载。在设置页面的“界面”部分选择语言,或保持“自动”跟随 DSH 应用语言。
5. 内置技能¶
插件预置了三个技能:
- db-query:只读 MySQL/Redis 验证,用于数据对账和缓存检查。
- git-commit-message:生成规范的提交信息。
- requirement-docs:生成需求分析、PRD 和设计文档的标准输出。
安装与依赖¶
安装前请确保环境满足要求:
- Node.js >= 24
- DSH >= 0.2.0-rc.0
使用以下命令安装:
plugin_manager: install_bundle target=dsh-switchman
典型用法¶
安装后,主模型会根据上下文水印和调度池推荐进行任务分发。用户可以:
1. 在设置页面配置调度池的模型优先级。
2. 使用 /ctx-pause 或 /ctx-resume 控制水印行为。
3. 使用 /vision 命令让视觉池模型处理图片(例如:/vision what's wrong with this image)。
注意事项¶
- 插件依赖
@deepseek-ai/schemastery。 - 智能体团队模式需要用户手动在设置页面开启。
- 插件以当前 DSH 进程权限运行,安装前建议检查源码和许可证。
总结¶
dsh-switchman 通过上下文水印和精细化的调度池管理,帮助开发者控制长会话的 token 消耗,并将适合的任务分流给更合适的模型。配合智能体团队和分层验证机制,它能为自主编码工作流提供更稳定的基础设施。