IR + VM:让 LLM 生成的控制逻辑安全运行在超低端 MCU 上

目前进度

  • ESP8266 和 STM32,同一份字节码,不改一行代码直接运行。
  • 任务代码平均 10.9 字节 ,相比 JSON 控制指令的 106.7 字节,缩小接近 10 倍
  • VM 核心只占约 2KB RAM
  • 113 个确定性任务全部通过。
  • 本地部署 8B 参数规模的 LLaMA 模型生成 LIR 时,错误可以通过编译器反馈自动修正,一轮收敛

关于这套系统我写了一篇论文,已经进入 CCF B 类期刊大修阶段。


我目前大三,专业是软件工程,之前主要学习 Java 后端和 Agent 相关方向。

我一直觉得嵌入式开发太麻烦了------每次都要重新烧录。所以我想让 MCU 也拥有类似 JVM 的执行层:程序不直接绑定硬件,而是运行在一个小型虚拟机上。

这样上层只需要生成逻辑,底层负责执行。

整体架构

我的想法是,在 LLM 和 MCU 之间增加一个中间层,把上层逻辑和底层硬件解耦。整个系统分为三部分:

  1. LIR ------ 负责承接 LLM 输出的控制逻辑。
  2. 确定性编译器 ------ 负责把 LIR 转换成紧凑字节码,同时完成语法检查、类型检查、资源验证和编码。
  3. MCU 上运行的 VM ------ 负责执行字节码,并提供运行时安全限制。

整体流程:

IR 让模型生成结构化逻辑。例如:

bash 复制代码
task water_pump {
    require cap(relay1)
    require cap(water_sensor)
    set relay1 = 1
    wait 500ms
    read water_sensor
    halt
}

这段代码表达的是任务逻辑。编译器随后将它转换成 14 字节左右的机器指令。模型负责描述,编译器负责保证正确。

VM 的安全设计

让模型控制物理设备,最大的风险是错误可能直接作用于现实世界。比如系统里只有 relay1,但是模型生成:

ini 复制代码
set relay3 = 1

如果 relay3 对应一个真实设备,可能造成严重问题。

所以 VM 增加了三层限制。

权限锁

  • 程序必须提前声明需要使用的设备。
  • 没有声明的资源无法访问。
  • 错误会在编译阶段被拒绝。

时间锁

  • 任务执行有最大步数限制。
  • 如果出现异常循环,VM 会主动停止。
  • 避免电机、水泵等设备持续运行。

形式化验证

14 条核心指令已证明------任意输入下必然停机,且仅访问授权资源。

核心原则: 无论 LLM 生成什么,VM 保证程序必然终止,且只能操作被明确授权的设备。

适用场景: 计算资源极其受限、但需要被 LLM 动态控制的物理设备------灌溉系统、工业现场、智能家居里的廉价单片机。

以下是编译器把 6 行LIR 压成 14 字节字节码,VM逐指令 trace:每步的PC、栈状态、步数计数器、已授权设备集合全部可见,7步HALT。

以下是手工构造一段绕过编译器的恶意字节码:只授权了relay1,却在 pc=2 试图写relay2。VM在写操作到达驱动前拦截,EXEC_FAULT_UNAUTHORIZED_IO,relay状态未被改变。

一些思考

现在很多系统已经可以让模型生成代码。但当代码开始控制真实设备时,中间还需要更多工程约束。

如何让一个生成式系统输出的逻辑,经过一套可验证的流程,最终安全运行在资源非常有限的设备上------这是一个比较窄但是有价值的问题。

目前我的系统跑通了,但是学术是学术,在实验室里跑通不代表有工业价值。我觉得距离真正工业部署还有很多问题,例如:

  • 更复杂设备模型如何描述;
  • 多设备协同如何验证;
  • 如何和现有工业控制协议结合。

也想请教一下有实际部署经验的朋友:目前工业现场或者 IoT 场景里,如果需要让 LLM 参与设备控制,工程上通常采用什么架构?在类似「LLM 生成逻辑 → 中间约束 → 设备执行」这一套流程里有哪些成熟实践?

如果有团队或者企业正在探索类似方向(系统软件、IoT 安全、LLM+嵌入式),也非常希望有机会参与实际工程实践。

相关推荐
颜料_vic2 小时前
coze中OpenClaw入门教程:“龙虾”的概念和架构解析
架构
小二·2 小时前
深入理解 MCP 协议:原理、架构与实战开发指南
架构
DLYSB_2 小时前
混合云与工业边缘场景下“云原生告警与物理现场声光”的集成架构实践
云原生·架构·报警灯
夜勤月2 小时前
VMware Workstation Pro 26H1正式版实测:全64位架构重构+免费商用,这些升级直接影响开发效率
重构·架构
小马哥编程2 小时前
【软考架构】架构评估方法-SAAM、ATAM、CBAM 和 SAEM的区别
架构
吴佳浩 Alben2 小时前
Agent 怎么做自动化评测?构建端到端的 Agent Evaluation 体系
人工智能·语言模型·架构·自动化·ai编程
姚不倒2 小时前
etcd 学习系列(二):集群架构 —— 3 节点是如何工作的
运维·架构·etcd
Dawson Zhu3 小时前
从单体到联邦:多Agent架构的必要性与设计哲学
人工智能·语言模型·架构·aigc·agi
千里马-horse3 小时前
第 60 章 模拟器架构
架构·aosp
水巷石子3 小时前
备考系统架构设计师第一天
学习·架构·软考·设计·考试