用自然语言管理个人物品数据库,支持添加、查询、编辑、统计、导出和到期提醒。
功能说明增删改查添加/编辑/删除物品,查看清单和详情日均成本自动计算购入至今的日均花费到期提醒即将到期/已过期进度条子物品套装内物品独立管理历史追踪记录价格、数量、状态变化导出支持 CSV / JSON / HTML 三种格式备份恢复JSON 格式完整备份,支持合并/完整恢复统计报告生成可打印的 HTML 报告(Ctrl+P 转 PDF)
用户数据存储在 用户家目录 下, 独立于技能目录,技能更新不会丢失数据:
操作系统数据路径WindowsC:\Users\用户名\item-management-data\macOS~/Library/Application Support/item-management/Linux~/.local/share/item-management/自定义可通过 OPENCLAW_WORKSPACE 或 XDG_DATA_HOME 环境变量指定
数据目录结构:
text
item-management-data/
items.db ← SQLite 数据库(所有物品数据)
backups/ ← JSON 备份文件夹
backup_20260428_180129.json
backup_20260428_120000.json
备份文件是纯 JSON,可以用任何文本编辑器打开,也是跨平台迁移的关键。
技能数据存在用户本地,如果重装系统/换电脑,数据会丢失。 每次重要变更后建议备份,并上传到云端。
bash
item backup # 一键备份到数据目录
item backup --path /path/to/backup.json # 指定路径
bash
item restore # 从最新备份恢复
item restore backup_20260428_180129.json # 指定文件
item restore --merge backup.json # 合并模式(只添加不重复)
bash
item info # 显示数据库路径、备份列表
重要:执行 item info 后,AI 必须额外展示云备份板块。
AI 需要检查配置文件 ~/.qclaw/workspace/item-management-cloud-config.json(工作区目录下),按以下规则展示:
1. 配置文件不存在(未配置云备份):
text
☁️ **云备份:未配置**
推荐方案:
| 方案 | 特点 |
|------|------|
| 📁 OneDrive/iCloud | 放到云盘同步文件夹,全自动同步 |
| ⏰ 定时+云盘 | OpenClaw 定时备份 + 云盘自动同步 |
| 📧 邮箱 | 备份发到自己邮箱,最简单 |
| ☁️ 微云 | 腾讯生态,扫码授权即可 |
| 🐙 GitHub Gist | 有版本历史 |
想配置的话直接说「帮我配置云备份」
2. 配置文件存在(已配置): 读取 JSON 配置并展示当前状态:
text
☁️ **云备份:已配置**
- 方式:{provider}(如 onedrive / weiyun / email / gist)
- 路径/目标:{path_or_target}
- 上次云端备份:{last_backup_time}
- 状态:✅ 正常 / ❌ 需要重新授权
💡 立即备份?说「备份物品到云端」
💡 想换方案?说「帮我配置云备份」
配置文件格式( item-management-cloud-config.json):
json
{
"provider": "onedrive",
"path": "D:\\OneDrive\\物品架",
"last_backup": "2026-04-28 19:30:00",
"auto_backup": true,
"cron_job_id": "job_xxx"
}
当用户成功配置云备份后,AI 必须创建/更新此配置文件。
item restore your_backup.json 恢复所有数据备份文件(JSON)可以上传到:
字段说明name物品名称(必填)brand品牌quantity数量(默认1)unit单位(默认"个")production_date生产日期(YYYY-MM-DD)expiry_date保质期到期日warranty_date保修期到期日opened_date开封日期location存放位置notes备注price单价(元)tags标签(逗号分隔)image_path图片路径status状态:active / consumed(已用完)/ discarded(已丢弃)
用户说:"记录一个新物品"、"添加一个..."、"买了个..."、"记录一下"
→ 解析参数,调用 item_cli.py add
python
# 示例解析
item_cli("add", "SK-II 护肤精华露",
brand="SK-II", qty=1, price=899.0,
expiry="2026-10-01", location="卧室梳妆台",
opened="2025-04-01",
tags="护肤,化妆品,面部护理")
item listitem list --sort branditem list --sort expiry_dateitem list --tag 护肤item get <id>item get 3item update <id> --qty 2item update <id> --opened 2025-04-01item update <id> --status consumeditem delete <id>(先确认)item sub-add 5 替换装 --qty 2item sub-list 5item history <item_id>
(自动记录:价格、开封日期、数量、状态变化)item expiring --days 7(默认7天)item expireditem stats
(输出:总品类数、总件数、总估算价值、按月新增趋势)item export --format csvitem export --format jsonitem export --format htmlitem export --out path.csv 指定保存路径item report 输出完整 HTML 页面
(含概览统计、即将到期、已过期、全量物品列表、月度趋势)
用浏览器打开后按 Ctrl+P → 另存为 PDF 即可打印item search SK-IIitem search 化妆品每个物品会自动计算日均花费(单价 ÷ 购入天数),显示在「单价」下方。
调用 _date_progress(expiry_str) 生成可视化状态:
text
days_until > 7 → ✅ 剩余 N 天到期(正常,绿色)
0 ≤ days_until ≤ 7 → ⏳ 即将到期:还剩 N 天(黄色预警)
days_until < 0 → ⚠️ 已过期 N 天(红色警告)
expiry_date 为空 → — 状态未知
物品架是 自然语言技能,通过对话触发即可。
意图触发词(任选其一)添加物品「添加一个XX」「记录一个新物品」「买个了XX」查看清单「我的物品」「物品清单」「列出所有物品」查看统计「物品统计」「我有多少东西」搜索物品「搜一下XX」「找找XX」物品详情「查看XX详情」「XX详细信息」更新物品「把XX的数量改成N」「把XX标记为已开封」删除物品「删除XX」「把手表删掉」到期提醒「哪些快过期了」「已经过期的物品」备份恢复「备份物品」「恢复物品数据」「帮我配置云备份」「备份物品到云端」存储信息「查看物品存储信息」「数据存在哪」「云备份状态」导出报告「导出CSV」「生成报告」搜索历史「查看XX的变更记录」
在终端中进入技能目录后执行:
bash
# 进入技能目录(自动定位)
cd ~/.qclaw/skills/item-management/scripts
# 查看物品
python item_cli.py list
# 添加物品
python item_cli.py add 手表 --price 200 --prod 2026-04-28
# 备份
python item_cli.py backup
💡 CLI 会自动将数据写入用户家目录(
~/item-management-data/), 无需指定路径,也不依赖技能目录。
每次回复用户物品相关内容时,回复末尾必须包含以下两行:
text
*💡 试试对我说:查看物品统计 / 搜索XX / 备份物品*
*想备份数据防丢失?直接说「查看物品存储信息」*
规则说明:
*想备份数据防丢失?直接说「查看物品存储信息」**...*),视觉上弱化,不抢主内容