📋 智能表单 · 列表
核心理念
说"记一下"就完事了。用户不需要选类型、填字段——说了就自动归类存好。
零门槛:记一下 xxx 即可
自动分类:根据内容判断是支出/出货/日志/其他
图片也可:发张收据说"记一下",自动识别并保存
数据存储
workspace/memory/list-data/ 目录,每种记录类型独立
JSON:
memory/list-data/
├── expenses.json # 支出
├── shipments.json # 出货
├── logs.json # 运行日志
├── photos.json # 图片归档(自动识别类型时用)
└── ... # 自动创建的新类型
记录格式:
{
"config": {"fields": {"category":"text","amount":"number","note":"text"}},
"records": [
{
"id": "uuid",
"timestamp": "2026-05-19T19:00:00+08:00",
"data": {"category":"餐饮","amount":200,"note":"晚饭"},
"tags": [],
"attachments": []
}
]
}
脚本工具
所有数据操作通过 scripts/list.py,模型不直接改 JSON:
操作 命令
新增记录 python3 scripts/list.py add --data '{"k":"v"}' [--image ]
查询记录 python3 scripts/list.py query [--from DATE] [--to DATE] [--filter JSON]
周期汇总 python3 scripts/list.py summary [--from DATE] [--to DATE] [--by category]
列出类型 python3 scripts/list.py types
新增类型 python3 scripts/list.py new-type --fields '{"字段":"类型"}'
删除记录 python3 scripts/list.py delete
核心工作流程
用户说「记一下 XXX」,自动判断类型并保存:
判断逻辑(由上到下匹配):
含金额数字 → expenses(支出),如"记一下今天吃饭200"
含出货/发货/件数 → shipments(出货),如"记一下发了50件到广州"
含日志/运行/状态 → logs(运行日志),如"记一下服务器正常"
含图片附件 → photos(图片归档),无文本时用"图片归档"类型
其他 → 问用户确认类型,或创建新类型
操作步骤:
判断属于哪个类型
提取关键字段(金额/分类/数量/目的地等)
如该类型 JSON 不存在 → new-type 自动创建,按内容推断字段
python3 scripts/list.py add --data 'JSON' [--image ]
回复确认"已记录"
判断示例:
用户说 自动识别 存入
"记一下今天吃饭200" expenses {category:"餐饮",amount:200,note:"今天吃饭"}
"记一下发了50件到广州" shipments {product:"未指定",quantity:50,destination:"广州"}
"记一下服务器宕机了" logs {system:"服务器",status:"异常",detail:"宕机"}
拍收据说"记一下" expenses 存图片,自动尝试读取金额
用户问"查一下 x月花了多少" → query + 模型加工输出趋势。
用户说"月底总结/本月花了多少" → summary,按分类聚合。
用户发图片说"记一下":
保存图片到 memory/list-data/attachments/
如果模型支持图片识别 → 分析图片内容,提取关键信息
用提取的信息填充字段(收据金额/合同日期等)
保存记录 + 关联图片
⚠️ 注意:图片自动识别需要大模型支持图片识别能力(如 GPT-4o、Claude 3.5 Sonnet 等)。如当前模型不支持,仅做图片存档,需用户手动补充描述。
Cron 定时问用户要不要记一笔:
openclaw cron add \
--name list-remind-expense \
--cron "0 21
*" \
--tz "Asia/Shanghai" \
--message "list-remind: 睡前记账时间到~ 今天花了多少?" \
--channel feishu --to <目标> \
--session isolated --no-deliver
内置类型模板
模型在自动创建类型时参考以下模板结构:
expenses(支出) — 字段:category(text), amount(number), note(text)
分类:餐饮/交通/购物/娱乐/医疗/学习/生活/其他
shipments(出货) — 字段:product(text), quantity(number), destination(text), note(text)
logs(运行日志) — 字段:system(text), status(text), detail(text)
状态:正常/异常/维护
photos(图片归档) — 字段:description(text), tags(text), date(text)
不在模板中的类型由模型推断字段并 new-type 创建。
用户引导
首次使用
用户第一次触发 skill(或说「怎么用」)时,在回复末尾附上简短功能指引:
📋 智能表单已激活!试试:
• 记一下 — "记一下今天吃饭200"(自动分类支出)
• 查一下 — "查一下五月花了多少"
• 月底总结 — "本月花了多少"
• 拍照 — 发收据说"记一下",自动识别
• 还能记录出货、运行日志等
每次回复后末尾提示
成功记录、查询、汇总后,末尾加一句简短引导:
场景 末尾提示
记录成功 ✅ 已记录 💬 回复「查一下」查看记录
查询完成 💬 回复「记一下」继续记录,或「月底总结」看汇总
汇总报表 📊 本月已汇总 💬 回复「流水」查看完整清单
不确定时主动问
用户说得太模糊时,先问清楚再操作:
你是想记一笔支出、出货,还是其他?或者直接说「记一下 xxx」我自己判断