DSH Infuse 伴侣:AI 会话需你介入时自动暂停 Infuse

前言

在 DSH 里跑长回合的 AI 会话时,很多人会开着 Infuse 看剧或看电影。回合结束、工具审批、或 Agent 向你提问的瞬间,剧情往往还在走,容易错过关键情节。常见做法是手动切窗口、点暂停,既打断操作又容易忘。下面介绍的 DSH Infuse 伴侣(lunanfo/dsh-infuse-companion)在 DSH 侧监听会话事件,仅在 Infuse 确实处于播放状态时自动触发暂停,并在左侧栏提供状态面板与一键恢复,把「看剧」和「审 AI」拆成可预期的两步。

这是什么

lunanfo/dsh-infuse-companion 是维护者 lunanfo 发布的 DSH 插件,分类为工作流。它解决的核心问题:当 AI 会话需要你审阅、审批或回答时,自动暂停正在播放的 Infuse,避免剧情被无声跳过。插件附带左侧栏「Infuse 伴侣」入口、实时播放信息与可独立开关的自动暂停规则;Host 侧还提供同名 Agent 工具 infuse_companion,与 UI 共用一套逻辑。

核心功能

面板与控制

  • 左侧栏入口与主面板:展示当前剧集/电影、播放进度(按本地时钟逐秒平滑推进)、PID,以及辅助功能与菜单项状态。
  • 自动暂停后,面板顶部出现横幅;审完 AI 回复可点「看完了,恢复播放」继续看剧。
  • 自动暂停记录:每次触发会记下原因、会话标题、暂停位置与时间。

三种自动暂停时机(可单独开关)

  1. AI 会话回合完成(turn/end)。
  2. 需要工具/权限/计划审批(approval/request、user-questions/request 中 approval/plan-review 类 intent)。
  3. AI 调用 ask_user_question 向你提问。

行为约束

  • 仅主会话:默认忽略后台子代理的回合结束(onlyRootSessions),减少看剧被打断;需要子代理也暂停时可关闭该项。
  • 安全暂停:暂停前通过 Infuse 本地 Now Playing 读取状态,仅当 state === "playing" 才触发;不把已暂停误当成播放,也不抢占窗口焦点。
  • 冷却:cooldownSeconds(默认 3 秒)避免连续触发。

Agent 工具

工具名 infuse_companion,子命令包括:status、pause、resume、toggle、configure、simulate_trigger、clear_history。

环境要求

  • macOS(依赖 ApplicationServices 辅助功能控制 Infuse 菜单)。
  • Infuse for macOS 需正在运行。
  • Xcode Command Line Tools(xcode-select --install):首次使用会编译 bin/infuse-ax;已编译的 arm64 二进制可自行放入 bin/ 以跳过编译。
  • DSH 0.2.x(需 plugin_manager 与 Web GUI)。

首次使用需为 DSH 授予 macOS「辅助功能」权限。

安装与启用

插件以当前 DSH 进程权限运行,安装前建议浏览 GitHub 仓库 源码与 MIT 许可证。代码版本 1.0.0(package.json)。

方式一:本地目录(开发调试)

plugin_manager install_bundle target=/Users/<you>/githubcode/dsh/infuse-companion

方式二:从 GitHub 安装

plugin_manager install_bundle target=github:<your-github-user>/dsh-infuse-companion

也可在 DSH 中让 Agent 执行上述安装(需 plugin_manager 工具权限)。安装后左侧栏应出现「Infuse 伴侣」;图标或文案未刷新时,刷新页面或重启 DSH。

配置

配置写入 profile 的 cordis.patch.yml,也可在面板中开关并由 config editor 持久化:

- id: infuse-companion
  name: '@local/dsh-infuse-companion'
  config:
    enabled: true                    # 自动暂停总开关
    pauseOnTurnComplete: true        # AI 回合完成时暂停
    pauseOnApprovalNeeded: true      # 需要审批时暂停
    pauseOnQuestionAsked: true       # AI 提问时暂停
    onlyRootSessions: true           # 仅主会话,忽略子代理
    cooldownSeconds: 3               # 触发冷却,避免连续暂停

工作原理(简述)

  1. Host 监听 DSH 事件:session/event(turn/end,跳过用户手动停止)、approval/request、user-questions/request。
  2. 触发时确认 Infuse 在运行,经本地 Now Playing HTTP(_infuse-np._tcp → /nowplaying)读取真实播放状态。
  3. 仅 playing 时调用插件自带的 Swift 辅助程序 bin/infuse-ax,用 AXPress 切换 Infuse「播放/暂停」菜单项,不激活窗口。
  4. 暂停后约 360ms 复核状态,写记录并在面板提示恢复。
  5. 面板经鉴权路由 /infuse-companion/api 与 Host 通信。

典型用法

  1. 在 macOS 上安装并启用插件,打开 Infuse 正常播放。
  2. 在 DSH 中开启 AI 会话;当回合结束、弹出审批或 Agent 提问时,若正在播放应自动暂停。
  3. 在左侧栏「Infuse 伴侣」查看进度与 PID,按需手动暂停/恢复或调整三项自动暂停开关。
  4. 审阅结束后点横幅「看完了,恢复播放」,或让 Agent 调用 infuse_companion 的 resume。

调试规则时可使用 simulate_trigger;需要清空历史时用 clear_history。

适用场景与注意

适合谁:在 Mac 上用 DSH 做智能体开发、且习惯边用 Infuse 边看本地媒体的用户;希望审批与提问时少漏剧情的场景。

限制(来自 README):

  • 仅 macOS;暂停依赖 Infuse 上报的播放状态,接口异常时插件会跳过而不是盲按。
  • 暂停实现为切换播放/暂停键,与 Infuse 状态强相关。
  • 面板进度为本地时钟插值;在 Infuse 内拖动进度条后会重新对齐。
  • 插件图标使用 Infuse 官方视觉元素仅供个人本地展示;公开发布需替换美术或取得授权。本插件与 Firecore / Infuse 无官方关联。

社区目录 SkillHub 插件页 与 GitHub 为独立信息源,与 DeepSeek / 幻方无官方从属关系;DSH 生态思路是「一切皆插件」,按需从目录或仓库安装即可。

结尾

DSH Infuse 伴侣把「AI 要你介入」和「Infuse 正在播」对齐成可配置的工作流:事件驱动、先读状态再暂停、面板一键恢复。若你符合 macOS + Infuse + DSH 0.2.x 的组合,可按上文 plugin_manager install_bundle 安装并在 cordis.patch.yml 或面板中微调规则。

  • 目录页:https://www.skillhub.cn/plugins/lunanfo/dsh-infuse-companion
  • GitHub:https://github.com/lunanfo/dsh-infuse-companion
羽毛球分组比赛记分
小程序二维码

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

Xiaoye