发布于

2026 年 Actual Budget 替代方案:多币种账本、AI 与 SQL API 对比

对比 Actual 的本地优先信封预算,与 Expense Budget Tracker 的多币种账本、共享工作区、MCP 和 HTTP SQL API,并用可核对的流程低风险试迁移。

Actual Budget 可以把账户标记为 EUR、USD 或 GBP,但做预算时,仍会把所有金额当成同一种货币来计算。它的官方文档对此说得很直白:Actual 本身不区分货币,也不原生支持多币种

这不代表 Actual 不是一款好用的预算应用。对于只使用一种货币、习惯信封预算法,同时看重离线使用、成熟导入功能和可选银行连接的家庭,Actual 反而可能更合适。

只有当底层数据模型开始跟不上需求时,寻找 2026 年 Actual Budget 替代方案才有实际意义。比如,多种货币的账户需要分别对账;两个人需要以明确的工作区成员身份协作;或者远程智能体、非 Node 服务需要通过 HTTP 访问数据。Expense Budget Tracker 正是为这些场景设计的,但它也放弃了 Actual 的一些便利,例如内置的财务文件导入和银行账户同步。

两款产品都无法不做取舍地直接替换另一款。

铁路工作人员在两套轨道系统之间测试一节车厢,两列火车都安全留在原位

先看结论

如果信封预算法决定了你平时怎样分配资金,每台设备都必须保留一份本地副本,或者你依赖 Actual 的文件导入、银行连接、规则、计划交易、报表和可选端到端加密,就继续使用 Actual。

如果你需要保留每笔交易的原币种、多人共享一套 SQL 账本、使用托管 MCP,或从远程脚本直接调用 HTTP API,可以试用 Expense Budget Tracker。但要先接受它最主要的限制:它没有银行连接。交易需要手动录入,或由你明确指示智能体处理指定的对账单或文件。智能体写入的数据、成对转账和最终余额,仍然必须由人核对。

Actual Budget 与 Expense Budget Tracker 对比

对比项 Actual Budget Expense Budget Tracker
预算方式 默认采用本地优先的信封预算法,也可改用跟踪型预算 以账本为基础的月度计划与实际对比表,并保留预算变更审计记录
数据架构 每台设备各有一份预算副本;选择部署 Actual 服务器后,可增加同步和依赖服务器的功能 托管服务或自托管 Web 应用,使用 Postgres 和工作区级 Row-Level Security
多币种 不原生支持;官方变通方案依赖实验性规则模板和手动填写的汇率 每笔记录按交易发生时的币种保存,读取时再换算为工作区的报表币种
交易录入 手动录入;支持导入 CSV、QIF、OFX、QFX 和 CAMT;可选连接银行后导入 手动录入,或明确让智能体处理 CSV、PDF、截图或对账单;不提供银行连接
规则与报表 规则、计划交易、对账,以及可自定义的报表仪表盘 预算表、连续余额、支出仪表盘和汇率影响分析
家庭协作 两个人可以打开同一份已同步的预算文件,但官方提醒同时编辑可能发生冲突 用户加入共享工作区;数据库策略隔离不同工作区的数据
编程接口 可无界面运行 Actual 的官方 Node 包;另有连接 Actual 同步服务器的官方 CLI 基于 OAuth 的远程 MCP,以及使用 ApiKey 认证的 HTTP SQL Agent API
隐私模型 本地优先;同步预算数据可选择端到端加密 集中式 Postgres 账本,可使用托管服务,也可通过 Docker 自托管

真正该问的不是哪一列功能更多,而是哪些需求绝对不能妥协。

如果你依赖信封预算法,Actual 仍然更强

Actual 默认把你已经拥有的钱分配进不同信封。它也提供传统的跟踪型预算,用于预测收入和支出,但信封预算仍然是它最有代表性的工作流。

本地优先架构同样是 Actual 的核心优势。预算保存在设备上;配置服务器后,设备会通过服务器同步变更,离线时仍可继续使用。虽然官方强烈建议配置服务器,但安装指南明确写着:不使用服务器时,文件导入、预算、报表、计划交易,以及预算文件的导入和导出依然可用。桌面应用还提供自动备份,以及安装后即可使用的离线能力。

它的日常交易流程也足够成熟:

  • Actual 的导入流程支持 CSV、QIF、OFX、QFX 和 CAMT 文件,会识别可能重复的交易,也能连接受支持的银行同步服务商。
  • 规则可以整理收付款方名称、设置分类和备注,并在导入时自动运行。
  • 计划交易可以处理周期性或一次性的预期交易,既能自动执行,也能等待确认。
  • 报表仪表盘支持自定义,并提供现金流、净资产、支出分析和自定义报表。
  • 可选的端到端加密会在同步预算数据离开设备前保护这些数据。

最后一点也有明确边界。Actual 的同步文档说明,端到端加密不覆盖设备上的本地数据,也不覆盖保存在服务器上的银行同步凭据。因此,全盘加密和服务器控制权依然重要。

如果这些功能已经解决了家庭里的实际问题,不要只因为另一款产品的功能清单更长就迁移。只有缺失功能带来的成本,已经高到值得更换一套有效的日常流程时,迁移才划算。

多币种改变的是账本,不只是界面显示

Actual 的官方变通方案没有掩饰它的工作方式:你需要为每个外币账户创建规则,把原始金额写进交易备注,手动提供汇率,再用换算后的数值替换交易金额。指南同时提醒,规则模板仍是实验性功能,可能存在错误,也可能在未来被移除。

如果只是偶尔有几笔境外消费,这种方式或许够用。但一个家庭如果经常收到 EUR 收入、持有 USD 储蓄、用 GBP 卡消费,而且每个账户都要按自己的币种对账,维护起来就会很别扭。

Expense Budget Tracker 会为每笔账本记录保留原始金额和币种。读取数据时,再用 ECB、CBR 和 NBS 的每日汇率换算成工作区的报表币种。系统不会把已保存的交易替换成预先换算后的金额。自有账户之间的转账也是正式的账本记录,包括跨币种转账。

这样可以分别完成三件事:

  • 按原始对账单上的币种核对每个账户
  • 把所有账户汇总到一种报表币种,同时保留原始金额
  • 不把账户间资金移动误算成新的收入或支出

多币种预算指南用跨境场景进一步解释了这套模型。如果所有账户都只用一种货币,这项优势基本就不存在了。

两款产品所说的“API”不是一回事

Actual 的官方 API 并不是 HTTP 或 REST 服务。API 文档中的 @actual-app/api 是一个 npm 包:它能以无界面方式运行 Actual,下载一份本地预算副本,再让 Node.js 代码查询或修改数据。其他编程语言没有官方支持。

官方 CLI 是另一条实用路径,覆盖账户、交易、预算、分类、规则、计划交易和 ActualQL。它的 README把边界写得很清楚:CLI 连接到正在运行的 Actual 同步服务器,并保留本地缓存;它不会直接操作本地预算文件。

如果你要用 Node 自动化一套现有的 Actual 环境,这两个接口都很有用,只是它们都不是通用 HTTP 端点。

Expense Budget Tracker 提供两种远程接口:

  • 托管 MCP 连接器使用 Streamable HTTP 和浏览器 OAuth。expenses:read 允许发现工作区、查看数据库结构并执行只读查询;修改数据还需要单独授予 expenses:write scope。
  • SQL Agent API使用长期有效的 ApiKey。脚本可以列出并选择工作区、查看允许访问的数据库结构、执行一条受限制的读取查询,或通过 HTTP 提交一条获准的 INSERTUPDATEDELETE 语句。所选工作区仍受 Row-Level Security 约束。

目标是在 Node 中自动化 Actual,就选 Actual 的 API。需要远程 MCP,或希望任何语言编写的脚本和服务都能直接通过 HTTP 访问,就选 Expense Budget Tracker。

银行连接与智能体导入,是两套不同的流程

Actual 支持通过配置好的服务商导入已连接银行的数据。它并不是持续自动刷新的数据流:当前的银行同步指南说明,需要从单个账户或 All Accounts 视图手动触发同步。即便如此,有了银行连接,每次更新时就不必先下载对账单,再把文件交给系统处理。

Expense Budget Tracker 没有银行连接。AI 聊天、MCP 连接器和 Agent API 可以协助整理对账单,但任务必须由你发起。你先提供 CSV、PDF、截图或对账单;智能体检查已有的数据库结构和数据;然后在你授权的范围内,起草账本记录或直接写入。

这套流程让数据来源和日期范围始终由你控制,但对账责任也留在你手里。任何写入完成后,都要检查交易笔数、日期、正负号、币种、分类、转账两端和期末余额。对账单解析器完全可能生成看似合理、实际上却有误的数据。

银行对账单导入指南详细说明了这套复核流程。如果你最想保留的便利就是直接连接银行,那么继续使用 Actual,或比较以账户聚合为核心的其他产品。

共享与自托管,解决的不是同一个问题

Actual 在不同设备之间同步一份预算文件。当前的多用户文档说明,两个人可以编辑同一个文件,但建议避免同时操作,因为冲突的修改可能带来问题。它可以共享,不过协作的基本单位仍然是预算文件。

Expense Budget Tracker 则以工作区为边界。用户加入同一个共享工作区,Postgres Row-Level Security 再把该工作区的数据与其他工作区隔离开。当个人和家庭财务需要明确的成员关系,而不是简单共用一份文件时,这种设计更合适。

是否自托管也不能替你做出选择。Actual 采用本地优先架构,服务器只是在这个模型上增加同步、浏览器和移动端访问、银行连接及编程接口。Expense Budget Tracker 则是围绕集中式 Postgres 数据库构建的 Web 应用;它的自托管指南使用 Docker Compose 部署应用服务、汇率 worker 和数据库。

两套架构对应的运维责任不同。使用 Expense Budget Tracker 时,数据库备份、凭据、升级和恢复都由你负责。使用 Actual 时,如果启用了同步服务器,你同样要运维并备份服务器,不过每台设备上还各有一份本地预算副本。应该选择那套在出问题时你真正愿意恢复的架构,而不是产品页面上听起来更独立的那一套。

用一次低风险试迁移做决定

Expense Budget Tracker 没有 Actual 的直接导入器。先继续把 Actual 当作事实来源,只选一小段数据并行测试。目标是在差异蔓延到多年历史记录之前,先把问题暴露出来。

1. 备份 Actual,并盘点无法带走的内容

创建一份新的 Actual 导出文件,并原样保存。再列出不会跟随交易记录迁移的设置:规则、计划交易、报表布局、银行连接、加密设置,以及所有自定义自动化。

2. 选择一个已有最终对账单的月份

选一个有代表性的账户,以及一个已经拿到最终对账单的完整月份。如果这个月包含转往另一个已记录账户的转账,也要把那个账户相应的对账单周期纳入测试。一个完整账期足以暴露退款、重复记录、正负号错误和分类缺口,同时又保留了清晰的审计边界。

3. 写入前先做好字段映射

在两套系统之外建立一张简单的映射表:

Actual 数据 Expense Budget Tracker 中的目标 需要提前确定的规则
账户 账本账户 稳定 ID、原币种和期初边界
分类 账本分类 沿用原名,或记录清楚唯一的替代名称
收付款方与备注 交易对手与备注 保留后续核对所需的来源信息
转账 两笔相互关联的账户变动 转出账户、转入账户、日期和两端的原币种金额
预算币种 工作区报表币种 仅用于合并报表,不能替代交易的原币种

试迁移阶段不要顺便重做分类体系。先证明两套系统对同一个月的记录能够一致。

4. 先测试五到十笔最容易出错的交易

如果账期中有这些类型,就各选一笔普通消费、收入、退款、手续费和转账。可以手动录入,也可以把范围明确的来源文件和目标工作区交给智能体处理。

使用 MCP 时,先只授予 expenses:read,查看数据库结构;仅在执行已批准的修改时,再增加 expenses:write。使用 HTTP API 时,先选择工作区、查看数据库结构,发送一条获准的写入语句,再查询受影响的记录。两个接口都没有暗藏 Actual 直接导入功能。

5. 按原币种逐项对账

检查:

  • 所选边界上的期初与期末余额
  • 交易笔数与日期
  • 正负号与原始币种
  • 退款与冲销
  • 每笔转账的两端
  • 测试过程中产生的重复记录

不要用报表币种下的汇总数,掩盖某个原币种账户里的差异。调整来源记录、映射规则或日期边界,直到该账户完全对上。

6. 导入当月剩余交易,再跑一遍日常流程

小样本核对无误后,加入该完整账期的其余交易。比较分类汇总、收入、支出、转账、原币种余额,以及换算到统一报表币种后的视图。把你在 Actual 中真正会看的报表重新做一遍,并记录哪些内容缺失,或存在实质差异。

接着,完整重复一次你预计每周会执行的流程。如果准备对账单和复核智能体写入所花的时间,比 Actual 的银行连接导入节省的时间还多,这次试迁移已经给出了答案。

7. 只有数据和流程都经得起核对,才正式切换

每次只增加一个账户和一个月份。在范围内的所有账户都完成对账、每项重要工作流也都有经过测试的替代方案之前,不要修改 Actual 及其备份。

演示界面更干净,不代表迁移成功。一个完整月份能够对账,再加上一套家庭愿意长期执行的日常流程,才算通过测试。

最后应该选哪一款?

如果你想要以下能力,选择 Actual Budget:

  • 本地优先、离线可用的信封预算法
  • 内置财务文件导入和可选银行连接
  • 成熟的规则、计划交易、对账和报表
  • 为同步预算数据提供的可选端到端加密
  • 围绕 Actual 服务器使用 Node 包或 CLI 做自动化

如果你需要以下能力,选择 Expense Budget Tracker:

  • 以交易发生时的币种保存账本记录,读取时再换算为报表币种
  • 正式记录账户间转账,并从账本计算账户余额
  • 成员关系明确、由数据库隔离的共享工作区
  • 面向兼容客户端的托管远程 MCP 连接器
  • 供智能体、脚本和服务调用的 HTTP SQL 接口
  • 直接使用托管版,或通过 Docker/Postgres 自托管

第一组需求更适合 Actual。第二组需求更适合在 Actual 旁边打开 Expense Budget Tracker,先测试一个已有最终对账单的月份。在数字和日常流程都经得起核对之前,不要动旧系统。

如果你还在比较更长的候选清单,YNAB 替代方案指南重点讨论引导式预算与系统控制之间的取舍;Quicken 替代方案指南则适合需要保留更多桌面财务工作流的迁移场景。

继续阅读