正在加载视频...
视频章节
Zed 联合创始人 Nathan Sobo 通过一次真实的产品实践,讲述了当 AI 引入软件系统后,传统确定性测试如何失效,以及他们如何一步步构建“随机但可控”的评估体系,让 AI 功能也能被严肃地交付。
当AI变得不可预测,持续集成该如何进化?
Zed 联合创始人 Nathan Sobo 通过一次真实的产品实践,讲述了当 AI 引入软件系统后,传统确定性测试如何失效,以及他们如何一步步构建“随机但可控”的评估体系,让 AI 功能也能被严肃地交付。
从零实现一个编辑器:经验主义是唯一的生存方式
为什么一家现代编辑器公司,会在测试这件事上如此“偏执”?Nathan Sobo 在开场就给出了答案。Zed 不是 VS Code 的分支,而是“implemented from scratch in Rust”,整个渲染系统像游戏引擎一样围绕 GPU 设计,用大约 1200 行着色器代码,在 120 FPS 下持续输出画面。这种架构带来的性能红利,也意味着任何并发或调度错误都会被无限放大。
Sobo 提到一个极具冲击力的事实:如果没有自 2018/2021 年以来坚持的经验主义开发方法,“Zed would crash every 8 seconds”。为此,他们积累了“tens of thousands of tests”。其中一个典型测试,会启动服务器、创建两个客户端、注入一个模拟调度器,并在 50 次不同的随机并发交错下运行,只为穷尽所有可能的竞态条件。
这个故事的重要性在于,它奠定了整场演讲的前提:Zed 并不是在 AI 时代才开始重视测试的团队。恰恰相反,正因为他们在“纯工程问题”上已经把确定性测试做到极致,才会在 AI 出现后,第一时间意识到:过去那一整套方法,开始失灵了。
当确定性崩塌:AI 让测试第一次变成概率问题
在引入 AI 功能之前,Zed 的世界几乎是完全确定的。同样的输入,永远产生同样的输出,失败就意味着代码有 bug。但 Agentic Editing 的发布,第一次把随机性引入了核心工作流。
Sobo 用一句话点破了问题的本质:这不再只是“测试(testing)”,而是“评估(evaluation)”。当一个大型 AI 评估失败时,“it’s like what do we do? There’s a million ways that thing could go wrong.”你无法像单元测试那样,精确定位是哪一行代码导致了失败。
于是他们被迫接受一个新现实:这是“ultimately an algorithmic problem with a stochastic test”。也就是说,你在用概率性的方式,评估一个同样具有随机性的系统。这一转折极其关键,因为它意味着 CI(持续集成)在 AI 时代不再是简单的 pass/fail,而是要回答:在足够多次运行中,这个系统是否“大体上”是可靠的。
这不是理念上的妥协,而是一种工程上的成熟。Sobo 的分享里,没有对 AI 不确定性的浪漫化,只有对复杂系统保持敬畏后的务实选择。
分层对抗随机性:能确定的,绝不交给模型
面对随机性,Zed 的策略并不是“全交给模型然后祈祷”。相反,他们做了一次彻底的拆解:哪些部分必须是 100% 确定的,哪些部分才允许随机。
在编辑流程中,大量基础行为仍然通过严格的确定性测试来保障。Sobo 在演示中强调,有些看起来微不足道的编辑规则,如果不被牢牢锁死,会直接导致整个 Agentic Editing 体验崩溃。“That’s another… completely deterministic thing that still was critical to making the system work correctly.”
这种分层设计的价值在于,它显著缩小了不确定性的作用范围。当 AI 行为出现异常时,工程师至少可以确信:不是编辑器的基本逻辑出了问题,而是模型层需要被重新审视。
这个思路对所有 AI 产品都有启发意义。真正可靠的 AI 系统,并不是随机性更强,而是随机性被严格隔离,只在“必须智能”的地方才被允许存在。
最后 5% 的问题:评估、提示与工程直觉
即便做了如此多的工作,Sobo 仍然坦率地承认:他们解决了 95%,但还剩“the last like 5%”。这 5% 往往不是靠增加测试数量解决的,而是需要工程师亲自观察模型行为。
他举了一个非常具体的例子:模型在生成文本时,会出现“crazy escaping”,甚至对换行符进行双重转义。这并不是代码 bug,而是模型输出模式的问题。最终的解决方案也并不复杂——“that was just a pure prompt fix”。
这个故事的意义在于,它揭示了 AI 工程中一个常被忽视的事实:提示工程并不是玄学,而是一种基于大量失败样本总结出的经验修正。评估体系的价值,不仅在于给出分数,更在于暴露这些“人眼才能发现”的异常行为。
当 CI 系统能够稳定地复现这些问题,工程师才有可能用理性而不是感觉,去修正模型与产品之间的接口。
总结
Nathan Sobo 的演讲并没有给出一套现成的“AI 测试银弹”。相反,它讲述了一家工程文化极其严谨的公司,如何在 AI 的不确定性面前,重新发明自己的 CI 体系。核心启发只有一句话,却足够沉重:“rigorous testing is fundamental to building reliable software, period.”在 AI 时代,这种严谨并没有过时,只是从确定性断言,进化成了对概率和行为的持续度量。
关键词: 持续集成, AI 测试, 随机评估, Zed 编辑器, 提示工程
事实核查备注: Nathan Sobo(Zed 联合创始人);Zed 编辑器(Rust 实现,非 VS Code fork);约 1200 行 GPU shader;120 FPS;数万测试用例;50 次随机并发调度测试;Agentic Editing;stochastic test;prompt fix