ZeroLang:一个为 AI Agent 从零设计的编程语言实验
约 9 分钟2414 字2 次阅读

ZeroLang:一个为 AI Agent 从零设计的编程语言实验
zerolang 是 Vercel Labs 正在探索的一个编程语言实验,核心问题只有一个:如果把 AI Agent 当成编程语言的第一用户(primary user),而不是事后补充的工具集成,语言和工具链应该长什么样?
这个问题的答案显然没有定论——zerolang 自己也说它是"pre-1"的,会随时做破坏性变更。但它提出的设计方向,对于所有关心 AI + 软件开发趋势的人来说,值得认真看看。
背景:为什么需要 Agent-First 的编程语言?
传统编程语言诞生于人与人协作的场景:Rust 关心内存安全,Go 关心工程团队效率,Python 关心人类可读性。但 AI Agent 的编程方式跟人类完全不同:
- Agent 不怕重复,但怕歧义——同样的语法糖在多义词面前会造成混淆
- Agent 需要结构化反馈,而不是含蓄的人类友好错误信息
- Agent 擅长在文档和示例中学习,但前提是文档和示例本身足够一致
- Agent 需要可预测的工具链,每一次 lint/check/build 都应该返回稳定的结构化数据
换句话说:Agent 需要一种"规则更少、约定更一致、反馈更结构化"的编程语言。zerolang 就是对这个问题的一次系统性探索。
核心设计原则
根据官方文档和 GitHub 仓库,zerolang 明确了以下设计原则:
1. Agent 可快速学习的语言表面
zerolang 的语法刻意做小、做规律。核心关键词很少,没有复杂的多态语法糖。编译器(zero check)在报错时直接给出 explain 提示,引导到下一步操作:
$ zero check examples/hello.0
hello.0:1:4 PAR100: expected '{' before block
explain: zero explain PAR100
这不是传统意义的人类友好错误信息,而是给 Agent 看的结构化指令。
2. 标准库优先于语法糖
"大多数程序应该从一个文档完善的标准库 API 开始,而不是从一个依赖搜索开始。"
zerolang 的 std 库覆盖了相当广的范围:
- 文件 I/O (
std-path-io.0) - HTTP 请求 (
std-http-request.0) - JSON 处理 (
std-json-bytes.0,std-http-json.0) - 内存分配 (
memory-primitives.0) - CRC32、VarInt 等底层协议
3. 可被工具检查的确定性行为
zero graph --json、zero size --json、zero skills get 等命令都支持 JSON 结构化输出。这不是给人类看的图表,而是给 Agent 能够解析、推理、自动化处理的结构化事实。
4. 显式效果(Explicit Effects)
外部世界访问、可失败性、资源使用——这些在 zerolang 中都是显式标注的,不存在隐式的 side effect。
快速体验:安装和运行
zerolang 提供一键安装脚本:
curl -fsSL https://zerolang.ai/install.sh | bash
export PATH="$HOME/.zero/bin:$PATH"
zero --version
Hello World:
pub fun main(world: World) -> Void raises {
check world.out.write("hello from zero\n")
}
保存为 hello.0,运行:
zero run hello.0
# 输出: hello from zero
一个简单的加法示例:
fun answer() -> i32 {
return 40 + 2
}
pub fun main(world: World) -> Void raises {
let value = answer()
if value == 42 {
check world.out.write("math works\n")
} else {
check world.out.write("math broke\n")
}
}
语法一览:几个关键特征
Shape 替代 Class
zerolang 用 shape 定义结构体,而不是传统的 class:
shape Point {
x: i32,
y: i32,
}
fun sum(point: Point) -> i32 {
return point.x + point.y
}
泛型支持
shape FixedVec<T, static N: usize> {
len: usize = 0,
items: [N]T,
fun push(self: mutref<Self>, value: T) -> Void raises { Full } {
if self.len == (N) {
raise Full
}
self.items[self.len] = value
self.len = self.len + 1
}
fun get(self: ref<Self>, index: usize) -> Maybe<T> {
return std.mem.get(self.items, index)
}
}
注意 static N: usize 这样的编译期常量参数语法,以及 mutref<Self>(可变引用)这样的显式所有权标注。
错误处理:raises + check
pub fun main(world: World) -> Void raises {
check world.out.write("hello from zero\n")
}
raises 关键字声明函数可能抛出的错误类型,check 类似于 Rust 的 ? 运算符,但更显式。
当前状态与风险提示
zerolang 明确声明:
Security vulnerabilities should be expected. zerolang is not ready for production systems, sensitive data, or trusted infrastructure. If you plan to run or develop zerolang, do so in an isolated, disposable environment.
这不是谦虚,是认真的风险声明。当前版本:
- Pre-1,语法和 API 随时可能破坏性变更
- 安全漏洞预期存在
- 仅适合隔离的实验环境
项目概览
| 指标 | 数据 |
|---|---|
| 仓库 | vercel-labs/zerolang |
| 主站 | zerolang.ai |
| Stars | 4,000+ |
| Forks | 240+ |
| 主要语言 | C(编译器) |
| 许可证 | Apache 2.0 |
| 首次提交 | 2026-05-15 |
| 最新更新 | 活跃中 |
值得关注的相关项目
zerolang 生态正在快速增长,几个值得关注的延伸项目:
- zero-agent-bench:在 ZeroLang vs Python 上对前沿 LLM 打分,测试 pass rate 和 fix-loop 能力
- zero-skills:社区贡献的 Agent 模式技能集(CLI、文件 I/O、fix-loop 等)
- VSCode 语法高亮插件:
.zero文件的语法支持 - 各语言实现:Go、C# 等社区实现正在跟进
思考:Agent-First 语言意味着什么?
zerolang 的实验价值,不在于它今天能做什么,而在于它提出了正确的问题。
当前 AI 编程助手的范式是:在现有语言(Python/JS/Rust)上叠加 AI 理解层。这个范式有天花板——语言的歧义性、多样性、人类友好设计,都给 AI 造成了额外的理解负担。
如果有一种语言,从第一天就为 AI Agent 设计:
- 规则少、约定多、语法一致
- 工具链输出结构化、确定性、可操作的反馈
- 标准库覆盖大多数场景,减少外部依赖搜索
AI Agent 的编程可靠性,可能会提升一个数量级。
当然,这个假设需要验证。zerolang 本身也在说:"Try it with us: run examples, inspect the structured output, and send feedback about what helps agents work better."
结语
zerolang 是一个严肃的语言设计实验,不是玩具项目。它背后有 Vercel Labs 的投入,有 4000+ GitHub Stars,有活跃的社区生态(240+ forks),而且刚刚在 5 月 15 日才公开。
如果你在关注 AI + 软件开发的趋势,zerolang 值得放进你的观测列表。即使不写它的代码,它的 design notes 和 issue 区也是关于"AI-First 语言应该怎么设计"的一手资料。
官网: https://zerolang.ai
GitHub: https://github.com/vercel-labs/zerolang
安装: curl -fsSL https://zerolang.ai/install.sh | bash
本文基于 GitHub 仓库 (2026-05-21) 和 zerolang.ai 官网信息撰写。zerolang 仍为 Pre-1 版本,请勿用于生产环境。