Vercel Labs 在 GitHub 上开源了一个实验性编程语言 Zero,5310 个 star,339 个 fork。但数字不是重点——重点是它的定位:给 AI Agent 用的编程语言。
不是给人用的。
传统编程的流程是「人写代码 → 编译器编译 → 人看报错修 bug」。这个循环里,文本是真正源头。而 Zero 把这个源头换成了图(graph):Agent 查询程序图,提交带校验的 patch,编译器直接接受或拒绝。人退到后面,偶尔看一眼文本投影就行。

编译器在循环里,人在循环外
Zero 的核心差别在于,它把 Agent 的编辑操作变成了对语义图的 patch 操作,而不是对文本行的修改。
每个 patch 都带着图哈希和字段期望值,编译器在写入前先校验:这个 patch 对应的图节点是不是还停留在你读的时候的状态?类型对不对?形状对不对?如果图已经被别的 patch 改了(stale),或者 patch 的内容跟期望值对不上,这个编辑直接失败,不会写入存储。

这跟传统 Agent 编码的「写了再改、改了再跑、跑了再查」循环完全不同。Zero 的 Agent 不写文本,它写的是「我要把节点 #expr_653eeb6e 的 value 字段从 hello from zero 改成 hello graph」,编译器检查这个节点确实存在、字段确实叫 value、当前值确实是 hello from zero,然后才放行。


对 Agent 来说,这意味着编辑动作有了语义锚点——目标不是「第 47 行第 3 个字符」,而是「第 653eeb6e 号表达式的 value 字段」。这比行号靠谱得多。
文本退为投影
.0 文件是 Zero 的文本投影,看起来像一种简练的开发语言:
pub fn main(world: World) -> Void raises {
check world.out.write("hello from zero\n")
}
但这个文件不是主源。zero.graph 才是。人可以在 .0 上改代码,然后用 zero import 把改动同步回图——但 Zero 设计者的态度很明确:Agent 应该永远用 zero query 和 zero patch,别碰文本。
人类和 Agent 的协作边界被明确划开了:人用 zero export 看投影,Agent 用 zero query 读图、用 zero patch 写图。zero import 和 zero export 是人和 Agent 之间的边界接口,不是日常开发工具。
社区的关键疑问
Zero 在 Hacker News 上引发了讨论,但不算热烈。几条有代表性的评论:
dboreham 问了一个根本问题:"Zero 说的 Agent 到底是指 AI 编程 Agent,还是几年前我们说的系统 Agent?" README 没有把这层含义讲清楚,需要去 GitHub 项目里翻才明白是 Vercel 做的。
shlewis 说得更直接:"为什么 Agent 需要在工作时学习一个新语言,而不是用模型已经熟悉的语言(Python、TypeScript 等)?" 已经有成熟的生态和大量的训练数据,Zero 的语义图优势需要量化证明。
一部分人认为,「Agent 专用语言」这个方向本身是对的——Agent 编程需要的是能被编译器强制校验的结构化编辑,而不是需要 agent 去猜哪个缩进是什么意思的文本。但另一部分人认为,这更像是「语言设计者觉得 Agent 需要这个」,而不是「Agent 实际需要的」。
killerstorm 的评论最简短也最尖锐:"Meh. The only new thing about it is capabilities, which they don't explain."
判断
Zero 解决了一个真问题:Agent 写代码的核心瓶颈不是「不会写」,而是「写了之后不知道对不对、改了一个地方另一个地方崩了、反复试错消耗 token」。把图作为真正源头、用编译器做编辑守护,这套思路确实能降低 Agent 的试错成本。
但 Zero 目前的形态更像一个思维实验的产物,而不是可用的工具。从 2026 年 5 月发布到现在,它只有 13 个 release tag,语言本身还在剧烈变动。5 千个 star 更多是 Vercel 的品牌效应和「Agent 语言」这个概念的热度,不代表社区已经在用。
最核心的问题还是那个:Agent 为什么要学一个新语言?如果 Zero 能证明「用 Zero 写的 Agent 代码比用 Python 写的错误率低 50%、token 消耗少 30%」,这个语言就有存在的理由。在没有这个证明之前,它只是一个有趣的探索。
参考来源: