dsh-fount-reality:DSH 背景屏幕观察与自主唤醒

前言

在 DeepSeek Harness(DSH)里,Agent 通常只在对话回合被触发时才动手。若希望它在桌面环境中持续「看」屏幕、在画面出现值得关注的变化时再自行分析,并只在有具体价值时打扰使用者,就需要与主聊天分离的背景观察与唤醒机制。社区插件 dsh-fount-reality(维护者 win10ogod,目录分类:工作流)参考 理华角色包 的私有 Reality Channel 思路,为 DSH 提供屏幕取样、变化侦测与独立背景 Agent 循环;简介为:Autonomous screen attention and private background Agent loop for DeepSeek Harness。插件针对 DSH 0.1.7-rc.2、0.2.0-rc.2 与 0.2.1-alpha.1 开发(package.json 中 peer 依赖与 README 一致)。

这是什么

dsh-fount-reality 在 DSH 进程内持续对主屏幕取样,但取样计时器不直接启动 Agent loop:先以低 FPS 巡看,侦测到明显变化后短暂提高 FPS,确认新画面连续稳定才唤醒独立的背景 Agent。背景 Agent 分析完整画面、检视其预设中可用的工具与记忆,只有决定有具体价值时才调用 reality_notify 发出桌面通知;日常内部分析留在独立的持久会话,不插入原本的聊天回合。影片等持续动态画面会在取样上限后退回低 FPS,并进入明示的冷却时间。

核心功能

取样与唤醒策略

  1. idle / burst:idleFps 与 burstFps 只决定撷取频率;是否唤醒仍取决于画面变化与稳定性(配置项见下文)。
  2. 稳定后唤醒:需通过 novelty / stable 阈值与连续稳定样本数,才启动背景 Agent。
  3. 节流:minWakeGapMs、motionCooldownMs 等限制唤醒间隔与动态画面后的冷却。
  4. 影像与模型:预设只在内存保留目前画面;唤醒时才用 DSH 的附件服务保存该张画面并交给背景 Agent。选用的模型必须接受影像输入,否则 reality_status 会显示错误,插件不改用无影像判断。

屏幕撷取(各桌面)

撷取路径不同于 Fount 的 node-screenshots。Windows/macOS 共用 @screen-capture/node;Linux 后端交付相同 PNG 取样数据给唤醒算法:

桌面 撷取方式 重启后状态
Windows 10 1903+ @screen-capture/node 的 Windows Graphics Capture 有桌面工作阶段时自动重连
macOS 12.3+ 同一套 API,底层 ScreenCaptureKit 已授予 Screen Recording 权限时自动重连
Linux Wayland wayland-screenshot 常驻 CLI,底层 XDG ScreenCast Portal/PipeWire 初次执行一次 cast enroll --monitor;支持 restore token 的 Portal 可在重启后无视窗恢复,授权失效时显示 permission-required
Linux X11 gnome-screenshot 背景截图 可读取 DISPLAY 且已安装命令时自动重试

插件只撷取主屏幕。其余平台仍需登录的桌面工作阶段与系统授权。

运维与控制

  • reality_status:查看运作、最近背景活动与错误。
  • reality_control:暂停或恢复本次 DSH 程序中的监看;暂停时也会取消正在执行的背景回合。
  • 背景 Agent:使用当前 DSH 预设模型,继承其工具与模型能力;插件没有替它降低输出、上下文或工具上限。agentPreset 可指定背景 Agent 使用的预设,省略时沿用所选会话的预设或 DSH 预设。

安装与启用

安装到所需的 DSH profile,例如 web:

dsh plugin --profile web add github:win10ogod/dsh-fount-reality
dsh --profile web --dump-config

插件预设 enabled: false;在 profile 的 cordis.patch.yml 中启用,例如:

- id: fount-reality
  name: dsh-fount-reality
  config:
    enabled: true
    workspacePath: 'C:\Users\you\project'
    idleFps: 0.2
    burstFps: 2
    noveltyThreshold: 0.06
    stableThreshold: 0.025
    stableSamples: 3
    maxBurstSamples: 24
    minWakeGapMs: 300000
    motionCooldownMs: 60000

workspacePath 可省略;此时插件在看到有工作区的普通 Agent 会话后开始。

Linux Wayland 授权

需先安装 wayland-screenshot 与其 PipeWire/Portal 系统依赖,再以与 DSH 相同的 DSH_HOME 执行一次授权:

WAYLAND_SCREENSHOT_STATE_DIR="${DSH_HOME:-$HOME/.dsh}/storages/fount-reality/wayland" wayland-screenshot cast enroll --monitor

插件将 restore token 存在此本机目录,重启时交还 Portal 以尝试免选择器恢复;是否接受由桌面 Portal 决定。

典型用法与本地验证

  1. 按上文安装并在 cordis.patch.yml 将 enabled 设为 true,按需调整 FPS 与阈值。
  2. 在 DSH 中通过 reality_status 确认取样与错误状态;需要时用 reality_control 暂停监看。
  3. 在插件源码目录可执行:
npm run check

npm run check 验证抽样唤醒与 DSH v4 消息来源。

npm run smoke:capture

npm run smoke:capture 在目前登录的桌面撷取一张画面,只输出尺寸与字节数,不保存图片;Wayland 须先完成上述授权,不会由此诊断命令开启选择器。诊断命令的影像缓冲上限为 64 MiB,不影响插件使用 DSH 附件服务限额的正式路径。

README 记载的验证范围:Windows 10/11 原生 API 已撷取 PNG;Linux X11 gnome-screenshot 已在原生桌面撷取 PNG;macOS arm64 套件可安装,但 SSH 工作阶段无 Screen Recording 权限,尚未完成原生桌面撷取;Wayland restore-token 流程目前通过模拟测试,尚未在 Wayland 桌面实测。

适用场景与注意

适合:希望在 DSH 工作流中增加「桌面上下文」、又不想让每一帧变化都塞进主聊天的人;需要背景 Agent 在独立会话里分析屏幕、仅有价值时桌面通知的场景。

注意:

  • 插件以当前 DSH 进程的权限运行,持续读取主屏幕画面;安装前应阅读 GitHub 源码 与 MIT 许可(package.json 版本 0.1.2,Node >=22.13.0)。
  • DSH 生态理念是「一切皆插件」;SkillHub 目录页 为社区站点,与 DeepSeek/幻方无官方从属关系。
  • 影像模型、系统屏幕录制/撷取权限、Wayland Portal 策略均会影响能否正常唤醒与通知。

结语

dsh-fount-reality 把屏幕取样、变化侦测与背景 Agent 拆成独立循环,并用 reality_notify 控制对使用者的打扰频率。若要查版本与 issue,以 GitHub 为准;目录与仓库链接如下:

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

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

Xiaoye