前言¶
在 DeepSeek Harness 裏跑多成員 agent team 時,任務認領、缺陷臺賬、goal 輪次和「現在該人介入什麼」往往分散在不同服務與日誌裏。模型側工具能改狀態,但 GUI 若只展示佔位數字,讀不到的來源還會顯示 0,容易誤判團隊是否在推進。dsh-team-progress 是社區維護的客戶端插件,把上述信息收成會話內一個 Team progress 標籤頁,數字來自可覈對的 durable state;讀不到的數據則顯示 unavailable 及原因,而不是假零。
這是什麼¶
插件全名 dsh-team-progress,維護者爲 ucfjoe,在 SkillHub 插件目錄 中歸類爲客戶端。當前 package 版本爲 0.6.0(MIT)。它不改變 DSH 核心調度邏輯,而是在 host 側註冊一條 loopback JSON 路由,在 web 客戶端註冊面板,約每 5 秒拉取一次狀態並渲染四個視圖加優先展示的待辦動作列表。
核心功能¶
下面介紹面板裏每一塊對應什麼、數據從哪來。
四個視圖與「先做決策」的動作區¶
README 中的面板示意把 STALLED / BLOCKED 放在最前:stall 是唯一明確需要人做決定的態。其餘三塊依次爲:
- MEMBERS — 每個成員一行:live status、認領的共享 task、該 task 的狀態;未認領則顯示
no claimed task。 - DEFECTS — 按狀態統計已配置的 defect log,並列出仍 open 的行;識別
open/in flight/fixed/closed as superseded,其餘計入other並在 UI 中顯示爲unclassified。 - GOAL — 相對 cap 已開始的 round 數、階段,以及
armed/disarmed。 - STALLED / BLOCKED — 例如成員 inactive 導致 STALLED,或 task 等待前置 task 的 BLOCKED。
標題行還會彙總任務與成員進度(如 3/6 tasks · 2/3 members)及進度條,具體字段以 RPC 返回的 live payload 爲準。
一條 RPC、兩種方法¶
Host 半部(lib/index.js)在 webServer 服務上註冊:
POST /api/team-progress/rpc
客戶端半部(lib/client.js)在面板打開期間約每 5 秒請求一次。讀取狀態使用:
{ "method": "state" }
面板通過 conversation.view 註冊爲 id team-progress、order 30 的會話標籤 Team progress,綁定打開它的那個 session;mount() 裏的註冊即渲染範圍的權威來源,不會額外註冊別的 UI。
可選的 act 方法提供 complete / reopen / claim / release / reassign、wake、interrupt、spawn、auto-assign、broadcast、member cap 等操作面,與模型工具調用的 domain 方法同源;默認關閉,見下文配置與安全說明。
讀不到來源時的行爲¶
簡介與 README 一致:凡插件無法讀取的數據源,界面顯示 unavailable 並附帶原因,而不是顯示 0。例如未配置 defectLogs 時,缺陷視圖會報告 unavailable: no defect-log paths are configured。
安裝與啓用¶
該包在 package.json 中聲明 "private": true,沒有 dsh plugin add github:… 一類的一行安裝命令;啓用需要在 profile 裏解析本地包並改 patch。官方 README 給出三步。
1. 將 checkout 鏈入 profile 的依賴
profile 從自身的 package.json 解析插件包;README 示例使用 clone 後 link: 依賴(維護者曾在 pnpm 11.22.0 / Node v26.7.0 下驗證 symlink 與 import('dsh-team-progress')):
git clone https://github.com/ucfjoe/dsh-team-progress.git ~/dsh-team-progress
PROFILE=~/.dsh/profiles/desktop # 你實際使用的 profile
# 在 "$PROFILE/package.json" 的 dependencies 中增加:
# "dsh-team-progress": "link:$HOME/dsh-team-progress"
cd "$PROFILE" && pnpm install
ls -l node_modules/dsh-team-progress # 應爲指向 checkout 的 symlink
2. 在 profile 的 cordis.patch.yml 插入插件行
倉庫自帶的 cordis.patch.yml 只有 bundle 自描述,不會單獨啓用插件;必須在 profile 裏插入並帶上配置,例如:
- id: team-progress
name: 'dsh-team-progress'
config:
defectLogs:
- ~/repos/your-project/docs/defects.md
allowMutations: false
defectLogs 中的 ~ 會展開,空項會被忽略。
3. Reload
修改 host 半部後僅改文件不夠:模塊在 app 進程內以 ESM 加載,需禁用再啓用插件以重新 import 並重建 client bundle(開發日誌 docs/DEVLOG.md 有記錄)。
典型用法¶
只讀觀察團隊狀態¶
啓用插件且 allowMutations 保持默認 false 時,打開會話中的 Team progress 標籤即可。面板會自動輪詢 state;你可在瀏覽器側對照 MEMBERS / DEFECTS / GOAL 與 STALLED、BLOCKED 列表判斷是否要介入。
配置缺陷 Markdown 表¶
在 defectLogs 中指向含標準表頭的 markdown 文件。表頭需含 Status 列,以及 Defect / Issue / Problem / Bug 之一,並緊跟分隔行,例如:
| # | Defect | Evidence | Status |
|---|---|---|---|
| 2 | Repo→app mapping is dead code. | investigate.py:319-321 | **open** |
| 17 | False CRITICAL. | run.log | **fixed** #222 — merged |
狀態單元格會在首個 , ; : 等分隔符處截斷,因此 **fixed #222** — merged 仍解析爲 fixed。
可選:打開 act 寫操作¶
將 allowMutations 設爲 true 後,同一 RPC 路由可處理 act。可用 actionPolicy: 'read-write' withhold 會長期生效的 spawn 與 member-limit(返回 403 TEAM_PROGRESS_ACTION_WITHHELD);關閉 mutations 時 act 返回 403 TEAM_PROGRESS_ACTIONS_DISABLED,各視圖仍可讀。
常用配置默認值(均可選)摘錄如下:
| key | default | 作用 |
|---|---|---|
defectLogs |
[] |
缺陷 markdown 路徑列表 |
allowMutations |
false |
是否啓用 act |
actionPolicy |
'all' |
mutations 開啓時的動作範圍 |
aliasFile |
~/.dsh/team-progress/aliases.json |
成員展示別名等 |
homePatchFile |
~/.dsh/cordis.patch.yml |
member-limit 動作編輯的 patch 層 |
完整表見 GitHub README。
適用場景與注意¶
適合誰: 在 DSH 里長期跑 agent team、需要 GUI 裏一眼看到「誰在做什麼、缺陷臺賬、goal 輪次、何處 stall/block」的開發者;希望數字與 durable state 一致、且明確區分「無數據」與「讀失敗」時,該插件的設計目標與之一致。
環境與依賴: README 記載讀路徑曾在 DeepSeek Harness 0.2.1-rc.3(2026-10-24)上追蹤,端到端最後在 0.2.1-rc.5(2026-11-03)驗證 POST /api/team-progress/rpc 帶 {"method":"state"} 返回 200;未聲明最低版本。客戶端聲明 dsh.client.platform 爲 web,在 Node 中 import 'dsh-team-progress/client' 會因 window is not defined 失敗,屬平臺劃分而非缺陷。硬注入僅 webServer;agents、agentTeams、goals 等 bundle 若被 profile 關閉,面板仍可加載並報告對應來源狀態。
安全: 插件以當前 DSH 進程權限運行;啓用 allowMutations 前應在源碼中核對 act 會觸達的 domain 方法。安裝與升級前請閱讀倉庫許可證(MIT)及 Security 一節對 action surface 的說明。
SkillHub 目錄頁與 GitHub 倉庫爲社區生態條目,與 DeepSeek / 幻方無官方從屬關係;星標等元數據以各站點當時展示爲準(資料中 GitHub 3 stars)。
結尾¶
經過上面的步驟,dsh-team-progress 把 agent team 的運行態收成會話內一個 honest readout:四塊視圖、優先展示的 stall/block,以及可選、默認關閉的寫操作面。進一步細節與 defect 解析規則見倉庫 README。
- 目錄頁:https://www.skillhub.cn/plugins/ucfjoe/dsh-team-progress
- 源碼與文檔:https://github.com/ucfjoe/dsh-team-progress