问一次,答案归你。
软件内部的大多数决策并不是推理问题。有多少行符合条件?那一列的合计是多少?有多少条缺值?这些都是对你已经持有的数据做算术。把它们发给模型,意味着为本来就可核验的东西按 token 反复付费,并换回一个你无法验证的答案。
把问题描述一次。模型组合出一份规格,地板决定这份规格是否可准入。你保留下来的,是一个离线、免费、长期有效的本地工具,并且自带推导过程。
Python 3.9+ · 仅标准库 · 无网络、无密钥、无模型、无遥测
工作方式
1 · 你描述问题
用自然语言,例如「已批准发票的总金额」。工具会打印一段提示,其中带着你自己的列名和一套封闭的原语词汇表。
2 · 模型组合规格
不是代码,而是一条流水线:rows → filter(approved) → sum(amount)。模型只能在词汇表内组合,没有通往 Python 的逃生口。
3 · 地板准入,再由人工批准
八项检查:所引用的列是否存在?数据能否支撑精确答案?是否确定性?校验器是否真的会拒绝错误答案?在缺乏证据时是否弃权?是否扎根于你的数据?之后,由人阅读工具计算内容的文字说明及其在你数据上的答案——因为准入门能证明流程,却证明不了它的含义。
4 · 工具归你
连同审核人的批准一起签名,并从你自己的机器上通过 MCP 提供服务。model_calls: 0,长期如此。
一个答案长什么样
{"status": "DERIVED",
"value": 1290.49,
"model_calls": 0,
"derivation": "rows -> filter(approved) -> sum(amount)"}
这条推导不是日志,它本身就是答案的依据,而且与地板准入时的那条字符串完全相同。置信度分数无法这样被审视,流水线可以。
它拒绝做的三件事
它不会猜。当没有证据时返回 NO_EVIDENCE,而不是一个看起来合理的数字。一个永远有意见的地板不是地板。
它不会运行未经准入的工具。规格带有准入它的那个地板的签名。手工改动之后,运行时会拒绝它、指名它,并继续提供其余工具。
它不会凭空造出一个领域。地板无法核验的问题会被报告为不可映射。那个问题确实仍然需要模型,而如实说出来就是输出本身,不是失败。
下载
运行时是仅依赖标准库、不含网络代码的 Python,小到足以在运行前通读。1.1.2 版现名 Perslis Floor,拥有独立页面、签名的演示与一行安装命令。
Perslis Floor 1.1.2 → 下载(zip)↓
echo 'releases@perslis.com ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIJfmXcRm2o52skHrajOCntbGMwPIB13CWnzt/tRGxXxd' > perslis_signers ssh-keygen -Y verify -f perslis_signers -I releases@perslis.com -n perslis-release -s SHA256SUMS.sig < SHA256SUMS grep ' perslis-floor-1.1.2.zip$' SHA256SUMS | shasum -a 256 -c - python3 floor-serve.py --data demo/data --tools demo/tools --check
SHA256SUMS · 签名 · README · GitHub ↗ · 可免费使用,包括商业用途
为什么准入门不在下载包里
准入门 —— 决定一份规格能否成为永久工具的那一部分 —— 不在这个包里。这是设计决策,而不是授权手段。
如果准入门随包发出,一份错误的规格就可以被手写、被加载,然后自信地、离线地、长期地作答,而回路中再没有模型能发现它。这比模型每次调用都出错更糟,因为不会有任何环节再去复查它。
因此准入门留在可被维护和审计的地方,而在你机器上运行的是一个执行器 —— 对执行而言是完整的,并且坦承自己仅止于此。运行时不含任何网络代码,你可以自己读一遍确认。
诚实的状态说明
PILOT(试点)。词汇表现已涵盖筛选、关联、分组(含按日期分组)、排名与九个归约器,并采用十进制精确运算;运行时可读取 CSV、JSON、JSONL 与 SQLite。每个工具都带有经签名的人工批准;数据不足以支撑精确答案时会被点名拒绝。需要词汇表之外能力的问题,仍会被如实报告为不可映射。详情、实测与限制:Perslis Floor。
同一套架构在本库的其他地方也有测量: 真实 Atari ROM 上的习得式地板(在一个游戏上 +32%,在另一个上 −12%),以及一个符号魔方求解器,它会指名拒绝一个不可能存在的魔方。