智能摘要 DeepSeek
本文介绍如何用OpenClaw在微信中实现自然语言记账:发送“午餐 35”等消息即可自动归类记账、统计月账单、设置预算并提醒余额,数据存本地SQLite。部署分三步:用Docker启动OpenClaw容器、放入记账技能文件(skill.yaml和main.py)、接入微信。技能代码可自定义分类和预算阈值,并支持撤销、导出CSV等功能。

市面上有很多记账软件但大多不尽人意:收费的、记起来很麻烦的、越记账反而花得更多

有没有办法聊着天就把账记了?有了这个想法第一时间想到的就是前不久很火的openclaw,无论是QQ、微信、企业微信、飞书都对openclaw做了深度定制插件,不用下载多余软件,直接置顶在你的微信,使用时打开一句话即可完成记账。

在微信里随手发一笔「午餐 35」,机器人自动归类、记账、统计本月总消费,并按可编辑的每月预算配比在每次支出后提醒你剩余额度。整套系统跑在你的 OpenClaw 上,数据存本地。

它能做什么

你只需在微信里像跟朋友聊天一样把每一笔花销发出去,机器人帮你完成记录、归类、汇总和预算提醒,月底一眼看清钱花在哪、还能花多少。

- 📝 自然语言记账 — 发「午餐 35」「打车 28」「工资 +8000」,机器人自动识别金额、收支方向并归类。

- 🗂️ 自动分类 — 内置餐饮/交通/购物/娱乐/居住等 9 类关键词,无需手动选分类,发完即记。

- 📊 本月账单 — 发「本月消费」即可看到总支出、总收入、结余与各分类明细及占比条。

- ⚙️ 可编辑预算 — 支持按分类设绝对预算,或按配比百分比一次性设置所有分类预算,随时改。

- 🔔 剩余预算提醒 — 每笔支出后自动提醒该分类剩余额度,超支或接近上限(≥80%)触发告警。

- ↩️ 撤销与持久化 — 记错了?发「撤销」删最近一笔。所有数据存本地 SQLite,重启不丢。

工作原理

OpenClaw 由四个部分组成:渠道适配器、大模型大脑、技能插件、记忆系统。记账机器人就是其中一个自定义技能,挂载到微信通道上。

openclaw实战微信机器人记账-缘梦の镇
> 图 1:从微信发消息到收到记账回复的完整链路

设计要点:大模型负责理解你说的话并提取金额、分类、收支方向等参数,真正的记账、汇总、预算计算都在技能的 Python 逻辑里完成,结果确定可复现,不依赖模型的算数能力。数据存在挂载目录下的 SQLite 文件中,与 OpenClaw 容器解耦。

环境准备

两样东西到位即可开始:一个能跑 Docker 的机器(或云厂商一键部署的 OpenClaw)、一个微信号。

1. 确认 Docker 已运行

终端执行 docker --version && docker ps ,能输出版本号即正常。未安装请先装 Docker Desktop(Win/Mac)或 sudo apt install docker.io(Linux)。

2.安装微信官方插件

npx -y @tencent-weixin/openclaw-weixin-cli@latest install

为什么不用 WeChaty

OpenClaw 官方提供了微信插件,支持长连接接收消息、主动发送、对话记忆、文本/图片/语音/视频/文件等格式。这是官方推荐方式,稳定性远高于第三方 WeChaty 方案。

第一步:部署 OpenClaw

拉取官方镜像并启动容器,挂载好技能目录和配置文件,后续加技能无需改镜像。

创建工作目录并启动容器

# 1. 创建专属工作目录

mkdir -p ~/openclaw-bot/skills && cd ~/openclaw-bot

# 2. 拉取官方镜像(约 380MB,国内已加速)

docker pull ghcr.io/openclaw/core:2026.2.5

# 3. 启动容器(注意端口映射和挂载)

docker run -d \

  --name openclaw-bot \

  -p 3000:3000 \

  -v $(pwd)/skills:/app/skills \

  -v $(pwd)/config.yaml:/app/config.yaml \

  -e TZ=Asia/Shanghai \

  --restart=unless-stopped \

  ghcr.io/openclaw/core:2026.2.5

参数说明-v $(pwd)/skills:/app/skills把本地 skills 目录挂载进容器,放进来的技能会实时生效;-v $(pwd)/config.yaml:/app/config.yaml 挂载配置;--restart=unless-stopped 让容器开机自启。

启动后访问 http://localhost:3000,看到 Runtime Status: Healthy 即部署成功。

第二步:部署记账技能

记账机器人是一个自定义技能,由 skill.yaml(声明触发词/参数)和 main.py(记账逻辑)组成。本项目已为你写好,直接放入挂载目录即可。

1. 放入技能文件

把随附项目里的 skills/bookkeeping/ 整个目录复制到 ~/openclaw-bot/skills/ 下。

2. 放置配置文件

把项目里的 config.yaml 放到 ~/openclaw-bot/ 下(覆盖空文件)。

3. 重启容器加载技能

bash

docker restart openclaw-bot

刷新 Web UI 的 Skills 页面,应看到 bookkeeping: Enabled ✅。技能目录下的 data/bookkeeping.db 会在首次记账时自动创建。

热更新:修改 main.pyskill.yaml 后,只需 docker restart openclaw-bot 即可生效,数据库文件不受影响,历史记录保留。

第三步:接入微信

在前面安装插件时可登录,若未登录可在终端重新输入该命令生成登录二维码

openclaw channels login --channel openclaw-weixin

开始记账:对话演示

下面是真实的微信对话效果(来自技能自测输出)。发完一笔,机器人立刻回复记录详情并附带预算提醒。

记一笔支出(自动归类)

openclaw实战微信机器人记账-缘梦の镇

记一笔收入

openclaw实战微信机器人记账-缘梦の镇

超支自动告警

openclaw实战微信机器人记账-缘梦の镇

查本月账单

openclaw实战微信机器人记账-缘梦の镇

全部指令速查

你发送机器人行为
午餐 35 / 打车 28记一笔支出,自动归类
工资 +8000 / 报销 200记一笔收入
本月消费 / 本月账单查本月总支出/收入/结余 + 分类明细
设置预算 餐饮 2000设置某分类当月预算
预算配比 餐饮40 交通20 购物20 娱乐20 总额5000按比例一次性设置各分类预算
预算 / 余额查各分类预算执行情况
撤销 / 删除撤销最近一笔记录

进阶定制

技能代码完全开放,按需调整即可。下面是三个最常见改动。

1 增加自定义分类

main.py 顶部的两个字典里加一项即可,比如加「宠物」类:

python

# main.py 顶部

DEFAULT_CATEGORIES = [..., "宠物"]

CATEGORY_KEYWORDS = {

    ...

    "宠物": ["猫粮", "狗粮", "宠物", "疫苗", "洗澡"],

}

2 改预算告警阈值

默认已花满 80% 提醒「接近上限」。如想改成 70%,把 format_recordformat_budget_status 里的 80 改成 70 即可。

3 导出账单到 CSV

可在 main.py 加一个导出函数,触发词如「导出账单」,把当月记录写成 CSV 回传。技能返回纯文本,OpenClaw 会原样推送到微信。

技能开发零门槛

OpenClaw 的技能只需定义「什么时候触发」和「触发后做什么」。记账技能没写一行大模型相关代码,所有逻辑都在 Python 里,改完 docker restart openclaw-bot 即可生效。

附录:目录结构

随附项目的完整文件树,对照即可部署。

openclaw-bookkeeping/

├── config.yaml                 # OpenClaw 主配置(含微信通道开关)

├── requirements.txt            # 依赖说明(本技能仅用标准库)

├── README.md                   # 项目说明

├── skills/

│   └── bookkeeping/

│       ├── skill.yaml          # 技能声明:触发词 / 参数 / 返回格式

│       ├── main.py             # 记账核心逻辑(SQLite 持久化)

│       └── data/               # 运行后自动生成

│           └── bookkeeping.db

└── README.md

部署时把 skills/config.yaml 挂载进容器即可:skills 目录 → /app/skillsconfig.yaml/app/config.yaml

教程结束。开始记账,让每一笔花销都心里有数

---

记账技能skill文件下载