Luminarys AI:基于WebAssembly的模块化AI技能隔离平台
Luminarys AI是一个部署AI智能体的平台,其技能被隔离在WebAssembly沙箱中。它支持使用Go、Rust、AssemblyScript编写技能,在异构架构上进行集群部署,并兼容MCP协议。该平台解决了生产环境中的安全性、多语言支持和扩展性挑战。
沙箱中的技能隔离
技能被编译成WebAssembly,并根据配置以严格隔离的方式执行。对文件系统、Shell和HTTP的访问通过白名单进行限制——技能在物理上无法越界。验证在加载时进行:配置不匹配会阻止执行。
硬件监控的配置示例:
# 示例:用于硬件交互的技能
id: hardware-monitor
permissions:
fs:
enabled: true
dirs:
- "/sys/class:ro" # 读取sysfs(传感器、设备)
- "/dev/serial:rw" # 访问串口
shell:
enabled: true
allowlist:
- "lsusb **" # 仅允许列出的命令
- "i2cget **"
- "cat /proc/cpuinfo"
allowed_dirs:
- "/tmp/hw-monitor"
用于CPU温度监控的技能只能看到/sys/class/thermal,用于GPIO的只能看到/sys/class/gpio。没有命令链,无法逃逸沙箱。
使用SDK的多语言技能
技能使用Go、Rust或AssemblyScript编写。lmsk代码生成器从带注解的代码创建WASM模块:包括路由、序列化、验证。
- AssemblyScript:紧凑的模块(约100 KB),TypeScript语法。适用于HTTP、文件系统、文本处理。
- Rust:高性能,支持原生库。用于解析protobuf/PCAP、ONNX推理、tree-sitter。
- Go:标准库丰富,可嵌入JS/Python虚拟机。
Go技能示例:
// @skill:id ai.example.hello
// @skill:name "Hello Skill"
// @skill:version 1.0.0
// @skill:desc "Simple greeting skill."
package main
import sdk "github.com/LuminarysAI/sdk-go"
// @skill:method greet "Return a greeting."
// @skill:param name required "Person name"
// @skill:result "Greeting string"
func Greet(_ *sdk.Context, name string) (string, error) {
return "Hello, " + name + "!", nil
}
Rust版本:
/// @skill:id ai.example.hello
/// @skill:name "Hello Skill"
/// @skill:version 1.0.0
/// @skill:desc "Simple greeting skill."
use luminarys_sdk::prelude::*;
/// @skill:method greet "Return a greeting."
/// @skill:param name required "Person name"
/// @skill:result "Greeting string"
pub fn greet(_ctx: &mut Context, name: String) -> Result<String, SkillError> {
Ok(format!("Hello, {}!", name))
}
AssemblyScript版本:
/**
* @skill:id ai.example.hello
* @skill:name "Hello Skill"
* @skill:version 1.0.0
* @skill:desc "Simple greeting skill."
*/
import { Context } from "@luminarys/sdk-as";
// @skill:method greet "Return a greeting."
// @skill:param name required "Person name"
// @skill:result "Greeting string"
export function greet(_ctx: Context, name: string): string {
return "Hello, " + name + "!";
}
不同语言的技能加载到同一个主机中,可以相互调用,共享状态。
在异构节点上集群部署
主节点将调用路由到x86、ARM、RISC-V、物联网设备等从节点。技能无需感知集群——API调用在本地进行。
应用场景:
- CI/CD:在Linux从节点上运行测试,在Windows从节点上构建Windows二进制文件。
- 硬件交互:使用树莓派处理I2C,Jetson处理视频,x86处理串口通信。
- 物联网设备群:主节点部署在云端,从节点部署在边缘设备上,处理GPIO/SPI/UART。
- 监控:在沙箱中监控sysfs、SMART、CPU/GPU状态。
中继服务器确保加密文件传输。如果从节点故障,自动更新工具。
多LLM与智能体模式
根据任务/语言路由模型:例如,deepseek-coder用于代码生成,rust-specialist用于Rust开发。配置无需重启。
智能体模式(开发中):
- 批量处理:同步/异步调用多个技能。
- 自主运行:基于事件(定时器、传感器、MQTT)的回调。
- 交互:技能间调用,支持深度/超时控制。
MCP兼容性
支持模型上下文协议:兼容Claude、Cursor、Open WebUI。传输方式包括Streamable HTTP、SSE、stdio、OpenAPI。
关键要点
- WebAssembly沙箱中的技能防止权限逃逸。
- 多语言支持(Go/Rust/AS),统一注解和代码生成器。
- 集群部署在异构架构上,无需更改API。
- MCP兼容性,便于与Claude/Cursor/Open WebUI集成。
- 回调模型支持实时和自主智能体。
— Editorial Team
暂无评论。