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 直接写文本代码 → 运行时检查 → 失败则重新写。这个循环存在三个根本问题:
- 文本不是语义:Agent 不知道"这段文本修改会影响到哪些节点",只能靠猜测
- 编译器在循环外:类型错误、非法操作在运行时才暴露,浪费大量 token
- 人类审查困难: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 循环 |
| 生产级应用 | ❌ | 实验阶段,不可用 |
| 处理敏感数据 | ❌ | 官方要求隔离环境运行 |
坑与注意
- 实验阶段,breaking changes 是常态:版本兼容性没有任何保证
- 文档有限:目前主要文档在 GitHub README,生态还在建设中
- 性能未知:图结构的编译和查询开销未经过生产验证
- Agent 需要专门适配:不是所有 Agent 都支持 Zerolang,需要使用其 skill 系统
- 人类介入门槛:需要理解图-投影模型,不适合普通开发者
- 安全隔离要求:官方要求在隔离环境中运行,不要接触生产或敏感数据
与同类对比
| 工具/语言 | 设计目标 | 范式 | 成熟度 | 适用场景 |
|---|---|---|---|---|
| Zerolang | AI Agent 编程 | 图原生 | 实验 | Agent 编程研究 |
| Python + Agent | 通用 Agent | 文本循环 | 成熟 | 主流生产 |
| Tree of Thoughts | Agent 推理 | 树搜索 | 研究 | 复杂推理 |
| Reflexion | Agent 自我纠错 | 文本反馈 | 研究 | 长期任务 |
| LangGraph | Agent 工作流 | 图计算 | 成熟 | 生产 Agent |
一句话推荐结论
Zerolang 是一个非常前沿的概念验证——用语义图替代文本作为程序真相来源,让 AI Agent 在提交代码前就通过编译器校验,理论上能大幅减少幻觉编程;如果你是 AI Agent 框架研究者或语言设计爱好者,非常值得围观学习;但目前阶段不推荐做任何实际项目,等生态成熟后再关注。