前言¶
Herdr 是一個終端工作區管理器,它默認只識別內置檢測器(如 opencode, claude, codex 等)識別到的 Agent。dsh/cc-tui 不在默認列表中,因此 Herdr 中的 DSH 面板會顯示爲普通終端進程,沒有狀態,也不支持面板跳轉和 --wait。
dsh-herdr-site 插件通過 Herdr 的官方自定義集成協議,將 dsh 的 agent 狀態(working/idle/blocked)上報給 Herdr,使其能夠像識別其他 Agent 一樣管理 DSH 面板。
這是什麼¶
dsh-herdr-site 是一個 DSH 插件,由 WuJiaoJue 維護。它負責將 dsh/cc-tui 的 agent 狀態同步給 Herdr,使 Herdr 能夠識別 DSH 面板並提供面板跳轉和 --wait 支持。
核心功能¶
- 狀態上報:將 agent 狀態(working/idle/blocked)通過 Herdr 的
pane report-agent/pane release-agent協議上報。 - 面板跳轉與等待:啓用 Herdr 的面板跳轉功能以及
--wait支持。 - 多 Profile 支持:兼容
cc-tui和dsh-tui兩個 profile。 - 協議集成:使用 Herdr 官方的自定義集成協議。
- 會話事件處理:處理會話事件流(
ask_user_question工具調用與結果)。 - 阻塞消息:支持可選的
blockMessage,用於顯示 Agent 等待的具體原因。
安裝與啓用¶
安裝該插件需要先有一個工作正常的 DSH 安裝,並帶有 dsh-cc-tui 或 dsh-base profile。
從 npm 安裝(推薦,預構建,無需審批):
dsh plugin --profile cc-tui add dsh-herdr-site
從 GitHub 安裝:
dsh plugin --profile cc-tui add github:WuJiaoJue/dsh-herdr-site
驗證安裝:
dsh --profile cc-tui --dump-config | grep -A2 herdr-site
典型用法¶
安裝完成後,DSH 面板在 Herdr 中將顯示正確狀態。若需自定義阻塞時的提示信息,可在配置文件中設置 blockMessage。
配置示例(在 cordis.patch.yml 中):
# 在 profile 的 cordis.patch.yml 中,或作爲 --patch 覆蓋
- id: herdr-site
config:
blockMessage: '模型等待你的回答'
適用場景與注意¶
- 進程識別:Herdr 的自動進程檢測機制仍無法直接將 dsh 進程識別爲 Agent(這需要 Herdr 內置檢測器更新)。該插件通過自定義集成協議解決了這一問題,提供了正確的狀態、面板跳轉和等待功能。
- dsh-tui 限制:
dsh-tuiprofile 不包含ask_user_question工具,因此該 profile 下blocked狀態永遠不會觸發(working/idle狀態不受影響)。 - 標籤固定:上報給 Herdr 的 Agent 標籤固定爲
cc-tui。 - Session ID:可選的
--agent-session-id引用功能尚未連接,因此 Herdr 的 pane/agent API 無法直接暴露關聯的 dsh session id。 - 前置條件:插件依賴於宿主 profile 提供的包(如
@deepseek-ai/cordis,dsh-session,dsh-agent),需確保宿主環境安裝正確。
短結尾¶
通過將狀態報告給 Herdr,該插件將 DSH 體驗從普通終端提升爲可管理的 Agent 面板。更多詳情請參閱 目錄 或 GitHub。