vercel-labs/zerolang · 上手攻略

  • 仓库:vercel-labs/zerolang
  • 链接:https://github.com/vercel-labs/zerolang
  • 分类:编程语言 · AI Agent
  • 作者:Jay
  • 更新:2026-07-15

是什么

Zerolang(zero)是 Vercel Labs 出品的实验性图原生(graph-native)编程语言,专为 AI Agent 设计。它的核心思路是:程序不是文本文件,而是一张语义图(semantic graph);Agent 通过查询图、提交经过检查的编辑来构建程序,而非直接操作原始文本。这样 Agent 的每次修改都会经过编译器的语义校验,从根本上减少"幻觉代码"和"幽灵错误"。

⚠️ 实验阶段警告:Zerolang 高度实验性,API 会breaking change,安全边界尚未成熟。不要在生产环境或处理敏感数据时使用

解决什么问题

当前 Agent 编程的主流范式是:Agent 直接写文本代码 → 运行时检查 → 失败则重新写。这个循环存在三个根本问题:

  1. 文本不是语义:Agent 不知道"这段文本修改会影响到哪些节点",只能靠猜测
  2. 编译器在循环外:类型错误、非法操作在运行时才暴露,浪费大量 token
  3. 人类审查困难:Agent 写出的代码人类难以验证意图

Zerolang 将编译器放到 Agent 循环内,让图的结构成为程序真相的唯一来源,文本(.0 文件)只是人类可读的一种投影(projection)

核心概念

理解 Zerolang 之前,需要先搞清楚三个核心实体:

概念 说明
zero.graph 程序的真源码——语义图,Agent 正常操作的界面
.0 文件 graph 的人类可读文本投影,可以手动编辑但不建议
Checked Patch Agent 对图提交的编辑,只有通过语义校验才会被接受

流程是:zero graph(图) → zero patch(提交编辑) → 编译器校验 → 通过则写入 → zero export(投影到文本)

快速安装

一键安装(Linux / macOS)

curl -fsSL https://zerolang.ai/install.sh | bash

安装脚本会将 zero 二进制加入 $HOME/.zero/bin,需要手动加到 PATH:

export PATH="$HOME/.zero/bin:$PATH"
zero --version

从源码构建

需要 pnpm 和 Rust 工具链:

git clone https://github.com/vercel-labs/zerolang.git
cd zerolang

pnpm install

# 编译原生组件
make -C native/zero-c

# 验证构建
bin/zero --version

Agent Bootstrap Skill

npx skills add vercel-labs/zerolang

安装编译器后会绑定对应版本的 agent skills:

zero skills          # 列出所有可用 skill
zero skills get agent    # 获取 agent 专用 skill
zero skills get graph    # 获取图操作 skill
zero skills get stdlib   # 获取标准库 skill

核心用法

初始化项目

zero init

会在当前目录创建初始 zero.graph

查询图状态

zero query

显示当前图的所有节点、边、类型和可用符号。

提交图编辑(正常 Agent 流程)

# 添加一个 main 函数
zero patch --op 'addMain' --op 'addCheckWrite fn="main" text="hello from zero\n"'

# 查看所有可用 patch 操作
zero patch --op help

zero patch 会: 1. 解析 patch 操作 2. 检查图的完整性(stale hash、非法 shape、类型错误都会在这里被拒绝) 3. 通过则写入 zero.graph

校验与运行

# 类型和语义检查
zero check

# 运行测试
zero test

# 执行程序
zero run -- <args>

人类审查工作流

# 将 graph 导出为文本投影
zero export

# 验证投影与 graph 是否一致
zero verify-projection

# 若人类手动修改了投影,需要重新导入
zero import
zero check   # 校验一致性

典型示例:Hello World

让 Agent 构建:

build hello world for zerolang

Agent 的正确做法(不猜测,直接调用编译器):

zero init
zero patch --op 'addMain' --op 'addCheckWrite fn="main" text="hello from zero\n"'
zero check
zero run

生成的 .0 投影(人类可读):

 Void raises {
  check world.out.write("hello from zero\n")
}
">pub fn main(world: World) -> Void raises {
  check world.out.write("hello from zero\n")
}

人类可以直接阅读这段文本,确认是否符合意图,再决定是否接受。

适用场景

场景 适合度 说明
AI Agent 编程研究 ✅✅✅ 专为减少 Agent 幻觉设计
学习图编程范式 ✅✅ graph-native 概念有学习价值
构建高可靠性 Agent 系统 编译器内嵌到 Agent 循环
生产级应用 实验阶段,不可用
处理敏感数据 官方要求隔离环境运行

坑与注意

  1. 实验阶段,breaking changes 是常态:版本兼容性没有任何保证
  2. 文档有限:目前主要文档在 GitHub README,生态还在建设中
  3. 性能未知:图结构的编译和查询开销未经过生产验证
  4. Agent 需要专门适配:不是所有 Agent 都支持 Zerolang,需要使用其 skill 系统
  5. 人类介入门槛:需要理解图-投影模型,不适合普通开发者
  6. 安全隔离要求:官方要求在隔离环境中运行,不要接触生产或敏感数据

与同类对比

工具/语言 设计目标 范式 成熟度 适用场景
Zerolang AI Agent 编程 图原生 实验 Agent 编程研究
Python + Agent 通用 Agent 文本循环 成熟 主流生产
Tree of Thoughts Agent 推理 树搜索 研究 复杂推理
Reflexion Agent 自我纠错 文本反馈 研究 长期任务
LangGraph Agent 工作流 图计算 成熟 生产 Agent

一句话推荐结论

Zerolang 是一个非常前沿的概念验证——用语义图替代文本作为程序真相来源,让 AI Agent 在提交代码前就通过编译器校验,理论上能大幅减少幻觉编程;如果你是 AI Agent 框架研究者或语言设计爱好者,非常值得围观学习;但目前阶段不推荐做任何实际项目,等生态成熟后再关注。