zero
为AI智能体设计的图谱优先编程语言,让编译器成为AI的语义地图而非文本迷宫
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
为AI智能体设计的图谱优先编程语言,让编译器成为AI的语义地图而非文本迷宫
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
Vercel Labs | Apache-2.0 | C + TypeScript | 4772 Star
想象一下:你对 AI 助手说「帮我修一下登录函数」,它不再靠猜测去找文本位置,而是直接拿到编译器确认的语义地图,精准定位并修改——这就是 Zero 语言正在做的事。
2025 年,由 Vercel Labs 推出的 Zero 语言(zerolang)正式亮相,主打「为 AI 编程工具打造的编程语言」。它的核心思路非常独特:源代码依然是人类审查的权威来源,但编译器额外生成一个「程序图谱」(ProgramGraph),让 AI 智能体能够「看懂」代码的语义结构,而不是在一堆文本里盲目搜索。
Zero 的 slogan 非常直白:The programming language for agents(专门给 AI 智能体使用的编程语言)。这不是噱头,而是经过深思熟虑的系统设计。
当前的 AI 编程助手本质上都是在操作文本:给一段代码,让模型理解后再输出一段文本补丁。但文本有个根本性问题——它是「有损」的信息载体。举一个具体的例子:当模型想修改一个函数调用时,文本补丁必须猜测这段代码是否已经过期(stale),调用是否指向了正确的函数,以及这次编辑是否意外破坏了所有权(ownership)、错误处理(fallibility)或类型约束。
Zero 语言的设计者认为,AI 智能体需要一个编译器拥有的「语义地图」,而不是靠自然语言推理去猜测程序结构。这个语义地图叫做 ProgramGraph,由编译器从源代码派生而来,但并非替代源代码,而是作为 AI 专用的「检查接口」。
具体来说,ProgramGraph 包含节点 ID、图谱哈希(graphHash)、类型信息、所有权事实、能力(capability)事实、模块依赖边等结构化数据。AI 智能体可以沿着这些语义事实导航,从一个符号、诊断信息、调用关系或节点 ID 出发,精确获取周围的语义上下文。
Zero 的 Graph 编辑与普通文本编辑的差异,可以用一个生活中的类比来解释:想象你在一个没有地图的城市里找人(传统文本编辑)vs 在 GPS 导航系统里找人(Graph 编辑)。前者只能靠描述特征,后者直接告诉你坐标和门牌号。
在 Zero 中,AI 可以执行经过编译器检查的 Graph 编辑,而不是盲目的文本补丁。执行 zero graph patch 命令时,AI 提交的不是「在第 12 行附近把 hello 改成 hi」,而是指定节点 ID(如 #610c78bf)、期望的图谱哈希(graphHash: b8a019041020df03)、预期字段值(expect),以及新值。编译器在写入源代码之前会验证整个编辑链的完整性——如果哈希对不上或字段值已变化,编辑被拒绝。
这意味着 AI 的修改是「经过编译器担保」的,而不是需要人类事后审查一堆文本 diff。这对自动化编程工作流来说意义重大——机器生成的修改可以更自信、更可靠。
Zero 语言的语法对于有 C / Rust / Go 背景的开发者来说非常熟悉,但又有自己独特的味道。函数有显式返回类型(-> i32),公开函数需要 pub 标记,可失败函数标注 raises,参数需要类型标注(world: World)。这种设计借鉴了 Rust 的所有权模型,同时保持了类 C 的语法简洁性。
设计目标非常明确:Token 效率优先、低内存占用、快速启动、快速构建、低延迟运行时、零外部依赖——Zero dependencies 正是语言名字的双关含义。
Zero 编译器通过统一的 CLI 工具 zero 暴露所有 AI 工作流接口,所有输出都支持 --json 结构化格式,这是刻意设计的。稳定字段和诊断码比纯文本输出更适合 AI 处理,核心命令包括:
zero check --json:返回诊断信息,含 code、span、expected/actual 字段zero graph --json:导出模块、导入、公共符号、能力、效果zero graph dump:输出确定性 ProgramGraph(含节点、边、哈希)zero graph patch:执行带前置条件的 Graph 编辑zero fix --plan --json:生成修复计划,不直接修改文件zero skills get language:导出与编译器版本匹配的语言规范zero size --json:分析二进制大小保留原因编译器本身用 C 语言编写,运行时完全零依赖。编译产物极小(几十 KB),启动极快,非常适合 AI 编程工具的自动化流水线。
Zero 采用多语言混合架构:编译器核心(native/zero-c)用 C 编写,追求零依赖和高性能;构建脚本、文档站点(docs/)、技能数据(skill-data/)和编辑器扩展(extensions/vscode)用 TypeScript/Node.js 实现;monorepo 管理使用 pnpm workspace + Turbo。
技术栈一览:编译器内核 C / 构建系统 Node.js (>=24) + TypeScript / 包管理 pnpm 11+ / Monorepo Turbo / 编辑器扩展 VS Code / 文档 Next.js。
安装 Zero 极其简单,一条命令搞定:curl -fsSL https://zerolang.ai/install.sh | bash,然后将 $HOME/.zero/bin 加入 PATH 即可。安装脚本自动下载对应平台的预编译二进制文件,1 分钟内可用。
zero check examples/hello.0 # 类型检查
zero run examples/add.0 # 运行程序
Zero 当前版本为 0.2.0,明确标注为实验性质:安全漏洞应被视为正常现象,不建议用于生产系统、敏感数据或受信任的基础设施。官方建议在隔离的一次性环境中开发和运行。
Zero 目前存在几个明显的局限性。首先,作为 2025 年才发布的实验性语言,生态几乎为零——没有现成的库、没有包管理器(仅有语言内置的标准库 std/)、没有社区积累。其次,语言规范仍在快速迭代,编译器、语法、标准库和诊断接口随时可能发生破坏性变更,缺乏向后兼容保障。
第三,Graph 编辑模式虽然理论上很美好,但实际效果取决于 AI 模型对 ProgramGraph 语义的理解程度——当前的 LLM 在结构化推理上仍有明显短板。最后,C 语言编写的编译器虽然轻量,但也意味着缺乏现代语言的内存安全保证,安全性完全依赖开发者的经验。
Zero 的出现代表了 AI 编程工具发展的一个重要方向:从「辅助人类编程」到「让 AI 自主编程」的范式转变。传统的 AI 编程助手(Copilot、Cursor)本质上还是在「帮人类打字」,而 Zero 的 ProgramGraph 模型试图让 AI 能够「理解和推理程序结构」,而不只是操作文本字符串。
这一思路与 Anthropic 的 Claude Code 工具、Google 的 Jules,以及开源社区的 multi-agent coding 框架在方向上高度一致——都在探索如何让 AI 更准确地执行编程任务。Zero 的独特贡献在于它从语言设计层面(而非工具层面)解决这个问题:不是用更好的提示词让 AI 理解代码,而是让编译器直接给 AI 提供可验证的语义接口。
从增长角度看,Zero 在 GitHub 上获得了 4700+ stars 的关注,同期 MCP(Model Context Protocol)、A2A(Agent-to-Agent)协议等基础设施也在快速推进,共同构成了 AI Agent 编程生态的底层支撑。