Skip to main content
Glama
Abishai95141

fincon

by Abishai95141

用凭证而非补丁来结账。

FinCon 将支付网关声称已结算的金额与银行实际收到的金额进行核对,写入复式记账分录,并把剩余部分交还——排序、定价并路由到相应的工作台。每一笔匹配都附带审计员无需我们即可重新推导的算术证明。


问题

对账软件已经能匹配 90–99% 的交易。 Trintech 宣称 99% 以上。NetSuite 自带带置信度评分助手的 N:M 规则。这个问题已经解决了,任何宣称"我们的 AI 匹配得更好"的产品,都是在一个人人都无需帮助的维度上竞争。

自动化之后仍有两项成本存活,而它们都不是匹配问题。

尾部异常回来时不附带任何原因。 银行流水自动化将一次对账从大约 47 分钟缩短到仅剩异常处理——这一个统计数字就说明了一切:已匹配的记录从来不是成本所在。但失败的 1–10% 以一条扁平队列的形式返回,财务主管只能逐行手工重新推导上下文。量降下来了。单件成本没有。

而且匹配率会衰减。 自动匹配率是维护出来的,不是一劳永逸的。一种新的供应商格式会悄悄降低匹配率,直到有人写一条规则;而规则编写被工程团队把持——所以理解异常的人永远不是能修复它的人。

财务主管今天的工作:拉取三份导出文件,在支付层级匹配(因为行级匹配不可能),把差额记为补丁,对不上时在 Excel 里耗三天,手工录入日记账,然后看着同样的尾部异常下个月原样回来。


Related MCP server: MCP-Finance-Reconciliation

解决方案

开放输入,验证提交。 模型提出方案。确定性引擎证明。具名的人类做决定。

AI 承担三项工作,而这三项恰恰是需要它的

这不是一个外挂聊天机器人的规则引擎,也不是一个猜测算术的模型。模型被精准指向那些确定性系统无法完成的工作:

读取无人配置过的格式

一种我们从未见过的布局的结算文件。模型读取十二行原始数据并编写解析规范——分隔符、表头行、最小货币单位、非 ISO 日期。无需集成项目即可摄取。

为尾部异常命名

算术无法解决的内容连同引擎推导出的近似匹配一起交给模型,约 2.1 秒 内返回一个代码、一个假设和引用的证据。

编写明天的规则

你用你自己的话解决一个断点;模型归纳出一条本可预防它的确定性规则。R-DUP-06 就是这样从财务主管的一句话中写出来的,此后每次结账都会触发。

系统随时间变得更确定性,而非更智能体化。 这与智能体产品通常的演化方向相反,而这正是全部论点所在。

而且它被围栏约束,这正是你可以放心开启它的原因

语言模型在多变量计算上从 95.6% 的查表准确率跌到接近零,而且它们会自信地失败。因此模型在架构上就被排除在算术之外——下面每一道边界都是一项测试,如果有人移除它就会失败:

  • 结账过程中零模型调用。 六个阶段,零模型调用,收据上白纸黑字。

  • 提案不能覆盖推导出的答案。 最多 P2,且不得覆盖 P0 ARITHMETIC——引擎推导出的条目甚至不会被提供给模型。

  • 不执行任何生成的代码。 没有 eval,没有 exec。适配器是由封闭的解析动词词汇表读取的声明式规范。

  • 没有任何工具拥有权威。 没有一个 MCP 工具接受策略、容差、符号约定或规则集——这一点是针对生成的模式进行校验的。

每一行都有证明,并有四种诚实的结局

每一笔被接受的匹配都会产出一个算术对象,而非置信度分数:双方的记录 ID、归零的残差、消耗的容差、触发的规则。没有通过证明的匹配就不是匹配,也不会出现在匹配计数中。

match M-0412   tier T2 subset-sum   rule R-017@v3
  payout    BANK/2026-08-14/CR         +4,378.21
  charges   87 × settlement rows       +4,612.90
  refunds    4 × settlement rows         -118.40
  fees     162 × settlement rows         -114.02
  ────────────────────────────────────────────
  residual                                  0.00    tolerance used 0.00 / 0.50
  verdict   PROVEN      provenance  P0 ARITHMETIC

所有剩余项按现金影响 × 账龄排序并路由到工作台。每个条目都以复式记账结束——入账结转追讨核销——以你的名义,受签名策略的双重约束。


影响

引擎存在之前编写的标签为基准,且仅从决策日志重新推导:

自动匹配率

90.9% — 22 个锚点中匹配 20 个,按层级 T0=17 T1=2 T4=1

误匹配

0.00%

异常覆盖率

6 / 6 — 每个植入的缺陷都被发现

分类

4 / 6 正确

歧义

1 / 1 被检测到并拒绝而非猜测

日记账

23 条分录,账目平衡 — 且 beancount 导出文件由 beancount 自身重新加载

结账时间

1.4 秒模型调用

通用性是测量出来的,不是宣称出来的。 第二次对账——印度所得税部门的 Form 26AS 对 TDS 应收分类账,按 TAN + 分部 + 季度 在四月至三月财年上匹配——在同一引擎上运行,引擎零改动,由其门禁逐字节断言。

在它承认自己不知道的地方。 一次真实结账中七个条目里有四个是 E14——引擎无法说明原因——这一点被打印在尾部异常的最上方,而不是被粉饰成一个看似合理的猜测路由到错误的工作台。E09 是值得停下来思考的一个:两个不同的子集在容差内求和得到相同的贷方金额,所以不存在一个正确的答案可选,而每个返回它找到的第一个子集的工具在那里都是自信地犯错。


让助手接入它——MCP

FinCon 是一个 Model Context Protocol 服务器。问一句*"十月结账被什么阻塞了,按金额从大到小?"*,它就会读取记录、运行一次确定性结账、验证一个证明、解决一个条目并签字确认——以你的身份,因为它持有你签发的令牌。

// Claude Desktop, Claude Code, or any MCP client
{
  "mcpServers": {
    "fincon": { "url": "https://fincon.astutecomputer.com/mcp" }
  }
}

通过 Cognito 进行 OAuth,按 RFC 9728 在源站进行发现,支持动态客户端注册。或者通过 stdio 针对你自己的文件运行:make mcp

21 个工具;其中 4 个可写入。 助手不是陌生人——它携带你的凭证,令牌上的 sub 与你的浏览器会话解析出的字符串相同。所以它能做你能做的事,而每个决定都会记录它来自哪扇门,一年后你仍能分辨哪些条目是你亲自处理的、哪些是你委托的。真正重要的边界——核销上限、预算、余额检查、无人打开过的条目——从来不是关于调用者是谁的问题,它们对智能体的约束与对人完全相同。


架构

模型提出 → 引擎证明 → 人类决定。 没有任何东西能在没有证明或没有署名的情况下跨越边界。

  SOURCES                    ENGINE  (no model, ever)                 RECORD
  ─────────                  ────────────────────────                 ──────
  bank CAMT.053 ┐            ┌──────────────────────┐
  settlement    ├─ intake ──▶│ block → match         │──▶ verify ──┐
  order register┘   │        │ T0 exact              │   re-derive │
  Form 26AS     ┘   │        │ T1 tolerant           │   from raw  │
                    │        │ T2 subset-sum         │   records   │
              5 proofs       │ T4 declared           │             ▼
              row count      └──────────┬───────────┘      ┌──────────────┐
              control total             │                  │ double entry │
              roll-forward         unmatched               │ + balance    │
              type/domain              │                   │   assertion  │
              idempotence              ▼                   └──────┬───────┘
                              ┌────────────────┐                  │
                              │ near-miss      │                  ▼
                              │ diagnosis      │           hash-chained
                              │ (arithmetic)   │           decision log
                              └───────┬────────┘                  │
                                      │ genuinely unexplained     │
                                      ▼                           │
                        ╔═════════════════════════╗               │
                        ║  MODEL  (proposes only) ║               │
                        ║  adapter synthesis      ║               │
                        ║  classification         ║               │
                        ║  rule induction         ║               │
                        ╚═══════════╤═════════════╝               │
                                    │ P2 at best, never overwrites P0
                                    ▼                             │
                        ┌───────────────────────┐                 │
                        │  HUMAN decides        │◀────────────────┘
                        │  book · carry · chase │
                        │  · write off · sign   │
                        └───────────┬───────────┘
                                    ▼
                          close pack · journal.csv
                          journal.beancount · POST /v1/verify

证明层级,因为一次真实结账中包含无法仅凭算术推导的条目。规则是绝不无声行动,而非拒绝你无法证明的东西

P0 ARITHMETIC 任何人都可重新推导 · P1 RULE 一条已提升并通过回归测试的规则触发 · P2 ATTESTED 具名人类批准 · P3 DECLARED 在声明了差距的情况下被接受。

托管在 AWS 上

线上地址为 https://fincon.astutecomputer.com——位于 ap-south-1 的一个 CloudFormation 堆栈。完整拆解,包括四个值得争论的决定以及这套架构刻意缺少的东西,见 docs/14-AWS.md

   Cloudflare DNS ──▶ ALB (ACM, TLS 1.3) ──▶ ECS Fargate ──┬─▶ EFS  runs + uploads
                       :80 → :443           1 task          ├─▶ Cognito   identity
                       /healthz 30s         256cpu/512mb    ├─▶ Secrets Manager
                                            screens · API   └─▶ CloudWatch Logs
                                            · MCP /mcp

选择 EFS 而非 S3,因为决策日志是仅追加且哈希链式的,写入方持有 POSIX 锁——而 flock 在 EFS 上会静默失效,这几乎终结了这个选择。公有子网,无 NAT——为单任务架构省下一个每月 32 美元的网关,换来的代价是一个只允许 ALB 进入的安全组。镜像按提交 sha 打标签,绝不使用 latest,这样回滚就有了可指名的对象。


运行

make setup     # uv sync
make gen       # regenerate the synthetic batches from a seed
make verify    # every green gate
make serve     # → http://127.0.0.1:8000/
make eval      # 4 ablation arms, 9 metrics, batches A and B
make mcp       # MCP on stdio

make testmake verify 不需要 API 密钥——模型支撑的门禁被排除并在输出中明确标注,因为一个被静默跳过却显示为绿色的门禁,正是这个仓库存在的全部理由所要对抗的失败。


无需我们即可验证

我们的主张不是*"相信我们的数字"*。把决策日志和源文件交给审计员,他们可以在一个无需账户、不触碰我们任何状态的公共端点上重新推导每一笔匹配:

curl -X POST https://fincon.astutecomputer.com/v1/verify \
     -H 'content-type: application/json' -d @proof.json

每个判定都会指明它是在哪个策略下产生的,并盖章标注该策略是生效中还是调用方提供——因为在别人带来的策略下产生的判定,绝不能与在我们自己的策略下产生的判定变得无法区分。


它尚不能做什么

一份只列出能做什么的 README 只是一本宣传册。

  • 已在小规模验证 —— 数百行数据、两个网关、一种货币。

  • 七处中断中有四处仍未命名。 已报告,而非猜测。

  • 尾部不会记忆。 中断通过内容指纹识别,因此同一中断下个月仍可识别——但目前还没有任何信息表明*"连续第四个月"*

  • settlement_3way 绑定两条腿,而非三条。 网关 ↔ 银行已完成;订单登记 ↔ 网关是下一步,而收入流失正隐藏于此。

  • 一个模型、一个提示词、一个提供商,生成器和引擎出自同一作者——这正是对抗性测试集被冻结、变异测试套件存在的原因。


文档

CLAUDE.md

常驻上下文——规则、词汇、八项不变量

STATUS.md

实时构建状态,附有证明每道关卡的命令输出

docs/01-DECISION-SPEC.md

问题、方案、权衡

docs/08-AS-BUILT.md

当前实际运行的内容

docs/10-THE-USER-FLOW.md

流程及其价值

docs/13-THE-SCREENS.md

每个界面及其回答的问题

docs/14-AWS.md

完整的 AWS 资产

docs/decisions/

ADR——其中两项不可逆

试用 FinCon →  ·  联系

Install Server
F
license - not found
B
quality
C
maintenance

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Servers

  • A
    license
    Not graded
    quality
    C
    maintenance
    Automates month-end close reconciliation tasks including bank statement matching, GL account reconciliation, intercompany balance checking, and close task tracking.
    1
    Apache 2.0
  • A
    license
    Not graded
    quality
    B
    maintenance
    An accounting-ops agent that reconciles payments against open orders, auto-books provably safe payments through a deterministic policy gate, and escalates exceptions to a human queue with audit trails.
    MIT
  • A
    license
    Not graded
    quality
    A
    maintenance
    Deterministic verification for AI-generated analysis. Reconciliation, consistency and Excel-integrity checks that stop the line when the numbers don't add up.
    1
    MIT

View all related MCP servers

Related MCP Connectors

View all MCP Connectors

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/Abishai95141/FinCon'

If you have feedback or need assistance with the MCP directory API, please join our Discord server