fincon
用凭证而非补丁来结账。
FinCon 将支付网关声称已结算的金额与银行实际收到的金额进行核对,写入复式记账分录,并把剩余部分交还——排序、定价并路由到相应的工作台。每一笔匹配都附带审计员无需我们即可重新推导的算术证明。
问题
对账软件已经能匹配 90–99% 的交易。 Trintech 宣称 99% 以上。NetSuite 自带带置信度评分助手的 N:M 规则。这个问题已经解决了,任何宣称"我们的 AI 匹配得更好"的产品,都是在一个人人都无需帮助的维度上竞争。
自动化之后仍有两项成本存活,而它们都不是匹配问题。
尾部异常回来时不附带任何原因。 银行流水自动化将一次对账从大约 47 分钟缩短到仅剩异常处理——这一个统计数字就说明了一切:已匹配的记录从来不是成本所在。但失败的 1–10% 以一条扁平队列的形式返回,财务主管只能逐行手工重新推导上下文。量降下来了。单件成本没有。
而且匹配率会衰减。 自动匹配率是维护出来的,不是一劳永逸的。一种新的供应商格式会悄悄降低匹配率,直到有人写一条规则;而规则编写被工程团队把持——所以理解异常的人永远不是能修复它的人。
财务主管今天的工作:拉取三份导出文件,在支付层级匹配(因为行级匹配不可能),把差额记为补丁,对不上时在 Excel 里耗三天,手工录入日记账,然后看着同样的尾部异常下个月原样回来。
Related MCP server: MCP-Finance-Reconciliation
解决方案
开放输入,验证提交。 模型提出方案。确定性引擎证明。具名的人类做决定。
AI 承担三项工作,而这三项恰恰是需要它的
这不是一个外挂聊天机器人的规则引擎,也不是一个猜测算术的模型。模型被精准指向那些确定性系统无法完成的工作:
读取无人配置过的格式 | 一种我们从未见过的布局的结算文件。模型读取十二行原始数据并编写解析规范——分隔符、表头行、最小货币单位、非 ISO 日期。无需集成项目即可摄取。 |
为尾部异常命名 | 算术无法解决的内容连同引擎推导出的近似匹配一起交给模型,约 2.1 秒 内返回一个代码、一个假设和引用的证据。 |
编写明天的规则 | 你用你自己的话解决一个断点;模型归纳出一条本可预防它的确定性规则。 |
系统随时间变得更确定性,而非更智能体化。 这与智能体产品通常的演化方向相反,而这正是全部论点所在。
而且它被围栏约束,这正是你可以放心开启它的原因
语言模型在多变量计算上从 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 个,按层级 |
误匹配 | 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 stdiomake test 和 make verify 不需要 API 密钥——模型支撑的门禁被排除并在输出中明确标注,因为一个被静默跳过却显示为绿色的门禁,正是这个仓库存在的全部理由所要对抗的失败。
无需我们即可验证
我们的主张不是*"相信我们的数字"*。把决策日志和源文件交给审计员,他们可以在一个无需账户、不触碰我们任何状态的公共端点上重新推导每一笔匹配:
curl -X POST https://fincon.astutecomputer.com/v1/verify \
-H 'content-type: application/json' -d @proof.json每个判定都会指明它是在哪个策略下产生的,并盖章标注该策略是生效中还是调用方提供——因为在别人带来的策略下产生的判定,绝不能与在我们自己的策略下产生的判定变得无法区分。
它尚不能做什么
一份只列出能做什么的 README 只是一本宣传册。
已在小规模验证 —— 数百行数据、两个网关、一种货币。
七处中断中有四处仍未命名。 已报告,而非猜测。
尾部不会记忆。 中断通过内容指纹识别,因此同一中断下个月仍可识别——但目前还没有任何信息表明*"连续第四个月"*。
settlement_3way绑定两条腿,而非三条。 网关 ↔ 银行已完成;订单登记 ↔ 网关是下一步,而收入流失正隐藏于此。一个模型、一个提示词、一个提供商,生成器和引擎出自同一作者——这正是对抗性测试集被冻结、变异测试套件存在的原因。
文档
常驻上下文——规则、词汇、八项不变量 | |
实时构建状态,附有证明每道关卡的命令输出 | |
问题、方案、权衡 | |
当前实际运行的内容 | |
流程及其价值 | |
每个界面及其回答的问题 | |
完整的 AWS 资产 | |
ADR——其中两项不可逆 |
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
- AlicenseAqualityBmaintenanceAI agents that automate bookkeeping, bank reconciliation, and month-end financial close for SMBs and CA firms.261MIT
- AlicenseNot gradedqualityCmaintenanceAutomates month-end close reconciliation tasks including bank statement matching, GL account reconciliation, intercompany balance checking, and close task tracking.1Apache 2.0
- AlicenseNot gradedqualityBmaintenanceAn 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
- AlicenseNot gradedqualityAmaintenanceDeterministic verification for AI-generated analysis. Reconciliation, consistency and Excel-integrity checks that stop the line when the numbers don't add up.1MIT
Related MCP Connectors
AI agents for bookkeeping, reconciliation, and financial close for SMBs.
Deterministic signed verification of numeric & financial claims for AI agents & spreadsheets.
Runtime AI governance: decision gates, human approval, hash-chained audit, compliance mapping.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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