Finance Skill技能使用说明
2026-04-01
新闻来源:网淘吧
围观:18
电脑广告
手机广告
金融技能
个人财务记忆层。解析账单,存储交易记录,查询支出。
数据存储位置
- 交易记录:
~/.openclaw/workspace/finance/transactions.json - 原始账单:
~/.openclaw/workspace/finance/statements/
存储约定:OpenClaw 工作空间 (~/.openclaw/workspace/) 是持久化用户数据的标准位置。这与会话记忆和其他钩子存储代理数据的位置一致。如果需要,凭证/配置将存放在~/.config/finance/目录下。

工具
1. 解析账单
当用户分享账单(图片或PDF)时:
⚠️ 重要提示:Telegram/频道预览会截断PDF!务必先使用 pypdf 提取以获取所有页面:
python3 -c "
import pypdf
reader = pypdf.PdfReader('/path/to/statement.pdf')
for i, page in enumerate(reader.pages):
print(f'=== PAGE {i+1} ===')
print(page.extract_text())
"
然后解析完整的文本输出:
- 从所有页面提取交易记录
- 返回 JSON 数组:
[{日期, 商户, 金额, 类别}, ...] - 运行
scripts/add-transactions.sh以追加到存储 - 验证总额与对账单匹配(支出总和应等于"购买总额")
提取格式:
Each transaction: {"date": "YYYY-MM-DD", "merchant": "name", "amount": -XX.XX, "category": "food|transport|shopping|bills|entertainment|health|travel|other"}
Negative = expense, positive = income/refund.
类别:
- 食品:餐厅、杂货、咖啡、快餐
- 交通:Waymo、Uber、加油、公共交通
- 购物:零售、在线购物
- 账单:公用事业、订阅服务
- 娱乐:电影、音乐会、主题公园
- 健康:药店、医生
- 旅行:酒店、航班
2. 查询交易
用户询问支出情况 → 读取 transactions.json → 筛选/聚合 → 回答
查询示例:
- "我上个月花了多少钱?" → 汇总指定日期范围内的所有负金额
- "我在食品上花了多少钱?" → 按类别筛选
- "显示我最大的开销" → 按金额排序
3. 添加手动交易
用户说"我在Y花了X美元" → 追加到transactions.json
文件格式
{
"transactions": [
{
"id": "uuid",
"date": "2026-02-01",
"merchant": "Whole Foods",
"amount": -87.32,
"category": "food",
"source": "statement-2026-01.pdf",
"added": "2026-02-09T19:48:00Z"
}
],
"accounts": [
{
"id": "uuid",
"name": "Coinbase Card",
"type": "credit",
"lastUpdated": "2026-02-09T19:48:00Z"
}
]
}
使用流程
- 用户:分享对账单图片
- 代理:通过视觉提取交易,确认数量
- 代理:运行添加脚本进行存储
- 用户:"我在食物上花了多少钱?"
- 代理:读取存储,过滤,回答
依赖项
jq— 用于JSON交易存储和查询 (apt install jq/brew install jq)pypdf— 用于完整PDF文本提取 (pip3 install pypdf)
经验教训
- Telegram会截断PDF预览——始终使用pypdf获取所有页面
- 验证总额——在导入前汇总提取的支出并与对账单总额进行比对
- Coinbase Card——不支持Plaid,仅限对账单上传
未来计划:Plaid集成
- 添加
finance_connect用于Plaid OAuth流程的工具 - 自动同步关联银行的交易记录
- 相同查询接口,不同数据源
文章底部电脑广告
手机广告位-内容正文底部


微信扫一扫,打赏作者吧~