关于 NumProof
NumProof 是面向 AI Agent 和电子表格工作流的开源 Python 客户端与 MCP 服务,用于确定性地验证数值和财务声明。它返回可复现的判定、来源信息及签名证据,而非让另一个模型评判声明。
主要功能
- 01用精确算术验证声明
- 02审计电子表格行与公式
- 03比较报告版本
- 04评估财务契约规则
- 05生成签名验证证据
- 06离线复核收据
适用场景
- 01拦截 AI Agent 输出的数值声明
- 02审计电子表格合计与利润率
- 03比较两个报告版本
- 04验证财务契约计算
MCP 相关
NumProof 的 MCP 服务允许 MCP 客户端调用托管验证 API,执行声明核验、电子表格审计等任务。可通过 `python -m numproof.mcp` 本地运行,也可连接托管描述文件。
配置
远程服务无需本地安装。选择你使用的客户端,复制配置或使用一键安装。
https://numproof.com/mcpclaude mcp add --transport http projecttron-numproof https://numproof.com/mcp{"mcpServers":{"projecttron-numproof":{"type":"http","url":"https://numproof.com/mcp"}}}在 Cursor 中打开{"servers":{"projecttron-numproof":{"type":"http","url":"https://numproof.com/mcp"}}}在 VS Code 中打开{"mcpServers":{"projecttron-numproof":{"type":"http","url":"https://numproof.com/mcp"}}}{"mcpServers":{"projecttron-numproof":{"serverUrl":"https://numproof.com/mcp"}}}命令在终端中运行;JSON 粘贴到对应客户端的 MCP 配置后重启。需要授权的服务会在首次连接时提示登录。
工具
4| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| claim | string | 是 |
详细介绍
NumProof
面向 AI Agent 和电子表格的确定性数值真值层。
你的 Agent 写道 “毛利率从 42.1% 提升到了 44.8%”,或 “工作簿内部一致”——NumProof 会以确定性方式告诉你,该数字应判定为 VERIFY、REFUTE 还是 ABSTAIN,并提供反例、单元格/公式溯源信息,以及带签名、可由机器校验的审计包。这采用精确算术和符号数学——不是让一个大模型来评判另一个大模型。
- ✅ 验证单条数学/财务声明,或在 CI 中批量验证数千条声明
- ✅ 审计
xlsx/csv行:加总、交叉加总、资产负债表勾稽、利润率、公式单元格——并提供溯源信息 - ✅ 对比两个报告版本;评估契约规则包(DSCR、Debt/EBITDA、流动比率等)
- ✅ 带签名的证据包(JSON + HTML/PDF/ZIP),任何人都可以离线重新验证
- ✅ API · 命令行 · MCP 服务 · 可选的 x402 按次付费
此仓库是开源客户端(SDK + MCP)。验证引擎作为托管服务运行——
pip install numproof,将其指向 API 即可。(架构与stripe-python相同: SDK 开源,验证引擎作为服务提供。)
在线演示(无需密钥):https://numproof.com · 文档:https://numproof.com/docs
30 秒快速开始
pip install numproof
from numproof import NumProof
np = NumProof.from_env() # NUMPROOF_API_KEY (get a free key: see below)
print(np.verify("120 + 90 + 340 + 15 == 565"))
# {'verdict': 'VERIFY', 'certificate': 'EXACT_ARITHMETIC', ...}
print(np.verify("a 50% loss needs a 100% gain to break even")) # VERIFY: (1-0.5)*(1+1.0)==1
print(np.verify("two 10% raises equal a 21% total increase")) # VERIFY
print(np.verify("operating margin is 18% when EBIT is 180 and revenue is 1000")) # VERIFY
不想安装?直接使用 HTTP:
curl -s https://numproof.com/demo -H 'Content-Type: application/json' \
-d '{"claim":"gross margin is 60% when gross profit is 600 and revenue is 1000"}'
免费 API 密钥:
curl -s https://numproof.com/signup -X POST -H 'Content-Type: application/json' -d '{}'
审计电子表格(包含溯源信息)
rows = [["Revenue", 1000], ["COGS", 400], ["Gross Profit", 600], ["Gross Margin", "60%"]]
print(np.audit_rows(rows)["verdict"]) # PASS (600/1000 == 60%, footing, ties, ...)
# covenant rule packs: DSCR, Debt/EBITDA, current ratio, custom thresholds
print(np.covenant_rows(
[["EBITDA", 500], ["Debt Service", 300], ["Debt", 1200]],
rule_pack="credit_covenants_basic",
)["verdict"])
每个审计/差异比较/契约评估结果都可以作为带签名的证据包以及便于阅读的 HTML/PDF 报告返回(format="zip")。接收者可以在不信任你或 NumProof的情况下验证:
curl -s https://numproof.com/audit/verify -H 'Content-Type: application/json' -d @bundle.json
# {"valid": true, "verdict": "PASS", "signer": "0x...", ...}
在 AI Agent 中使用(MCP)
NumProof 提供 MCP 服务,供 Claude/OpenAI 风格的 Agent 将其作为工具调用——在任何数值声明到达用户、报告或审计员之前进行把关。
python -m numproof.mcp
{ "mcpServers": { "numproof": { "command": "python", "args": ["-m", "numproof.mcp"] } } }
或者,让任意 MCP 客户端使用托管描述文件:https://numproof.com/mcp.json。
可运行的脚本(验证、审计、契约、Agent 把关、MCP)请参见 examples/。
为 Agent 框架即插即用地添加防护措施
在 Agent 执行操作之前验证其输出的数字,且可在你现有的框架中使用(numproof/integrations/——每个集成都采用延迟导入,因此 numproof 客户端仅依赖标准库):
# OpenAI Agents SDK — output guardrail that trips on REFUTE
from agents import Agent
from numproof.integrations.openai_agents import numproof_output_guardrail
agent = Agent(name="...", instructions="...", output_guardrails=[numproof_output_guardrail()])
- OpenAI Agents SDK —
numproof.integrations.openai_agents(输出防护栏/跳闸器) - Pydantic AI —
numproof.integrations.pydantic_ai(输出验证器;抛出带有反例的ModelRetry,让模型自行纠正) - LangChain —
numproof.integrations.langchain(一个 NumProofTool和一个输出检查器) - DeepEval (Confident AI) —
numproof.integrations.deepeval(确定性的NumProofMetric:VERIFY → 得分 1.0,REFUTE → 得分 0.0,并在.reason中附上反例) - Guardrails AI —
numproof.integrations.guardrails(HubValidator:REFUTE → 返回带有反例的FailResult,从而触发on_fail操作——重新提问/修正/抛出异常)
VERIFY → 放行 · REFUTE → 阻止/重试并提供反例 · ABSTAIN → 直接放行(可配置)。可运行示例见 examples/;只需安装你所使用的框架。
可独立复核的回执(无法伪造的部分)
任何判定都可以作为签名验证回执返回——你可以离线复核,无需信任传输过程或 NumProof:
pip install "numproof[verify]"
numproof-verify receipt.json --signer 0x<published-NumProof-signer>
# OK independently re-derived + signature valid
它会恢复 EIP-191 签名者(可检测篡改),并且对于 value/agg/identity/sequence
声明,会使用标准库 Fraction + sympy 独立重新推导判定。字段遭到篡改、签名者错误,或判定实际上不成立,都会明确报错——即使 NumProof 本身签错的回执,也会被重新推导发现。Agent 可以自行重新计算一个数字;但它无法出具一份独立的签名证明,让另一方接受。这种独立性——而非算术——才是产品的核心。格式 + 规范:RECEIPT_FORMAT.md。
为什么要确定性(以及这为何重要)
通用“AI 防护机制”会用一个模型来评估另一个模型——结果具有概率性,而且评估模型本身也可能产生幻觉。
NumProof 会精确重新计算数学结果(有理数运算 + 符号恒等式检查),并返回可复现的判定和追踪记录。当它无法证明某件事时,会说弃权,而不是猜测。对于金融、受监管领域和 Agent 工作流,“这个数字有可证明的正确性”胜过“另一个模型觉得它看起来没问题”。完整对比表:comparison.md。
定价
| 方案 | 价格 | 适用对象 |
|---|---|---|
| Sandbox | $0 | Web 演示 + 免费额度 |
| x402 PAYG | $0.005 / call | Agent 到工具,无需订阅 |
| Builder | $29/mo | API + MCP + CLI,2k 额度 |
| Pro | $99/mo | 批处理、webhook、CI、签名导出,10k 额度 |
| Finance Team | $299/mo | 5 个席位、版本差异、契约包、品牌化导出 |
此仓库包含什么
numproof Python SDK(NumProof 客户端)、MCP 服务以及可运行示例——均为托管 API 的轻量 HTTP 客户端。**采用 MIT 许可证。**验证引擎、金融审计逻辑、形式化(Lean)证明层级和签名功能均由托管服务提供,不在此仓库中。
发现了错误的判定?请提交 issue,并附上准确的声明——正确性就是整个产品的核心。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。