跳转到主要内容

使用AI智能体进行会计处理

给外部AI智能体两项记账任务:导入银行CSV并先预览审查,以及通过BQL和报表输出回答余额问题。

交给外部AI智能体两项记账任务,并让每一笔账本变更都在你的审查之下:先预览检查再导入银行CSV,然后根据查询和报表输出回答余额问题。

通过CLI快速入门安装bea。本地导入、查询和报表命令不需要Beancount.io账户。你的聊天智能体只需要自己的订阅或API密钥。只有内置的bea ask辅助工具需要托管凭据,而这些配方不会用到它。

智能体做什么,bea做什么

智能体提出分类建议并起草查询。Bea验证账本结构并计算总额。你自己运行下面的每个命令。智能体永远不会直接写入你的账本。

配方1:使用智能体建议的分类导入账单

将银行导出转换为已验证的条目。智能体建议分类规则。预览和重复审查决定写入什么。

先决条件

你需要bea和一个全新的演示目录。不需要账户,也不需要Python导入器。

准备输入

创建目录和账本。明确的--file目标让每个命令都指向演示账本。

mkdir ai-agent-demo && cd ai-agent-demo
bea --no-input init books --currency USD --date 2026-08-01 --opening-balance "Assets:Checking 1000"
bea --file books/main.bean add open --date 2026-08-01 --account Expenses:Transport:Fuel -c USD

将此样本保存为statement.csv

Date,Payee,Narration,Amount
2026-08-02,Whole Foods,groceries,-20.00
2026-08-03,Shell,gas,-40.00
2026-08-04,Unknown Shop,mystery,-9.99

将这些分类规则保存为rules.toml

[[rule]]
match = "whole foods|trader joe|corner market"
account = "Expenses:Groceries"
 
[[rule]]
match = "shell|chevron|exxon"
account = "Expenses:Transport:Fuel"

复制任务提示

将此提示连同CSV内容一起粘贴给你的外部智能体:

为我的银行CSV行提出Beancount分类规则。
为每个商户建议一条TOML规则,包含匹配模式和
目标费用账户。绝不更改日期、收款方或金额。
无法自信分类的行保持不匹配:它们以标志!记入
Expenses:Uncategorized供我审查。我运行bea import
preview并在本地应用。你不写我的账本。

运行CLI等效命令

先预览,然后应用已审查的条目并验证结果:

bea --file books/main.bean import statement.csv --csv date=Date,amount=Amount,payee=Payee,narration=Narration --account Assets:Checking --rules rules.toml
bea --file books/main.bean import statement.csv --apply
bea --file books/main.bean check
bea --file books/main.bean list transaction --flag '!'
bea --file books/main.bean query "SELECT account, sum(position) WHERE account = 'Assets:Checking' GROUP BY account"

检查预期输出

预览报告3 ready, 0 exact duplicates, 0 possible duplicates并以0退出。它不会写入任何内容。应用运行报告Wrote 3 entries。检查报告无错误。!队列列出Unknown Shop-9.99 USD这一条不匹配行。余额查询报告支票账户中有930.01 USD。重复应用报告0 ready, 3 exact duplicates并写入0个条目。

审查并更正

阅读后在账本中刻意重新分类!行。检查通过只证明账本平衡。它对于Expenses:Uncategorized是否是正确账户没有任何说明。关于重复策略、冲突处理以及高级Python路径,请遵循银行CSV演练

配方2:无写入地回答余额问题

回答演示账本中的一个问题:2026年8月用于杂货和燃料的支出是多少。智能体起草查询。只读命令产生答案。

先决条件

你需要配方1中的演示账本或你自己的账本。下面的每个命令都是只读的。

复制任务提示

将此提示粘贴给你的外部智能体:

起草一个Beancount查询(BQL)来回答:2026年8月我在
杂货和燃料上花了多少钱。使用我的账户名称,与
bea list open列出的完全一致。只建议只读命令:bea query
或bea report,并带明确的--file目标。不要建议编辑账本
来修正令人意外的总额。意外的总额意味着查询
或账本需要审查,而不是补记条目。

运行CLI等效命令

针对明确的账本目标运行起草的查询,然后用报表交叉验证:

bea --file books/main.bean query "SELECT account, sum(position) WHERE account ~ 'Expenses' GROUP BY account"
bea --file books/main.bean report income-statement --time 2026-08

机器消费者在子命令前添加全局--json标志:

bea --file books/main.bean --json query "SELECT account, sum(position) WHERE account ~ 'Expenses' GROUP BY account"

JSON信封、退出码和全局标志位置遵循CLI参考查询语言指南记录了完整的BQL语法。

检查预期输出

查询报告Expenses:Groceries20.00 USDExpenses:Transport:Fuel40.00 USDExpenses:Uncategorized9.99 USD。杂货加燃料为60.00 USD。损益表一致:8月支出69.99 USD,净利润为-69.99 USD。JSON变体在data.rows中返回相同的行,列元数据在data.columns中。

审查并更正

针对错误账户名称的查询会在stderr上打印(no rows),但仍以0退出。将名称与bea list open输出进行比较,然后重新运行查询。绝不要通过编辑账本来匹配答案来修正令人意外的总额。修复查询或修复账本,然后重新运行bea check

当配方变成重复性工作时

上述提示适合手工驱动的单次任务。你每周重复的工作适合产品仓库中的版本化技能。下面的每个链接都打开技能的当前源码,其中包含自己的设置和触发说明。此CMS不保留这些文件的副本。

  • 从空目录启动新账本,使用beancount-init。它会创建账本文件、Fava运行器和Python项目。
  • 将银行导出转换为分类条目,使用beancount-import。它会暂存每一行,从账本历史中建议类别,跳过已导入的行,并仅在确认后写入。上面的配方1是该工作的手动形式。
  • 证明一个账户与其账单匹配,使用beancount-reconcile。它会将账本与账单进行差异比较,并在确认后落地期末余额断言
  • 从账本回答问题,使用beancount-ask。它运行只读查询,并显示每个查询及其数字。上面的配方2是该工作的手动形式。
  • 结束一个月,使用beancount-close。它会核对每个活跃账户,检查重复条目和审查标志,并将结算记录为一次提交。

完整集合位于规范技能树中。

给支持shell的智能体提供bea,或将技能加载到客户端

这是两个独立的步骤。安装bea绝不会安装或配置技能。

支持shell的智能体需要命令在其PATH中。通过CLI快速入门安装它,然后智能体就可以运行配方中显示的相同bea命令。智能体提出建议,你审查,bea验证。

技能通过客户端自身的技能机制加载到智能体客户端中。产品仓库向两个受支持的客户端暴露一个规范树:Claude Code在.claude/skills下读取它,Codex在.agents/skills下读取,作为指向同一源的链接目录。将客户端的技能位置指向你需要的技能文件夹,并持续阅读其当前源码以获取触发短语和更新。

无需bea ask的类Ask问题

配方2使用外部智能体加上只读的bea querybea report命令来回答账本问题。该路径是本地路径。它不需要账户,也不需要额外安装。

bea ask是一个单独的内置辅助工具。它既不是上面的配方,也不是beancount-ask技能。它将问题路由到托管AI服务,因此需要ask附加组件和托管凭据,如CLI参考中所述。先安装基础CLI,然后仅在需要托管答案时添加附加组件。

引用输出和CLI验证

上面的每个命令都在一个全新目录中针对已发布的bea 0.1.0包执行。引用的计数、余额和消息都是CLI验证。任务提示未针对任何模型运行。模型行为单独评估。

来源:https://beancount.io/zh/docs/Solutions/accounting-with-ai-agents