vercel-labs/zerolang

GitHub: vercel-labs/zerolang

一门图原生实验编程语言,以语义图而非文本为程序真实来源,让 AI agent 直接查询并提交校验过的图编辑,减少猜测性编码。

Stars: 5047 | Forks: 336

# Zerolang **为 agent 而生的编程语言。** Zerolang 是一门实验性的图原生 (graph-native) 编程语言,其中语义图即为程序数据库。人类提出期望的结果。Agent 查询该图、提交已校验的编辑,并证明最终结果。 ## 从一个请求开始 预期的工作流程是一次普通的对话: ``` build hello world for zerolang ``` Agent 应当使用编译器,而不是从源文本中猜测: ``` zero init zero patch --op 'addMain' --op 'addCheckWrite fn="main" text="hello from zero\n"' zero run ``` 结果仍然可以作为文本投影 (projection) 来审查: ``` pub fn main(world: World) -> Void raises { check world.out.write("hello from zero\n") } ``` 那个 `.0` 文件是 `zero.graph` 的投影。人类可以阅读它、审查它,并偶尔对其进行编辑。Agent 通常应当继续使用 `zero query` 和 `zero patch`。 ## 程序数据库 传统的 agent 编码循环将文本视为事实来源 (source of truth): ``` flowchart LR A[agent writes text] --> B[check] B --> C[format] C --> D[build] D --> E[inspect failures] E --> A ``` Zerolang 让 agent 更接近编译器: ``` flowchart LR A[agent queries graph] --> B[agent submits checked patch] B --> C{compiler accepts?} C -- invalid or stale --> A C -- valid --> D[agent runs task validation] D --> E[human reviews projection when useful] ``` 该图为 agent 提供了明确的操作句柄:符号、节点 ID、图哈希 (graph hashes)、类型、副作用 (effects)、所有权事实、能力 (capabilities)、导入 (imports)、调用边 (call edges) 以及目标事实。编辑可以直接针对语义结构,而不是行范围。过期的图哈希、意外的字段值、无效的结构和类型错误会在存储写入之前导致失败。 ## 目前的进展 - `zero.graph` 是针对图优先 (graph-first) 包的已校验编译器输入。 - `.0` 文件是人类可读的投影,而不是 agent 正常的编写界面。 - `zero patch` 会应用已校验的图编辑,并拒绝过期或无效的更改。 - `zero query`、`zero inspect`、`zero check`、`zero test` 和 `zero run` 通过对 agent 友好的命令公开编译器事实。 - `zero import` 和 `zero export` 使投影边界变得明确,因此人类的文本编辑不会悄无声息地偏离图。 ## 安装 安装编译器: ``` curl -fsSL https://zerolang.ai/install.sh | bash export PATH="$HOME/.zero/bin:$PATH" zero --version ``` 安装 agent 引导技能: ``` npx skills add vercel-labs/zerolang ``` 编译器为 agent 捆绑了版本匹配的技能: ``` zero skills zero skills get agent zero skills get graph zero skills get language zero skills get stdlib ``` ## 日常工作流 对于大多数包的开发工作: ``` zero query zero patch --op help zero patch --op 'addMain' zero check zero test zero run -- ``` 默认输入是当前目录。只有在你想明确指定时才使用 `.`。 当人类想要审查投影文本时: ``` zero export zero verify-projection ``` 当人类有意编辑投影时: ``` zero import zero check ``` ## 运行时目标 图优先模型应当在不放松运行时目标的前提下减少 agent 的猜测: - 高效的 token 检查 - 低内存使用 - 快速启动和构建 - 低运行时延迟 - 明确的能力 - 小巧、无依赖的构建产物 ## 开发 Zerolang 构建本地编译器: ``` pnpm install make -C native/zero-c bin/zero --version ``` 实用的检查命令: ``` pnpm run docs:build pnpm run conformance pnpm run native:test pnpm run command-contracts ``` 用于本地迭代: ``` pnpm run conformance:local -- --list pnpm run conformance:local -- --shard 1/4 pnpm run command-contracts:local ``` 在 [zerolang.ai](https://zerolang.ai) 阅读文档。
标签:SOC Prime, 人工智能代理, 开发工具, 编程语言, 编译器