前言¶
智能体在处理复杂任务时,常常需要在“探索信息”“规划步骤”和“执行落地”之间反复切换。omo(oh-my-openagent)提出了 explore → plan → execute 的三段式工作流,但它的实现与 DeepSeek Harness 的架构差异较大,直接移植会破坏 Host 的运行时契约。
dsh-ulw-plan 把 omo 的这套流程封装为一个 DeepSeek Harness 插件,保留了探索、规划与执行的核心能力,同时适配 DSH 的插件机制、工具面与 guard 逻辑。
这是什么¶
dsh-ulw-plan 是一个工作流插件,为 DSH 提供 omo 的 explore → plan → execute 流程。插件把 omo 的规划、评审与执行能力映射到 DSH 的指令、只读助手与产物目录中,并提供一个 plan-mode 的写入门禁,避免在规划阶段误改产品文件。
维护者为 beiyanpiki。插件采用零依赖、零构建的 ESM bundle,通过 cordis.patch.yml 挂载到 Host 平面。
核心功能¶
插件提供两个指令和四个只读助手,以及一套产物目录与 guard 机制。
两个指令¶
/ulw-plan <请求>:进入 plan 模式,助手进行只读探索,产出 decision-complete 的 plan。产物写入.dsh/ulw/下的 drafts 与 plans。/ulw-execute [plan-name]:进入 execute 模式,按 plan 的 checkbox 派发实现者(task(category="…")),用 Boulder / ledger 记录状态。
四个只读助手¶
| 助手 | 用途 | 工具面 |
|---|---|---|
explore |
代码库定位、调用点、结构 | 只读:read / glob / grep + bash |
librarian |
外部文档、远程仓库、官方链接 | 上述 + web_search / web_fetch |
plan-consultant(别名 metis) |
规划前咨询:隐藏意图、歧义、AI 失败点 | 只读 |
plan-reviewer(别名 momus / oracle) |
严格 plan 评审:只找 blocker | 只读 |
四个助手以 preset 形式注册在 Web 的预设选择器里,名字前缀 omo。它们没有 write / edit 工具,只读是工具面事实。
产物目录¶
.dsh/ulw/drafts/<slug>.md.dsh/ulw/plans/<slug>.md.dsh/ulw/boulder.json.dsh/ulw/ulw-execute/ledger.jsonl
路径与 omo 的 .omo/ 同构,只做了目录改名。
plan-mode 写入门禁¶
规划期(mode = plan)拒绝 write / edit 写入产品文件,只放行 .dsh/ulw/ 产物;产品文件写入会被 guard 拒绝,并提示退出方式。
显式模式切换¶
/ulw-mode off|plan|execute 是 omo 没有的逃生口,可以显式切换本会话的 ulw 模式。Web 输入 / 也能看到 /ulw-plan 与 /ulw-execute 的菜单项。
安装与启用¶
插件是零依赖、零构建的 ESM bundle,通过 npm 分发。
从 npm 安装¶
在 Web GUI 的 Plugins 页安装 dsh-ulw-plan,或通过 Host 的 plugin_manager:
plugin_manager { "action": "install_bundle", "target": "dsh-ulw-plan" }
plugin_manager { "action": "set_bundle", "target": "dsh-ulw-plan", enabled: true }
也可以从 tarball、GitHub 或本地目录安装:把 target 换成 /绝对路径/dsh-ulw-plan-0.1.0.tgz、github:<owner>/dsh-ulw-plan#<ref> 或(开发时)本仓库的检出目录。
安装后,profile 的 package.json 会把 dsh-ulw-plan 放进 dsh.profile.bundles,cordis.patch.yml 的 insert 行把 dsh-ulw-plan 挂到 Host 平面。不要手动修改 profile 的 package.json / cordis.patch.yml,也不要在 profile 目录跑 pnpm。
完整发布流程见 docs/publishing.md。
典型用法¶
进入 plan 模式¶
在一个普通会话里键入 /ulw-plan,技能正文被注入,会话进入 plan 模式。首行必须出现 ULW-PLAN MODE ENABLED!。助手只做只读探索(explore / librarian,以及规划期的 plan-consultant / plan-reviewer),产物只写 .dsh/ulw/。
进入 execute 模式¶
键入 /ulw-execute [plan-name],技能正文被注入,会话进入 execute 模式。系统按 plan 的 checkbox 派发实现者(task(category="…")),并用 Boulder / ledger 记录状态。
显式切换模式¶
在任意会话中键入 /ulw-mode off|plan|execute 可以显式切换 ulw 模式。也可以直接敲 /ulw-plan 或 /ulw-execute 自然进入对应模式。
安装后检查清单¶
安装完成后,可以通过以下命令确认插件已正确挂载:
dsh --profile web --dump-config | grep dsh-ulw-plan—— 至少一行。cordis_inspect_query Config.listConfigs name=dsh-ulw-plan—— 出现该行且为 active。cordis_inspect_query Tool.listTools—— 含task。skills/list—— 含ulw-plan、ulw-execute,且invocation.userInvocable === true。agentPresets.list()—— 含四个omo前缀 preset,均无broken字段。- Web 输入
/—— 菜单里能看到/ulw-plan与/ulw-execute。
与 omo 的差异¶
插件与 omo 的行为差异在 docs/fidelity.md 中有完整清单,要点如下:
task一律内联;不实现后台投递。- 没有
task_output/task_send/task_cancel;用 DSH 的send_message/interrupt_agent/ 结算通知。 - 没有 continuation hook;用
create_goal承担续跑。 category不选模型。- plan-gate 的“本会话触碰过 plan”简化为“mode=plan 且产物存在”。
- 新增
/ulw-mode。 - guard 不管
bash(与 omo 的 prometheus-md-only 一致,否则scaffold-plan.mjs无法产出文件)。 - 模型用
skill工具自行加载ulw-plan不会切换模式;进入 plan 模式请用/ulw-plan或/ulw-mode plan。
适用场景与注意¶
适合需要结构化规划与执行落地的 DSH 用户,尤其是希望复用 omo 工作流但又希望在 DSH 平台上运行的场景。
插件以当前 dsh 进程权限运行,安装前建议检查源码与许可证。不要手动修改 profile 的配置文件或目录。
结尾¶
dsh-ulw-plan 把 omo 的 explore → plan → execute 工作流适配到 DeepSeek Harness,提供了一套可落地的规划与执行机制。如果你在 DSH 上需要更清晰的任务拆解与执行记录,可以尝试这个插件。
目录页:https://www.skillhub.cn/plugins/beiyanpiki/dsh-ulw-plan
GitHub:https://github.com/beiyanpiki/dsh-ulw-plan