内容提要
作者分享AI记账实践:从手工记账、官方AI转向自建轻量Agent,利用百事AA记账API,结合pi框架、Telegram Bot和Gemini模型,实现多币种自动记账、小票识别、批量补账与去重,成本低且稳定,体验优于官方AI。
延伸解读
多币种记账的痛点与工具选择
作者因常驻新加坡且频繁跨国消费,面临多币种记账难题。国内软件多不支持或支持别扭,最终选择百事AA记账,因其多币种支持好、功能全面且由公司运营。但该App服务器海外访问慢、仅有移动端,导致记账体验差、易中断。这提示读者:选择记账工具时,需考虑自身消费场景(如多币种、跨地区)与工具的地域优化、平台支持等实际限制。
官方AI的局限与自建Agent的动机
百事AA记账的官方AI在时间解析(如“周五”指代不明)和币种识别上频繁出错,且修复缓慢,导致作者需手动修改,体验不佳。这反映了部分应用内嵌AI在复杂语义理解上的不足。作者因此转向自建轻量Agent,利用官方API作为数据存储,将语义理解交给更灵活的模型,以提升准确性和稳定性。
轻量Agent的技术选型与成本控制
作者选择pi框架而非臃肿的龙虾或面向程序员的Claude Code,因其代码简洁、资源占用少、自带Telegram插件,适合常驻Bot。模型上选用Gemini 3.8 Flash,兼顾多模态识别与速度,并利用Google AI Pro每月赠送的10美元额度实现近乎零成本。此外,通过Langfuse插件监控Token消耗和工具调用,便于调试优化。这为自建Agent提供了可参考的轻量、低成本方案。
批量补账与去重带来的效率提升
自建Agent支持日常随手记和批量补账。用户发送账单截图并指令“全部入账,检查重复”,Agent会拉取已有数据、对比时间金额商户,自动跳过重复项,并按交易时间分类(如午餐/晚餐),保留商户名,生成预览后批量写入。这解决了手工补账耗时易错的问题,尤其适合多币种、多支付方式的场景,显著提升记账效率和准确性。
Q&A
为什么作者要放弃百事AA记账的官方AI功能?
官方AI存在时空分析错乱、无法正确识别“周几”等相对日期、币种识别错误等Bug,且修改时因网络慢体验差。
作者自建记账Agent的整体架构是怎样的?
架构为:Telegram Bot接收文字、图片、语音 -> pi Agent -> 调用百事AA记账的Skill写入数据。
为什么作者选择pi框架而不是龙虾或Claude Code?
龙虾项目臃肿、配置复杂、更新频繁易挂;Claude Code是面向程序员的命令行工具,系统prompt长、启动执行重,不适合做常驻即时通讯Bot。pi框架代码量少、结构简单、资源占用少、自带Telegram插件,适合日常使用。
作者为什么最终选用Gemini 3.8 Flash模型?
记账需要多模态识别(拍小票、截图、语音),Gemini 3.8 Flash多模态更强;且作者有Google AI Pro会员每月送10美元API credit,额度足够覆盖记账任务,相当于免费跑。
自建Agent如何实现批量补账和去重?
将账单流水长图发给Telegram Bot并附言“全部入账,入账前检查一下是否有重复”。Agent先拉取已有账单数据,对比时间、金额和商户,自动跳过重复记录,然后根据交易时间区分午餐/晚餐并保留商户名,列出预览确认后批量写入。
作者用Langfuse做什么?
用于消息管理和调试。安装Langfuse的pi插件后,可以在后台查看每次对话的Prompt、调用的Tool及参数、Token消耗、费用和耗时,便于快速定位识别不准的原因并调优。
作者提到的邮件记账功能实现了吗?
还没有实现。作者设想通过邮件监听器将银行消费通知邮件转发给Agent来实现快速记账,但现有架构与Telegram不同,且没有好用的pi邮件插件,可能需要自己写代码。