Perslis Motion
引擎

一套运行时,托底
每一台会移动的机器。

一辆汽车、一架四旋翼、一条机械臂——安全问题都是同一个:在对世界有可信读数的前提下,这个被提议的动作是否可准入,而且我们能否独立于是谁提议了它来强制执行这一判定?Perslis Motion 引擎用六个阶段来回答它,每一次都以同样的方式。

状态→可达性→不变量→准入→执行→验证
定位 · 自主智能体的 ABS

Perslis 不是司机。
它是刹车。

Perslis 是位于概率智能与执行机构之间的安全与控制护栏。规划器——任何模型,你的或我们的——可以提议“变道”或“加速”。随后由一个确定性层判断该动作在当前状态、约束、权限与安全不变量下是否可准入。不可准入的动作,永远到不了执行机构。

01 · 无法绕过

模型无法绕过地板。

每条指令在执行前都必须经过准入层;没有通往执行机构的旁路。一个敌对或损坏的规划器,正是我们的测试。

02 · 确定性拒绝

不安全的指令被确定性地拒绝。

同样的状态、同样的指令、同样的裁决,每一次都如此——并附上写明触发不变量的收据。不是概率,不是策略,而是一条你能读懂的规则。

03 · 已知安全状态

置信度或状态不足 → 进入已知安全状态。

当世界状态过期、传感器不一致、或规划器置信度低于门槛时,地板不猜:它驶向预先定义的回退——减速、停车、保持。

模型会开车。我们造刹车。

阅读完整说明——从提议到执行的每一步 →

升级路径很简单:带上你的模型,装上刹车。能力仍是你的;准入、拒绝与安全回退成为模型之下的一层经验证的机制,并附带审计轨迹。

核心

它不是规则引擎。
它只是一个问题。

核心原语不是一张庞大的 if-then 表格。它是一个问题,对控制器提议的每一个候选动作持续不断地发问:

这个被提议的动作,会不会在时域 H 内把机器驱入某个禁止状态?

如果接下来这段短时域内的可达集与某个禁止区域相交——一名行人、一条地理围栏、一个人体禁区——该动作就绝不会按提议执行。正是这个可达性检查让护盾真正安全,而不只是被动反应:它足够提早地刹车、钳制或接管,使那个禁止状态从一开始就不可达。

六个阶段

状态 → 可达性 → 不变量
→ 准入 → 执行 → 验证。

1 · 状态

对世界的类型化读数:位置、速度、加速度、朝向、轨迹、附近物体、边界、执行器状态。当下的落地依据是仿真的真值;真实部署则由经过验证的感知来喂给它。

2 · 可达性

把候选动作在时域 H 上前向投影。哪些状态变得可达?这就是"我们现在太近了"与"这个动作保证我们来不及停下"之间的区别——后者才是护底会据以采取行动的。

3 · 不变量

以约束形式陈述的安全集:最大速度与加速度、碰撞包络、地理围栏/道路/车道边界、最小间距、禁行区域、执行器极限。不变量可组合——每一条都进一步收紧动作。

4 · 准入

ALLOW · CLAMP · DENY · EMERGENCY。候选动作被原样执行、被收紧到最近的安全值、被拒绝,或被一个安全接管(刹车、悬停、停机)替换。

5 · 执行

只有被准入的动作才能抵达执行器。控制器从不直接触碰硬件——护底始终处在"提议"与"运动"之间的路径上。

6 · 验证与回退

每一次接管都被记录为一张凭据。若状态变得未知、矛盾、陈旧,或传感器掉线,运行时便切换到预先定义的安全行为——它从不在退化的世界里去问模型该怎么办。

为何与模型无关

换掉提议者。
引擎纹丝不动。

六个阶段里没有任何一环取决于是谁提议了这个动作。这正是重点:安全论证从不建立在"智能足够好"之上。你可以自由地更换驾驶者——

随机→基于规则→本地模型→Claude / Gemini→完整自主栈

——而引擎毫无变化。这也是为什么你几乎可以在完全不挑选 AI 模型的情况下,就把它绝大部分建成。