大多数编程语言都是为人类设计的——人类擅长阅读错误信息、理解警告并通过堆栈输出手动排查 bug。然而,AI Agent 并不擅长这些。相反,Agent 在处理结构化数据、可预测的 token、稳定的错误代码以及机器可解析的修复提示时效率更高。为了弥合这一鸿沟,Vercel Labs 推出了一款实验性系统编程语言 Zero,旨在为 Agent 提供更快、更小且更易于使用和修复的编程环境。
Zero 是一款与 C 或 Rust 处于相同设计空间的系统级编程语言。它可编译为原生可执行文件,提供显式的内存控制,并针对底层运行环境进行优化。而 Zero 与现有系统语言的最大区别在于:它的编译器输出和工具链从第一天起就是为了让 AI Agent(而非仅仅是人类工程师)消费和理解而设计的。
Zero 解决的核心问题是 Agent 如何与编译器反馈进行交互。在涉及编码 Agent 的典型开发流程中,Agent 编写代码,编译器输出非结构化的文本错误,Agent 必须解析该文本以确定问题并找出修复方法。这种方式非常脆弱——错误消息格式经常变化,而且信息是为人类阅读而写的,缺乏内置的“修复动作”概念。
因此,Zero 的命令行界面(CLI)默认输出结构化的 JSON 诊断信息。运行 zero check --json 时,输出如下:
{
"ok": false,
"diagnostics": [{
"code": "NAM003",
"message": "unknown identifier",
"line": 3,
"repair": { "id": "declare-missing-symbol" }
}]
}每个诊断信息都包含一个稳定的代码(例如 NAM003)、人类可读的消息、行号引用以及带有所属修复 ID 的修复对象。人类阅读消息,而 Agent 则直接读取代码和修复方案。同一个 CLI 命令可以同时满足这两者需求,无需运行其他独立工具。
Zero 将工具链统一到了单个二进制文件中:zero check、zero run、zero build、zero graph、zero size、zero routes、zero skills、zero explain、zero fix 以及 zero doctor 都是同一个 CLI 的子命令。这对于 Agent 工作流至关重要,因为 Agent 无需再去推理应该为特定任务调用哪种工具。
其中两个子命令与修复闭环高度相关。运行 zero explain <diagnostic-code> 会返回特定诊断代码的详细解释,这样 Agent 就可以直接查找 NAM003,而无需解析冗长的文档说明。而 zero fix --plan --json <file-or-package> 则会输出结构化的修复计划(一种机器可读的更改描述),从而避免了让 Agent 仅凭错误消息去盲目推测修复方法。
此外,zero skills 提供了另一个维度的支持:它直接通过 CLI 提供版本匹配的 Agent 引导指南。运行 zero skills get zero --full 会返回专门针对 Zero 语法、诊断、构建、包管理、标准库使用、测试和 Agent 编辑循环的针对性工作流,并且所有这些内容都与当前编译器版本保持一致。
【AgentUpdate 深度解析】Vercel 推出 Zero 语言,标志着软件工程正式从“AI 辅助人类编程(Copilot)”向“AI 原生自主编程(Agent-First)”发生范式转移。传统的编程语言(如 Rust、C++)依靠极其复杂的编译器约束来保证安全性,这对人类是保护,对 Agent 却是极高的语义障碍。Zero 另辟蹊径,不单在语言表达上做文章,而是重构了编译器反馈这一关键闭环。通过将错误诊断和修复路径完全“JSON化”,并内置 zero skills 这样的动态上下文,Zero 将 Agent 与编译器的交互开销降低了数个数量级。这与 MCP(Model Context Protocol)的底层逻辑异曲同工,即消除大模型与外部工具/环境之间的感知阻抗。长远来看,未来可能会诞生一系列完全由 AI 编写、编译并自愈的“Agent 原生软件栈”,而 Zero 正是这一生态在系统级语言层面的关键探路者。