
财务共享 Agent:把对账、差异解释与催收提速,但绝不让模型直接记账
财务共享中心有大量高频、证据密集、可验证的工作:三单匹配、银行对账、月结差异、应收催收和审计取证。Microsoft 2026 年 9 月公布的 Agentic ERP 路线把 reconciliation、variance analysis、collections 和数据准备列为 Finance Agent 核心能力;Google 10 月案例中,Bradesco 将文档审核从 1 小时缩短到 5 分钟,并降低风险不一致。
这些场景适合 Agent,不代表可以把总账权限交给模型。正确设计是让 Agent 生产“可审核的会计建议”,由规则引擎和职责分离控制决定能否执行。
财务自动化的最小单位不是一次回答,而是一份证据完整、可重放、可拒绝的工作底稿。
用证据包隔离模型与总账
class ReconciliationPack(BaseModel):
run_id: str
company_code: str
period: str
ledger_lines: list[LedgerLine]
bank_lines: list[BankLine]
matched_pairs: list[Match]
unmatched_ids: list[str]
proposed_entries: list[JournalDraft]
evidence_hashes: list[str]
model_version: str
policy_version: str
模型可以解释“付款金额因手续费少 30 元”,但匹配条件、汇率来源、会计期间和科目可用性必须由代码验证。证据哈希确保复核时看到的材料与 Agent 决策时一致。
分录草稿必须通过确定性门禁
def check_journal(draft: JournalDraft, actor: Identity) -> list[str]:
errors = []
if sum(x.debit for x in draft.lines) != sum(x.credit for x in draft.lines):
errors.append("UNBALANCED")
if draft.amount > actor.auto_post_limit:
errors.append("APPROVAL_REQUIRED")
if draft.vendor_bank_changed:
errors.append("BANK_CHANGE_BLOCKED")
if actor.created_draft and actor.can_approve:
errors.append("SEGREGATION_OF_DUTIES")
return errors
Agent 没有 post_journal 通用工具,只能调用 submit_journal_draft。过账服务重新读取期间状态与审批链,使用幂等键防止重试产生重复分录。
催收 Agent 要优化现金而不是骚扰客户
应收 Agent 可以汇总历史承诺、争议、信用状态和联系人偏好,为不同客户选择提醒渠道和内容。策略层限制联系频次、工作时间、敏感客户与争议发票:
collection_policy:
max_contacts_per_7d: 2
suppress_when: [open_dispute, legal_hold, promised_payment]
auto_send_under_risk: low
require_review_for: [strategic_account, balance_over_100000]
log_fields: [invoice_ids, template_id, evidence, approver]
模型生成语言,规则决定是否发送。客户回复中的付款承诺要结构化写入 ERP,并设置下一次检查事件,而不是只留在对话历史里。
财务降本必须同时守住控制质量
核心指标包括自动匹配率、错误匹配率、月结天数、每个异常的人工触点、DSO、承诺兑现率、审计抽样通过率和重复过账数。节省工时但增加审计调整,不算成功。
首批应选择只读核对和草稿生成;第二阶段开放低金额、固定规则的自动处理;供应商主数据、银行账户、税务判断和重大分录始终保留双人控制。财务 Agent 的价值,是把财务人员从搬数据转向判断异常,而不是绕过内控。