内容
# FABULA

### 前沿模型销售信心。FABULA 提供证明。
**任何模型输入。完成、验证的工作输出。**
**默认主权:您的模型、您的数据、您的边界 — 以及任何人都可以重放的回执。**
> **平台:** 目前仅在 **macOS with Apple Silicon (M-series)** 上运行。引擎是可移植的 Bun/TypeScript — Linux 正在规划中,尚未发布。

FABULA 是一个 **代理程序**,建立在一个赌注之上:**信任属于证明,而不是模型。** 任何 LLM — 小型本地模型或前沿云模型 — 都是可互换的芯片,自主权存在于围绕它的机制中。**完成是一项测试结果,而不是模型的信心。** 每个门户都是开源的,您可以阅读,每个完全门控的绿色运行都会生成一个可重放的 [Proof-of-Done 回执](docs/GREENPAPER.md)([开放规范草案](docs/spec/verified-autonomy-receipt-v0.2.md))。在您的机器上运行并完全本地化,任何东西都不会离开您的机器 — 不是成本论,而是主权:经过审计的环境(本地、隔离)实际上需要这种模式,一个您拥有的模型的验证回执优先于一个您租用的模型的不可验证声明。
## 循环不会放弃 — 并且不会在故事中结束
红色验证不会停止运行:模型会针对真正失败的输出进行迭代。重复红色验证也不会停止 — 代理程序会将文件原子地回滚到上一个绿色检查点,并引导一种不同的策略。死胡同时会从更强大的模型中获取第二意见,本地模型会继续驱动。**NOT YET DONE 是一个过渡状态,而不是一个判决。**
并且运行不会在声明中悄悄结束。如果源代码更改但测试从未运行,强制验证门户会重新进入并强制模型运行它们;如果重试预算已用完但更改仍未验证,最终消息会标记为 **NOT DONE (unverified)**,而不是真正失败的输出。完成的运行会构建成两个诚实状态之一 — **VERIFIED**,带有可重放的回执,或明确的 **NOT DONE** — 而不是自信的“完成”,您需要凭信仰接受。 这是一个强有力的最佳努力门户,而不是不可能的证明:重上下文压缩或将整个任务交给子代理仍然可以绕过它。
## 运行甚至不能提前结束
结束回合不是模型的决定。在任何停止被执行之前,一个独立的裁判会读取转录记录 — 真实的工具调用,而不是模型的摘要 — 并拒绝停止,直到请求得到满足:**完成,而不是计划、描述或承诺。** 裁判是失败开放的(一个损坏的裁判永远不会困住你),并且是有界限的(一个低重入上限),一个明确的 `/goal` 条件使其变得像您想要的那样严格。
## 正确的上下文,而不是全部上下文
大多数代理程序都提供相同的巨大系统和每个步骤的每个工具模式。FABULA 编译 **每个任务的最小充分上下文**:一个确定性的路由器选择配置文件中的工具(已提交的演示回执记录了 64 个工具在编码配置文件上;一个被命名的掩码工具仍然执行 — 路由器丢失会造成一次往返,从不阻塞任务),内核只携带承载合同(28.8k → 4.9k 个令牌),而冗长的工具散文则进行了有节制的压缩。 从线路中:请求前缀下降 **72.3k → 43.5k 个令牌(-40%)** — 并且在 **任务内保持字节稳定**,因此本地模型的 KV 缓存可以在步骤之间存活。 这就是为什么一台 35B 的笔记本电脑可以跟上。 每次剪辑都有门控:工具使用黄金评估(正确的工具,正确的参数)和行为门控探针在每个步骤之前和之后运行 — 零回归。
## 证明
上述方案不是承诺 — 一个真实的捕获运行走过了这条路径:模型修复了错误,测试变为绿色,机器仍然回答 NOT YET DONE,直到证明存在。 运行留下了回执。 它被逐字提交 — 重放它:
```bash
cd demo && fabula receipt verify
```
```
VERIFIED ✓ — 工件确定性地重放:
base c660a02ab138 + patch → `bun test` passed.
```
**不要相信它。重放它。** 回执记录了插槽中的模型(一个量化的 35B 在 LM Studio 中本地运行),触发的门户,差异和通过验证 — 以及 **生成工作的确切上下文**:prompt-prefix 的 sha256 指纹(系统 + 工具模式),路由器配置文件和字节稳定性判决;截至 v0.2,还包括用户请求文本的哈希,服务模型的描述符(架构/量化 — 诚实标记为 *不是权重哈希*),以及磁盘上权重文件的可选真实摘要([规范](docs/spec/verified-autonomy-receipt-v0.2.md);已提交的演示回执携带所有这些 — 包括真实的 20.4 GB 权重摘要)。`fabula receipt verify` 将其打印在声明旁边:
```
Claim: VERIFIED ✓ · qwen3.6-35b-a3b-uncensored-heretic-mlx (local) · 2 file(s)
Context: prefix a38cb5a6f018b9c0 · profile coding · byte-stability held
```
两个具有相同前缀哈希的回执在字节相同的上下文中生成 — 工作不仅可以通过工件重现,还可以通过 *上下文* 重现。 [阅读回执](demo/.fabula/receipts/latest.md)。
更难的是公开的:一个 **真实的 [SWE-bench Pro](https://github.com/scaleapi/SWE-bench_Pro-os) 任务**,由相同的本地 35B 解决,并由基准测试的 *隐藏* 验收套件评分 — 失败率为 **4/4**,**RESOLVED**。 它的回执附带一个一键 Docker 重放:[`docs/receipts/`](docs/receipts/)。 第二个捕获的基准测试运行和方法的文档:[`docs/EVALS.md`](docs/EVALS.md)。
模型并没有变得更智能 — 周围的系统拒绝在没有证明的情况下让“完成”发生。
## 为什么是回执,而不是更大的模型
每个代理供应商都以相同的方式回答信任问题:*信任模型 — 它很智能。* 一个合并门户,这里一个通过率仪表板 — 但他们交付的单元仍然是一个未经验证的声明,而他们出售的补救措施是一个更大的模型。 FABULA 改变了单元:离开运行的是一个 **内容寻址的、第三方可重放的证明**,具有 **生成它的确切上下文** — prompt-prefix 指纹、请求文本哈希、服务模型描述符、可选的权重摘要、字节稳定性判决。 据我们所知,没有其他发布的代理会生成该工件。 一旦工作由其回执判断,能力差距就不再是租金:**来自您拥有的 35B 的验证回执优于来自您租用的前沿模型的自信声明 — 在任何地方都需要审计**(受监管的、企业、政府:已经需要本地和隔离的购买者,FABULA 默认运行)。
回执格式是一种 **开放规范** — [verified-autonomy receipt v0.2](docs/spec/verified-autonomy-receipt-v0.2.md):JSON 模式、字段到字段的诚实规则,以及任何代理都可以实施的重放协议。 从您自己的代理中生成回执;使用一个命令验证我们的回执。 证明经济随着更多生产者而变得更好。
**状态:** 今日在 macOS(Apple Silicon)上验证端到端。 引擎是可移植的 Bun/TypeScript,带有 Web UI — 原生应用是 macOS shell,不是依赖项;Linux 构建正在规划中。 每个捕获的运行都是可重放的。
## 原始证据
对于任何想要未经编辑的工件背后的人:拒绝的实时录音([`docs/assets/refusal.cast`](docs/assets/refusal.cast),使用 asciinema 播放)和它的逐拍渲染([`docs/assets/captured-run.svg`](docs/assets/captured-run.svg))。 最糟糕的一天 — 重复的红色验证,自动文件回滚,引导云第二意见 — 是机制的更深层次的梯度:[`docs/HARDEST-JOURNEY.md`](docs/HARDEST-JOURNEY.md)。
## 尝试
您需要一个 **带有 Apple Silicon (M1 或更新)** 的 Mac — 这是今天唯一发布的平台 — 和 **Xcode Command Line Tools**(引擎构建编译几个原生模块):
```bash
# 每个机器一次;如果您已经在 Mac 上构建 C/C++,则跳过
xcode-select --install
```
<sup>工具链健全性检查:`printf '#include <functional>\nint main(){}\n' | clang++ -x c++ - -o /tmp/t && echo OK` — 如果在 macOS 更新后失败,请重新安装命令行工具。</sup>
```bash
git clone https://github.com/sergezuber/FABULA-LLM-5 && cd FABULA-LLM-5
./setup.sh
open FABULA-LLM-5.app
```
`./setup.sh` 是幂等的 — 在任何时候都可以重新运行(在 `git pull` 之后,在安装依赖项之后);它永远不会覆盖您的 `.env` / `fabula.config.json`。
### 指向您的模型
**本地(默认):** 安装 [LM Studio](https://lmstudio.ai),加载工具调用模型 — 设置已经安装了配置所指向的本地适配器。 无需其他操作。
**任何 OpenAI 兼容端点** — 云提供商或企业网关: 将密钥放入 `.env`(gitignored)并在 `fabula.config.json` 中描述提供商:
```jsonc
// .env
MY_API_KEY=sk-...
// fabula.config.json
{
"model": "myapi/my-model-id",
"provider": {
"myapi": {
"name": "My endpoint",
"npm": "@ai-sdk/openai-compatible",
"options": { "baseURL": "https://llm.example.com/v1", "apiKey": "{env:MY_API_KEY}" },
"models": {
"my-model-id": { "tools": true, "limit": { "context": 131072, "output": 32768 } }
}
}
}
}
```
模型必须支持 **工具调用**,并且 `limit` 需要 `context` 和 `output`。 使用 `curl -s https://llm.example.com/v1/models -H "Authorization: Bearer $MY_API_KEY"` 检查端点和确切的模型 ID。 如果网关位于企业 VPN 后面,则 VPN 必须在工作时启动。
### 两分钟证明
在 [`demo/`](demo/) 中等待一个植入的错误 — 尽管如此,每个测试都是绿色的。 打开 `demo/` 作为项目并粘贴:
> 修复导出错误:夜间导出会默默地删除在结束日期恰好记录的行。 证明它。
然后观察机器在证明存在之前拒绝完成 — 在您的机器上,使用您的模型。
## 内部
| 门 | 它拒绝什么 |
|---|---|
| **verify** | 没有项目自身测试的绿色运行的“完成” — 引擎将运行推回验证,在源代码编辑后自行进行。 |
| **reproduce** | 一个从未锻炼修复的绿色套件 — 没有测试更改,没有完成。 |
| **quiz** | 代理无法解释的更改 — 它根据自己的差异进行评分,然后才允许完成。 |
| **judge** | 请求未得到满足就结束的回合 — 独立裁判读取转录记录,在完成、计划或承诺之前拒绝停止。 |
| **provenance** | 来历不明的作品 — 每个回执都带有确切上下文的 sha256(系统提示 + 工具模式 + 路由器配置文件),字节稳定性判决,以及(v0.2)请求文本哈希 + 服务模型描述符,具有可选的真实权重摘要。 |
| **rewind** | 越挖越深 — 重复的红色验证会将文件回滚到上一个绿色检查点,原子地,从代理自己的影子 git 中。 |
| **escalate** | 在死胡同中循环 — 自动回滚会引导模型获取一个云端第二意见,然后继续驱动。 |
在门周围:网页、shell、沙盒代码执行、防漂移文件编辑、真正的 Chromium、内存和交接笔记、检查点和撤销、SSRF/减少/注入防御在每次调用。 每个插件和工具的完整映射:[`docs/PLUGINS.md`](docs/PLUGINS.md)。
并且一个可选的 **证明经济** 建立在回执之上 — 将其发布到内容寻址注册表,让独立的跨模型见证人证明差异,将卡住的运行升级到云模型,然后您重新验证,或者将团队的子回执组合成一个全有或全无的证明树。 六个插件,默认情况下全部关闭:[破坏层](docs/PLUGINS.md#the-disrupt-layer--turning-a-proof-of-done-into-a-proof-economy-experimental-off-by-default)。
## 协议
回执格式 — *哪个模型位于插槽中,哪些门户已触发,什么补丁已发货,如何重放* — 被指定为一个小型开放协议,**Verified Autonomy**;FABULA 是其参考实现:[`docs/GREENPAPER.md`](docs/GREENPAPER.md)。
## 隐私
- 本地模型意味着本地数据:除非 *您* 配置云提供商,否则任何数据都不会离开机器。
- 删除聊天记录会清除其消息、工件和缓存 — 应用程序不会保留任何数据。
- 应用程序在退出时清除 WebKit 缓存;秘密仅存在于 gitignored `.env` / `*.key` 文件中。
- 没有遥测数据,没有账户,没有电话联系。
## 文档
| 主题 | 位置 |
|---|---|
| 每个插件和工具 | [`docs/PLUGINS.md`](docs/PLUGINS.md) |
| 协议(草案) | [`docs/GREENPAPER.md`](docs/GREENPAPER.md) |
| **回执规范 — 任何代理都可以实现的开放标准** | [`docs/spec/verified-autonomy-receipt-v0.2.md`](docs/spec/verified-autonomy-receipt-v0.2.md) |
| 公开可重放的回执 | [`docs/receipts/`](docs/receipts/) |
| 评估和运行笔记 | [`docs/EVALS.md`](docs/EVALS.md) |
| 最困难的旅程(能力演练) | [`docs/HARDEST-JOURNEY.md`](docs/HARDEST-JOURNEY.md) |
| 架构深入探讨 | [`docs/ARCHITECTURE.md`](docs/ARCHITECTURE.md) |
| 每个依赖项 + 安装命令 | [`DEPENDENCIES.md`](DEPENDENCIES.md) |
| 配置模板 | [`fabula.config.example.json`](fabula.config.example.json) · [`.env.example`](.env.example) |
| 贡献和测试规则 | [`CONTRIBUTING.md`](CONTRIBUTING.md) |
| 安全政策 | [`SECURITY.md`](SECURITY.md) |
| 致谢 | [`docs/CREDITS.md`](docs/CREDITS.md) |
## 致谢
基于并感谢:[MiMoCode](https://github.com/XiaomiMiMo/MiMo-Code)(FABULA 建立在其上的引擎,一个 [OpenCode](https://opencode.ai) 分叉),[LM Studio](https://lmstudio.ai),[SearXNG](https://docs.searxng.org),[Playwright](https://playwright.dev),[Bun](https://bun.sh),piper 和 faster-whisper。 几个监督机制 — 跨提供商的对话重放、沉默的上下文溢出检测、前缀缓存遥测、边界工具输出、漂移容忍编辑和对话回风理念 FABULA 扩展到文件原子回风 — 从 [pi](https://github.com/earendil-works/pi) 的机制设计中适应(Mario Zechner,MIT),在这里重新实现和测试。 工具集遵循状态辅助的命名和模式约定,这些约定已由公开的辅助程序普及,这里独立实现以适用于您选择的任何模型。 更多:[`docs/CREDITS.md`](docs/CREDITS.md)。
## 许可证
MIT — 见 [LICENSE](LICENSE)。
连接信息
猜你喜欢
暂无推荐服务器