前言¶
在 DeepSeek Harness(DSH)里做长会话开发,常见两类问题:上下文涨到几十万 token 后,压缩往往要再让模型通读整段对话做摘要——越大会越贵、越容易失败,有时卡在「不压缩无法继续、压缩又装不下」;多智能体协作时,若指挥与执行边界不清,还会出现指挥官自己改代码、下游默认上游已做对等情况。
下面介绍社区插件 dsh-beta-battle-mode(维护者 godthrone,分类:工作流)。它是给 DSH 用的多智能体预设:指挥权集中、执行权下放,并把会话状态落到项目 Markdown 工作日志上,压缩时读日志重建上下文,而不是发起额外的摘要模型调用。
这是什么¶
dsh-beta-battle-mode 是 BETA 作战模式插件,一句话定位是:指挥官-led 的智能体集群(指挥官、执行者、审查者),上下文通过项目工作日志 compaction 重建,避免昂贵的 summarization 调用。
名字借自《Muv-Luv Alternative》里由 Hive 统一控制的 BETA 集群结构——这里强调的是指挥权集中、执行权下放,核心不是「多派几个 agent」,而是针对上下文爆炸和指挥官下场干活两件事做了约束设计。
- 目录页:https://www.skillhub.cn/plugins/godthrone/dsh-beta-battle-mode
- 源码与说明:https://github.com/godthrone/dsh-beta-battle-mode
- 当前 package 版本:0.1.0(MIT)
DSH 生态采用「一切皆插件」的思路;SkillHub 等社区目录是独立站点,与 DeepSeek / 幻方无官方从属关系。
它解决什么问题¶
普通长会话把状态堆在对话里,压缩依赖模型再读一遍再摘要。BETA 换思路:状态放在项目的 Markdown 文件里,压缩时直接读这些文件当新的上下文,不调用模型。
工作日志相关路径(相对项目):
.local/work_log_current.md 当前状态(每次会话必读)
.local/work_log_history.md 已归档的事件
.local/work_log_digest.md 历史要点(压缩前自动生成)
压缩时的上下文构成(概念上):
context = 系统提示词 + 工具 + [current 全文 + 历史要点 + 最近一轮对话] + 新一轮
↑ 一条 checkpoint 消息
结果是:压缩不发起任何模型请求,耗时与模型无关,也不会因为「摘要请求装不下」而失败;压缩后的上下文由工作日志和最近一轮对话重建。压缩质量取决于工作日志写得是否清楚——这是设计取舍。
三个角色与流水线¶
| 角色 | 职责 |
|---|---|
| 指挥官(Commander) | 执行 OODA 循环、设计工作包、派活、验收。不自己动手改代码 |
| 执行者(Executor) | 端到端完成一个工作包,交付前自查 |
| 审查者(Reviewer / 总参谋长) | 对照用户原始诉求做全局复核,是最后防线 |
采用串行流水线(执行 → 全局审查 → 修正循环),替代树形指挥,减少「下游都以为上游做对了」的风险。
核心组成部分¶
| 文件 | 作用 |
|---|---|
cordis.patch.yml |
预设定义:persona(387 行)+ 29 条插件声明(官方插件为主) |
lib/compaction-badge.js |
压缩引擎:读工作日志当 checkpoint,零模型调用 |
lib/goal-round-reminder.js |
goal 续轮时追加指挥官提醒 |
压缩流程概要:
指挥官一轮结束(空闲)
→ 到阈值?→ 发一轮"更新工作日志 + 写历史要点"
→ 那一轮结束 → 读三个文件压缩
全程不在轮次中间打断,也不会和下级通知抢时间。
package.json 中声明 engines.dsh 为 >=0.2.0(只有下界、没有上界)。插件运行时从当前 DSH 安装加载 @deepseek-ai/* 依赖,而非插件自己的 node_modules:DSH 升级后插件会跟着用新版本;若 API 不兼容,启动时会报明确错误,而不是静默半残。
安装与启用¶
安装命令以 README 为准:
# 从 npm(发布后)
dsh plugin --profile web add dsh-beta-battle-mode
# 或直接从 GitHub
dsh plugin --profile web add github:godthrone/dsh-beta-battle-mode
装完不会改变默认模式。新建会话时在模式选择里选「BETA作战模式」即可。
定制与适配¶
DSH 层叠顺序是 bundle 层 → 你的 profile patch 层。不要直接改包内文件,升级会丢失。应在 ~/.dsh/profiles/<你的profile>/cordis.patch.yml 里覆盖,例如改指挥官人格:
# 例:改指挥官人格
- insert:
- id: preset-beta-battle-mode
name: '@deepseek-ai/dsh-agent-preset'
config:
- id: persona
config:
text: |
……(你自己的指挥官提示词)
若 DSH 版本、模型、工具链与参考实现不一致,README 建议:开创造模式会话,读 node_modules/dsh-beta-battle-mode/cordis.patch.yml,按环境改一遍并写入 profile 层——官方插件主要是引用加少量配置覆盖,适配由用户侧完成。
已知边界与适用注意¶
- 没有 plan 模式(指挥官做决策不需要审批门)。
- 没有
ask_user_question/ 图表渲染(刻意保持窄口径)。 - 不依赖任何特定技能:persona 自带一组最小工程原则;若有自己的开发规范技能或
CONTRIBUTING.md,会优先读并遵守。
插件以当前 dsh 进程的权限运行。安装前应自行查看 GitHub 源码与 MIT 许可证,确认符合你的安全与合规要求。
语义化版本说明(插件自身版本,不追 DSH 版本号):0.1.x 为参考实现(checkpoint 结构可能调整);0.2.x 表示行为变更(例如压缩触发时机)。
结尾¶
dsh-beta-battle-mode 把多智能体协作收成「指挥官调度 + 执行/审查流水线」,并用项目工作日志做无模型调用的上下文 compaction,适合在 DSH 里做长周期、多步骤工程任务且希望控制压缩成本与失败模式的开发者。
- 目录:https://www.skillhub.cn/plugins/godthrone/dsh-beta-battle-mode
- GitHub:https://github.com/godthrone/dsh-beta-battle-mode