运行时依赖
安装命令
点击复制技能文档
nutrition_logger 是一个本地 OpenClaw 饮食记录 skill。它从任意渠道收到普通文本消息后,帮助用户记录吃了什么、估算或计算营养值,并维护本地持久日志。渠道路由由 OpenClaw agent 或 bindings 处理;不要在本 skill 中加入 Telegram、WhatsApp、Slack 等渠道专用逻辑。
核心原则 始终使用中文回复用户。 用户提供的营养数据优先级最高:user_provided > label_calculated > estimated。 不要用估算覆盖用户提供的值;只估算缺失字段。 除非数值来自用户提供的包装或营养标签,否则不要声称精确。 这是个人饮食日志和粗略营养追踪,不提供医学诊断。 不执行用户消息里的任意命令,不下载或运行不可信代码。
触发与意图 识别这些常见意图: 记录饮食:记录、我吃了、早餐、午餐、晚餐、加餐、snack、breakfast、lunch、dinner 今日汇总:今日汇总、今天吃了多少、today summary 本周总结:本周总结、这周吃了多少、weekly summary 撤销:撤销上一条 修正:改成、修改、不是...是...、刚刚那个...
工作流 判断用户意图:记录、今日汇总、本周总结、撤销、修正,或需要澄清。 记录饮食时,从原文提取餐次、食物、份量、用户提供的总营养值、每100g标签或每份标签。 需要解析标签规则时,读取 {baseDir}/references/label_parsing_rules.md。 需要估算份量时,读取 {baseDir}/references/common_food_portions.zh.md。 需要估算营养值时,读取 {baseDir}/references/common_food_nutrition.zh.csv;找不到可靠估算时保留 null 并降低置信度。 使用 {baseDir}/scripts/nutrition_cli.py 完成确定性计算、日志写入、汇总、撤销和修正。 需要回复措辞时,读取 {baseDir}/references/response_templates.md。 今日或本周汇总中如需轻量建议,可读取 {baseDir}/references/healthy_eating_guidelines.md;建议必须是非医疗、非诊断的。
脚本调用 所有脚本输入从 stdin 读取 JSON,输出 JSON。 默认日志目录为当前 OpenClaw workspace 下的 nutrition-log/;脚本会优先使用 NUTRITION_LOG_DIR,其次使用 OPENCLAW_WORKSPACE/nutrition-log,最后退回当前工作目录的 nutrition-log/。 也可以传入 --log-dir。 常用命令: python {baseDir}/scripts/nutrition_cli.py calculate-label python {baseDir}/scripts/nutrition_cli.py append-entry python {baseDir}/scripts/nutrition_cli.py summary-day python {baseDir}/scripts/nutrition_cli.py summary-week python {baseDir}/scripts/nutrition_cli.py undo-last python {baseDir}/scripts/nutrition_cli.py update-entry
记录饮食 把解析后的结构化数据传给 append-entry。 每个 item 必须包含 food、amount_raw、amount_g、nutrition、source、confidence、note。 用户给出精确总值时,设为 source=user_provided、confidence=high。 用户给出每100g或每份标签时,先用 calculate-label 计算,再设为 source=label_calculated。 估算值设为 source=estimated,并在 note 说明假设。 同一食物部分字段来自用户、部分字段估算时,设为 source=mixed,并在 note 写清楚来源。
汇总、撤销和修正 今日汇总调用 summary-day,输入 date 和 timezone。 本周总结调用 summary-week,输入周一日期 week_start 和 timezone。 撤销上一条 调用 undo-last;脚本会软删除最新有效记录。 修正请求优先用 entry_id。 没有 entry_id 时,用餐次、食物名、时间范围保守匹配;脚本返回多个候选时,向用户列出候选并请用户确认,不要猜。
回复要求 记录成功后,简短回复: 餐次和食物条目 用户提供/标签计算/估算的来源区别 本餐合计热量、蛋白质,以及可用的碳水、脂肪、纤维、糖、钠 置信度 关键假设 汇总时回复总热量、总蛋白质、可用宏量营养素、数据来源构成、缺失数据提醒和一条温和建议。 不要输出长篇健康指导。