安全机制
安全机制
UnveilChem SDL 2.0 部署四重安全机制,覆盖输入校验、执行门控、任务连续性、数据可追溯四个维度,确保智能体决策在物理可行性与历史可回溯性上不出错。
1. 物理极限语义防火墙
作用:在所有 Tool 调用前强制校验输入参数是否超出物理极限。
实现:
- 持有硬件 / 物理极限白名单(温度 / 压力 / 浓度 / 流量等)
- 所有 Tool 输入经校验,超限直接拦截,不进入仿真或硬件执行
- 白名单可按设备型号 / 工艺类型差异化配置
示例:
- 反应釜温度上限 350°C → 输入 500°C 直接拦截
- 蒸馏塔压力下限 -0.1 MPa → 输入 -0.5 MPa 直接拦截
2. 串行孪生门控
作用:强制”先模拟后实体”,阻断危险方案上机。
实现:
digital_twin_agent必须先于sdl_device_agent完成 MuJoCo 仿真- 仿真未通过(碰撞 / 扭矩超限 / 温升异常)→ 自动拦截硬件调度
- 仿真通过 → 生成”放行令牌”,
sdl_device_agent凭令牌下发实验
门控流程:
processpi_sim_agent ──► digital_twin_agent ──┬─► 通过 ──► 放行令牌 ──► sdl_device_agent │ └─► 拦截 ──► 终止流程 + 告警3. 异步任务队列
作用:保障长周期任务(数小时 / 数天)的连续性,支持断点续传。
实现:
- 所有 Agent 任务进入持久化队列(PostgreSQL 后端)
- 任务状态机:
pending→running→paused→done/failed - 工作节点崩溃后,未完成任务由状态存储器恢复至最近 checkpoint
- 用户可主动
pause/resume任务
4. 时间轴版本管理
作用:所有数据(仿真结果 / 实验记录 / 模型参数)按时间轴版本化存储,永不覆盖。
实现:
- 新数据写入新版本,旧版本保留只读
- 支持任意历史版本回溯与对比
- 配合
bayes_opt_agent的迭代历史,完整复现优化路径
版本结构:
entity_id / ├── v1 / 2026-01-01T10:00:00Z / data.json ├── v2 / 2026-01-02T15:30:00Z / data.json └── v3 / 2026-01-03T09:12:00Z / data.json ← 当前版本安全机制协作
四重机制串行生效,形成纵深防御:
用户输入 │ ▼[1] 物理极限语义防火墙 ──► 拦截超限输入 │ ▼[2] 串行孪生门控 ──► 拦截危险方案上机 │ ▼[3] 异步任务队列 ──► 保障任务连续性 │ ▼[4] 时间轴版本管理 ──► 保障数据可回溯