safaiyeh-finance-skill

TotalClaw 作者 totalclaw

个人财务记忆层技能,可解析账单、存储交易记录并查询支出。支持 PDF 全页提取、分类汇总与手动记账,数据存储于 OpenClaw 工作区。

安装 / 下载方式

TotalClaw CLI推荐
totalclaw install totalclaw:totalclaw~safaiyeh-finance-skill
cURL直接下载,无需登录
curl -fsSL https://skills.taituai.com/api/skills/totalclaw%3Atotalclaw~safaiyeh-finance-skill/file -o safaiyeh-finance-skill.md
## 概述(中文)

个人财务记忆层技能,可解析账单、存储交易记录并查询支出。支持 PDF 全页提取、分类汇总与手动记账,数据存储于 OpenClaw 工作区。

## 技能正文

# 财务技能

个人财务记忆层。解析账单、存储交易、查询支出。

## 数据位置
- 交易记录:`~/.openclaw/workspace/finance/transactions.json`
- 原始账单:`~/.openclaw/workspace/finance/statements/`

*存储约定:OpenClaw 工作区(`~/.openclaw/workspace/`)是持久化用户数据的标准位置,与会话记忆及其他钩子存储代理数据的位置一致。如需凭证/配置,可放在 `~/.config/finance/`。*

## 工具

### 1. 解析账单
当用户分享账单(图片或 PDF)时:

**⚠️ 重要:Telegram/频道预览会截断 PDF!**
务必先用 pypdf 提取全部页面:

```bash
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())
"
```

然后解析完整文本输出:
1. 从所有页面提取交易
2. 返回 JSON 数组:`[{date, merchant, amount, category}, ...]`
3. 运行 `scripts/add-transactions.sh` 追加到存储
4. **验证总额与账单一致**(支出总和应等于「Total purchases」)

**提取格式:**
```
每笔交易:{"date": "YYYY-MM-DD", "merchant": "name", "amount": -XX.XX, "category": "food|transport|shopping|bills|entertainment|health|travel|other"}
负数 = 支出,正数 = 收入/退款。
```

**分类:**
- food:餐厅、杂货、咖啡、快餐
- transport:Waymo、Uber、加油、公共交通
- shopping:零售、网购
- bills:水电、订阅
- entertainment:电影、演唱会、主题乐园
- health:药店、就医
- travel:酒店、机票

### 2. 查询交易
用户询问支出 → 读取 transactions.json → 筛选/聚合 → 回答

**查询示例:**
- 「上个月花了多少?」→ 汇总日期范围内所有负数金额
- 「食物花了多少?」→ 按分类筛选
- 「最大支出有哪些?」→ 按金额排序

### 3. 手动添加交易
用户说「我在 Y 花了 $X」→ 追加到 transactions.json

## 文件格式

```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"
    }
  ]
}
```

## 使用流程

1. 用户:*分享账单图片*
2. 代理:通过视觉提取交易,确认数量
3. 代理:运行添加脚本存储
4. 用户:「食物花了多少?」
5. 代理:读取存储、筛选、回答

## 依赖
- `jq` — JSON 交易存储与查询(`apt install jq` / `brew install jq`)
- `pypdf` — PDF 全文提取(`pip3 install pypdf`)

## 经验总结
- **Telegram 会截断 PDF 预览** — 务必用 pypdf 获取全部页面
- **验证总额** — 导入前汇总提取的支出并与账单总额对比
- **Coinbase Card** — 不支持 Plaid,仅支持账单上传

## 未来:Plaid 集成
- 添加 `finance_connect` 工具用于 Plaid OAuth 流程
- 从已连接银行自动同步交易
- 相同查询接口,不同数据源