我一直有记账的习惯,从国内在北京的时候就开始记了。现在搬到新加坡已有5年,日常涉及的场景越来越多,开销也比较杂,记账就成了一件不得不做的事。
这几年我的记账方式一路迭代,从最开始的纯手工记录,到后来忍受官方弱智的AI,再到自己尝试写App,直到最近自己搭建了一个轻量的记账Agent,总算摸索出一套顺手、稳定且基本零成本的方案。这篇文章就按时间顺序,分享一下我这几年的折腾经历。
0x01 手工记账时代
刚来新加坡那会儿,记账最大的麻烦是多币种。
我这几年去了十几个国家,接触的货币也有十多种,再加上我经常从拼多多、淘宝买国内的产品,回国出差也是全部用微信和支付宝,多币种记账就成了必不可少的功能。之前在国内用过的一些记账软件,要么完全不支持多币种,要么支持得非常别扭,多币种混合记账时汇率结算经常一团糟。
2022年那会,我挑了一圈,我最后选了找到了这个百事AA记账。
这个App的优点就是对多币种支持比较好,它本身的功能也比较全面,而且是公司运营不是个人的娱乐产品,长期使用比较友好。于是那会我就注册了会员充值了VIP,创建了家庭账本可以支持我和我太太一起来记账。
但它也有缺点:
- 服务器国外访问速度很慢:虽然这个App支持多币种,但作为国内团队开发的应用,服务器大概率没做海外优化。前几年在海外用的时候,每次读取账单、记账等都会访问服务器,在海外就比较慢,后来官方好像对本地支持做了一些优化,减少了访问服务器的频次,所以速度会好一点;
- 只有移动端,没有网页版:这是国内App的通病,只能在手机上一点点点按,手机打字费眼睛费手指速度还慢。在外面吃饭、购物的时候懒得记也就算了,回家躺床上也还是得按屏幕,再配合每次确认都因为网络卡一小段时间,真的有点难受。
这就导致我会经常偷懒,记账也是断断续续的。
记账断掉是一件非常恶心的事情,特别是在国外——因为国内基本都是使用微信或者支付宝,即使断掉半个月,我们只要把微信、支付宝上所有的记录重新翻一遍,就可以把遗漏的基本都想起来并重新记上;但是国外的支付方式千奇百怪,有时用信用卡,有时是Apple Pay,有时是扫码,偶尔还要用现金,我信用卡有七八张,能扫码支付的App也有五六个,如果真的有一个月半个月没有记账,那回忆起来就很难了。
0x02 官方AI时代:
到了2024年,各种软件都在蹭大模型的热度,百事AA记账也顺势加上了AI记账功能。我当时想,如果能直接打字或者发语音让AI帮我记,能省去大量在手机上点点点的功夫,于是我当时直接换成了他们家的永久会员。
结果我后来发现官方内置的这个AI做得非常蠢,我还给官方提了好几次Bug反馈。
比如之前遇到过一个Bug,它对时空的分析是错乱的,有时能正常识别时间,有时就识别不出来:
除此之外,还有一个bug一直持续到今天都没有修复。比如今天是9月14日星期一凌晨,我跟它说“周五买菜8新”,很明显我的意思就是上周五,结果日期它没有算出来按照今天时间来记得,币种也弄错:
“周几”这个事情官方AI完全没考虑,我只能说“昨天”、“前天”或者“11号”这种才能准确找到日期。一旦出错,我就得人工点进去修改,修改的时候又因为网络比较慢,体验非常差。
我后来甚至想自己写一个App替代它。我尝试让ChatGPT帮我写了一个iOS记账App。不得不说,这整个过程中我没有自己写一行代码,完全是Agent帮我实现的iOS开发和测试。
但真做下去就发现,记账软件看起来简单,各种边角细节其实巨多:汇率自动更新、家庭账本多账户联动、数据备份与同步、UI和用户体验细节等等。我写这个只是自己用,又不上架卖钱,纯靠用爱发电,如果没有持续的收益激励,个人其实很难有动力长期去维护这样一个日常工具。
0x03 全民养“龙虾”时代
真正的转机是去年底到今年初那一波“龙虾热”。
因为这股热潮,很多国内原本封闭的工具软件开始考虑对外开放,百事AA记账也推出了一个叫“AI账本连接器”的功能:
官方的宣传页面虽然写着“连接你的龙虾助手”,但说白了,它其实就是把百事AA记账底层的记账、查账、分账等API,打包一个Skill+API服务的形式暴露出来。
看到这个功能我立马就精神了,因为这意味着我终于可以摆脱百事AA记账那个蠢到爆的官方AI,直接拿它现成的后端当数据存储,把理解语义、分析上下文这部分工作交给外部更好用的模型和Agent来做。
0x04 Pi Agent时代
接口有了,接下来就是怎么搭这个Agent。
我思考过下面几个问题。
1. 为什么不用龙虾?
去年底的时候我深入折腾过龙虾,但体验下来感觉这个项目实在是太臃肿了。配置复杂,运行时很重,而且社区更新频繁,经常升级一个小版本某些依赖或者服务就直接挂了。对于记账这种每天都要用的基础工具,我不希望三天两头去修环境,必须找一个更轻量、更稳定的方案。
2. Pi vs Claude Code
在公司做正经业务时,我们团队主要用Claude Agents SDK来构建复杂的Agent;社区里Claude Code也很火,但Claude Code本质是一个面向程序员终端写代码的命令行工具,系统prompt非常长,启动和执行都偏重,不适合拿来做日常常驻的即时通讯Bot。
对比下来,我最后选了pi这个非常小巧简单的Agent框架:
- 代码量少,结构极其简单,几乎没有多余的抽象;
- 核心就是消息循环和工具调用,自带Telegram插件,很容易包装成一个Telegram Bot;
- 占资源极少,扔在后台几乎不用管,也不会三天两头报错。
我甚至没写什么代码,我就直接拿pi官方的@earendil-works/pi-agent-core作为Agent,然后装一个Telegram插件就齐活了。整个架构非常干净:Telegram Bot(接收我的文字、图片、语音) -> pi Agent -> 调用百事AA记账的Skill写入数据。
3. Gemini 3.8 Flash vs Deepseek v4.1
对于记账这种简单的工作,完全没必要用高级别的模型,最后进入决赛圈的就是Gemini 3.8 Flash和Deepseek v4.1 Flash,Deepseek v4.1 Flash的优势是便宜,Gemini 3.8 Flash的优势是多模态更强。
记账是一个需要多模态的任务,我会经常拍小票、截图账单等,有时候在外面记账可能还需要语音,所以对多模态识别准确率要求更高。
Gemini 3.8 Flash另外还有一个优势,我之前通过各种办法搞了很久的Google AI Pro会员,Google每月会送10美元的API credit。记账这种任务基本都是短文本或者单张流水截图的多模态识别,Flash模型的推理速度飞快,理解能力完全够用,价格也不算太贵(虽然相比于Deepseek v4.1 Flash还是贵了一些)。每个月送的这10美元额度根本花不完,相当于免费跑。
所以最后我选择使用了Gemini 3.8 Flash。
4. 写后台 vs Langfuse
最后一个要考虑的点就是消息管理。我在做这个项目的时候偶尔还是会遇到执行工具出错、token花费太多等各种问题,但现在的架构非常简单,要调试这些东西还挺麻烦的,所以我当时想着要不要做一个管理页面。
但实际上没有这么复杂,SaaS版本的Langfuse有免费额度,Langfuse官方也有针对pi的插件@langfuse/pi-observability-plugin,直接装上就行了。
这样在Telegram里每次记账,我都能在Langfuse后台看到:
- 这一次对话用的什么Prompt;
- 调了哪几个Tool、传参是什么;
- 输入输出花了多少Token、多少美元、耗时多久;
如果有识别不准的情况,看一眼Trace就能迅速知道是提示词写得有歧义,还是Tool参数漏传了,调优起来很方便:
0x05 实战效果:日常随手记与批量补账
这套东西跑起来之后,整个记账体验顺畅了许多。我的常见的场景就是下面两种:
1. 日常随手记
平时吃完饭,随手在Telegram里打一句“晚餐XXX新”,或者随手拍个小票发过去。Agent会根据当前发消息的时间推断日期,币种自动识别,分类自动选到“餐饮/晚餐”,也不需要二次确认,非常顺滑:
另一个好处是,有时候我们在超市购物的时候,可能买菜花了12块,水果花了8块,卫生纸花了6块,饮料花了2块。以前手工记录的时候不可能分的这么清楚,可能就记一个总账“买菜”了,但现在AI可以自动将这个receipt分成4笔记录下来。后续我们统计不同分类的支出时也会更加游刃有余。
2. 批量回溯补账
如果我平时犯懒,忙起来几周没有记账的话……按以前的做法,攒了一个月的账单基本就不用补了,手敲能敲两个小时。
现在补账就特别省事。我只要打开手机银行或者支付软件,把这个月的账单流水截几张长图,一股脑发给Telegram Bot,附上一句话:
“全部入账,入账前检查一下是否有重复”
比如这张截图是我在今天去补5月吃饭的账:
处理过程类似这样:
- Agent先调用接口拉取5月份已有的账单数据;
- 分析截图里的18笔流水,对比时间、金额和商户,发现其中有3笔之前已经记过了,自动跳过;
- 剩下的15笔,它会根据交易发生的时间点自动区分这是“午餐”还是“晚餐”,并保留商户名字(比如GENEO MakanStreet);
- 先列出一份清楚的入账预览,确认无误后自动批量写进账本。
以前需要对着手机账单一笔笔核对几十分钟的事情,现在发张截图几秒钟搞定,而且完全不会记重。
3. 邮件记账
除了上面两种记账模式,还有一个我想做但还没做的功能——邮件记账。
国外银行基本都支持通过邮件来通知每一笔消费,那么我们可以做一个邮件监听器,只需要将银行来的通知邮件转发给这个监听器,然后监听器再将邮件内容发给agent,就可以实现快速记账了。
不过这块我暂时还没有做,因为这个架构和现有的telegram就完全不一样了,现在没有特别好用的pi邮件插件,可能还需要我自己来写代码。
0x06 总结
离去年年末已经快一年了,龙虾热褪去后,又有多少普通App能真的让AI融入自己的生态?对于国内的应用来说,我基本上不期待官方的AI能对用户有多大的帮助,毕竟在这个世界里任何一个动作都要计算token成本,任何一个改变都意味着开放。大部分App仍然把信息和功能锁在自己的一亩三分地里,框在手机大小的屏幕里,然后在首页集成一个AI助手或者AI搜索假装自己搭上了时代的列车。
这一点上,百事AA记账还是一个很好的工具,已经超过大量国内的App了。本篇文章作为AI记账的最佳实践,仅供大家参考。






