Zero 和 Spec Kit:AI Agent 正在把“编程”推向更显式的契约时代
项目一vercel-labs/zeroGitHub 创建时间2026-05-15T16:55:16Z最新版本v0.1.0发布时间2026-05-16T00:21:50Z项目描述The programming language for agents项目地址https://github.com/vercel-labs/zero项目二github/spec-kit最新版本v0.8.11发布时间2026-05-15T19:59:06Z当前数据约 100261 stars、8749 forks、410 open issues项目描述Toolkit to help you get started with Spec-Driven Development项目地址https://github.com/github/spec-kit一个新信号代码不再只是写给人和编译器看过去我们讨论 AI 编程常常围绕两个问题模型能不能写代码模型能不能修 bug。但最近出现的项目给出了另一个方向如果未来有大量代码是由 Agent 编写、阅读、调用和维护的那么编程语言、项目规范和开发流程本身是否也应该对 Agent 更友好Zero 和 Spec Kit 代表了这个趋势的两个侧面。Zero 把自己定义为“the programming language for agents”。它不是一个普通脚本语言包装而是强调 explicit effects、predictable memory、structured compiler output。换句话说它想让程序的副作用、内存行为和编译器输出更容易被机器理解和控制。Spec Kit 则站在更上游。它不是语言而是一套 spec-driven development 工具链。它把自然语言需求先变成规格说明、澄清问题、计划、任务拆解再进入实现。它强调的不是“让 Agent 立刻写代码”而是先把人和 Agent 的目标对齐。这两个项目放在一起看会出现一个清晰趋势AI 编程的下一步不是让模型更自由地写更多代码而是让软件工程的中间层变得更显式、更结构化、更可审计。Zero 想解决什么Zero 的 README 写得很直接它是给 Agent 用的系统语言面向 small native tools、explicit effects、predictable memory、structured compiler output。这里每个词都值得拆开。Small native tools 说明它不是要替代所有应用开发而是面向 Agent 需要调用的小型原生工具。Agent 做事时经常需要很多工具读文件、转格式、查数据库、调用接口、处理图片、解析日志。今天这些工具通常由 Python、Shell、Node、Go、Rust 混合实现Agent 调用时要理解命令行、参数、输出、错误码和副作用。Explicit effects 指向更核心的问题Agent 最怕的不是工具不会运行而是不知道工具会影响什么。一个函数会不会写文件会不会发网络请求会不会删除数据会不会启动进程如果副作用不显式Agent 就只能靠注释、README 或猜测来判断风险。Predictable memory 则更接近系统语言的传统优势。Agent 调用工具时需要可预测的性能和行为尤其是在本地执行、沙盒执行、边缘设备或自动化流水线里。Structured compiler output 是最有 Agent 味道的部分。人类读编译错误可以从一大段文本里抓重点。Agent 更需要结构化输出错误类型、文件位置、建议修复、依赖关系、路由信息、图结构。Zero README 里列出的命令包括zero graph --json、zero size --json、zero routes --json、zero doctor --json。这说明它不是只把 JSON 当附加功能而是把可机器消费的输出放到语言体验里。如果这个方向成立未来 Agent 写工具时不会只关心“代码能跑”还会关心“工具行为能不能被另一个 Agent 稳定理解”。Spec Kit 为什么重要Spec Kit 的流行说明另一个问题AI 编程最大的失败点往往不在代码生成而在需求误解。一个人说“帮我做一个任务管理应用”Agent 很容易马上开写。但真实需求里有太多隐含条件用户角色、权限、状态流转、边界情况、数据模型、验收标准、技术栈限制、部署方式。Spec Kit 的流程把这些东西前置。它先让 Agent 创建 feature spec再通过/speckit.clarify做澄清把不明确的问题记录到 Clarifications 里。然后用/speckit.plan生成技术计划再用/speckit.tasks拆成具体任务最后才/speckit.implement。这看起来像更慢的流程但它解决的是 Agent 开发里最贵的问题一开始方向错了后面写得越快返工越多。对人类团队来说PRD、设计文档、技术方案、任务拆解本来就是工程协作的一部分。AI Agent 加入后这些中间产物反而更重要。因为 Agent 没有人类同事的背景常识也不会天然知道哪些需求是硬约束、哪些只是随口一说。Spec Kit 的价值就是把这些上下文变成文件和流程让 Agent 可以反复读取、执行和检查。两条路线其实在汇合Zero 关注语言层Spec Kit 关注流程层但它们最终会汇合在同一个目标让 Agent 能可靠参与软件工程。语言层要解决的是执行可靠性。Agent 写出来的小工具需要有明确副作用、可预测行为、结构化错误和可审计输出。流程层要解决的是目标可靠性。Agent 开始写代码之前必须先知道要做什么、为什么做、做成什么样才算通过。这两层缺一不可。只有流程没有语言Agent 可能规划得很好但落到工具调用和代码执行时仍然充满不确定性。只有语言没有流程Agent 可能写出结构清晰的小工具却仍然解决错问题。所以更大的趋势不是“某个新语言会取代 Python”也不是“某个 spec 工具会取代项目经理”。真正的变化是软件工程正在增加一个面向 Agent 的中间层需求要可解析计划要可追踪任务要可拆解工具要可检查输出要可机器消费。为什么这是 Agent 时代的契约化编程传统编程的契约主要存在于类型、接口、测试和文档里。Agent 时代这个契约会扩展到更多层。第一层是需求契约。Spec 必须说明用户故事、功能要求、验收标准和非目标。这样 Agent 才不会把“先做一个原型”理解成“顺手上权限系统和复杂部署”。第二层是计划契约。Plan 要说明技术栈、数据模型、API、风险、约束和依赖。Agent 在实现中如果偏离计划应该能被检查出来。第三层是任务契约。Tasks 要明确文件路径、执行顺序、可并行项、测试要求。这样多个 Agent 或多轮执行才不容易互相覆盖。第四层是工具契约。Zero 这类语言强调 structured compiler output本质上是在让工具对 Agent 说清楚我做了什么、哪里错了、影响范围是什么、下一步可以怎么修。第五层是运行契约。Agent 调用工具时需要知道副作用、权限、资源消耗和失败模式。explicit effects 和 predictable memory 都属于这个方向。这些契约让 AI 编程从“聊天式委托”走向“工程式协作”。对开发者的现实影响短期内绝大多数团队不会立刻采用 Zero 写生产工具。它还很早期v0.1.0 刚发布语言和生态都不稳定。把它当成成熟语言是不现实的。但 Zero 提出的设计方向值得看未来给 Agent 用的工具最好天然输出 JSON、天然描述副作用、天然支持 graph/size/routes/doctor 这类可诊断命令。即便不用 Zero开发者也可以在现有 CLI 和内部工具里吸收这些原则。Spec Kit 的现实可用性更强。因为它不是替换编程语言而是改善 Agent 开发流程。对复杂功能先写 spec、clarify、plan、tasks再 implement确实能减少返工。尤其是多人协作或长期维护项目规格文件会成为 Agent 的长期记忆。对个人开发者来说最值得马上实践的不是“换语言”而是三件事第一给项目写清楚 agent-facing instructions。不要只写给人看的 README也要写 Agent 能遵守的约束运行命令、测试命令、目录边界、禁止事项、发布流程。第二让内部工具输出结构化结果。错误不要只打印一段彩色文本最好支持--json包含 code、message、file、line、suggestion。第三复杂任务先产出 spec 和 task list。不要让 Agent 从一句话直接跳到修改十几个文件。这对 AI 编程产品意味着什么AI 编程产品过去比拼的是补全速度、模型能力和 IDE 集成。接下来会比拼工程上下文管理。谁能更好地读取规范谁能更好地维护任务状态谁能更好地解释工具输出谁能更好地控制副作用谁就更适合处理真实项目。这也是为什么 Spec Kit 和 Zero 这类项目会同时出现。一个负责把意图变成可执行计划一个负责把执行单元变成可检查工具。它们都在补齐 Agent 软件工程里的薄弱环节。未来的 coding agent 不应该只是一个“会写代码的聊天框”。它更像一个开发流程参与者先问清楚需求再形成计划再拆任务再实现再运行验证再把结果映射回验收标准。如果这个流程成立程序员的工作也会变化。写代码仍然重要但更重要的是定义边界、设计契约、提供可验证环境、审查 Agent 的计划和结果。开发者会从“逐行实现者”更多转向“系统约束设计者”。我的判断Zero 和 Spec Kit 都还不是终局答案。Zero 太新生态需要时间Spec Kit 也可能让小任务显得过重。很多场景里一句明确指令加测试就够了不需要完整 spec-driven 流程。但它们共同揭示了一个方向AI Agent 越深入软件工程越需要显式结构而不是更随意的自然语言委托。过去的软件工程是人写代码给机器执行。现在开始出现第三方Agent 既读人的意图也读机器的反馈还要在两者之间持续行动。这会倒逼我们的语言、工具和流程变得更清楚。真正的 Agent-native development不是让模型自由发挥而是让每一步都有契约、证据和可验证输出。Zero 和 Spec Kit 只是早期信号但这个信号很明确AI 编程正在从“会写”走向“可管”。