dsh-dock-attention:Harness 在後臺需要你了,Dock 圖標會跳

前言

用 DeepSeek Harness(DSH)跑智能體時,常見情況是窗口被別的應用蓋住:審批、追問或一輪結束,你未必立刻看見。系統通知可以補一層,但有人更習慣 macOS Dock 上的視覺提示。DSH Host 插件跑在 Desktop Host 的 Node 子進程裏,不能直接調用 Electron 主進程的 app.dock.bounce(),也沒法讓「DSH 桌面圖標」替插件跳一下。下面介紹維護者 ihodorchenko 的客戶端插件 dsh-dock-attention:在需要關注且 Harness 不在前臺時,通過原生輔助應用 DSH Attention 在 Dock 裏短暫出現並請求用戶注意。

這是什麼

dsh-dock-attention 是 DSH 的 Host 插件,監聽 durable session 事件流(審批、智能體提問、回合結束等),僅在窗口不在前臺時觸發 Dock 提示;若你已經在看 Harness,設計上不會打斷當前窗口。

  • 維護者:ihodorchenko
  • 分類:客戶端(社區目錄 SkillHub 條目)
  • 平臺:macOS 12+;其他平臺會掛載但不執行
  • 許可證:MIT(見 GitHub 倉庫)

爲什麼 Dock 上是單獨的圖標

Desktop 應用的 Dock 圖塊屬於 Electron 主進程;Host 插件無法跨進程讓 DSH 圖標彈跳。插件採用最小可行方案:需要關注時寫請求文件,用 open -n -g 在後臺啓動原生 helper DSH Attention。Helper 以普通應用身份擁有 Dock 圖塊(非前臺),調用 AppKit 的 requestUserAttention 使圖塊彈跳,並在 Harness 回到前臺、點擊該圖塊或超時後退出,圖塊隨之消失。點擊彈跳中的圖塊會激活 Harness(未運行時則啓動)。

Helper 首次複製到 ~/Library/Application Support/dsh-dock-attention/DSH Attention.app(去隔離、ad-hoc 簽名、註冊 LaunchServices),請求與日誌在同級 runtime/;插件更新會自動刷新副本。Helper 不需要輔助功能、自動化、錄屏或通知權限。

核心功能

觸發條件(默認均開啓)

時刻 事件 默認
智能體等待審批 approval/asked 開
智能體提問(如 ask_user_question、exit_plan_mode) tool/call 開
回合結束、失敗、被攔或觸達 token 上限 turn/end 開

以下情況通常靜默:用戶取消的回合(aborted)、fork/中斷的回合、子智能體會話(除非 includeSubagents: true)。若 activeBundleIds 中任一應用已在前臺、已有 beacon 在跳、或距上次彈跳不足 minIntervalSeconds,也會跳過。

配置要點

配置項均可選,profile 裏 config 會覆蓋默認值。常用字段包括:

字段 默認 含義
enabled true 總開關
targetBundleId com.deepseek.dsh 點擊 beacon 時要激活的應用;瀏覽器跑 dsh web 時可改爲瀏覽器 bundle id
activeBundleIds ['com.deepseek.dsh'] 視爲「已在看 Harness」的前臺應用
skipWhenActive true 上述應用在前臺時不跳
mode critical critical 持續直到你回來或超時;informational 按 repeatCount 跳若干次
timeoutSeconds 30 beacon 在 Dock 中的時間預算(3–300)
minIntervalSeconds 3 兩次彈跳之間的防抖(0–120)
sound null 系統聲音名或音頻路徑;默認無聲

示例:只關心「需要你介入」的時刻,並加長超時、加系統音:

- id: dock-attention
  name: dsh-dock-attention
  config:
    mode: critical
    timeoutSeconds: 45
    bounceOnTurnEnd: false
    sound: Glass

在 Safari 裏跑 dsh web 時:

config:
  targetBundleId: com.apple.Safari
  activeBundleIds: ['com.apple.Safari']

安裝與啓用

插件以當前 DSH 進程的權限運行;安裝前建議瀏覽 倉庫源碼 與 MIT 許可證,確認符合你的環境策略。

Plugin Manager / CLI(desktop profile):

dsh plugin --profile desktop add "github:ihodorchenko/dsh-dock-attention"

也接受 git+https://github.com/ihodorchenko/dsh-dock-attention.git;各 Release 附帶源碼歸檔。

本地目錄:

dsh plugin --profile desktop add "link:/absolute/path/to/dsh-dock-attention"

不用 Plugin Manager 時,可在 profile patch 中直接指向入口(Loader 監視 profile,無需重啓):

- insert:
    - id: dock-attention
      name: 'file:///absolute/path/to/dsh-dock-attention/index.js'
      config:
        mode: critical

要求 Node >= 20(見 package.json engines)。

驗證是否工作

在插件目錄執行自測腳本(不編譯,會安裝 beacon 副本、啓動並觀察退出):

node tools/self-check.mjs

運行期間 Dock 應出現約八秒後消失的 DSH Attention 彈跳圖標;腳本會打印 helper 日誌尾部與啓動路徑。

適用場景與注意

適合:macOS 上長時間讓 DSH 在後臺跑任務,希望「離開鍵盤時」用 Dock 動效找回窗口,且不想默認開系統通知插件的用戶。

務必知曉的限制:

  • 僅 macOS;機制與 Dock、LaunchServices 綁定。
  • 跳的是 DSH Attention 的 Dock 圖塊,不是 Harness 本體圖標;圖塊僅在等待關注時出現。
  • Beacon 活躍時是普通應用,會短暫出現在 Dock 與 Cmd-Tab,啓動時不搶焦點。
  • 默認無通知、無聲音;需要更多渠道可配置 sound 或搭配如 dsh-macos-notifications 等插件。
  • 「減少動態效果」或第三方 Dock 動畫修改可能抑制彈跳動畫,圖塊仍會出現。
  • Helper 爲 ad-hoc 簽名、未 notarized;首次使用由插件複製到 Application Support 並去 quarantine,一般無需手跑 xattr。
  • Harness 已在前臺時按設計不會彈跳。

排查「完全沒有圖標」等問題,README 的 Troubleshooting 一節有進一步步驟(資料截斷處未完整列出,以倉庫 README 爲準)。

結尾

DSH 生態強調「一切皆插件」;SkillHub 插件目錄 是社區站點,與 DeepSeek / 幻方無官方從屬關係。dsh-dock-attention 用 Host 插件加原生 beacon 的方式,在桌面 Host 權限模型下補上了「後臺需要關注」的 Dock 提示。需要安裝與完整配置表時,以 GitHub:ihodorchenko/dsh-dock-attention 爲準。

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

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

小夜