前言¶
在 DeepSeek Harness(DSH)裏並行跑子智能體(subagent)時,側欄和當前會話標題往往只反映主智能體的轉圈、圓點或等待狀態,不容易一眼看出「這一會話下面還有多少個子任務在跑」。官方 UI 與 codex-ui 各自有狀態指示,但子智能體數量並不會以統一數字形式疊在上面。
dsh-title-agent-indicator 是 howyay 維護的 DSH Web 客戶端插件(當前版本 0.5.0,MIT 許可證)。它在不替代宿主對主智能體狀態負責的前提下,統計會話子樹裏 origin === "subagent" 且仍在運行的節點數,並在兩個界面位置用同一數字展示;沒有運行中的子智能體時,插件不繪製任何元素。
這是什麼¶
插件類型爲 Web 客戶端注入(platform: web),通過 Cordis patch 註冊佔用位,讀取標準會話列表 store(useSessions → byId),單次摺疊統計各會話後代里正在運行的 subagent,與官方 ui-subagent 目錄所用投影一致。不發起 RPC、不做輪詢、不持久化額外數據。
維護者與源碼:
- 目錄頁:https://www.skillhub.cn/plugins/howyay/dsh-title-agent-indicator
- 倉庫:https://github.com/howyay/dsh-title-agent-indicator
核心功能¶
兩個界面,同一數字¶
- 側欄會話行:僅有子智能體活動時,用數字替代(或佔據)該行狀態區域中心的轉圈示意;主智能體也在跑時,數字落在宿主轉圈/圓點的角落,主智能體的 spinner 仍由宿主繪製。警告、錯誤與數字並列在角落,避免被計數遮擋。其他「主智能體空閒但子任務在跑」等狀態下,數字居中放大顯示。
- 會話標題旁(Session header):當前會話在標題相鄰 actions 行顯示相同數字(佔用
conversation.session.header.actions,order 5)。
數字含義¶
| 顯示 | 含義 | 條件 |
|---|---|---|
N |
該會話後代中正在運行的 subagent 數量 | 存在 N 個運行的 descendant subagent |
| 無 | 不繪製 | 沒有運行的 descendant subagent |
主智能體自身狀態(運行中、等待授權、等待計劃審閱、等待回答、已結束等)仍由宿主 UI 負責;本插件只計數 subagent,並隱藏僅代表 subagent 活動的運行圖標,同時保持警告與錯誤可見。
無障礙與 tooltip 支持中英文,例如「Only subagents working: N」或「Main agent working + N subagent(s) running」。
與收藏(archive-manager favorites)的配合¶
在 archive-manager 收藏場景下,僅 subagent 活動的行可使用全尺寸 favorite;懸停或標記爲收藏時,favorite 可替代數字顯示。主活動、警告、錯誤場景下,角落 favorite 仍保留。
實現要點(便於排查)¶
- 側欄無逐行 slot 時,通過無渲染的
shell.overlay佔用(order 200)裝飾宿主已有行。 - 行身份:codex-ui 讀
data-dcu-session;其他宿主走 React fiber 鏈上的sessionId等 props,並按行緩存,避免重複遍歷。 - 宿主指示器:codex-ui 用
.dcu-wb-running;官方側欄用 status slot 後綴或aria-hidden標記定位圓點,數字 append 到該元素內;無宿主指示器時數字以正常流排在行首。 - Mutation 觀察與按需整表重繪,避免流式頁面 DOM 抖動導致反覆全量重繪;相同讀數提前返回。
安裝與啓用¶
插件未發佈到 npm,需將倉庫放到本機項目目錄後,以本地 link 方式加入 DSH Web profile。資料中的安裝步驟如下。
- 將倉庫放到你的工作目錄(資料使用
git clone獲取源碼;安裝前請自行閱讀源碼與 MIT 許可證,插件以當前 DSH 進程權限運行)。 - 在克隆後的目錄內執行本地 bundle 安裝:
cd dsh-title-agent-indicator
dsh plugin --profile web add "link:$PWD"
- 安裝後啓動或重啓 DSH Web profile。
更新時,在克隆目錄執行 git pull --ff-only,再重啓 DSH Web profile。
環境要求(來自 package.json 與 README):
- DSH:
>=0.1.5-rc.1(開發與說明針對0.1.5-rc.1) - 會話行 UI:官方側欄
@deepseek-ai/dsh-client-ui-workspace,以及@michengai/dsh-codex-ui1.1.37 peerDependencies:react^18.2.0
測試與驗證¶
倉庫提供無瀏覽器的冒煙測試,可在改代碼或升級宿主後快速回歸邏輯:
node test/smoke.cjs
或使用 npm script:
npm test
冒煙測試覆蓋雙佔用註冊、標題數字、側欄繪製(官方側欄 dot 與 codex-ui spinner / 無 spinner 行)、數字嵌套位置、data-dcu-session 路徑、嵌套歸屬與自引用環、冪等重繪與 disposal 清理等。
瀏覽器側排版與狀態、favorite 行爲需 isolated agent-browser 會話,例如:
AGENT_BROWSER_SESSION=<isolated-session> node test/browser-typography.cjs
AGENT_BROWSER_SESSION=<isolated-session> node test/browser-state.cjs
AGENT_BROWSER_SESSION=<isolated-session> node test/browser-favorite.cjs
若可執行文件不在 PATH,設置 AGENT_BROWSER。這些測試使用 fixture 頁面,不驗證已登錄的 DSH 生產頁。
適用場景與注意¶
適合經常在單會話內拉起多個 subagent、需要在側欄和當前會話標題上同步看到「還有幾個子在跑」的 DSH Web 用戶。沒有 subagent 運行時界面保持與未裝插件時一致(無額外 DOM)。
安裝前注意:
- 插件隨 DSH Web 客戶端加載,權限與當前 DSH 進程一致;僅信任來源明確的倉庫與版本(當前資料爲 0.5.0)。
- 強依賴宿主側欄 DOM / fiber 約定;升級
dsh-codex-ui或官方 workspace UI 後,若數字錯位或消失,應對照 README 中的兼容版本並跑 smoke / browser 測試。 - 社區目錄 skillhub.cn 爲獨立生態站點,與 DeepSeek / 幻方無官方應用商店從屬關係;插件星標與歸屬以 GitHub 與目錄頁爲準(資料記載星標爲 0)。
結尾¶
dsh-title-agent-indicator 把「運行中的 subagent 數量」收成側欄狀態位與會話標題旁的一個數字,主智能體狀態仍交給宿主,計數數據來自標準 session store、無額外後端。需要接入時,按上文 dsh plugin --profile web add "link:$PWD" 安裝並重啓 Web profile;細節與 issue 見 GitHub 倉庫,分類入口見 skillhub 目錄頁。