前言¶
DSH 的理念是「一切皆插件」,但多 Agent 協作這件事,原生沒有現成的協調層。通常的做法是自己開幾個子會話,靠人去盯每個會話的輸出、再手動彙總到項目記錄裏。時間一長,誰做了什麼、下一步是什麼、哪些結論可以複用,都散落在對話裏。
moa-plus 把這件事收斂成一個插件:在主會話裏放一個常駐的 Coordinator,由它派工給 Workers、跟進進度、審閱結果、維護項目知識。插件名在 GitHub 上寫作 “MoA+ — Make agents work better together. Persistent Coordinator, reusable Workers and shared context for DeepSeek Harness. Unofficial rc.3 preview.”,倉庫內的 README 標題則是 “Project Mode for DeepSeek Harness”,兩者是同一個項目。
維護者是 Burns1028,分類爲工作流。下面介紹它的能力、安裝方式和使用流程。
定位與維護情況¶
倉庫地址 https://github.com/Burns1028/moa-plus,目錄頁 https://www.skillhub.cn/plugins/Burns1028/moa-plus。倉庫描述爲非官方開發預覽,當前標記版本 v0.1.23,許可證 MIT,主要語言 JavaScript,GitHub 星標 5。
插件的前提是 DSH 0.2.1-rc.3 加上倉庫內列出的三個兼容擴展:
- Agent 本地的
tools.suppress({ deny }),含該 Agent 上註冊的工具,可逆銷燬。 - 按會話的
conversation.submission.register(sessionId, "steer"),不改動全局偏好。 sidebar.workspaces.session.branch,用於原生父子行渲染,不替換工作區瀏覽器。
原版 rc.3 不能直接啓用插件,這三個擴展是本地兼容補丁,不代表上游已接受。補丁文件與改動前後的 SHA-256 記錄在 compat/rc3/manifest.json。
核心能力¶
官方能力表列出六項:
| 能力 | 說明 |
|---|---|
| 持續協調 | 同一個 Coordinator 會話持有項目的工作記錄和下一步。 |
| 完整的 Worker 控制 | 派生或複用 Worker、引導當前工作、排隊下發後續指令、查看狀態與歷史、打斷或刪除。 |
| 共享項目知識 | Coordinator 與 Workers 共同維護索引,按需漸進加載上下文。 |
| 自動返回結果 | Worker 每輪結束後自動返回完整的最終 AI 消息,交給 Coordinator 審閱。 |
| 用戶直接參與 | 可以打開某個 Worker,自己引導它,再回到 Coordinator。 |
| DSH 原生執行 | Session、Agent Loop、工具、權限、消息投遞和 Stop 都由 DSH 承擔。 |
涉及到的分工邊界:用戶負責提出目標、做決定、與 Coordinator 溝通;Coordinator 負責選擇和引導 Workers、供給上下文、審閱結果、維護工作記錄、整理共享知識,澄清和彙總這類小事也可以由它自己完成;Worker 負責把分配的調查或執行做到底,補充可複用的發現,並以一條自包含的最終 AI 消息返回。
工具層面,Coordinator 通過 control_workers 提供 spawn、list、get、send、history、interrupt 和 delete;其中 send 區分引導當前工作的 steer 和留到當前 turn 結束後處理的 queue。
項目記憶的落盤方式¶
項目記錄寫在 .dsh/project-mode/<project-id>/ 下:
.dsh/project-mode/<project-id>/
├── notes.md 待辦、分工、進度、阻塞和下一步
├── archived.md 完成或告一段落的工作及其結果
└── context/
├── context.md 共享索引:文件路徑和簡短介紹
├── decisions.md 可複用的決定與依據,按需創建
└── ... 其他可複用的項目知識
notes.md 和 archived.md 由 Coordinator 維護。上下文是雙方共同維護的:Agent 先讀 context/context.md,再按當前任務讀取具體文件;Workers 負責補充有複用價值的發現並更新索引,Coordinator 負責整理、合併、清理過時或重複內容。這些文件隨項目積累,採用漸進式加載,不會在每次請求裏全量展開。
安裝與啓用¶
首次試用推薦走獨立的兼容 DSH Web 環境。需要 Node 24.9+、npm 和 Git:
git clone --branch v0.1.23 https://github.com/Burns1028/dsh-plugin-project-mode.git
cd dsh-plugin-project-mode
node scripts/project-mode.mjs setup
node scripts/project-mode.mjs start
這套命令對應倉庫 README 的快速開始章節,克隆地址在 README 中即指向 dsh-plugin-project-mode,與當前倉庫名 moa-plus 不一致,按原文保留,安裝前建議先確認。setup 會安裝鎖定版本的 rc.3 運行時,並且只在 ~/.dsh-project-mode/rc3 內應用那三個擴展;不使用日常的 Desktop 應用、~/.dsh、全局 Agent 配置和工作區。啓動後本地打開原生 Web 界面,配置模型、新建會話,在發送第一條消息之前把會話選爲 Project。
準備完成後可以用診斷命令檢查:
node scripts/project-mode.mjs doctor
如果環境已經是準備好的兼容 Desktop 或運行時,也可以走原生 CLI 安裝:
dsh plugin --profile desktop add "git+https://github.com/Burns1028/dsh-plugin-project-mode.git#v0.1.23"
README 同時寫明:setup 是顯式執行的腳本,不是 npm 安裝鉤子,也不會修改已有的 Desktop 應用。手工方式打補丁時,需要顯式指定備份目錄:
node scripts/apply-native-compat.mjs --dry-run
node scripts/apply-native-compat.mjs --backup /absolute/path/to/native-backup
補丁腳本會拒絕未知版本、未知字節和混合狀態,變更前做預檢,要求顯式備份,失敗時回滾。沒有安裝或準備類的生命週期鉤子,DSH 更新後需要重新做兼容性審查,不要把 rc.3 補丁盲目套到其他版本上。
典型用法¶
在 DSH 裏完整走一遍協作流程,按 README 的使用指南:
- 把目標交給 Coordinator,它查看 Workers 狀態和相關項目記憶,其中也包含用戶在子會話裏的直接操作。
- 它判斷複用已有 Worker 還是派生新的,下發目標和上下文,然後更新
notes.md。 - 工作變化時,用 steer 引導當前工作,用 queue 把指令留到當前 turn 之後;打斷和刪除是另外的操作。
- Worker 每輪結束時返回最後一條完整 AI 消息;沒有 AI 消息的輪次,也會報告 Worker 身份、輪次和結果狀態,並返回空的 AI 結果。
- Coordinator 審閱結果後繼續下發工作或收尾,更新工作記錄和可複用上下文。正常情況下相關工作和結果接收完成後,在同一個原生 Coordinator turn 內收口。
界面側的操作:在原生工作區側欄展開 Coordinator 可以看到它的 Workers;點擊主會話裏的 Worker 膠囊進入子會話,輸入框裏有返回 Coordinator 的 Back,沿用原生派生權限,沒有獨立的權限選擇器。右側默認同時打開 Workers 和 notes.md 兩個標籤,Workers 標籤按時間倒序展示每輪的原始輸入、最終 AI 輸出和記錄的產物,正文默認最多顯示兩行,點擊可展開完整 Markdown;兩個標籤都可以關閉。Stop 保持可用,不會自動停住所有 Workers。
README 另附了一個可復現的 CLI 示例任務:Exporter 實現標題排序並補測試,Docs 維護使用說明,Coordinator 審閱兩邊結果;用戶進入 Exporter 會話更改排序要求後,由 Coordinator 接回變化,下一輪複用同樣的 Workers 和共享上下文。文檔稱該示例最終通過了 9 項真實測試,等待過程經過剪輯並做了標註,不構成「60 秒完成」的表述。
適用場景與注意¶
適合想把一箇中等規模項目的多 Agent 協作固定下來的人:用一個常駐協調者管派工、跟進、記錄和知識沉澱,而不是每次都手動開子會話再人工彙總。也適合想在自己的 DSH 環境上驗證多 Agent 協調模型、能接受預覽版狀態的開發者。
幾個前提需要一併接受:
- 插件以當前 DSH 進程的權限運行。Worker 的派生沿用 DSH 原生派生權限,憑據與工具權限範圍與宿主進程一致,安裝前請先審閱源碼與許可證(MIT)以及
compat/rc3/下的補丁清單,確認自己能接受運行時被改動。 - 它是非官方的開發者預覽版,只面向 DSH 0.2.1-rc.3,依賴本倉庫內的三個本地兼容擴展;原版 rc.3 無法直接啓用,DSH 一旦升級,插件兼容性需要重新確認。
- 分工由模型判斷,預覽版不保證每次都作出理想選擇,也不會用任務關鍵詞、命令次數或時間閾值強迫派發。
- 用法和產物(
notes.md、archived.md、context/裏的索引)是項目內約定,團隊使用前要先把這套記錄格式對齊。 - 生態背景:目錄站是獨立的社區站點,與 DeepSeek / 幻方沒有官方從屬關係,這個插件也不是官方應用。
結尾¶
這個插件的價值在於把多 Agent 項目裏分散的協調工作收斂到一個常駐的 Coordinator 上,配上 Worker 控制、共享上下文和落盤的項目記憶,讓「一個項目、一支持續工作的團隊」成立。若只是想先試效果,按上面的獨立 Web 環境流程走一遍 setup + start 成本最低。
目錄頁:https://www.skillhub.cn/plugins/Burns1028/moa-plus
倉庫:https://github.com/Burns1028/moa-plus