如何用 AI 记录支出并管理预算
你大概已经在某种程度上把 AI 用到了个人财务上。也许你会把银行账单贴进 ChatGPT,请它帮你整理支出分类;或者截一张手机银行 App 的图发给 Claude,让它算一算这个月买菜花了多少钱。
这种做法偶尔用一次当然没问题。
但问题也很明显:答案只留在聊天记录里。数据没有真正保存,支出没有持续追踪,下周你还得从头再来。AI 看完你的资料,给你一段总结,然后事情就结束了。
更有用的方式,是别让 AI 只会“看图说话”,而是让它直接操作你的财务数据。让它把交易记进系统、更新预算、核对余额,而不是只在对话里分析一遍。
真正落地的“AI 记账”是什么样
Expense Budget Tracker 的创建者 Kirill Markin,已经连续五年多为自己的每一笔个人交易做分类。最早他完全手动记账,后来为了提速,逐步把工具搭了起来。现在这套流程的核心,是一个能通过 SQL API 直接访问数据库的 AI 助手。
他每周的流程大致是这样:先下载银行账单(CSV 或 PDF),再把文件交给 AI,让它逐笔解析并写入系统。因为 AI 已经能从历史记录里看出他的分类习惯,所以大多数交易都能自动归类。Kirill 只需要快速检查一遍,修正少量错误就可以结束。整个过程大约 10 分钟,而过去手工录入通常要花一个小时。
这套方法同样适用于 Claude Code、OpenAI Codex、自定义 GPT,或者任何能调用 HTTP 接口的 AI 工具。关键不在插件,也不在浏览器扩展,而在于你是否给了 AI 一个真正能读写财务数据的入口。
怎么把 AI 接到你的财务数据上
Expense Budget Tracker 是一个基于 Postgres 的开源个人财务系统。它提供了一个 POST /v1/sql 的 SQL 接口:你通过 HTTP 提交 SQL 查询,它返回 JSON 结果。
要把任何 AI 接进来,你只需要三步:
- 打开应用,进入 Settings → API Keys → Create key
- 复制这把密钥(以
ebt_开头,而且只会显示一次) - 把两项信息交给你的 AI:接口地址和这把密钥
这样就可以了。
做到这一步,AI 就已经能查询和修改你的支出数据了。你不用自己跑 MCP 服务,不用安装插件,也不用维护额外的集成。只要 AI 能发 HTTP POST 请求,就可以直接接入。
curl -X POST https://api.expense-budget-tracker.com/v1/sql \
-H "Authorization: ApiKey ebta_your_key_here" \
-H "X-Workspace-Id: workspace-id" \
-H "Content-Type: application/json" \
-d '{"sql": "SELECT * FROM ledger_entries ORDER BY ts DESC LIMIT 10"}'
返回结果就是一个 JSON 数组。没有分页令牌,没有层层嵌套的对象,也不需要额外的 SDK。
有了这个权限,AI 能帮你做什么
有了 API 密钥之后,AI 操作的就是你的真实支出和预算数据,不是副本,不是摘要,而是正在使用的数据库本身:
解析并记下支出。 把银行账单(CSV、PDF,或者手机银行 App 的截图)交给 AI。它会读取每一行内容,识别金额、日期、交易对象和分类,然后向 ledger_entries 表写入 INSERT 语句。每一笔支出都会直接进入数据库。
按你现有的分类习惯自动归类。 AI 会先查询你已经在用的分类。如果你过去几个月都把 “Whole Foods” 归到 “groceries”,它就会沿用这个判断。你不用每次都重新解释自己的记账规则。
核对账户余额。 当 AI 把一份账单里的支出录完后,它可以查询 accounts 视图,把系统中的余额和银行显示的数字对一遍。如果对不上,你就知道要么有交易漏记了,要么出现了重复记录。
更新预算预测。 budget_lines 表里存的是月度预算计划,也就是每个月、每个分类的预期收入和计划支出。AI 可以读出本月实际发生的数据,和计划比较,再建议你调整下个月,或者直接替你更新。
处理多币种。 数据库会保留每笔交易的原始币种,汇率则每天从 ECB、CBR 和 NBS 获取。AI 不需要自己换算,数据库会在查询时完成币种计算。
这套数据结构本来就刻意做得简单直接:只有七张表,列名清楚,没有深层嵌套。正因为几乎没有容易误解的地方,AI 往往第一次就能写出正确的 SQL。
内置 AI 聊天,适合处理快速小任务
Expense Budget Tracker 的网页界面里也内置了 AI 助手。你在 Settings 中接入自己的 OpenAI 或 Anthropic API 密钥后,聊天窗口就会获得一个 query_database 工具,也就是应用内部使用的同一套 SQL 能力。
这对小任务很方便。比如你上传一张收据截图,让 AI 帮你新增一笔支出,确认一下就完成了。内置 AI 会按固定流程工作:先检查现有分类,看看有没有重复交易,核对余额,然后在你确认后才写入数据库。
如果你要处理更大的任务,比如批量导入多份银行账单、搭自动化流程,或者接入其他系统,那么外部 SQL API 会更实用。你可以在应用外用任何 AI 工具或脚本来调用它。
为什么直接用 SQL,比 MCP 服务和插件更省事
现在很多人喜欢用 MCP 服务、自定义 GPT 动作,或者某个模型厂商专属的插件,把 AI 接到外部工具上。但对个人财务来说,这些往往只是额外增加复杂度。
MCP 服务本质上是一个你得额外启动、还要一直保持可用的进程。它一旦崩掉,AI 在对话中途就会失去对财务数据的访问。自定义 GPT 插件只对 ChatGPT 有用;如果你改用 Claude,或者自己搭一个 AI 工具,这套东西就派不上用场了。至于厂商专属集成,也常常会随着平台 API 的调整而失效。
SQL API 则绕开了这些问题。接口无非就是一个 HTTP 地址,再加上一门叫 SQL 的语言。这两样东西都已经存在几十年了,也不会轻易消失。哪怕你把 AI 模型从一个提供商换到另一个提供商,还是同一把 API 密钥、同一个接口地址、同一套 SQL。AI 根本不在乎自己跑在 ChatGPT、Claude Code,还是你自己写的 Python 脚本里。
直接把数据库权限交给 AI,安全吗?
在合适的约束下,答案是安全的。Expense Budget Tracker 的 SQL API 做了多层保护:
每一条查询都会经过 Postgres Row Level Security。API 密钥绑定的是你的用户和工作区,所以 AI 只能看到并修改你的数据,碰不到别人的内容。
接口只允许数据操作,也就是 SELECT、INSERT、UPDATE、DELETE。AI 不能建表、删表、改权限,也不能在一个请求里执行多条语句。像 set_config() 这种可能带来权限提升风险的调用,也被明确禁止。
API 密钥在数据库里只保存 SHA-256 哈希,明文不会落库。你也可以随时在 Settings 里撤销密钥。如果你把某个工作区成员移除,对方的所有密钥也会自动删除。
接口还有速率限制:每个密钥每秒最多 10 次请求、每天最多 10,000 次。查询超时为 30 秒,每次最多返回 100 行。这些限制对 AI 记账和预算管理来说绰绰有余,同时也能防止请求失控。
让 AI 记账更顺手的几个实用建议
下面这些经验,能让整套流程顺畅很多:
保持分类名称一致。 AI 是从你已有的数据里学习的。如果你有时写 “restaurants”,有时又写 “dining out”,它就容易判断失准。每个分类尽量只保留一个固定名称。
每周核对一次余额。 AI 导入完账单后,把系统里的账户余额和银行数字对一遍。这样能尽早发现漏记或重复交易,避免误差越滚越大。
先从一个账户开始。 不要第一天就把所有银行卡、信用卡和投资账户一起接进来。先从最常用的活期账户开始,跑上几周,等流程稳定了再慢慢加。
每次都检查 AI 的分类结果。 AI 通常能分对大多数交易,但遇到新商户或不常见的支出时,还是可能出错。花五分钟过一遍很值得。你越早纠正,下次它读到的数据就越准确。
不要只记账,也要维护预算表。 记录已经花掉的钱当然有价值,但更大的价值来自一份滚动 12 个月的预算表:行是分类,列是月份,未来月份填的是预测。AI 很擅长根据实际支出模式更新这些预测。你可以让它在看完本月数据后,顺手把下个月的预算也调整好。
如何开始
- 在 expense-budget-tracker.com 注册使用(免费、开源),或者自行部署
- 进入 Settings → API Keys → Create key,复制 API 密钥
- 把密钥、工作区 ID 和接口地址(
https://api.expense-budget-tracker.com/v1/sql)交给你的 AI - 把一份银行账单交给它,让它帮你解析并记录支出
AI 会先识别你的数据库结构,匹配你已有的分类,然后开始写入交易。你只需要检查结果,修正少数不对的地方,很快就能跑起一套真正由 AI 协助维护的预算系统。
Kirill Markin 还专门写过一篇更详细的方法文章:How I Use AI to Handle My Expenses from Bank Accounts and Budget。五年里,他持续为每一笔交易做分类和追踪,这套方法也在多个国家、多个币种的真实使用场景里验证过。
这个工具采用 MIT 许可证,完整开源在 github.com/kirill-markin/expense-budget-tracker。你可以直接使用托管版,也可以自己部署,SQL API 在两种方式下都完全一致。