ARTICLE · 1190927
AI 交的代码,这回自带验收单
上一期结尾我说,要把那个老项目的产出丢进 CI 里跑一遍,看看有多少能活着出来。
实验我还没来得及做完,CI 那一边先自己动了。
10 月 14 日,Chainguard 在伦敦的 Assemble 大会上一次发了三个产品:Workspaces、Checks、Harness。名字听着像卖房子的,但讲的其实是同一件事——当写代码的变成 agent 之后,"验收"这一步该怎么重新安排。
这篇我想把 Checks 拆细一点讲,因为它踩的正是我上期那个坑。
一、先说清楚它想解决的问题
CI(持续集成)是给"一天推几次代码的人"设计的。你 push,它排队,几分钟后给你结果。这个节奏很合理,因为人写代码本来就不快。
但 agent 不是这个节奏。它是"改一行、跑一遍"的节奏,一个下午能提交几十次。于是所有的改动都挤进同一个队列,它写得越快,队列排得越长。Chainguard 这个说法我特别有共鸣:等结果回来的时候,agent 早就把当时的上下文丢了,而你还在为每一次运行重复付同一笔环境准备的钱。
更麻烦的是安全。传统的 runner 习惯把长期密钥和不受信任的代码放在一台机器上——一个被提示词注入带偏的 agent,或者一个装依赖时顺手跑起来的脚本,就能从内存里把静态密钥捞走。
二、Checks:把 CI 变成 agent 循环里的一个工具调用
他们的做法说出来其实很简单:别等干完活再验,让验证在 agent 还在干活的时候发生。CI 不再是"提交后的一道关卡",而是 agent 可以随手调用的一个工具,在哪跑结果都一样。
具体到机制,有几个点我觉得值得记住:
1)热快照。每次运行都从一份已经装好依赖的快照起步。快照只在 lockfile 变化时在后台重建。环境准备的钱付一次,而不是每个 commit 付一次。(这个思路前端人应该很熟,就是本地那套热启动的镜像。)
2)每个步骤跑在自己的 microVM 里。轻量级虚拟计算机,基于 Chainguard OS 的包构建(零 CVE,含 FIPS 合规工具链)。不受信任的代码碰不到别的工作负载。
3)runner 里没有能偷的长期凭证。出站请求的凭证由宿主侧代理"在飞行中加入",只存活很短时间;那些必须落盘的凭证,给的是一个加密的短期替身。agent 从头到尾没真正持有过密钥。
4)网络按审批放行。声明式的出口策略,没批准的连接直接拦掉;可以配置成自动拒绝,或者干脆销毁这台 microVM 防数据外泄。
5)签名证明(attestation)。这是我觉得最"变天"的一条。每次通过的运行会产出一张签名的记录,把环境、测试结果和 commit 绑在一起,跟着代码走。下游的合并关卡验证这张证明,就能直接合并,不用把测试再跑一遍。
6)还有一个协作细节很贴心。agent 在工作区里干活时,测试执行期间它的会话会被挂起(省算力),几秒后带着结构化的失败日志回来——日志直接灌进它的上下文,它自己迭代到通过为止。
一句话概括这条变化:验收从"人打开日志看一眼"的动作,变成了"跟着代码走的一张凭证"。
三、Workspaces:每个 agent 一间"没什么可偷"的房间
这是跟 Checks 配套的另一半。每个开发者、每个 agent 分到一间加固过的 microVM。用他们 CEO 的话说,目标是一间"里面没有任何值得偷的东西"的机器,所以你可以放心让它跑几个小时,也敢相信它吐出来的结果。
几个细节:真实凭证不进这台机器;需要凭证的工具拿到的是加密的短期替身;工作区跑在远端,但和本地的工作树保持同步——编辑器、git 还在你的笔记本上,执行发生在远处的隔离环境里。另外,当 agent 停下来等一个人类输入的时候,工作区会保持 10 分钟活跃,然后自动挂起成一个快照。
为什么需要这个?他们讲的场景我太熟了:大多数 agent 跑的时候,用的是"启动它的那个开发者"的权限,就坐在密钥、云凭证和生产系统的旁边。而所谓的安全措施是"弹窗让你点同意"——一天点几十次之后,那个按钮跟自动通过没区别了。
四、Harness:让 AI 去当攻击者,人签最后一个字
第三个产品是找漏洞的,用的模型是 Anthropic 的 Claude Mythos 5.1。
流程是这样的:通过一个 GitHub 应用接上仓库 → 用"它真正发布时的样子"编译 → 在一台隔离、断开外网的虚拟机里把应用跑起来 → 让模型像攻击者一样去探测这个正在运行的副本 → 每一个发现都要在全新的环境里重新复现一次,才算成立 → 最后给出严重级别、复现步骤和修复建议。
他们强调两点:一是静态扫描器找不出"只有跑起来才暴露的逻辑漏洞",所以必须真的把应用跑起来;二是每一份报告和修复都要经过他们的工程师审核签字,才会交到客户手上。开源项目里发现的漏洞,走他们六月成立的披露联盟交给上游维护者。
销售方式也挺有意思:它挂在 Anthropic 自己的 Claude Marketplace 上,企业可以用已经承诺的 Anthropic 预算来付这笔钱——不需要另外走采购。目前是 waitlist,而且第一批是由 Chainguard 自己的工程师代跑,不是客户自己开。
五、不吹不黑
· 三个产品里,两个在 beta,一个只有 waitlist,没有公布任何价格。 · 所有效果说法都是厂商自报,没有第三方复现。比如"每次拿它对着代码,它都找到了严重的、可利用的漏洞"——这句话没有配任何数据。听到这种句式,第一反应应该是"拿数据来"。 · 一个不太被提起但挺刺眼的细节:Harness 是用 AI 来找漏洞的,人类工程师只签最后一道字。"AI 验 AI"这件事,已经作为商业产品在跑了,不是概念。 · 顺带说一句,Claude Mythos 5.1 这个版本号说明 Mythos 系列已经走到 5.1 了。它在大众新闻里没什么热度,但已经在企业安全这类场景里干活了。 · 另外一个容易被忽略的更新:Chainguard Libraries(他们那套"验过的开源依赖")这次扩到了 Go 和 .NET,加上之前的 Java、Python、JavaScript,一共五种语言;新增恶意包扫描,专门拦"功能正常、但顺手偷你凭证"的那种灰件。
简讯区:这几天还发生了什么
· 笔记本要能装下 74B 模型了。英伟达的 RTX Spark 笔记本 10 月 16 日开卖,配套的 Nemotron 3.5 Bolt 74B-A9B 今天(10 月 15 日)发:MoE 架构,总参 740 亿、激活只有 90 亿,用 2 比特量化压到 24GB 里,专门为"在笔记本上跑本地智能体"设计;llama.cpp、vLLM、Ollama、Unsloth、LM Studio 都支持,而且和 Nemotron 系列一样连训练数据、权重和训练方案一起开源。同一天,把推理摊到局域网里多台电脑上的 PAIR 也转为正式版(Windows/Linux/macOS)。但有个数字值得警惕:官方没有公布内存带宽。而大模型的解码速度恰恰卡在"权重从内存里流出来的速度"上——被广泛引用的那个"600GB/s"是芯片之间的互连速度,不是内存带宽。这件事我会一直记着。
· Next.js 那个带外安全更新落地了,前端今天就该处理。补丁版本是 16.4.1(Active LTS)和 15.5.28(维护版),修两个 Critical 加一个 High:一是 use cache 函数返回多个 typed array 时的未授权远程代码执行——官方明说没有 workaround,就算你的应用没有这种写法也建议立刻升级;二是 SVG 图片处理里的 RCE(CVE-2026-96889),要求 sharp 升到 0.35.5 以上(升 Next.js 会由包管理器带上去);三是 App Router 加至少一个 Server Action 时的拒绝服务(构造请求可以吃满 CPU 阻塞后续请求)。用 Pages Router 或没写 Server Action 的不在第三条的影响范围内。
· Chrome 155 修了 37 个漏洞,同时赏金翻了 4 倍。新版本 155.0.8059.79/.80(Mac/Windows)和 155.0.8059.79(Linux)修掉 7 个 Critical——其中 CVE-2026-110152 是图形转换层 ANGLE 的缓冲区溢出,另外 6 个是 use-after-free,分布在 Browser、PDF、Network、Core、SVG、Media 这些组件里;另有 29 个 High。同一天 Google 把 Chrome 漏洞赏金翻到 4 倍,最高 2 万美元。顺手更一下就行。
· 这条是前端人自己的事:SPA 的"软导航"要开始计入评分了。Chrome 在 CrUX 里实验性地采集 soft navigation 指标——也就是你在 React / Next.js / Vue / Angular 应用里点链接换路由的那一下。以前这种客户端跳转几乎不被统计,慢也不算慢;现在它会被单独记录,分别计算软导航的 LCP、INP 和 CLS,计划在 2027 年 5 月进入 Search Console 正式报表。对前端框架站来说这其实是好消息(以前的分数被低估了),但现在能做的准备有三件:给动态加载的容器设显式高度或 aspect-ratio、预取路由要用的 chunk、别把长任务堆在主线程一次跑完。
· 国产开源又添一个重量级。阶跃星辰的旗舰 Step 5 Preview 今天上午 11:00(北京时间)开源完整权重。规格挺猛:稀疏 MoE,总参 6000 亿、激活 270 亿,支持 100 万 token 上下文,原生支持文本和视觉输入,定位是"能从头干到尾"的 agentic 主力工作模型。发布不到一个月,它已经冲上 OpenRouter 热度榜第一,Artificial Analysis 的综合智能指数给了 44 分,在开源模型里排进全球前三——成本据说压到了 Claude Opus 5 的八分之一。
· OpenAI 开源了 Codex 的执行层。用 Rust 重写后的轻量终端 agent 正式开源,启动速度提升约 25 倍,覆盖 CLI、IDE 插件、桌面 App、云端四种形态。但要看清楚开源的是什么:不是模型,也不是 Codex 这个产品本身,而是驱动 agent 运转的执行层。这个区别挺关键的——真正值钱的部分还是闭着的。
前端打工人怎么用上
1. 让"验证结果"变成能跟着代码走的东西。不用等这些新产品,现在就能做一个粗糙版:把 CI 的结果和 commit 绑定起来(GitHub Actions 的 artifact 加上签名/attestation),合并前让机器去验,而不是人肉翻日志。这是把"我跑过了"变成"我有记录"的最低成本做法。
2. 把"跑命令的机器"和"拿凭证的机器"分开。让 agent 用专用账号或容器跑,真实密钥别放在工作目录里;必须落盘的凭证,给一个短期、能随时作废的替身。这一条的价值跟技术选型无关,纯粹是观念问题。
3. 今天顺手做两件事。一是把 Next.js 升到 16.4.1 或 15.5.28,并确认 sharp 的版本;二是给 SPA 里那些动态加载的容器补上显式尺寸——趁软导航指标还没正式生效,这活儿现在做成本最低。
最后
我挺喜欢这次这个方向,因为它跟前面那些"模型又强了多少"的新闻不太一样——它在解决一个很具体、很人的问题:你不敢信它,但你也没时间一条一条看。那就在流程里加一道机器能验、人能查的手续。
有点像当年 lockfile 干的事。以前我们说"我这能跑",后来我们说"我这有依赖记录"。现在轮到了把"我这跑过了"变成"我这有证明"。
但也别太乐观。签名证明的,是"测试通过了",不是"这个东西是对的"。那测试本身是谁写的?如果测试也是 AI 写的呢?这个问题我看了一圈,还没有人认真回答。
你们团队的 CI 现在一天大概要跑多少次?有没有算过 agent 提交占了多少比例?评论区聊聊,我挑几个有意思的。
下期:那台能塞下 74B 的笔记本这周就开卖了。我打算把同一个 agent 任务在本地和在云端各跑一遍,比一比成本、速度,还有"到底哪些数据没出过本机"。有兴趣的蹲一下。















































































