核心用法
Water Coach 是一款基于 CLI 的饮水管理工具,采用 Python 3 开发,支持多命名空间操作(water/body/analytics)。用户可通过自然语言与 Agent 交互(如“喝了2杯水”),由 LLM 解析后自动调用 water_coach.py 执行日志记录。核心功能包括:
- 智能饮水日志:支持实时或补录历史摄入,自动关联对话消息 ID 实现审计追踪
- 动态提醒机制:用户自定义提醒时间(非硬编码),结合心跳检测触发额外通知
- 身体指标联动:体重/体脂记录可自动建议或更新日饮水目标(默认公式:体重×35ml)
- 周期性分析:自动生成周/月度饮水报告
数据架构
采用 CSV 本地存储(water_log.csv + body_metrics.csv),关键设计为不存储累计值,所有进度均在查询时动态计算。drank_at 字段强制要求,确保跨时区/补录场景的准确性。审计功能需显式启用(audit_auto_capture),默认仅保存消息 ID 不读取对话内容。
显著优点
| 优势维度 | 具体表现 |
|---------|---------|
| 用户主权设计 | 饮水目标、提醒时间完全由用户配置,拒绝“一刀切”默认值 |
| 隐私可控审计 | 消息 ID 自动绑定,但对话内容读取需用户显式授权 |
| 自然语言交互 | LLM 前置解析模糊表达(如“2杯”“半瓶”),降低使用摩擦 |
| 动态智能提醒 | 基于当前进度与阈值的算法判断(`water dynamic`),非固定闹钟 |
| 开源可扩展 | 模块化结构(setup/dynamic/log_format 分离),支持 pytest 测试 |
潜在缺点与局限性
1. 本地存储瓶颈:CSV 格式在数据量增大后查询效率下降,无云端同步能力
2. 依赖外部生态:需 OpenClaw 的 cron 和 heartbeat 特性支持,部署门槛较高
3. 阈值算法黑箱:water threshold 和 water dynamic 的具体计算逻辑未在文档中披露
4. 多语言解析风险:示例展示葡萄牙语("eu tomei 2 copos"),但未说明 LLM 量词换算的准确率保障
5. 审计功能局限:启用 audit_auto_capture 后,对话内容读取范围未明确(单条/会话/全历史)
适合人群
- 健康意识觉醒者:需量化管理饮水、体重等基础健康指标
- 规律性工作者:能接受定时提醒机制,且有固定作息可配置
- 隐私敏感用户:偏好本地存储、明确授权的数据审计模式
- 技术接受度中等:熟悉或愿意学习基础 CLI 操作
常规风险
| 风险类型 | 描述 | 缓解建议 |
|---------|------|---------|
| 数据丢失 | 本地 CSV 无备份机制 | 定期手动备份 `data/` 目录 |
| 目标误导 | 体重×35ml 仅为建议,非医学处方 | 慢性病患者应咨询医生 |
| 隐私泄露 | 启用审计后对话内容可被读取 | 敏感话题讨论前禁用 `audit_auto_capture` |
| 依赖过度 | 动态提醒可能造成心理负担 | 合理设置提醒频率阈值 |