AI PLAY玩法更新持续收录
← 回到更新流

2026-09-17 · 原文发布日

用Claude Vision分析Prey截图判断设备是否闲置

这个n8n流程由webhook触发,从设备管理软件Prey拉取指定时间窗口内的屏幕截图,均匀抽样后按时间顺序发给Claude视觉接口,让模型判断画面变化是否代表真实使用,输出含idle真假值与摘要的JSON。内置冷却时间和最小数据量门槛,截图不足时直接返回空结果,避免误报,适合做远程设备状态监控的人。

原文要点

该n8n流程由webhook(路径 /prey-idle-check)或手动触发,先做工作流级冷却检查,距今上次分析太近就直接提前停止。随后用Prey API拉取指定设备近期的报告,只保留配置时间窗口内带截图的报告;截图数量不足min_reports或首尾时间跨度小于min_span_minutes时返回 idle:null 的空结果。通过门槛后按均匀抽样最多取max_images张截图,逐张从Prey下载并按时间顺序打包,发给Anthropic Messages API的Claude Vision判断画面变化是否代表真实使用,解析模型JSON后输出含idle真假值、简短摘要和被分析报告元数据的最终JSON。window_minutes、min_reports、min_span_minutes、max_images、cooldown_minutes五个控制值均可配置。

这次做成什么

在本站设计的隔离练习中搭通这条“webhook→冷却判断→拉Prey截图→抽样→Claude Vision判定→JSON结论”的链路,并用合成数据验证冷却提前停止与数据不足返回idle:null两个分支。

准备什么

  • 一个Prey账号及目标设备ID,且该设备近期有含屏幕截图的报告(练习环境请勿用生产设备)
  • Anthropic API密钥,可调用带视觉能力的Claude Messages接口
  • 可接收外部POST的n8n实例,webhook路径可公开访问
  • n8n工作流模板19686已导入并可编辑控制参数

具体怎么做

  1. 配置两组凭据与设备

    在n8n凭据页新建Prey API凭据(按Prey开发者文档生成的API Key),在拉取报告的节点里选定目标device ID;再建Anthropic API凭据供Claude Vision的HTTP请求节点使用。两组凭据请用测试专用密钥,不要复用生产环境的。

  2. 设定五个控制值

    在配置节点检查 window_minutes(回看窗口,本站练习设120)、min_reports(最少截图报告数,设3)、min_span_minutes(首尾截图最小跨度,设30)、max_images(最多送模型张数,设6)、cooldown_minutes(冷却,设60)。数值含义以模板节点注释为准,练习阶段保持小窗口便于触发数据不足分支。

  3. 手动跑通数据不足分支

    先把window_minutes临时改成1分钟,手动执行工作流。预期流程在筛选截图报告后直接终止,最终输出 {"idle": null} 及原因说明,不会调用Anthropic接口。这一步确认了你的Prey凭据可用且分支逻辑正确,再改回正常窗口。

  4. 跑通完整判定并接webhook

    恢复窗口后手动执行一次完整流程:节点应按时间顺序下载并打包截图,Anthropic节点返回JSON文本,解析节点输出最终verdict。确认无误后激活工作流,复制webhook URL,让上游系统向 /prey-idle-check 发POST触发;随后在冷却时间内再POST一次,应看到提前停止、不产生第二次模型调用。

可直接复制的材料

Claude Vision闲置判定提示词(本站独立编写,覆盖前请核对原节点结构)

本站独立编写,输出键名需与原模板解析节点对齐;changed_frames为本站增加的辅助字段,如原节点只解析idle与summary可删除

你将收到一组按时间顺序排列的电脑屏幕截图,它们来自同一台设备在约{{window_minutes}}分钟内的不同时刻。
请判断这段时间内设备是否处于真实使用状态。判定标准:
- 若截图之间出现有意义的画面变化(窗口切换、内容滚动、输入痕迹、播放进度变化),视为活跃,idle=false;
- 若画面基本静止、仅屏保/锁屏/同一静态页面,视为闲置,idle=true;
- 忽略时钟秒数、光标闪烁等无意义微小变化。
只输出一个JSON对象,不要输出其他文字:
{"idle": true或false, "summary": "不超过50字的判定依据", "changed_frames": 你认为有明显变化的截图对数}

控制参数示例配置(本站练习值)

参数名为按模板描述整理的示意,导入后以工作流内配置节点的实际字段为准

{
  "window_minutes": 120,
  "min_reports": 3,
  "min_span_minutes": 30,
  "max_images": 6,
  "cooldown_minutes": 60,
  "webhook_path": "prey-idle-check"
}

webhook触发测试请求体(合成)

原模板webhook只需POST触发即可,此JSON为本站加的占位请求体,用于在日志里标识测试来源

{
  "device_id": "prey-demo-device-0001",
  "requested_by": "aiplay-practice",
  "note": "本站合成测试数据,device_id请替换为练习设备的真实ID"
}

输入与输出示例

本站虚构演示,未真实调用Prey与Anthropic,数字仅为字段对应示意

输入

window_minutes=120内Prey返回5条带截图报告,首尾跨度95分钟,均匀抽样取5张;首帧为文档编辑页,中间帧切换到表格并滚动,末帧停留在视频播放页;cooldown_minutes=60且距上次分析已过3小时。

对应输出

{"idle": false, "summary": "截图间出现文档到表格再到视频页的连续窗口切换与滚动,判定为真实使用", "changed_frames": 4, "reports_analyzed": 5, "window_minutes": 120} —— 若将窗口改为1分钟重跑,则输出 {"idle": null, "summary": "窗口内截图报告不足min_reports,未调用模型", "reports_analyzed": 0}

做完检查这些

  • window_minutes设为1分钟时流程提前结束,输出idle为null,且Anthropic节点无执行记录
  • 连续两次触发间隔小于cooldown_minutes时,第二次在冷却检查节点停止,不产生第二次模型调用
  • 正常跑通时输出JSON同时包含idle布尔值、summary、被分析报告数与窗口字段,且summary与截图内容描述一致
  • 抽样后送入模型的图片张数不超过max_images,且节点内图片顺序与报告时间先后一致

容易卡住的地方

  • Prey免费或低频同步设备可能根本没有足够截图报告,idle:null是设计好的正常结果而非报错
  • Anthropic视觉请求按图片计费,max_images调大与冷却调短都会明显增加调用成本,原文未给出具体费用
  • 模型返回若带解释性文字会导致JSON解析失败,提示词必须要求只输出JSON对象
  • webhook路径公开后任何人都能触发分析并消耗API额度,建议在上游系统加签名或在n8n前加鉴权
  • 截图含屏幕敏感内容,练习与生产都应确认隐私合规,勿把含他人信息的截图发往第三方模型

原文与作者资料 ↗

本站借助AI整理来源事实,独立编写中文操作指南与示例。示例不代表实际运行结果;来源效果尚未由本站独立复现。付费模板与模型、服务费用分别计算。

原文标题
Detect idle device activity from Prey screenshots with Claude Vision
原作者
Patricio
原始发布日期
2026-09-17T14:09:23.624Z
来源
https://n8n.io/workflows/19686