Fable Mode 是一个开源的 MCP 控制平面,用于约束 AI 编程智能体的行为。它的核心目标不是让智能体“更聪明”,而是让它在写入用户工作区之前必须经过一套机械化的门禁流程。官方描述为:让智能体先深思、再产出证据,并经受对抗性审查,之后才有权写入。这些门槛是引擎强制执行的,而非提示词层面的建议——原则是“没有计时、没有证据,就没有写权限”。
主要能力
工作流分为四个阶段:
- Think(思考 / 时间锁定审议):智能体在计时结束前不能写入。会话一开始即处于锁定状态,仅凭“自信”无法解锁。
- Prove(证明):论断需要真实证据,包括工具回执(tool receipts)、哈希(hashes)和不变量(invariants)。智能体需要记录证据和不变量,提前发出的 unlock_execution 请求会被拒绝,直到权威计时器和证据前置条件均满足。
- Attack(攻击):红队群体(五向量 red-team swarm)尝试从多个方向攻破代码。
- Write(写入):只有通过上述环节后,工作区才被解锁。
贯穿所有阶段的门禁包括:针对论断的证据回执、针对代码的五向量红队群体,以及一份密封的验证记录(sealed verification record)。用户可随时调用 get_status 查看当前阶段、剩余时间、证据计数和锁定状态。此外还提供持久化的工程记忆(persistent engineering memory)。
使用方式
Fable 以单个 PyPI 包发布,同一包内含运行时、stdio MCP 服务器和完整的 Agent Skill。安装步骤如下:
- 安装 MCP 服务器(官方提供多种选项)。
- 如需完整工作流,可添加可选的 Agent Skill。
- 要求智能体用 Fable Mode 处理一个具体编程任务,并选择时间预算。
- 新会话以执行锁定开始,智能体记录证据和不变量后,通过 get_status 跟踪状态。
在智能体将要工作
的项目中运行 setup 命令:该命令会在隔离的 uv 环境中解析固定版本的包,并把捆绑的 skill 复制到 .agents/skills/fable-mode。可用 --dry-run 预览,或用 --target <dir> 指定其他 skill 目录。持久安装可用 pip。
两种调用/传输方式:
- 将 fable-engine 作为 stdio 服务器运行。
- 同一包也暴露直接的 JSON 传输:把单个 fable_session 参数对象通过管道传给 fable-mode call。该命令使用 JSON Lines,每输入一行一个 fable_session 参数对象,每输出一行一个 JSON 结果。官方建议在整个工作流中保持该进程开启,以便权威计时器和会话处于同一可信运行时;单行管道适合单次检查调用。每条 uvx 命令可能解析出隔离环境,若沙箱在多次调用间保留 Python 环境,则 pip install 更合适。会话数据持久化在该环境之外的 Fable 数据目录中,可用 FABLE_DATA_DIR 覆盖。
适用场景
官方给出的典型场景是:希望 AI 编程智能体在动手写代码前先思考、留下可核查证据、并经受对抗性审查的团队或个人。它可运行在用户当前使用的智能体旁边,不与框架锁定,通过 MCP 通信。
可选功能与限制
- 可选的 AI 证据裁决器:由于会话中的证据由 AI 智能体撰写,Fable 可(可选地)请求外部审查模型在工作区解锁前审计证据。仅用标准库、一次有界 HTTPS 调用、无本地模型、几乎不占额外内存。默认关闭,执行时故障关闭(fail-closed)。官方明确表示,它只能提高伪造证据的成本,无法保证欺骗不可能发生,机械门禁仍是主要权威。
- 环境要求:Python 3.10+,零运行时依赖,PyPI 包名为 fable-engine。
- 官方明确声明:这不是“代码无缺陷”的保证,而是一套可核查的工作流,而非保证;它也不是更大的提示词,锁定由引擎而非措辞执行;它不锁定框架,而是通过 MCP 与现有智能体协同运行。
其他信息
项目采用 MIT 许可证,由 REX 构建。官方文档涵盖实用指南、Agent Skill 参考、V1 到 V2 迁移、V2 架构、实验性的 System 3 以及可选的 AI 证据裁决器。欢迎提交 issue 和 pull request。旧版 install-skill 命令仍作为仅安装 skill 的兼容别名保留;fable-engine 与 pip install fable-engine 本身都不会向工作区写入指令。关于示例中提到的渲染与红队测试数据(如“7 renders rejected before final · 2 bugs caught · 10/10 red-team probes passed”),属于项目展示性描述,具体测试条件与复现方式官方暂未提供更详细信息。