返回首页

WebAssembly 用于 AI 技能:Luminarys AI

Luminarys AI — 具有 WebAssembly 沙箱中技能的 AI 代理平台。支持 Go、Rust、AssemblyScript、在不同架构上的聚类以及 MCP 协议。提供严格隔离、多 LLM 路由和自主模式。

Luminarys 中的隔离 AI 技能:WASM + 集群
Advertisement 728x90

Luminarys AI:基于WebAssembly的模块化AI技能隔离平台

Luminarys AI是一个部署AI智能体的平台,其技能被隔离在WebAssembly沙箱中。它支持使用Go、Rust、AssemblyScript编写技能,在异构架构上进行集群部署,并兼容MCP协议。该平台解决了生产环境中的安全性、多语言支持和扩展性挑战。

沙箱中的技能隔离

技能被编译成WebAssembly,并根据配置以严格隔离的方式执行。对文件系统、Shell和HTTP的访问通过白名单进行限制——技能在物理上无法越界。验证在加载时进行:配置不匹配会阻止执行。

硬件监控的配置示例:

Google AdInline article slot
# 示例:用于硬件交互的技能
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技能示例:

Google AdInline article slot
// @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 + "!";
}

不同语言的技能加载到同一个主机中,可以相互调用,共享状态。

Google AdInline article slot

在异构节点上集群部署

主节点将调用路由到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

Advertisement 728x90

继续阅读