Safescript – 面向人工智能时代的编程语言
Safescript 是一种为 AI 代理设计的编程语言,通过静态分析在运行前证明所有安全属性,无需沙箱或虚拟机,彻底消除供应链攻击。它编译成有向无环图(DAG),可追踪数据流和宿主机调用,性能开销为零,启动时间为零。
文章情报
要点
- Safescript 通过静态分析确保代码安全,无需运行时沙箱。
- 编译器生成静态 DAG,可追踪所有数据流和宿主机调用。
- 导入依赖时,通过签名和哈希锁定行为,任何变化都会导致构建失败。
- 与容器和微VM相比,Safescript 实现了零冷启动和零内存开销。
为什么重要
这条新闻值得关注,因为Safescript 通过静态分析确保代码安全,无需运行时沙箱。
技术影响
可能影响模型选型、推理成本、产品能力和评测基准。
Safescript 是一种专为 AI 代理设计的编程语言,其核心理念是通过静态分析在代码运行前证明所有安全属性,从而避免使用沙箱或虚拟机。该项目目前处于 v0.1.0 阶段,提供了安装包(支持 Deno 和 npm),并配有文档和 GitHub 仓库。
Safescript 的语法类似于 JavaScript,但它是基于 DAG(有向无环图)的描述语言。每个程序编译成静态 DAG,没有动态分发或运行时意外。这意味着可以在不执行任何代码的情况下追踪每一条数据从来源到目的地的路径。例如,一个简单的 HTTP 请求函数中,调用的宿主机必须是字符串字面量,不能是变量,这使得静态分析成为可能。
在导入外部代码时,Safescript 要求声明依赖的权限,包括允许访问的宿主机和数据流路径,并可选地锁定源代码的哈希值。这样,任何未声明的宿主机或数据流变更都会导致构建失败,从而将供应链攻击转化为构建错误。
与其他沙箱方案相比,Safescript 采取了不同的方法。容器(如 Docker)有 500ms 到 10 秒的冷启动和约 35MB 的内存开销;微VM(如 Firecracker)冷启动约 125ms,内存约 5MB;V8 隔离区(如 Cloudflare Workers)启动约 5ms,内存约 3MB,但需要特定平台。Deno 的权限系统是进程级别的,但无法预见代码行为。JavaScript 沙箱库要么不轻量,要么不安全。WebAssembly 内存安全但需要额外工具链和绑定。
Safescript 的解决方案是限制代码可以表达的内容,而非运行时行为。编译器静态证明所有安全属性,无需沙箱,因此零开销、零冷启动、零逃逸面。只需在自己的进程中调用函数即可。
语言特性包括:函数定义、类型系统(字符串、数字、布尔、对象、数组)、运算调用(如 httpRequest 要求宿主机为字面量)、控制流(if/else,分支仅执行选中路径,静态分析时保守联合)、内置 map/filter/reduce(函数引用,非 lambda,并行执行 map 和 filter,串行执行 reduce)。此外,还有 override 功能,允许替换被调用函数,替换会传递到整个调用图。
Safescript 的设计使其非常适合 AI 代理执行小段代码的场景,无需担心安全性和性能开销。