RULITH 规据 写一份宪法

写一份宪法:格式与安装

宪法是你给智能体划的红线:什么不许做、什么要人点头。它是一份 JSON,格式叫 rulith-norms/1

这一页给你一份可以直接粘进去就装上的完整样例,以及每个字段的含义。 宪法闸本身怎么工作,见宪法闸

一、完整样例(整份复制,可直接用)

{
  "format": "rulith-norms/1",
  "meta": { "name": "my-redlines", "version": 1 },
  "norms": [
    {
      "id": "no_irreversible_without_approval",
      "title": "不可逆的对外动作必须先获审批通过",
      "version": 1,
      "text": "任何不可逆的对外动作——付款、发布、删除、对第三方作出承诺——在执行前必须已通过审批。判断一个动作是否不可逆,看的是「做完之后本系统能否单方面撤回」:能撤回的不算,需要对方配合才能撤回的算。"
    },
    {
      "id": "data_stays_local",
      "title": "客户数据不得发往未登记的外部服务",
      "version": 1,
      "text": "客户数据(身份信息、联系方式、交易明细、任何可定位到个人的记录)只能发往已登记的外部服务。未登记的服务一律拒绝,包括临时调试用途。"
    }
  ]
}

meta.name 换成你自己的名字,把两条 norms 换成你自己的红线,就可以装了。

二、字段:一共就这几个

包级

字段必填说明
format可省写了就必须是 "rulith-norms/1"
meta.name必填这份宪法的名字。它同时是安装登记的键——见下面那条警告
meta.version可省版本号
norms必填条款数组,不能为空——一份不含任何条款的宪法什么也没带来

条款级:只有四个字段

字段必填说明
id必填条款号。清关记账按它记,装上后不可改
title必填一句话说清这条禁什么。板上只落这句摘要
version可省条款版本,默认 1
text可省条文全文。过闸时原样进案卷交审查判断——所以用大白话写,不用写成规则

为什么只有这四个:宪法是纯文本,不带机器字段

条文不带路由标签、不带材料需求、不带严重级。理由是同一个: 一条红线如果要先被翻译成机器字段才能生效,那个翻译本身就是一处可以出错的地方。

写了退役字段不会被忽略,会被拒,并告诉你为什么。

>

这些字段写了就会报错:needs · tags · tier · source · review · requireVotes · evidence静默丢弃比报错危险得多——曾经有一份宪法里躺着一个 review 开关, 谁都以为它生效,而解析器从来没有读过它。

三、装:三步,都在「我的能力」那一页

  1. —— 打开控制台的「我的能力」页,把整份 JSON 粘进编辑框;
  2. 校验 —— 点校验。绿了说明格式没问题;有问题会逐条告诉你哪儿不对;
  3. 装到智能体 —— 选一个智能体,点装。

点完装之后,看屏幕说什么——有两种情况

屏幕说意思你要做什么
直接说装好了条款当场落到板上不用做别的
「已经收下了,但还没生效」 + 让你去暂存当前任务这个智能体正在办一件事,新装的东西要等它腾出手照屏幕说的做一次暂存。不要重装——重装不会让它提前生效

哪一种取决于那一刻这个智能体在不在办事,不取决于你装的是什么。

去哪儿确认它真的生效了

智能体详情页看「宪法」那一行——它显示的是板上真实的条款数

⚠️ 如果你刚做过暂存,先把那件事恢复回来再看。 那一页需要一件在办的事才有内容——暂存期间它读不出来(页面会空着, 或提示你去任务列表恢复)。恢复之后再看那一行,才是有效的确认。
看那一行,不要看安装那一刻的提示。实测:屏幕显示「宪法 · 3 条已生效」时, 板上确实有 3 条——数目逐一对得上
⚠️ 同一页上的「已安装能力」那一格,今天对宪法包会显示「已登记但实际未装载」, 而那句话是错的。你可能会在同一屏上看到两个相反的结论。 以「宪法」那一行为准——那一行读的是板上,那一格今天对宪法包不准。
顺带:排队时一个坏项不会挡住好项——同一批里若有一份包被拒, 其余的照常生效,逐份独立判。

四、⚠️ 两件今天必须知道的

①「改」这个动作,今天还没有

条款按 id 幂等:同一个 id 重装一版新内容—— 它会回一条「装好了」的回执,而板上一个字都不会变。

(实测:回执 accepted 为真、报「更新已接受」、版本号还往前走了一格,而板上原样。)

不要用「装一版新的」来改一条已有的条款。今天它不会生效。

要调整红线,用一个新的 id(覆盖语义正在设计中。)

② 别把宪法包的 meta.name 起成和你的领域能力一样的名字

安装登记按 (智能体,名字) 去重。同名会撞: 如果你已经有一个叫 orders 的领域能力,再装一份也叫 orders 的宪法, 它的安装登记会被静默跳过

给宪法起一个专用的名字,比如 my-redlinesorders-redlines

这一条的依据是安装登记的去重规则本身(同名即跳过), 不是一次实测——造出「已装领域能力的智能体」这个前提今天还有别的障碍。 规则是确定的,代价是:起重名不会报错,你不会知道。

五、写红线的三条建议

  1. 一条只说一件事。清关是按条款记账的——一条里塞三件事,

过闸时你分不清是哪一件被拦了。

  1. title 写成「禁什么」,不是「要什么」。板上只落这一句,它要能被单独读懂。
  2. text 写给人看,不是写给解析器看。它会原样进案卷——

写得越像一句人能判断的话,判断就越准。

相关

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