前言¶
智能體在處理複雜任務時,常常需要在“探索信息”“規劃步驟”和“執行落地”之間反覆切換。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