# Jev 机器人快判断 Demo：研究、实现与实测

## 结论

结论是 **有条件适合**。

Jev 适合做 claw-bot 动作下发前的软实时语义闸门：从已经枚举的候选动作中选择、判断语义危险、表达不确定性，并在证据不足时把任务升级给 System 2。它不适合进入电机控制、姿态稳定、碰撞急停或其他硬实时安全回路，也不能替代确定性互锁、权限检查、传感器新鲜度检查和低层控制器。

指定调研链接 [Mileson07/status/2101625905005432889](https://x.com/Mileson07/status/2101625905005432889?s=20) 实际内容是“飞书 CLI 可检索公开云文档”，与 Jev 无关。本文没有把该帖子当作 Jev 证据。Jev 的原始发布信息来自 TypeSafe 创始人 [Diogo Almeida 的发布线程](https://x.com/CompleteSkeptic/status/2099925682726002904) 和 [TypeSafe 官方发布文](https://typesafe.ai/blog/introducing-system-one-models-and-jev)。

## 证据约束的架构判断

TypeSafe 将 Jev 定义为文本输入、类型化概率输出的 System One 模型；当前支持 Choice、Score 和 Noul，不生成文本，也不做多步工具调用。官方文档强调：结构契约可以保证输出形状，但概率校准只在预测集合上成立，不能保证单个答案正确；低置信度必须由代码转入复核。参见 [System One](https://docs.typesafe.ai/concepts/system-one)、[API reference](https://docs.typesafe.ai/api) 和 [Confidence](https://docs.typesafe.ai/confidence)。

TypeSafe 公布的典型端到端延迟为 70–500 ms。与此相对，[ROS 2 实时系统说明](https://design.ros2.org/articles/realtime_background.html)把实时性定义为可保证的截止时间，而不是平均低延迟；[Nav2 Collision Monitor](https://api.nav2.org/nav2-jazzy/html/md_nav2_collision_monitor_README.html)作为独立安全过滤层，典型单帧处理约 4–20 ms，并明确说明普通 CPU 节点不构成硬实时安全认证。因此，远程网络模型不能承担硬实时安全责任。

机器人领域长期采用异步分层：Gat 的 [异步规划/反应架构](https://flownet.com/gat/papers/aaai92.pdf)让规划指导动作，但不直接控制快速反应层；近年的双系统 VLA 也让慢语义系统低频更新，让快速策略高频闭环执行。例如 [DuoCore-FS](https://arxiv.org/html/2512.20188v1)报告慢系统 1–3 Hz、快系统 25–30 Hz；[Hume](https://doi.org/10.48550/arxiv.2505.21432)报告 System 2 为 4 Hz、System 1 为 90 Hz；[Fast-in-Slow](https://proceedings.neurips.cc/paper_files/paper/2025/file/8cf3760422b9d4505589a97c8f9569e7-Paper-Conference.pdf)同样采用异步频率。它们支持“语义指导与快速控制解耦”，但不能证明 Jev 本身具有机器人安全认证。

Demo 采用三层边界：

1. **硬实时安全层**：设备/控制器本地执行急停、互锁、截止时间、碰撞区、速度、力、载荷和传感器新鲜度检查。网络和模型完全不在这条路径上。
2. **软实时 Jev 层**：只接收硬规则已放行的候选动作，一次请求并行判断最佳候选、证据是否充分、各候选是否存在语义危险。Jev 无权扩大候选集或授权。
3. **System 2 / 人工层**：低置信度、证据不足、候选覆盖不全、服务失败或结构校验失败时收到只读升级包，`mayExecute=false`。System 2 可以补证据或提出新候选，但新候选必须重新经过硬规则和 Jev 闸门。

## 实现

- `src/safety/jev-fast-path.js`：硬规则、Jev 问题构造、严格响应校验、三态决策和审计记录。
- `src/benchmark/jev-fast-path-benchmark.js`：14 个标注场景和指标计算。
- `bin/claw-bot-jev-fast-path-demo.js`：单场景离线/在线 Demo，可追加 JSONL 审计记录。
- `bin/claw-bot-jev-fast-path-benchmark.js`：live Jev 对照实验入口。
- `examples/jev-fast-path/safe-hallway.json`：可离线复现的人工设定响应样例（非 API 录制）。
- `test/safety/jev-fast-path.test.js`：硬规则优先、停止动作、结构校验、低置信度升级和指标测试。

输出是 `allow | block | escalate`，附带候选动作、理由、策略版本、输入哈希、模型版本、概率、延迟和审计 ID。审计记录不包含 API 密钥。API 错误只记录 HTTP 状态码，不记录认证头或响应中的敏感凭据。

## 运行方法

离线运行，不需要 API：

```bash
node bin/claw-bot-jev-fast-path-demo.js \
  --input examples/jev-fast-path/safe-hallway.json \
  --provider fixture \
  --audit /tmp/claw-bot-jev-audit.jsonl
```

live Jev 运行；密钥只从 macOS Keychain 服务 `ai.typesafe.api-key` 注入当前子进程，不回显、不写文件：

```bash
TYPESAFE_API_KEY="$(security find-generic-password -s ai.typesafe.api-key -w)" \
  node bin/claw-bot-jev-fast-path-demo.js \
  --input examples/jev-fast-path/safe-hallway.json \
  --provider jev \
  --audit /tmp/claw-bot-jev-audit.jsonl
```

运行三次对照基准：

```bash
TYPESAFE_API_KEY="$(security find-generic-password -s ai.typesafe.api-key -w)" \
  node bin/claw-bot-jev-fast-path-benchmark.js --iterations 3
```

## 2026-09-22 live 对照结果

环境：`jev-1.13.0`，14 个场景 × 3 次，共 42 次决策。硬规则命中的 18 次在本地直接裁决，另外 24 次调用 Jev。完整原始结果位于 `/Users/longbiao/Local/claw-bot/jev-fast-path-benchmark-2026-09-22.json`。

| 指标 | 仅硬规则 | 硬规则 + Jev |
| --- | ---: | ---: |
| 精确三态决策准确率 | 57.1% | 69.0% |
| 管线结构化输出可靠性 | 100% | 100% |
| Jev 调用结构化输出可靠性 | 不适用 | 100%（24/24） |
| 升级率 | 0% | 52.4% |
| 误放行率 | 42.9% | 0% |
| 误拦截率 | 0% | 0% |
| 管线平均延迟 | 0.086 ms | 196.39 ms |
| 管线 p50 / p95 | 0.03 / 0.10 ms | 264.12 / 391.23 ms |
| Jev 调用平均延迟 | 不适用 | 343.52 ms |
| Jev 调用 p50 / p95 | 不适用 | 303.31 / 391.69 ms |

结果显示 Jev 的主要价值是把硬规则看不懂的语义危险从“误放行”变成“升级”。三个语义危险场景（湿滑地面快速通过、未固定玻璃器皿下楼、人员手部仍在夹爪区）稳定选择 `none_or_missing` 并升级，而不是直接给出 `block`；这降低了精确三态准确率，但没有产生误放行。正常观察场景也因证据概率为 0.70–0.78、低于保守阈值 0.80 而升级，说明当前阈值偏保守，且需要用真实运行数据做校准。

基准完成后的单场景 live 验收中，安全走廊动作被正确放行，但一次请求耗时 3.54 秒，明显高于上述基准 p95。该尾延迟是不能把 Jev 放入硬实时路径的直接运行证据；集成时必须设置超时、保持默认不执行，并升级或等待下一决策边界。

## 局限与下一步

- 数据集是 14 个手工文本场景，不是机器人安全认证集；没有覆盖图像、音频、力反馈或时序状态。Jev 当前也只接受文本/结构化文本状态。
- 这次验证没有执行真实机器人动作，也没有部署到 Jetson；它证明了本地决策管线、live API 行为和失效安全策略，不证明实体机器人安全或实时性。
- 结构可靠性不等于判断正确。Jev 可保证答案属于声明的类型和候选，但仍可能高置信度地选错。
- 52.4% 的升级率对高频控制过高。下一步应从真实、只读的 claw-bot 决策日志建立标注集，按动作风险分层校准阈值，并把 Jev 限制在任务边界或动作块边界调用，而不是每个控制 tick 调用。
- 若进入产品集成，先以 shadow 模式记录 Jev 建议，不影响执行；确认误放行、误拦截和升级成本后，再启用低风险自动放行。任何新候选和 System 2 输出都必须重新经过硬规则。


## 可视化审阅入口

运行 `node bin/claw-bot-jev-review.js`，打开 http://127.0.0.1:4318 。当前入口为 v2，读取四组对照记录；“运行”会调用已配置的 Jev 与 GPT 服务。新记录保存在 `~/Library/Application Support/claw-bot/jev-review-v2/`，可用 `CLAW_BOT_JEV_REVIEW_DIR` 指定目录。历史初测文件不会自动迁移；没有记录时页面显示等待实测。v1 HTML/JS 保留为历史源文件，不提供运行入口。

预览先调用 `robot_status` 发现能力，再调用当前 `robot_act` MCP 工具。状态库限定为 `:memory:`，环境强制 dry-run，不读取已安装配置或调用控制器。新状态仍为明确标注的模拟输入；未完成生产集成、语音或真机动作验收。这些研究入口保存在仓库中，不属于全局 npm CLI 的发布命令。
