Vercel Labs 5 月 15 日发布了 Zero —— 一种实验性系统编程语言,它的设计约束是:看编译器输出的是 AI agent,不是人。编译器输出带稳定错误码和类型化 repair 方案的结构化 JSON 诊断(如 `{"code": "NAM003", "message": "unknown identifier", "repair": {"id": "declare-missing-symbol"}}`),在编译期强制基于 capability 的 I/O,在 linux-musl-x64 上编译成不到 10 KiB 的原生二进制。Apache 2.0,文件扩展名 `.0`,v0.1.1 实验版,代码仓库 github.com/vercel-labs/zero。作者是 Vercel Labs 的 Chris Tate 和 Matt Van Horn。

三个设计决定把 Zero 跟 Rust、Zig、Go、C 分开。第一,默认输出 JSON 诊断,带稳定错误码加 repair ID,这样 agent 可以把 `NAM003` 映射到一份 fix 方案,而不必在人类用散文写的错误消息里 grep。第二,通过一个 `World` 参数实现基于 capability 的 I/O —— 没接收 `World` 的函数就不能做 side effect,编译器在编译期就强制这一点,这样 agent 可以从类型签名推出副作用,不必读函数体。第三,统一的 CLI 子命令(`zero check`、`zero run`、`zero build`、`zero graph`、`zero size`、`zero routes`、`zero skills`、`zero explain`、`zero fix`、`zero doctor`),其中 `zero fix --plan --json` 输出机器可读的 repair 方案,`zero skills` 返回跟版本匹配的 agent 指引。内存是显式的 —— 没有 GC、没有隐藏的 allocator —— 这门语言在设计空间里挨着 Rust,但把它的表面优化成对 agent 易读。

大多数 coding-AI 厂商在编程语言外面那一层竞争:Copilot、Cursor、Codex、Anthropic 的 Claude Code。Vercel Labs 押注的是更深一层 —— 让语言本身改变,这样 agent 可以工作而无须支付翻译税。这个动作呼应的两个先例是:Rust 的编译器错误码(稳定、可查询,但消息还是散文),和 Zig 的干净错误返回(可读但没有 capability 系统)。Zero 就是当你以「agent 必须能解析这个」为约束开始,围绕这个约束来设计诊断格式、副作用系统、和 CLI 的结果。这个赌博能不能赢,取决于 agent-native 的语言是否能复合出足够优势,超过「把 agent retrofit 到已有语言上」,以抵消生态赤字。Zero 还没有包注册中心、没有生产环境验证,作者把它称作「还不是生产依赖」。

周一上手:如果你在做 agent-driven 的代码生成系统,Zero 值得花一天去看看 —— 看看当编译器把你的 agent 当作一等消费者对待时是什么感觉。JSON 诊断格式和 `zero explain` 子命令立刻可以观察到;capability I/O 系统需要写一个不那么琐碎的程序来评估。如果你是语言设计者,Zero 的这些架构动作是可独立提取的 —— Zig 和 Rust 都可以加上带 repair ID 的 JSON 诊断而不破坏源码兼容性,这就把 Zero 的大部分 agent 友好特性吸回到现有 toolchain 里。看 Zero 在半年里能不能长出一个真生态,或者看这些技术在 Zero 抵达之前就上移进 Rust/Zig。两种结果都确认了:agent 可读性正在成为语言设计的一个新轴。