Jev 机器人快判断 Demo:研究、实现与实测
结论
结论是 有条件适合。
Jev 适合做 claw-bot 动作下发前的软实时语义闸门:从已经枚举的候选动作中选择、判断语义危险、表达不确定性,并在证据不足时把任务升级给 System 2。它不适合进入电机控制、姿态稳定、碰撞急停或其他硬实时安全回路,也不能替代确定性互锁、权限检查、传感器新鲜度检查和低层控制器。
指定调研链接 Mileson07/status/2101625905005432889 实际内容是“飞书 CLI 可检索公开云文档”,与 Jev 无关。本文没有把该帖子当作 Jev 证据。Jev 的原始发布信息来自 TypeSafe 创始人 Diogo Almeida 的发布线程 和 TypeSafe 官方发布文。
证据约束的架构判断
TypeSafe 将 Jev 定义为文本输入、类型化概率输出的 System One 模型;当前支持 Choice、Score 和 Noul,不生成文本,也不做多步工具调用。官方文档强调:结构契约可以保证输出形状,但概率校准只在预测集合上成立,不能保证单个答案正确;低置信度必须由代码转入复核。参见 System One、API reference 和 Confidence。
TypeSafe 公布的典型端到端延迟为 70–500 ms。与此相对,ROS 2 实时系统说明把实时性定义为可保证的截止时间,而不是平均低延迟;Nav2 Collision Monitor作为独立安全过滤层,典型单帧处理约 4–20 ms,并明确说明普通 CPU 节点不构成硬实时安全认证。因此,远程网络模型不能承担硬实时安全责任。
机器人领域长期采用异步分层:Gat 的 异步规划/反应架构让规划指导动作,但不直接控制快速反应层;近年的双系统 VLA 也让慢语义系统低频更新,让快速策略高频闭环执行。例如 DuoCore-FS报告慢系统 1–3 Hz、快系统 25–30 Hz;Hume报告 System 2 为 4 Hz、System 1 为 90 Hz;Fast-in-Slow同样采用异步频率。它们支持“语义指导与快速控制解耦”,但不能证明 Jev 本身具有机器人安全认证。
Demo 采用三层边界:
- 硬实时安全层:设备/控制器本地执行急停、互锁、截止时间、碰撞区、速度、力、载荷和传感器新鲜度检查。网络和模型完全不在这条路径上。
- 软实时 Jev 层:只接收硬规则已放行的候选动作,一次请求并行判断最佳候选、证据是否充分、各候选是否存在语义危险。Jev 无权扩大候选集或授权。
- 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:
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 注入当前子进程,不回显、不写文件:
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
运行三次对照基准:
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 的发布命令。