← 知识库
论文 文字稿

BoBClaw:一套以脚手架为先的自主可控 Agent 基座

技术白皮书。BoB 如何在你自己拥有的通用模型之上,交付前沿级别(frontier-class)的长程执行与可验证推理。

摘要

如今使用众多语言模型的主流方式是「聚合」(aggregation):一个统一端点,把请求路由到你所指定的任意模型。这一能力现在已是通用商品。它解决了「一处集齐所有」的问题,仅此而已;而当你的工作流所依赖的那一个模型被弃用、被重新定价,或像 2026 年 6 月 12 日 那样被政府命令下架时,它无法提供任何保护。

BoBClaw 是聚合之上的一层。它是一套以脚手架为先(harness-first)的 Agent 基座,建立在一条论点之上:可靠性与能力应当归属于脚手架,而非模型本身。 把模型当作可替换的 CPU;把真正差异化的价值——验证、编排、记忆与治理——放进环绕它的脚手架里。做对了,一支由通用与开放权重模型组成、经过恰当编排与对抗式验证的舰队,就能交付对 Agent 工作真正重要的两件事:长程执行可验证的、安全级别的推理;成本只是前沿模型的一个零头,没有厂商锁定,也没有任何可被出口禁运的东西。

这不是一篇立场文章。这里描述的基座在很大程度上是自己造出来的:在 次自主的、多小时的工程运行中,它在通用推理算力上产出了 789 个新测试且零回归,每次只花个位数美元。它的验证骨干——一套真正的、无需模型的诚实性脚手架——在实盘运行的植入集里抓出了每一条对抗式植入的虚假声明;一次定向的对抗式审查在合入前抓出了一条真实的、主机级别的远程代码执行(RCE)路径。架构本身就是论证。


0. 此刻:租来的能力,是可以被收回的能力

2026 年 6 月 9 日,Anthropic 发布了 Fable 5 与 Mythos 5,这是其迄今最强的模型。三天后,6 月 12 日美东时间下午 5:21,美国政府下达出口管制指令,要求 Anthropic 对 任何外国国民,无论其身处美国境内还是境外 暂停访问,其中包括 Anthropic 自己的外籍雇员。合规无法有选择性地执行,于是这些模型 对每一位客户 都陷入黑屏。官方给出的顾虑是:一个越狱可能暴露 Fable 5 自主识别并利用软件漏洞 的能力。

细想一下这一事件的形态:

这已不再是一个需要对冲的假设性风险。它是把你的 Agent 建立在单一租来的前沿模型之上的一种 已被证明 的失效模式。如今每一位严肃的构建者都必须回答一个问题:当你的 Agent 背后那个模型被禁、被弃用或被定价到你用不起的那一天,它还剩下什么?

聚合器的回答是「路由到另一个模型」;但如果你的工作流 依赖的是 Fable 级别的能力,那么路由到一个更弱的模型就是降级,而不是延续。BoBClaw 的回答不同,而这正是本文的主题:那份能力从一开始就不曾寄居在任何一个模型里。


1. 聚合只是入场券;产品在其上那一层

一个模型聚合器给你一个 API 去调用众多模型。这确实有用,也确实已经通用化了——OpenRouter、LiteLLM,以及十几家其他厂商都在做。这就是那座「迷你城堡」:一处集齐所有。它不会让一个弱模型变强,不会自己把多步工作做完,也不会让你获得自主可控——它只是在中间代理访问。

BoBClaw 是其上那一层。它的价值在于「一处集齐所有」之后 的一切,建立在三项补充之上:

  1. 验证让廉价模型变得可信。 一个通用模型的输出,好坏只取决于你能否知道它何时出错。BoBClaw 把每一条有后果的声明、每一个动作都当作一个待检验的假设,在它被允许成立之前,由另一个模型家族对其进行对抗式核查(见 §4)。这就是把「便宜但不可靠」转化为「便宜且可信」的关键。
  2. 编排把真正的工作做完。 单次路由调用回答一个问题。而一支舰队——一个顶层规划器(apex)、若干管理者、若干工人、若干评审者——在一份持久账本之上协同,则能完成一个 项目:拆解、扇出、构建、测试、修复、验证、合入(见 §3、§5)。
  3. 能力类别纪律让它自主可控。 逻辑中不出现任何具体后端。角色请求的是带有回退链的 能力类别。封禁一个模型、丢失一把密钥,或眼看着价格暴涨——该类别就会重新解析到下一个供应商,必要时解析到本地。系统能在任何单一供应商——包括那个正在编排它的供应商——失效时依然存活(见 §9)。

以脚手架为先的论点

传统框架把模型当作产品,把周边代码当作胶水。BoBClaw 将此颠倒:脚手架才是产品;模型是可替换的 CPU。 可靠性、自主性、记忆与治理,都是脚手架的属性,像任何其他系统一样被工程化并被测试。模型提供原始智能;脚手架提供让那份智能 可依赖、可拥有 的一切。

由此得出本文的核心主张:你无需拥有一个前沿模型,就能得到前沿级别(frontier-class)的 Agent 成果。你需要拥有的是脚手架。

诚实的边界。 我们不声称 BoBClaw 底层模型在同类基准上匹敌 Fable 5 的原始智能,本文也不做这样的测量。这一主张更狭窄、也更站得住脚:对 Agent 工作真正重要的成果——持续的多步执行,以及可验证的、安全级别的审查——可以通过编排与验证,在那些不受、也无法受出口管制的模型上被可复现地实现。


2. 系统概览

BoBClaw 由四个协作服务外加一小组辅助守护进程构成。

服务角色默认端口
core编排引擎。一张编译后的 Agent 图:路由、分派、工人/管理者/评审者拓扑、模型后端、验证骨干、记忆、预算,以及持久账本。7825
gatewayREST + WebSocket API 与 Web UI。JWT/TOTP 鉴权、会话、项目、审批、团队、路由视图、记忆检视。7826
claude-pipeline一个作为子进程调用的薄封装,用于 CLI 驱动的规划层级。(子进程)
app一个 Kotlin Multiplatform 桌面客户端,也是日常主力工具:流式聊天、会话历史、产物画布、路由/JOAT 视图,以及团队构建器。(原生)

辅助守护进程(全部可选、全部可替换):Postgres(生产状态;热路径上用 SQLite)、Qdrant(向量)、Redis(限流固定与短 TTL 健康缓存),以及用于嵌入、抽取与端侧推理的 本地模型宿主llama.cpp / Ollama / LM Studio)。

一切实质工作都发生在 core 的编译图 内部:一个用户回合进入,被路由到某个面孔/后端,被分派,可选地在一支舰队上扇出,被验证,并被提交到一份仅追加的账本——那份账本就是系统真正的记忆。其余章节将逐一走过该图中构成「聚合之上那一层」的部分。


3. 舰队编排:角色、团队与去相关

聚合路由的是一次 调用。BoBClaw 路由的是 团队中的一个角色

角色。 工作以三种角色表达:apex(拆解任务并综合结果的规划器/编排者)、worker(做具体劳动的子 Agent),以及 critic(对抗式审计者)。角色由一个路由层(core/teams.py)解析到具体后端,而非在调用点硬编码。

后端。 该基座对接一个宽泛、刻意异构的供应商集合:通过 llama.cpp 的本地 Qwen、DeepSeek V4(廉价劳动力的主力)、Kimi(规划层协调)、GLM(审计/评审层)、Gemini、Claude 家族(CLI 订阅或 API)、Codex、MiniMax、Ollama、LM Studio,以及一个 OpenCode 本地池。新增后端只是 core/backends/ 下的文件级增补;增删一个后端时拓扑并不改变。

团队与面孔配置(profiles)。 一个 团队 是一份角色→后端的名单(例如 apex=Kimi、worker=DeepSeek、critic=GLM)。一个 profile(或称「面孔」,已随附约十九个)在角色之上叠加 如何做(how):系统提示、优选与升级后端、姿态与边界。团队由用户以 YAML 编写;profile 则经过校验与版本管理。正是这一点,让同一个任务可以作为一个廉价的单一工人、一次数十个工人的扇出,或一个多席位审议的委员会来运行——靠配置而非代码。

跨家族去相关,这是让验证有意义的设计原则。 后端被归入若干 家族FAMILY_BY_BACKEND)。规则是:一个评审者必须来自与它审计的行动者不同的家族。 一个 DeepSeek 工人绝不会被另一个 DeepSeek 实例核查;它会被 GLM 或 Claude 核查。同家族升级在构造上被禁止。相关性误差——即一个模型自信地为自己那一类错误盖章放行的失效模式——是被设计掉的,而非寄望其不发生。正是这条原则给了 §4 以牙齿。

健康感知路由。 一个实时健康探针(core/health_probe.py,启动时接入)镜像每个后端真实的调用路径,将结果短暂缓存,并采取失败即放行(fail open)。当某个优选后端被限流或宕机时,路由器会沿升级链前行,而不是卡住。


4. 验证骨干:廉价变可信之处

这是差异化所在。多数系统是先生成、再呈现。BoBClaw 是先生成,再 针对一个去相关的评审者进行对抗式验证,然后呈现;并把「无法验证」当作一个头等的、非失败的结果,而不是悄然放行。

该骨干有四个部分,每个都是经过测试的模块,研究通道与 GUI 通道 都会用到:

被测量的结果,精确陈述。 诚实性指标本身是可测量的:false_pass_ratecore/ses/falsepass.py)是一套真实的、无需模型的脚手架,它给一个评审者错误放行的 刻意植入的、貌似合理却错误 声明的比例打分。在实盘端到端运行中,一个真实的跨家族评审者在植入集上产生了 零次错误放行;但该集合很小且为手工编写(寥寥数条),因此诚实的说法是「该脚手架 测量 了错误放行率,且评审者在植入集上得分洁净」,而非「保证 0% 的比例」。要加固它,需要一个更大的、可由第三方运行的植入语料库。无论如何,要点依然成立:廉价模型不是被 信任,而是被 核查——由一个不同的家族核查,并带有默认失败的偏置。


5. 构建通道:契约优先的建造,配一个隔离的验证闸门

构建通道是「安全级别」审查最清晰的示范,因为在这里系统会运行一个模型写出来的代码。

图路径是:build_request → plan_contracts → dispatch → worker ×N → join → verify → {repair → verify}* → END

是证明,不是承诺。 在一次实盘端到端运行中,8 份契约产出了 8 份实现,它们均能构建、运行,并通过 8/8 测试,全程沙箱隔离。随后一次针对整个分支的最大力度、定向 的代码审查 抓出了一条真实的主机级别 RCE——一个未经筛查的契约签名在主机上被导入——外加一条假绿路径和一处解析损坏,全部 在合入之前 抓出。安全姿态是双层的,且两层都不信任模型:一次 定向的对抗式审查抓出(检测)RCE 的东西,而 Docker 沙箱是在运行时 围堵(缓解)模型写出的代码的东西。诚实的表述是:闸门 假定 有坏行为,审查 猎捕 它——而不是那个自主闸门自己检测到了这条 RCE。


6. 研究通道:带引用的推理,逐条声明验证

研究通道是一个带迭代轮次重建的编排者-工人循环,也是蕴含闸门(§4)成为面向用户的保证之处。

因此输出契约异乎寻常地强:那些存活到成文页面上的数字,其被引用的来源已被一个去相关的评审者重新读过;而那些无法被证实的数字,则作为显式的已知未知出现,而非自信的编造。


7. GUI 计算机使用通道:先动作,再验证世界确实变了

操作一个真实 UI,正是 Agent 最常「纸面成功、现实失败」之处。BoBClaw 的 GUI 通道(core/gui/)把同一套以脚手架为先、默认失败的纪律应用到像素与无障碍树上。

内循环是 捕获 → 定位 → 动作 → 验证,以「地基优先」的方式先构建为确定性的、无模型的逻辑,然后才引入任何模型:

这一模式在全部三条通道中是一致的:模型提议;确定性闸门与去相关评审者裁定;「完成」是针对被验证的后置条件挣得的。


8. 记忆与知识基座

一个没有持久记忆的 Agent 会永远重新推导同样的结论。BoBClaw 的记忆被设计成让推理 编译一次并保持最新

知识架构(在 v1.0 知识白皮书中奠定的地基,如今是本系统的一部分)。知识被编译进结构化、持久的存储,而非每次查询都从原始文档重新检索;人和项目是带有累积上下文的头等实体;而一个 lint agent 的层级体系——用于持续低成本监控的小于 2B 的小模型、用于实质分析的中档模型、用于跨系统模式识别的前沿模型——充当一套免疫系统,让知识库保持连贯,并让 Agent 从自身的运行历史中改进。

运行时记忆模块core/memory/)。一份仅追加的 L0 事件日志(SQLite)、后台 L1 事实抽取(一个本地小模型)、基于指纹的去重,以及一个召回步骤——它在分派之前把相关事实拼接进提示,并 失败即放行:缺失的向量被跳过,绝不致命。

向单一持久基座(LKS)收敛。 与其永远维护一个并行的记忆实现,BoBClaw 正通过一座受守护的读/写桥梁(core/memory/lks_adapter.pywrite_fence.py)把它的记忆收敛到 Local Knowledge Substrate 上:一个零向量守卫、一个给集合打版本戳的嵌入指纹、一个读适配器,以及一个单写者写栅栏——统一到一个向量存储上。

账本是记录系统(system of record)core/ledger/core/harness/)。状态是一张仅追加的、git 原生的提交 DAG,合入时每条轨迹一次提交。上下文靠 切片账本 来重建,而不是靠信任恰好还留在模型上下文窗口里的东西;结构化的失败记录总能在压缩后存活。一个监督者(core/harness/supervisor.py)把一个死掉的子 Agent 当作一个可重试的错误(「牛,不是宠物」),并能从账本重放并续跑。这就是让长程自主(见 §9)无需人类照看上下文即可实现的持久层。


9. 自主可控与经济性

上述一切收敛到聚合本身无法提供的两个属性上。

9.1 自主可控是一个派生属性

因为逻辑中不出现任何具体后端——只有被解析到带回退链的能力类别的角色(core/teams.py)——所以 已交付的基座对任何单一模型或供应商都没有硬依赖。这就是那条精确、站得住脚的主张。以下是它究竟意味着什么、又不意味着什么:

正因如此,定义本系统的那份规格说明在 本文成文之前 就已把这次暂停引为设计理据:「2026 年 6 月 12 日的 Fable 5 / Mythos 5 暂停,通过一条指令在数小时内让一个已部署的模型对其整个全球用户群下线。」 自主可控是设计前提;这条新闻只是确认了它。

9.2 经济性

昂贵的那一层是编排与裁决;承重的劳动则是通用价位。在那次自主构建运行(见下文)上测量,摊销后:

层级角色摊销成本依据
DeepSeek V4 Flash工人,编写了全部代码 + 294 个测试< $1真实的按量付费边际成本
KimiApex,扇出协调~$0.46一个 $40/月套餐上一周的约 5%
GLM 5.2评审者,对抗式审计~$0.15一个 $65/月套餐上一周的约 1%
Claude Opus指挥者 + 管理者,仅做编排~$2一个 $100/月 Max 套餐上 一周额度的约 9%
合计,~$3-4换取一次约 5 小时的自主构建

已记录的更正(2026-06-30): 一份更早的回顾把 Claude 层摊销到了 月度 套餐上,报出了约 $9。正确的依据是一 额度的约 9% ≈ 约 $2,大致低 4 倍,这把整次运行的合计从约 $10-11 降到 ~$3-4。Kimi/GLM 两行本就是按周计的。已对账: 独立审计将更正后的约 $3-4 合计评为 成立(算术无误),但附带一条告诫:只有 DeepSeek 是真正按量付费的边际成本,Kimi、GLM 与 Claude 都是固定套餐的摊销分数,而非单独计量的费用。

诚实的告诫,直白陈述:

要点是:一次五小时的自主工程运行,全程被验证,摊销后只花几美元,而其中最昂贵的组件是那个 可替换的 编排者,而非劳动。


10. 证据与局限

已构建并测量的东西

局限与诚实的边界

可复现性

该基座可供检视。本文的每一条声明都映射到 BoBClaw 仓库中的一个模块、一个测试数量或一份运行记录——验证骨干(core/verify/core/ses/)、构建沙箱(core/build/)、账本(core/ledger/),以及 tasks/ 下的回顾与结果文档。随本文附带的声明账本审计,把每一个承重数字对照其来源逐一记录在案。


11. 结论

一个前沿模型被政府命令下线的那一周,正是行业的核心假设——租用最好的模型并在其上构建——不再安全的那一周。访问是有条件的。地理是决定性的。你不拥有的能力,可以在一个周二和一个周五之间被拿走。

BoBClaw 是一场押注:值得拥有的、持久的东西不是一个模型,而是一套 脚手架:一个通过去相关验证让通用模型可信、通过编排让它们高产、并通过能力类别自主可控让它们归你所有的基座。聚合给你的是别人城堡的一把钥匙。BoBClaw 是其上那一层——在钥匙被收回时依然照常运转的那一层。


草稿 v0.95,承重声明已对照独立的声明账本审计(audits/claims-ledger-v1.md)对账。配套文档:构建故事《How BoB Built BoB》(那次自我实践运行,以叙事形式呈现)。