DSH HUB
首页插件商店插件包社区排行榜资源发布指南
插件源码
返回插件目录

1317209322 /

1317209322/calorie-deficit-tracker

仅 Topic 仓库

豆包任务模式技能:本地食物库 + 脚本计算,固化热量与缺口计算流程

★ 0 Stars0 Forks0 IssuesN/A 社区评分0 已确认安装
查看 GitHub
README来源: main@023dbe74

calorie-deficit-tracker

一个给豆包任务模式(Doubao Agent Mode)用的技能(Skill):把热量计算从"每次联网搜索估算"固化为"查本地食物库 + 脚本计算"。

它解决什么问题

用对话式 AI 记账热量时,常见三个问题:

  1. 信源不稳定。每次问同一种食物,AI 联网搜索,命中的页面不同,返回的数值也不同。
  2. 计算不严谨。模型心算单位换算与累加,容易出现偏差。
  3. 数值不可追溯。给出的热量没有来源标注,无法判断该不该信。

本技能把这三件事分别固定下来:数据存本地库、算术交给脚本、每条记录带来源标注。同一食物、同一重量,任何一次询问都返回同一个数。

核心设计

数据与能力分离。技能目录只放规则和脚本;用户的身体档案、食物库、日志全部放在独立的工作区目录。技能升级不会碰到数据。

算术全部下沉脚本。模型负责理解输入和呈现结果,不做任何心算,也不得调整脚本返回的数值。

信任用户提供的数据。用户报出的摄入热量或运动消耗按原值计入,不追问来源、不评价可信度、不做来源分级。用户不知道具体数值时,技能才代为查询。

置信度评估的是计算链路,不是用户。评分只针对技能侧的不确定环节(活动档位是否确认、档案时效、单位换算是否为估算、库内数据是否可核验、记录是否完整),不对用户提供的数据做价值判断。

口径必须显式。生重、熟重、即食三种口径直接影响结果,同一食物生熟之间可差 25% 到 30%,因此必须标注清楚。

安装

  1. 下载或克隆本仓库。

  2. 把 skills/calorie-deficit-tracker 文件夹整个复制到豆包的用户技能目录:

    %LOCALAPPDATA%\Doubao\User Data\Default\.doubao\agent_mode\workspace\.user_skills\
    
  3. 重启豆包客户端,或退出任务模式后重新进入,触发技能扫描。

豆包会自动扫描该目录并同步,无需额外注册。判断是否生效:在任务模式里问一句"查一下米饭的热量",如果它去调用脚本而不是联网搜索,说明已加载。

目录结构

calorie-deficit-tracker/                   仓库根
├── .claude-plugin/
│   └── plugin.json                        插件清单
├── README.md
├── LICENSE
└── skills/
    └── calorie-deficit-tracker/           技能本体
        ├── SKILL.md                       技能主文件:流水线、硬规则、输出模板
        ├── references/
        │   ├── calculation-rules.md       计算口径、公式出处、安全阈值
        │   ├── data-standard.md           字段规范、来源分级、口径与查重规则
        │   ├── confidence-model.md        置信度评分模型
        │   └── unit-conversion.md         单位换算与生熟折算
        └── scripts/
            ├── fooddb.py                  食物库:初始化、录入、查询、更新、审计
            ├── calc.py                    摄入计算:查库换算、支持直接给定热量
            ├── gap.py                     消耗与缺口:档案、BMR、缺口、安全校验、置信度
            ├── exercise.py                运动消耗记录
            └── log.py                     日志与趋势统计

除 SKILL.md 外全部按需加载,不占用常驻上下文。

计算模型

BMR      = 10 × 体重 + 6.25 × 身高 − 5 × 年龄 ± 性别项    (Mifflin-St Jeor, 1990)
日常消耗 = BMR × 日常活动系数                             (FAO/WHO/UNU 2004 PAL 分级)
日总消耗 = 日常消耗 + 运动消耗                             (运动消耗由用户提供)
热量缺口 = 日总消耗 − 当日摄入

基础代谢采用 Mifflin-St Jeor 公式。原始文献:Mifflin MD, St Jeor ST, et al. A new predictive equation for resting energy expenditure in healthy individuals. American Journal of Clinical Nutrition, 1990, 51(2): 241-247。系统评价:Frankenfield D, et al. Comparison of predictive equations for resting metabolic rate in healthy nonobese and obese adults: a systematic review. Journal of the American Dietetic Association, 2005, 105(5): 775-789。

日常活动系数取自 FAO/WHO/UNU Expert Consultation Human energy requirements(FAO Food and Nutrition Technical Report Series 1, Rome 2004)第 5 章。该章表 5.3 给出 PAL 官方分级:久坐或轻度活动 1.40-1.69、活跃或中度活跃 1.70-1.99、剧烈活动 2.00-2.40。表 5.1 的析因计算显示,完全不含专门运动的久坐生活方式 24 小时时间分配对应 PAL = 1.53。

该系数刻意剥离训练:训练消耗单独记录后叠加。若沿用含训练的活动系数再叠加运动消耗,训练部分会被计算两次,单日缺口可虚高数百千卡。

安全阈值强制校验四项:摄入低于基础代谢、摄入低于绝对下限(女性 1200 / 男性 1500 kcal)、单日缺口超过 1000 kcal、预计周减重超过体重的 1%。

数据来源与核验标准

食物库支持四种来源等级,按可靠度区分处理:

等级 来源 处理
label 预包装食品营养成分表 直接采用
user 用户提供的数值或实测值 直接采用
authority 中国食物成分表、USDA FoodData Central、FAO/WHO 等 直接采用
online 联网检索所得 交叉核对并记录网址与日期

online 是唯一需要额外标注的等级,因为它是技能自己查来的中间环节,存在检索漂移。其余三种一律直接采信。

已入库示例数据均标注了具体来源,例如中国疾病预防控制中心营养与健康所的食物成分查询平台、USDA FoodData Central 的具体条目编号。

使用

技能加载后,用自然语言即可:

录入:午饭吃了 200 克米饭和一个肉包
运动:今天跑了 30 分钟,消耗 350
查询:帮我算一下今天的热量缺口
更新:我体重降到 68 了

也可以直接给定热量而不必倒推食物:午饭大概 600 卡。

数据存放位置

技能目录只读。用户数据固定在工作区:

<用户目录>\Documents\热量管理\
├── profile.json     身体档案
├── foods.json       食物库
├── logs\            每日日志
└── reports\         汇总输出

脚本默认解析该路径,可用 --workdir 参数或 CALORIE_WORKDIR 环境变量覆盖。

边界

本技能只做热量计算与缺口统计,不判断食物是否健康、不评价饮食结构优劣。不适用于医疗营养处方、疾病治疗饮食、进食障碍相关场景、孕期哺乳期营养方案、婴幼儿喂养与运动损伤诊疗。

所有消耗数值均为估算:基础代谢由人群回归公式得出,个体实测值通常存在约 ±10% 偏差;日常活动系数是区间估算。这也是置信度评分封顶 92 分而非满分的原因。

环境要求

Python 3.8 及以上,仅使用标准库,无第三方依赖。脚本已处理 Windows 控制台的中文编码问题,并在运行时禁用 __pycache__ 生成以保持技能目录整洁。

许可

MIT

—/ 5

暂无评分

需要先验证清单

Commit 023dbe740c54

社区评论

还没有评论,来写第一条。

DSH HUB

社区维护的 DSH 插件索引。不是 GitHub 或 DeepSeek AI 的官方产品。

社区资源API关于