dsh-herdr-site: 把 DSH Agent 狀態上報給 Herdr

前言

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-tui profile 不包含 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。

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

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

小夜