dsh-hogwarts-loop:按角色分派子智能體,走 Plan → Build → Review → Commit 閉環

前言

在 DeepSeek Harness(DSH)裏做大塊工程,常見做法是主會話一條線扛到底:規劃、實現、審查、提交擠在同一條上下文裏,模型路由也難按環節拆開。社區插件 @dyikai/dsh-hogwarts-loop 把 hogwarts-loop 方法論打包進 DSH:每個「角色」對應一個受管 subagent,各自可在客戶端配置 provider / model;主會話通過 skill 或 hogwarts_dispatch 按檢查點推進,而不是把所有步驟綁死在同一模型上。

下面介紹它是什麼、裝好後怎麼觸發、以及如何確認子智能體真的按角色路由在跑。

這是什麼

dsh-hogwarts-loop 是維護者 dyikai 發佈的 DSH 工作流類插件(npm 包名 @dyikai/dsh-hogwarts-loop,當前資料中版本 1.0.6,許可證 MIT)。一句話定位:Plan → build → review → commit,以 skill + 單一調度工具的形式,把大工程拆成可獨立驗收的小檢查點(checkpoint)。

插件目錄頁:skillhub.cn/plugins/dyikai/dsh-hogwarts-loop。源碼與說明:github.com/dyikai/dsh-hogwarts-loop(GitHub 星標在資料中爲 1)。DSH 社區目錄是獨立站點,與 DeepSeek / 幻方無官方從屬關係;安裝前仍應自行閱讀源碼與許可證。

核心能力(與倉庫結構對應)

資料中的能力表可概括爲以下幾塊:

能力 形態 位置
閉環方法論與各角色職責 hogwarts-loop skill(也可 /hogwarts-loop 觸發) skill/SKILL.md、skill/references/*.md
審查記錄、批量校驗、收斂上限與評估說明 markdown 契約 + 合成/倉庫衍生用例 skill/references/review-contract.md、skill/references/evaluation.md、skill/assets/eval-*.md
在同一父會話內創建或延續某角色 subagent hogwarts_dispatch 工具 由 index.js 註冊
按角色編輯 provider / model / effort / 輸出上限等 Settings → Hogwarts Loop,以及插件行 Configure client.js(瀏覽器端)

調度語義(資料原文要點):

  • 一個父會話、每個角色最多一個子會話:檢查點與修復輪次共用同一 childId;改 description、完成 CP 或變爲 inactive 不會「換一個新的 Harry」。不同角色(例如 Harry 與 Severus)歷史互不混用。
  • 非阻塞:應等該角色回報後再派下一個 CP;對同一角色併發調用不會拉出並行 worker。
  • 綁定在插件重載、恢復同一父會話後仍保留;延續失敗不會靜默替換成新子會話。
  • cwd 僅創建時有效:後續調用若傳入非空 cwd 會被拒絕;省略則保留子會話已有工作目錄。
  • 返回結果區分 started 與 continued;創建時會報告當時配置的 provider/model,延續時會標識已有 child,而不是聲稱已套用剛改過的默認值。

方法論層面的附加約束(workflow,非運行時強制):

  • skill 要求 Harry 交付時附帶複雜度報告;滿足 ablation policy 時會做受控消融/替換實驗(資料稱爲 workflow gate;僅手動 dispatch、不走 skill 時會跳過檢查點/審查紀律)。
  • review contract 約定:先校驗 blocking 候選再修復、保留證據與 finding ID、獨立驗修復而非整段重審;修復/重審輪次與「僅證據批次」有單獨預算。
  • 工作規劃、進度與審查報告默認留在會話或任務級臨時存儲,不會默認寫入 Git 或 .gitignore 背後;只有明確批准、長期維護的路標/設計文檔才應持久化。

安裝與啓用

環境要求:Node.js ≥ 20,以及已配置的 DeepSeek Harness profile。無需 build;安裝或修改 client.js 後 需刷新頁面一次,瀏覽器端 settings 與插件行纔會完整加載。

方式一:Add plugin 嚮導

在 Add plugin 搜索框輸入 @dyikai/dsh-hogwarts-loop,點擊 Install。

方式二:dsh CLI

dsh plugin --profile web add @dyikai/dsh-hogwarts-loop
dsh web

卸載(資料中的 plugin_manager 形式)

plugin_manager -> { action: "remove_bundle", target: "@dyikai/dsh-hogwarts-loop" }

插件沒有「開始任務」按鈕:安裝後常駐,提供 hogwarts_dispatch 工具、hogwarts-loop skill 和 設置頁;是否進入閉環取決於你是否觸發 skill 或手動 dispatch。

典型用法

1、通過 skill 進入完整紀律

任選其一:

  1. 在當前會話輸入 /hogwarts-loop,將 skill 內容注入會話。
  2. 用自然語言說明意圖,例如:plan this milestone with the hogwarts loop, then implement, review and commit each checkpoint(skill 自帶描述,任務匹配時模型也可能自行加載)。

2、手動 dispatch(跳過 skill 的檢查點/審查紀律)

僅想直接派某個角色時,可明確要求使用 hogwarts_dispatch。資料示例:首次調用創建 Harry;CP1 通過後再次調用 延續 同一 Harry:

// First call creates Harry; after CP1 passes, the next call continues him.
hogwarts_dispatch({ role: "harry", description: "CP1 build", prompt: "<first brief>" })
hogwarts_dispatch({ role: "harry", description: "CP2 build", prompt: "<next brief>" })

3、如何確認「真的在工作」

資料給出三條可觀察信號:

  • 會話裏出現 hogwarts_dispatch 工具調用;
  • 對同一角色重複 dispatch 返回 相同 childId;
  • 子會話日誌裏 agentModel 與 config.model 等於該角色在設置裏配置的路由(例如 harry 在 deepseek-flash、severus 在 deepseek-v4-pro),而不是主會話模型。

配置角色 cast

主入口:Settings → Hogwarts Loop(側邊欄底部 settings section,order 60)。同一表單也可從 Plugins → Installed plugins → @dyikai/dsh-hogwarts-loop → hogwarts-loop 行 → Configure 進入。

每個 cast 成員一行:provider、model 下拉來自宿主模型目錄(remote.session.modelCatalog(),按 provider 分組);切換 provider 會把 model 切到該 provider 的第一項。Reasoning effort 來自當前 model 實際支持的檔位(留空則用模型默認);max output tokens 可留空。其下 Dispatch settings 包含 subagent backend 與 delegation depth cap(資料在此處截斷,保存行爲爲單次原子、帶 version fence 的 mutate)。

適用場景與注意

更適合: 希望把「規劃 → 實現 → 審查 → 提交」拆成帶檢查點的工作流,且 不同環節想用不同模型/推理檔位 的 DSH 用戶;願意遵循 skill 附帶的審查與 ablation 紀律時,用 /hogwarts-loop 或匹配描述觸發完整閉環。

務必注意:

  • 插件以 當前 dsh 進程權限 運行;安裝前請閱讀 倉庫源碼 與 MIT 許可證,自行評估風險。
  • 僅手動 hogwarts_dispatch 不會自動帶上 skill 裏的 checkpoint / review 約束;大里程碑仍建議走 skill 或明確口述同等紀律。
  • 全新的父會話會啓動新的 cast,並從 plan 重新 hydrate;不要假設跨會話自動繼承未持久化的執行報告。

結尾

@dyikai/dsh-hogwarts-loop 把 hogwarts-loop 從「寫在文檔裏的流程」變成 DSH 裏可安裝的 skill + 調度工具 + 客戶端設置頁:主會話保 orchestration,各角色 subagent 在可配置模型上獨立推進檢查點。若要瀏覽元信息與安裝入口,見 SkillHub 目錄頁;細節與中文 README 鏈見 GitHub 倉庫。

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

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

小夜