CtrlK
BlogDocsLog inGet started
Tessl Logo

miloco-home-profile

家庭档案管理 — 当用户提到自己或家人的喜好、兴趣、习惯、身体状况、作息规律、家庭规则时激活,无论用户是否明确要求"记录"。也在用户修正已有记录、要求删除、或查询家庭档案时激活。

72

Quality

90%

Does it follow best practices?

Run evals on this skill

Adds up to 20 points to the overall score

View guide

SecuritybySnyk

Passed

No findings from the security scan

SKILL.md
Quality
Evals
Security

家庭档案管理

记录家庭档案的目的不是"存档",而是让 miloco 越来越懂这家人——后续控制设备、给建议、写通知都会参考档案,贴合成员的偏好与习惯。所以记得准、记得全,比记得多更重要:脏数据(重复、过期、张冠李戴)会让后续操作变笨。

何时激活

主动场景:

  • 用户明确告知家庭信息:"我们家 3 室 1 厅"、"爸爸不喜欢灯太亮"、"晚上 10 点后不要播报"
  • 用户查询家庭档案:"查看家庭档案"、"我爸的作息是什么"
  • 用户要求修改/删除记录

被动场景(对话中自然提及,无需用户说"记录"):

  • 用户提到自己的喜好/兴趣:"我喜欢喝咖啡"、"我不喜欢太甜的"、"我最近在看《三体》"
  • 用户提到家人的信息:"我妈对花粉过敏"、"我爸每天早起跑步"、"弟弟喜欢打篮球"
  • 用户提到生活习惯/规律:"我一般 11 点睡"、"周末我们全家会一起吃早餐"

被动场景下,先完成用户当前请求的主要回答,然后静默写入档案(无需向用户确认)。

命令使用(必须遵守)

操作家庭档案使用 miloco-cli home-profile 命令,不要直接编辑 profile.md 文件:

  • miloco-cli home-profile list --target profile — 查看当前档案
  • miloco-cli home-profile profile-write --ops '...' --user-edit — 写入/更新/删除条目
  • miloco-cli home-profile commit — 提交保存

工作流

  1. 先拉全量档案(任何增删查改前必做):执行 miloco-cli home-profile list --target profile

    家庭档案不再随系统提示词注入,必须每次现拉:写入要条目 id(merge / replace / delete 都要 id),不拉全量会写重复 / 改错条目,查询只凭记忆会漏答。每次都重新拉、不要复用上一轮输出(档案随时可能被其它 session 更新)。

  2. 判断意图
    • 查询 → 基于全量档案返回相关内容
    • 更新(含被动记录)→ 进入写入流程
  3. 执行操作(执行 miloco-cli home-profile profile-write 并带 --user-edit):
    • 全新信息 → op add,传入 entry
    • 补充确认已有 → op merge,传入 id
    • 修正/更新已有 → op replace,传入 id + entry
    • 要求删除 → op delete,传入 id
  4. 提交:执行 miloco-cli home-profile commit 保存
miloco-cli home-profile profile-write --user-edit --ops '[
  {"op": "add", "entry": {"type": "member_preference", "subject_id": "<person_id 或留空>", "subject_name": "爸爸", "content": "喜欢 24°C 制冷", "evidence_log": ["2026-05-29 20:10: 用户告知爸爸偏好24度"]}}
]'

条目格式

entry 字段:

  • type: 分类(类型枚举见下方)
  • subject_id: member_* 类型优先绑定身份库 person_id(从 miloco-cli identity member list 查得);其它类型留空
  • subject_name: 关联主体显示名/兜底
    • member_* → 成员名(如"爸爸"),多成员共同适用时 "shared"
    • family → 固定 "shared"
    • space/device → 空间名/设备名(如"主卧"、"小米空调"),通用信息 "general"
  • content: 一句话描述
  • confidence: 1.0(用户直接告知,带 --user-edit 时自动设定)
  • source: "user_told"(带 --user-edit 时自动设定)
  • evidence_log: ["YYYY-MM-DD HH:mm: 用户告知 <原话摘要>"]

type 分类

type含义示例
member_persona成员画像(家庭角色、身份、外貌)"爸爸是家里的主厨"
member_health体质健康(过敏、禁忌、慢性病)"妈妈对花粉过敏"
member_routine日常习惯(作息、出行规律)"爸爸通常 7:30 出门上班"
member_entertain娱乐习惯(观影、游戏、音乐)"妈妈睡前听白噪音"
member_preference个人偏好(温度、光线、饮食)"爸爸喜欢 24°C 制冷"
family全家共同遵守的规则/约定(仅规则,非家庭构成信息)"22:00 后全屋静音"、"访客来访自动开走廊灯"
space空间环境(户型、朝向、动线)"主卧空调出风口对床头"
device设备信息(常用功能、操作习惯)"客厅空调制冷需 5 分钟达温"

subject 命名规则

  • member_ 类型*:subject_id = 身份库 person_id(优先);subject_name = 成员名(如"爸爸"),多成员共同适用时 subject_name = "shared"subject_id 留空
  • family 类型subject_name 固定为 "shared"(家庭规则天然多主体)
  • space/device 类型subject_name = 空间名或设备名(如"主卧"、"小米空调"),通用信息 subject_name = "general"

宠物与家庭构成归类(避免误入 family)

  • family 仅指"全家共同遵守的规则/约定",不是任何家庭相关信息的兜底类。
  • 宠物视为一个非人成员主体:相关信息按维度归入对应 member_* 类型,subject_name = 宠物名(如"旺财"),subject_id 留空(宠物不在身份库)。
    • "养了一只小狗旺财" → member_persona,subject_name="旺财"
    • "旺财每天傍晚要遛" → member_routine,subject_name="旺财"
  • 家庭构成/成员关系(家里几口人、谁是谁的什么人)→ member_persona,subject_name 为对应成员;全家整体构成事实可用 subject_name="shared"。

写入原则

  • 只写持久知识:习惯、偏好、规则、空间特征
  • 不写临时状态:"爸爸今天还没回来"不写,"爸爸通常 18:00 回家"写
  • 精简表达:每条 content 简洁明了,不加冗余修饰
  • 安全过滤:不记录密码、证件号、银行卡、API Key 等敏感信息
Repository
XiaoMi/xiaomi-miloco
Last updated
First committed

Is this your skill?

If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.