记账技能,全家人可以通过不同渠道使用。
text
~/.openclaw/workspace/shared/ledger/
├── daily.json # 日常账本
├── social.json # 人情账本
└── borrow.json # 借款报销账本
字段类型说明datestring日期,格式 YYYY-MM-DDtypestring类型:收入 / 支出amountnumber金额categorystring类别recorded_bystring记录人:设计虱 / 大脸鱼housestring房屋(可选):军龙苑/保利大都会/东方文创园/洛铜嘉苑/龙锦嘉园childstring孩子(教育类别可选):根据用户设置notestring备注
支出:餐饮、交通、购物、工资、房租、水电、通讯、医疗、教育、娱乐、房屋维护、其他
收入:工资、奖金、投资、兼职、礼金、其他
当备注中包含教育相关关键词时(书本费、辅导书、辅导班、兴趣班、文具、学费、培训等):
孩子信息初始化:
当前用户孩子信息:
当备注中包含以下地点时:
字段类型说明datestring日期,格式 YYYY-MM-DDtypestring类型:压岁钱 / 随礼 / 其他targetstring给谁(谁收钱)giverstring谁给的giver_childstring给出方的孩子名字amountnumber金额notestring备注
字段类型说明datestring日期,格式 YYYY-MM-DDtypestring类型:借款 / 报销directionstring方向:借出 / 借入 / 报销给我 / 我报销personstring相关人amountnumber金额due_datestring应还/应报销日期(可选)statusstring状态:未还 / 已还 / 待报销 / 已报销notestring备注
飞书用户ID与记录人对应关系:
text
~/.openclaw/workspace/shared/ledger/user-mapping.json
文件内容示例:
json
{
"ou_7d82888fe950c222c78c4ba7e7ec9ab7": "设计虱",
"ou_2d8827e13291607774e7d518d1b5bfe0": "大脸鱼"
}
技能自动从消息元数据中读取 sender_id,转换为记录人名称。
自动判断账本类型:
时间处理:
示例:
text
记一笔账:50元 餐饮 午餐(自动使用当天日期)
记一笔账:2026-03-20 500 压岁钱 给儿子 张三 张小明
记一笔账:借出 李四 1000 借钱看病
# 如果用户提到房屋名称,需要确认:
用户:记一笔账:200 军龙苑 物业费
助手:你说的"军龙苑"是房屋名称吗?是否要记录为房屋维护?还有其他房产需要录入吗?
用户:是的,没有了
助手:已记录...
# 如果用户提到教育相关费用,需要确认孩子:
用户:记一笔账:500 学而思
助手:这是教育类费用,请问是给哪个孩子报的?家里有几个孩子,他们的昵称是什么?
用户:一个孩子,小明
助手:已记录,教育-小明...
用户:记一笔账:300 兴趣班
助手:请问是给哪个孩子报的?(之前记录有:小明)
用户:还是小明
助手:已记录,教育-小明...
text
查日常账 [时间]
例如:查日常账 2026年3月
text
查人情账 [时间]
例如:查人情账 今年
text
查借款账 [状态]
例如:查借款账 未还
text
统计日常账 [时间] [类别]
例如:统计日常账 2026年3月 餐饮
text
统计人情账 [时间]
例如:统计人情账 今年
text
统计借款账
例如:统计借款账
通过读写 JSON 文件实现。
日期格式统一为 YYYY-MM-DD
金额为数字,单位 元
状态更新需要明确说明
查询时支持模糊匹配(如查询"彤彤家"会匹配包含"彤彤"的记录)
时间默认值:用户未指定日期时,自动使用当前日期(动态获取)
账本类型自动判断:
房屋名称确认:当用户提到的内容可能包含房屋名称(军龙苑/保利大都会/东方文创园/洛铜嘉苑/龙锦嘉园)时,询问用户确认后再记录。确认后可询问:"还有其他房产需要录入吗?"