一键导入
miloco-perception
调用摄像头看画面、听现场声音,或回顾近期事件来判断——在干嘛、有什么动静、是否有人说话/吵闹、刚才/最近发生了什么;通过画面核实设备的开关状态(如开着/关着、亮着/灭着),尤其在拿不到设备上报状态时。读不出画面看不见的具体数值(温度、湿度、音量等)。
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
调用摄像头看画面、听现场声音,或回顾近期事件来判断——在干嘛、有什么动静、是否有人说话/吵闹、刚才/最近发生了什么;通过画面核实设备的开关状态(如开着/关着、亮着/灭着),尤其在拿不到设备上报状态时。读不出画面看不见的具体数值(温度、湿度、音量等)。
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
创建/管理"持续运转的家庭任务"—— 由 rule(条件触发自动化)/ schedule(定时提醒)/ record(行为累积统计)/ lifecycle(长期/限时)组合装配;也是 [感知引擎] 语音指令类系统消息的统一入口。覆盖:定时/累积提醒、"X 时 Y" 自动化、行为统计、持续状态阈值等。
查询与控制米家智能家居设备。查询能力包括设备开关状态、运行状态、电量、设定温度、当前温湿度、PM2.5 等环境与设备数据;控制能力包括开关灯、调节空调温度/模式/风速、控制窗帘开合、启动或停止扫地机器人、开关摄像头等设备操作;场景能力包括触发已有米家场景,如回家、离家、睡眠等智能场景;以及刷新设备列表缓存。
每日习惯洞察 —— 从家庭档案识别值得建成任务的习惯,主动 IM 推荐给主人;主人认可后据此建任务。两条路径:cron 触发的【扫描推荐】(路径 A) 与用户回应触发的【回应处理】(路径 B)。防骚扰由 miloco_habit_suggest 工具裁定。
home-dreaming 定时任务的 Observe 步骤,仅由该任务调用。
miloco-home-patrol 定时任务的内部例程,仅由该任务调用。
家庭档案管理 — 当用户提到自己或家人的喜好、兴趣、习惯、身体状况、作息规律、家庭规则时激活,无论用户是否明确要求"记录"。也在用户修正已有记录、要求删除、或查询家庭档案时激活。
| name | miloco-perception |
| description | 调用摄像头看画面、听现场声音,或回顾近期事件来判断——在干嘛、有什么动静、是否有人说话/吵闹、刚才/最近发生了什么;通过画面核实设备的开关状态(如开着/关着、亮着/灭着),尤其在拿不到设备上报状态时。读不出画面看不见的具体数值(温度、湿度、音量等)。 |
| metadata | {"author":"miloco","version":"2.0","date":"2026-06-13","openclaw":{"requires":{"bins":["miloco-cli"]}}} |
米家多模态感知 Skill。通过摄像头视听理解(画面 + 声音)与感知日志,回答现场与近期问题。
解析 → 获取摄像头 → 查日志 or 实时查询 → 回复
从用户自然语言中提取:
目标区域:
感知问题:在做什么 / 有什么动静 / 现在什么情况时间:问的是"此刻现场"还是"近期";若是近期,把"刚才 / 刚刚 / 最近"换算成最近一段时间窗(如 1h)必须先 perceive devices 拿全量感知源,再选 source——不要直接用预注入 catalog 里的摄像头。 catalog 只是高频子集、不保证覆盖全部摄像头,也不带 online 状态;漏摄像头或拿离线源会导致漏查 / 空跑。
miloco-cli perceive devices # 返回 device_type=camera 的感知源(含 did/room/online)
按 room 选出目标区域的在线摄像头 did,作为后续 --source。
核心原则:能用日志答的,不调实时。
感知问题
│
├─ 近期/事件类("刚才发生了什么" "最近怎么样")
│ → miloco-cli perceive logs --since <时长> --jsonl
│ 已有感知结果缓存,零大模型成本
│
└─ 此刻细节类("现在在做什么" "猫在干嘛" "看看客厅")
→ miloco-cli perceive query --source <did> [--source <did>] --query "<问题>"
调用摄像头 + Omni API,1-5s,有成本
查询感知日志(零成本,优先使用):
miloco-cli perceive logs --since 1h --jsonl
# 查近期事件:最近一段窗口 + 结构化逐行输出("时间: JSON"),不读写 cursor
# --since 单位 h/m/s/d 及组合,如 1h、30m、7d;--jsonl 仅控制输出格式
实时多模态感知(调用 Omni API,1-5s,有成本):
miloco-cli perceive query --source <did> [--source <did>] --query "<用户问题>"
# 每个摄像头用独立的 --source 重复传,可多次;是 --source 不是 --sources
# 调用摄像头 + Omni API 进行多模态理解,返回自然语言描述
解析:区域=全屋,此刻 → 实时
设备:perceive devices → cam_001(客厅摄像头)、cam_002(卧室摄像头)
执行:$ miloco-cli perceive query --source cam_001 --source cam_002 --query "猫在干嘛"
→ "猫在客厅沙发上睡觉"
回复:"猫在客厅沙发上睡觉"
解析:区域="客厅",此刻 → 实时
设备:perceive devices → cam_001(客厅摄像头)、cam_002(卧室摄像头)→ 按 room 选客厅,取 cam_001
执行:$ miloco-cli perceive query --source cam_001 --query "有没有人在说话,在聊什么"
→ "有两个人在聊天,像是在商量晚饭吃什么"
回复:"客厅有两个人在聊天,好像在商量晚饭"
解析:区域="门口",近期 → 日志
执行:$ miloco-cli perceive logs --since 1h --jsonl # 最近一段窗口 + 结构化输出,不碰 cursor
→ 2026-06-11T20:35:00+08:00: {"门口": "有人在门口停留"}
2026-06-11T20:52:00+08:00: {"客厅": "客厅有人走动"}
2026-06-11T21:08:00+08:00: {"门口": "快递员放下包裹后离开"}
筛门口记录,归纳为一件事
回复:"门口刚才有人停留过,后来快递放下包裹就走了"
| 异常 | 处理方式 | 回复 |
|---|---|---|
| 摄像头不可用(区域无摄像头 / 离线) | 有近期感知日志则读取日志,否则如实告知原因 | "客厅没有摄像头" / "摄像头离线,仅能看最近记录" |
| perceive query 超时或返回空 | 退回最近感知日志 | "实时感知失败,最近一次:…" |
| 近期无感知日志 | 能现场判断的问题 → 转 perceive query 实时查看;仅当用户明确问历史 → 才告知无记录 | "实时看了下:客厅没人" / "最近没有感知记录" |
perceive logs,有缓存就别调实时;"此刻在干嘛"等当下问题仍走 query,不拿过期缓存充数。perceive logs --since <窗口>。 取最近一段窗口、不动共享 cursor;--jsonl 仅是结构化输出格式。别裸调 perceive logs(无 --since)——那是游标增量模式,只返回"自上次以来的新事件"并推进共享 cursor,是给持续消费整条流的 agent(如 digest)用的。code=0 ≠ 成功。 answer 仍可能为空,按失败处理、退回 logs,别把空结果当答案回给用户。perceive devices 拿摄像头,不硬编码设备清单。