| name | rk-vl |
| description | 基于视觉大语言模型做自由描述目标检测与摄像头持续监控。支持对单张图片检测“包裹”“快递盒”“门口纸箱”等自然语言目标,也支持在用户要求“监控摄像头有某个目标出现时提醒我”时启动后台监控。 |
rk-vl
进入本 skill 的 scripts 目录后:
- 单次图像检测执行
detect_target.py
- 持续监控执行
watch.sh
支持的目标描述
rk-vl 不限制固定类别,直接支持用户的自然语言描述,例如:
监控模式中,用户的描述会原样作为 query 传给视觉模型。
用法示例
对本地图像做检测:
python3 ./detect_target.py --image /tmp/test.jpg --query "包裹"
启动监控:
./watch.sh start 包裹
也可以使用更长的自然语言描述:
./watch.sh start 门口的快递盒
取消监控:
./watch.sh stop
状态查询:
./watch.sh status
监控触发语义
遇到以下意图时,执行 watch.sh start ...:
- “帮我监控摄像头,有出现包裹的时候提醒我”
- “请帮我监控门口有快递盒出现时提醒我”
- “帮我盯着摄像头,看到桌上的红色杯子就通知我”
遇到以下意图时,执行 watch.sh stop:
- “取消目标监控”
- “取消摄像头监控”
- “停止监控包裹”
监控提醒行为
- 监控脚本持续运行,直到用户明确取消
- 同时只保留一个全局监控任务;新监控会覆盖旧监控
- 默认策略:
- 每
2 秒检测一次
- 首次出现立即提醒
- 同一目标
2 分钟内不重复提醒
- 如果目标持续存在,超过
10 分钟再次提醒
- 连续
2 次未命中后视为目标离开
- 发送目标会自动从
~/.openclaw/qqbot/data/known-users.json 中选择最近联系人
- 提醒消息必须包含图片文件标签,格式固定为:
检测到目标“包裹”,图像如下:<qqfile>输出图片绝对路径</qqfile>
权限限制
- 你没有权限调用
sessions_spawn 工具
- 所有任务必须在当前会话内完成,不得创建子 Agent
- 如果用户要求需要并行处理的任务,请使用串行方式逐步完成
输出说明
1. 单次检测输出
detect_target.py 标准输出固定为 JSON:
- 有目标:
{"matches":[...]}
- 无目标:
{}
2. 监控模式完成后操作
watch.sh start 成功后,必须明确告诉用户监控已启动,以及当前监控的目标描述
watch.sh stop 成功后,必须明确告诉用户监控已停止
- 如果没有运行中的监控而用户要求取消,直接告诉用户当前没有运行中的摄像头监控
注意事项
- 每次都需要重新抓取一张图像检测,禁止直接使用上次结果
- 执行错误直接将错误告诉用户
- 如果没有目标则直接告诉用户没有检测到目标,禁止虚构结果
- 通过 QQBot 发送文件:必须使用
<qqfile>绝对路径</qqfile> 格式,标签内不能有 path= 属性