一键导入
miloco-habit-suggest
每日习惯洞察 —— 从家庭档案识别值得建成任务的习惯,主动 IM 推荐给主人;主人认可后据此建任务。两条路径:cron 触发的【扫描推荐】(路径 A) 与用户回应触发的【回应处理】(路径 B)。防骚扰由 miloco_habit_suggest 工具裁定。
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
每日习惯洞察 —— 从家庭档案识别值得建成任务的习惯,主动 IM 推荐给主人;主人认可后据此建任务。两条路径:cron 触发的【扫描推荐】(路径 A) 与用户回应触发的【回应处理】(路径 B)。防骚扰由 miloco_habit_suggest 工具裁定。
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
感知范围控制 — 管理 miloco 感知哪些家庭、哪些摄像头,以及每台摄像头的声音(是否参与感知)。用户说「只用/不用某家庭」「让 miloco 感知/别感知 某家庭或摄像头」「屏蔽某摄像头/把某摄像头从感知里去掉」「把某摄像头声音关了/打开」「XX 老误报(声音类)」「哪些家庭在用」时激活。注意区分:开关摄像头设备本身(开机/关机/电源/录制)走 miloco-devices;感知引擎自身的开关/参数走 miloco-perception。
调用摄像头看画面、听现场声音,或回顾近期事件来判断——在干嘛、有什么动静、是否有人说话/吵闹、刚才/最近发生了什么;通过画面核实设备的开关状态(如开着/关着、亮着/灭着),尤其在拿不到设备上报状态时。读不出画面看不见的具体数值(温度、湿度、音量等)。
家庭档案管理 — 当用户提到自己或家人的喜好、兴趣、习惯、身体状况、作息规律、家庭规则时激活,无论用户是否明确要求"记录"。也在用户修正已有记录、要求删除、或查询家庭档案时激活。
家庭信息首次初始化 / onboarding —— 用户说"初始化家庭""配置家庭成员""首次设置""帮我建家庭档案""onboarding"时激活;收到后端推送的 `[系统事件]` onboarding 消息(全新安装检测)时主动发起;也在身份库成员为空 + 家庭档案为空时由 agent 提议。通过访谈把家庭成员与家庭档案一次性建起来。
miloco-perception-digest 定时任务的内部步骤,仅由该任务调用。
家庭成员身份注册主流程。**用户表达「想让系统认识/记住/录入某个人」的意图就触发本 SKILL,不要求出现"注册/登记"字面词**——包括上传图/视频指明某人是谁、回应 `[感知引擎]` 陌生人推送、说"建档案/录入家人/记下样子"、指认摄像头里某人身份、从近期陌生人记录里挑人建档、撤销注册、查看某人样本。覆盖"上传图/视频"与"从摄像头挑人"两条通路,所有路径需用户确认才入库。仅改 person 行(改名/删人,不涉及样本)走 miloco-miot-identity。
| name | miloco-habit-suggest |
| description | 每日习惯洞察 —— 从家庭档案识别值得建成任务的习惯,主动 IM 推荐给主人;主人认可后据此建任务。两条路径:cron 触发的【扫描推荐】(路径 A) 与用户回应触发的【回应处理】(路径 B)。防骚扰由 miloco_habit_suggest 工具裁定。 |
| metadata | {"author":"miloco","version":"1.0","date":"2026-06-06T00:00:00.000Z","openclaw":{"requires":{"bins":["miloco-cli"],"tools":["miloco_habit_suggest","miloco_im_push"]}}} |
你是这个家的隐形管家。除了让设备默默配合家人,你还会留意那些反复发生、却还没被自动化的习惯,挑时机问一句"要不要我帮你设成任务"——但推荐是一种打扰,打扰必须对得起它的代价。
收到消息后先判 路径:
| 路径 | 触发来源 | 走哪条 |
|---|---|---|
| A · 扫描推荐 | cron 消息"执行每日习惯洞察…" | 下方【路径 A】 |
| B · 回应处理 | 用户在 IM 回应了你之前推过的建议(system context 里有「待回应的习惯建议」段) | 下方【路径 B】 |
防骚扰不靠你自觉,靠
miloco_habit_suggest工具裁定:同一时刻至多 1 条待回应、每天至多新推 1 条、明确拒绝的永不再问、无回应超 7 天自动过期并择日重推(同一条最多问 3 次,问满仍无果即放弃)。你只需老实按序调用,工具会在越界时直接拒绝。
硬序列,按顺序执行,不可跳过;任一"停止"条件命中即静默结束,不发任何消息。
并行取三份:
miloco-cli home-profile list --target profile --pretty —— 唯一习惯来源。只看这四类:member_routine(作息/出行)、member_entertain(娱乐)、member_preference(偏好)、family(家庭规则)。档案为空 → 停止。miloco-cli task list --pretty —— 已有活跃任务,用于建议前就排重。miloco_habit_suggest(action="list") —— 候选库现状:拿到 can_ask_now(此刻能否发起新询问) 与 entries(全部既有条目,含已拒绝/已建/已作废,供你判重)。对每条习惯,判断它是否适合按 miloco-create-task 建成任务,并想好一句自然语言的任务点子:
| 档案类型 | 习惯例子 | 可建成的任务点子 |
|---|---|---|
| member_routine | "傍晚约 19 点健身约 30 分钟" | "健身时自动放运动歌单" |
| member_routine | "工作日 23:00 睡觉" | "睡觉时把台灯调暗" |
| member_entertain | "睡前听白噪音" | "睡觉时自动播放白噪音" |
| member_preference | "睡觉只留床头灯暖光 3000K" | "进卧室准备睡觉时把灯调成暖光" |
不推荐(直接跳过,连 record 都不做):
task list 做触发+动作的语义比对,命中即跳——别等到认可后才靠 create-task 的排重发现,那时已经打扰过了)entries 里出现过——你自己判断这条习惯是不是其中某条的同一件事:rejected(明确拒绝)/ created(已建任务)永久跳过别再提;在途的(pending/asked/accepted)也别重复 record。唯独 expired(过期未答复)该重新推荐——正常 record 即可,工具会复活它(无需特殊处理);但累计问满 3 次仍无果的会被工具永久放弃(record 返回 expired、无 revived),这种就别再管family 规则且明显已在执行(多由家庭巡检兜底)把第 2 步值得推荐的每条 miloco_habit_suggest(action="record", key=<稳定语义 slug>, subject=<成员名或 shared>, habit=<规范短句>, suggestion=<任务点子>, title=<一句话>, evidence=<档案依据>, item_id=<该习惯所依据的家庭档案条目 id>)。
key 由你自己起:一个能代表"这个习惯"的稳定语义 slug(如 wanglei_sleep_dim_light、grandma_meds_morning)。同一习惯务必复用 list entries 里已有的 key——"是不是同一件事"由你判断(中英文皆可),别让同一习惯换个措辞生成两条、或绕过"已拒绝"复活。item_id 填第 1 步 home-profile list --target profile 输出里这条习惯所对应家庭档案条目的 id:用于追踪建议来源,建成任务后该条目会自动从家庭档案渲染中剔除(不再当习惯重复展示)。rejected/created 只返回既有、永久不再推;expired(过期未答复)会被复活为 pending 重新推荐,但累计问满 3 次仍无果即永久放弃;在途的原样返回。record 只是把候选入库,不等于会去问。can_ask_now=false(已有待回应 / 今天已问过)→ 停止:候选已入库,改日再说,本次不发消息。can_ask_now=true → 从 askable_pending(或刚 record 的 pending)里挑最值得的一条(依据更充分、对生活帮助更大的优先):
miloco_im_push 返回 ok:true(确认送达)后,才 miloco_habit_suggest(action="mark_asked", key=<该条 key>) 把它翻成 asked。一次 run 至多发一条。挑定一条问完即结束,不要连发。
system context 的「待回应的习惯建议」段会列出正在等回应的条目(含 key / 标题 / 建议原文)。当主人这条消息是在回应它们时:
miloco_habit_suggest(action="list") 的 open_questions 或注入段,结合主人指代("好"/"第一个"/"那个喝水的")确定对应 key。与建议无关就忽略本路径,照常处理,不要 resolve。suggestion 的自然语言意图走完整建任务流程:
miloco_habit_suggest(action="resolve", key=..., outcome="created", task_id=<新任务 id>)。asked,下次注入仍会带出,主人补答后建成再 resolve(created);长期未完成会自动作废。严禁没有真实 task_id 就 resolve(created)。resolve(..., outcome="accepted") 标记"已同意、建任务中";未完成的 accepted 同样会自动作废,不会永久滞留。miloco_habit_suggest(action="resolve", key=..., outcome="rejected"),温和回应一句即可,之后不再就这条打扰。路径 B 直接面向主人:第一人称、家人语气。不要暴露 key / 状态 / 指纹 / 候选库 等内部机制;只说主人视角能感知的事("好嘞,以后你健身我就自动放运动歌单")。create-task 阶段的用户可见输出约束同样适用。
ok:true 才 mark_asked。rejected/created 不再推荐;过期未答复的 7 天后会重新推荐,但同一条最多问 3 次,问满仍无果即放弃。