RULITH 规据 信任层

信任层:让每一条结论经得起核对

这一层回答的问题最小,也最根本:这个数字、这条结论,依据是什么? 它是四层阶梯的第一层,也是你今天在云端使用的全部能力。

它如何工作

智能体把材料与规则写上演算板,板负责推导结论、执行精确计算、为每条信息标明出身。三条规矩立在结构里:结论只能推导,不能宣称每条信息标明出身(材料、结论、动作产物互不混淆);数字走精确计算,算不准就明说

四项配置(领域、工具、连接、宪法)决定这个智能体使用什么词汇、拥有什么工具、采信什么来源、遵守什么边界——机制我们提供,内容你提供。

今天的接口

接口用途
update_working_memory写入材料(assert_fact)、建立判据(add_axiom)、声明目标(declare_goal)、聚合计算(derive_aggregate)、纠错撤回(retract_node
get_logic_context读取板面:材料、规则、结论、目标,以及每条结论的依据
explain_fact解释一条结论为什么成立:给出命中的规则,沿支撑事实递归走到断言/动作产物的叶子(验证记录见现况页
控制台 · 领域能力一键安装现成能力;校验并安装你自己写的判据

一个可以照抄的例子

让智能体核对一张采购单——先记材料、立规则:

{ "operations": [
  { "op": "assert_fact", "id": "L1", "predicate": "line",
    "args": { "item": "钢筋", "unit": 3850, "qty": 12 } },
  { "op": "add_axiom", "id": "ax_cost", "label": "金额 = 单价 × 数量",
    "when": [
      { "predicate": "line", "args": { "item": "?i", "unit": "?u", "qty": "?q" } },
      { "predicate": "mul",  "args": { "left": "?u", "right": "?q", "result": "?t" } }
    ],
    "then": [ { "predicate": "cost", "args": { "item": "?i", "total": "?t" } } ] }
] }

板推出的结论带着完整出身:

cost(item=钢筋, total=46200) [derived] <- ax_cost, L1

46200 不是模型报的,是板算出来的;<- ax_cost, L1 就是它的依据——哪条规则、哪几项材料,可以逐项追问。如果单价录错了,顺着依据一眼看到是哪条材料的问题;如果规则写错了,看到的是规则本身。

完整的操作说明见MCP 工具,字段与错误码见字段与错误码

接地档:每条信息的成色

出身回答"这条信息是怎么来的"(材料、结论、还是动作产物);接地档回答另一个问题:"它凭什么算数?" 板上每条信息都带一个档位,按"这话是谁背书的"定档,从强到弱共七档:

档位机器名谁在背书
已验证verified独立核验过——确定性的受信读取,或经复核确认的结果
实证attested经受信通道进板——注册过的连接推入、平台验签,模型伪造不出
近似approximate数值引擎所得——方法精确,但带浮点或舍入误差
归纳inductive从数据学来的规律——多数时候成立,允许例外
不确定uncertain概率或模型预测——有置信度,没有保证
感知perceived感知所得(OCR、视觉)——尚未经人工复核
断言asserted模型(或人)自己说的——板只能如实标注,不能替它作证

结论的档位不用单独定:一条结论的档位,等于它所踩的全部前提中最低的那一档——沿证据链一路取最弱。推理再漂亮,结论的可信度也高不过最弱的那块地基。上面例子里的 46200:单价如果是模型自己录入的,结论就是断言档;同一条规则、同一步推导,单价改由注册过的连接推入,结论就是实证档。推理一模一样,差别全在前提的成色。

最弱前提律:同一条规则、同一步推导,前提里有一条是断言档,结论就是断言档;把那一条改由受信通道推入之后,结论随之升到实证档
最弱前提律:同一条规则、同一步推导,前提里有一条是断言档,结论就是断言档;把那一条改由受信通道推入之后,结论随之升到实证档

这套档位洗不绿。 档位沿推理链只降不升:一万条断言互相印证,叠出来的仍是断言,推不出一条实证。迂回也不行——把板上的数字抄进另一份材料、再对抄本做一次机器验证,档位不会因此变高:证据若引用了板上的信息,它的档位按"自身与所引原件中较低的一档"计。验证抄本,不等于验证原件。

升档只有一条路:真实的验证事件——工具复核过了、传感器交叉印证了、独立来源确认了、人做了裁决。每一次升档本身也落在板上,有据可查。这是原理说明里"信任升档"基石在信任层的机制面:档位不虚标,升档必留痕。

今天云端已开放这套机制的地基:经「连接」验签推入的材料落板即带实证标记,模型写入的是断言,两者在板面可分辨(生产已验证,见现况页)。七档全谱与"一眼看到结论踩在几条实证、几条断言上"的汇总视图在核心引擎中已实现,云端展示尚未开放。

目标与缺口提示

板不只被动推导已有材料——它还能带着目标工作。声明一条"什么算达成":

{ "op": "declare_goal", "id": "G1", "label": "钢筋已定价",
  "desired": [ { "predicate": "priced", "args": { "item": "钢筋" } } ] }

此后每一批操作,板都会回答目标的状态与缺口。只声明目标、还没有任何规则能推出它时,板给的是这一句:

goals:
- G1: priced(item=钢筋) [open] (钢筋已定价)
-   no rule derives this yet: add_axiom whose "then" matches it, or assert the fact directly

立了一条能推出 priced 的规则之后,缺口就具体到差哪一项材料(needs via <规则>: <还缺的事实>,完整走法见第一个可核查案例)。

物料名 钢筋 与板上材料逐字相同是必须的:板按标识精确匹配,不做模糊匹配——目标写 steel、材料写 钢筋,命令照样被接受,但永远推不出结果。

缺口具体到可以直接动手;目标翻成 [satisfied] 的唯一方式,是推导真的支持它——说得再流畅也不算数。在客户端里可以直接这样说(可原样复制):

先声明目标(declare_goal):钢筋这一项已定价。然后按板给的提示补齐缺口。

这是板自身的机制,本节行为已经生产验证(记录见现况页);任务层将在它之上构建完整的任务定义与验收。

现况

云端已开放,主路径生产已验证,逐项记录见现况与边界

在阶梯中的位置

信任层是其余三层的地基。让一条结论可信之后,下一个问题是让一件完整任务的"完成"可信——任务层 →

正文住 content/*.md;能力清单、工具清单、字段矩阵由生成器从实现代码抽取 (快照在 facts.json)——改了实现而忘了改文档,校验会自己发现。