前言¶
在 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,并进入明示的冷却时间。
核心功能¶
取样与唤醒策略¶
- idle / burst:
idleFps与burstFps只决定撷取频率;是否唤醒仍取决于画面变化与稳定性(配置项见下文)。 - 稳定后唤醒:需通过 novelty / stable 阈值与连续稳定样本数,才启动背景 Agent。
- 节流:
minWakeGapMs、motionCooldownMs等限制唤醒间隔与动态画面后的冷却。 - 影像与模型:预设只在内存保留目前画面;唤醒时才用 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 决定。
典型用法与本地验证¶
- 按上文安装并在
cordis.patch.yml将enabled设为true,按需调整 FPS 与阈值。 - 在 DSH 中通过
reality_status确认取样与错误状态;需要时用reality_control暂停监看。 - 在插件源码目录可执行:
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 为准;目录与仓库链接如下: