Vercel Labs 推出 Zero:为 AI 代理设计的系统编程语言,可自动读取、修复和部署原生程序
Vercel Labs 发布实验性系统编程语言 Zero,其编译器输出结构化 JSON 诊断、稳定错误码和修复元数据,支持基于能力的安全 I/O,编译至小于 10 KiB 的原生二进制文件,专为 AI 代理工作流设计。
Vercel Labs 近日发布了 Zero,一门实验性的系统编程语言,其核心设计目标是让 AI 代理能够直接读取、修复和交付原生程序,而无需人类介入解释编译器输出。传统编程语言的错误信息以人类可读的文本形式呈现,AI 代理解析这些文本既脆弱又低效。Zero 从第一天起就将编译器输出设计为结构化数据,解决了这一痛点。
Zero 的 CLI 默认输出 JSON 格式的诊断信息。例如,运行 zero check --json 会返回类似 {"ok": false, "diagnostics": [{"code": "NAM003", "message": "unknown identifier", "line": 3, "repair": {"id": "declare-missing-symbol"}}]} 的结果。每个诊断包含稳定的错误码(如 NAM003)、人类可读消息、行号以及类型化的修复 ID。AI 代理通过读取错误码和修复 ID 即可采取行动,无需解析文本。
此外,Zero 提供了 zero explain 和 zero fix 子命令。zero explain 可返回特定诊断码的详细解释,而 zero fix --plan --json 则输出机器可读的修复计划,明确描述需要进行的修改。zero skills 子命令则直接从 CLI 提供与当前编译器版本匹配的代理指导,包括语法、诊断、构建等流程,避免代理抓取过时文档。
在语言设计上,Zero 采用基于能力的安全 I/O。所有与外界的交互(如文件系统、网络)必须通过能力对象(如 World)在函数签名中显式声明。编译器在编译时强制执行,没有隐藏的全局对象。例如,main 函数接收 world: World 参数,通过 check 关键字处理可能失败的操作,raises 注解标明错误传播路径。
Zero 编译为原生二进制文件,大小控制在 10 KiB 以下。没有强制垃圾回收、隐式分配器或隐式异步,内存和控制流完全可预测。它支持跨编译,并输出 C ABI 导出元数据。安装仅需一条 curl 命令,并提供了 VS Code 语法高亮扩展。
目前 Zero 尚处于实验阶段(v0.1.1,Apache-2.0 许可),没有包注册中心,跨编译目标有限。但它为 AI 工程师展示了代理原生工具链设计的可能性——值得关注,但尚不适合生产环境。