dsh-plan-mode-plus:为 DeepSeek Harness 补齐 ZCode 式计划模式

前言

在 DeepSeek Harness(dsh)里做复杂任务时,官方 @deepseek-ai/dsh-plan-mode 已经提供计划模式的状态机、/plan 命令和 exit_plan_mode 评审流,但进入方式主要靠用户或文本引导,写类工具在计划阶段仍依赖模型自律。若你熟悉 ZCode 开源实现里的「模型主动进计划 + 硬只读拦截 + 四阶段工作流」,会希望 dsh 侧也有同类增量而不替换官方部件。下面介绍社区插件 dsh-plan-mode-plus(维护者 shuxidemosheng),它在官方 plan 投影之上做三件事,并保留官方退出与 UI。

这是什么

dsh-plan-mode-plus 是 DSH 生态中的工作流类插件,目录页:skillhub.cn/plugins/shuxidemosheng/dsh-plan-mode-plus,源码:github.com/shuxidemosheng/dsh-plan-mode-plus。定位一句话:基于官方 plan-mode 状态机(plan/mode 事件 + plan 投影),把计划模式补齐到 ZCode 形态——新增 enter_plan_mode 工具、计划期间的硬拦截、以及四阶段工作流提示词节;退出仍走官方 exit_plan_mode,/plan / /plan off 与 composer 蓝色 Plan chip 不变。

核心功能

1. enter_plan_mode 工具

模型在判断任务非平凡时可无参数、立即请求进入计划模式,对应 ZCode 的 EnterPlanMode。本插件跟 ZCode 实现对齐:进入无需用户审批(可逆,/plan off 即可退出),并在当前步骤立即追加官方词汇表内的 plan/mode 事件,而非排队到下一步。

2. 硬拦截(只读强制)

计划模式活跃时,配置在 denyTools 中的写类工具在分发前被 ctx.tools.guard() 直接拒绝;拒绝文案与 ZCode 一致:

Plan mode only allows read-only, non-destructive tools

默认 deny 列表对齐 ZCode 破坏性工具命名:bash、pwsh、write、edit、str_replace_editor。将 enforce 设为 false 可回到官方「纯引导」行为,仅保留工具与提示词节。

放行侧对齐 ZCode 只读分类:read / read_image / glob / grep、web_search / web_fetch、todo_write、ask_user_question、skill、present、goal 系列、subagent、send_message / interrupt_agent,以及全部 MCP 工具。更严部署可把 subagent、subagent_fork 加入 denyTools,避免子代理代写。

3. 四阶段工作流提示词

仅在计划模式活跃时渲染 plan:workflow-plus 节:探索 → 设计 → 评审 → exit_plan_mode,机制与官方 plan:policy 相同(条件化 system prompt section,非活跃返回空串)。

4. 客户端「计划模式」胶囊按钮(web)

会话标题栏增加胶囊:未开启时点击执行 /plan 进入;开启时高亮,点击执行 /plan off 退出;切换排队期显示「生效中…」。与官方 Plan chip 分工:chip 负责活跃指示与退出,该按钮补一键进入。

与官方 plan-mode 的关系

  • 状态机完全复用官方:不追加新事件类型;plan 投影 active=true 后,官方 plan:policy、/plan off、exit_plan_mode、UI chip 同步生效。
  • 读状态:sessionProjections.stateOf(session, 'plan');本插件不触碰 planMode 服务实例,依赖全局投影与会话日志,host 平面注册对所有会话生效。
  • 未挂官方 plan-mode 的 preset(如部分 headless):stateOf 为 undefined 时,工具、guard 与提示词节自动失活,不会导致会话创建失败。

安装与启用

插件以当前 dsh 进程权限运行;安装前请自行审阅源码与 MIT 许可证。社区目录 SkillHub 与 DeepSeek / 幻方无官方从属关系,安装命令以仓库 README 为准。

桌面版(Git Bash,先完全退出 DeepSeek Harness 主程序):

ELECTRON_RUN_AS_NODE=1 "/d/DeepSeek Harness/DeepSeek Harness.exe" \
  --expose-internals \
  "D:/DeepSeek Harness/resources/app.asar/dsh/node_modules/@deepseek-ai/dsh-desktop-host/lib/cli.js" \
  plugin --profile desktop add dsh-plan-mode-plus

add 后也可跟本地 tgz(file:D:/.../dsh-plan-mode-plus-x.y.z.tgz)或 Git 仓库地址。安装完成后重启主程序。

配置

默认配置随插件 bundle 的 cordis.patch.yml 的 insert 行注入;可在 profile 层 ~/.dsh/profiles/<name>/cordis.patch.yml 用同名 id 覆盖,或直接改 bundle 行。未知配置键启动时报错。

- insert:
    - id: plan-mode-plus
      name: dsh-plan-mode-plus
      config:
        enforce: true          # false = 只留工具与提示词节,不做硬拦截
        denyTools:
          - bash
          - pwsh
          - write
          - edit
          - str_replace_editor

典型用法

  1. 安装并重启 dsh 后,在支持官方 plan-mode 的会话中,模型可在复杂任务开始时调用 enter_plan_mode(无参数)。
  2. 进入后尝试调用 bash、write 等 deny 工具应被 guard 拒绝,并返回上述 ZCode 原文案;只读类工具与 MCP 仍可用。
  3. 系统提示中会呈现四阶段工作流;规划完成后仍用官方 exit_plan_mode 走 Approve / Keep planning 评审 UI。
  4. Web 客户端除官方 Plan chip 外,可用标题栏胶囊一键 /plan 进入或 /plan off 退出。

仓库 已验证 场景包括:headless(plugtest)端到端(进入、拦截、四阶段标题被引用);web(plugweb)标题栏按钮与 chip 随投影同步。

适用场景与注意

适合:希望在 dsh 里接近 ZCode 计划纪律的团队或个人——模型可主动进计划、写操作在计划期被硬挡、工作流提示与官方 policy 并存。

注意:

  • peerDependencies 锁定 @deepseek-ai/* 0.2.0-rc.2(开发者预览);升级宿主后需同步验证插件。
  • 构建要求 Node ≥ 24;若自行从源码构建:pnpm install / npm install,npm run build,npm pack。
  • enforce: false 时行为接近官方「Guidance, not enforcement」;硬拦截是插件主动加强,发生在分发前,不改工具目录。
  • 子代理会话独立:enter_plan_mode 只影响该子代理会话,不波及父会话(与 ZCode 从子代理工具面剔除计划工具的设计不同,属有意偏离)。

结尾

dsh-plan-mode-plus 在不动官方 plan-mode 退出与 UI 的前提下,补上模型发起的进入、计划期硬只读和四阶段工作流,适合把 dsh 计划模式对齐到 ZCode 参考实现的使用者。详情与安装说明见 SkillHub 目录页 与 GitHub 仓库。

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

Xiaoye