Google 开源 AX:用 Redis 替换 CRD 的百万级并发实验

Google 开源 AX:用 Redis 替换 CRD 的百万级并发实验

GoogleAgentKubernetes

数据源:HN + web research

2026 年 9 月 21 日,Google 开源了声明式的 agent 编排器 AX,在 Hacker News 上引发了激烈讨论。这个长着 kubectl 模样的控制平面,试图从根本上解决 agent 在大规模生产环境中的编排难题。

成本结构变了:吞吐让位给亚秒级恢复

AX 把 agent 拆解成了 Task、Workspace、Gateway 和 Model 四个原语。在官方文档中,它被定位为一个能够在单集群中运行数十亿任务的超级编排器。这种底气来源于对 agent 成本结构的重新审视。传统工作负载的瓶颈是算力耗尽。agent 的大部分生命周期都在等待模型响应、等待工具返回结果或者等待人类批准。由于等待才是常态,这种全新的工作负载迫使系统架构做出适应性改变。

为了应对这种漫长的等待状态,AX 将编排器的核心指标从单纯的吞吐量转向了挂起与恢复的延迟。系统由三个核心二进制组件共同运作。ax-server 负责通过 gRPC 接收并提交 Task manifest。ax-controller 作为横向扩展的协调器从 Redis Streams 消费工作负载。ax-task-runner 在沙箱 worker 内实际执行复杂任务。这种设计让数十个 task 可以共享同一个 worker 的计算资源。原本浪费的等待时间直接转化成了可用的空闲算力。

在生命周期管理上,任务的 status.phase 提供 Running 或 Suspended 的单词级摘要。更精细的状态通过 WorkspaceReadyGatewayReadyReady 等 conditions 追踪。CLI 工具保留了类似 kubectl 的体验。它支持跟随当前的 kube context 协同操作,并引入了具有 checkpoint 语义的 ax suspendax resume 命令。当执行挂起时系统会打下检查点,并将 Ready 标记置为 False。资源重新分配并恢复时,系统能实现低于一秒的唤醒,避免冷启动延迟。

AX 官方项目图标 图:AX 官方项目图标(六角形的 axolotl 蝾螈,项目吉祥物)。来源:google/ax 仓库 assets/axolotl.svg

放弃 CRD 换 Redis:百万级短命任务压垮 etcd

在核心架构演进的过程中,AX 团队做出了一个违背传统云原生直觉的技术取舍。他们将任务状态的存储从 Kubernetes 原生的 CRD 中剥离。架构转而全面拥抱了 Redis Streams 这种外部消息队列。这一大胆决定的官方理由非常直接。K8s 原生的 etcd 存储无法扛住每天百万级短命任务的高频状态流转。强行使用容易导致底层集群被无情压垮。

通过让 ax-controller 持续从 Redis 消费并发事件,系统获得了一种不受限于 Kubernetes API Server 单点瓶颈的扩展能力。agent 不是跑完就退出的简单进程。它在运行中会不断地进行复杂规划、委派子代理、重试失败步骤甚至扇出新的并发子任务。Task 因此被刻意设计成了最小的隔离执行单元。这种控制面持久化与高速数据面状态分离的架构策略,使得系统在应对海量高并发状态流转时游刃有余。

底层存储机制发生了剧烈的剥离与重构。控制平面的操作体验依然向开发者的固有习惯妥协。用户可以通过一次简单的 ax apply 命令管理 K8s 资源。这种操作优雅地更新了 secret 里的 API key,或者固定了新的大模型版本。在官方示例配置中,系统默认将 Model 资源精确指向了 gemini-3.8-flash。这种精妙的设计让模型资源的密钥轮换从复杂的运维操作,变成了一次声明式部署。

声明式环境与出站放行:Workspace 与 Gateway

在运行环境准备方面,AX 引入了创新的 Workspace 机制来处理复杂的依赖解析问题。开发者可以像往常一样声明式地预置特定的 Git 仓库。他们能指定拉取分支,并在同一份清单中一并挂载所需的 MCP server 和 skill registry。Workspace 更原创性地支持了一种基于自然语言的 goal 机制。这可以用来模糊描述复杂的环境构建需求。

当带有 goal 描述指令的任务首次启动时,系统会自动将其移交给一个专门的初始化 agent。这个 agent 负责安装工具链,并验证依赖是否完备。这种智能的环境构建能力降低了大规模任务启动的门槛。开发者可以把精力集中在核心业务逻辑,而不必去管繁杂的系统包配置。为了保障自动化环境不越界,系统在网络架构层面配套引入了流量控制机制。

Gateway 原语是为了约束 agent 不可预测的网络触角而打造的组件。它通过严格的出站放行名单机制,限制所有非必要的外部通信连接。在典型的安全生产配置下,网关通常只允许系统放行对特定 LLM provider 接口的访问。受信任内部 git host 的安全访问请求也会被放行。网络层面的物理隔绝与白名单放行,确保了被自动装配的第三方工具链没有可乘之机。它们绝无可能在未经授权的情况下向外围泄露敏感数据。私自拉取恶意执行负载的风险也被降到最低。

沙箱必要性之争:限制工具权限还是物理隔离

随着 AX 项目相关技术细节的发布,社区内关于沙箱环境是否真正必要的辩论再次被推上了风口浪尖。一种在 Hacker News 评论区获得高赞的实用主义观点认为,只有在赋予了 agent bash 访问或代码执行工具时,才真正需要动用沉重的完整隔离沙箱。这派开发者主张,系统设计上只提供读取特定日志文件的权限即可。访问受限内网服务的工具也属于安全范畴。在应用层限制工具本身的作用域,要比强行隔离整个底层运行环境便宜得多。

来自安全防御从业者的复盘案例,给这种乐观主义论调泼了冷水。一位负责安全取证的工程师分享了他处理十个被入侵 WordPress 站点的惊险溯源经历。为了测试防御机制,他将攻击者构造的 PHP dropper 和混淆的加载器代码提取出来。注入的数据库行以及伪装的文件名,也被他一股脑地喂给了一个分析型 agent。这个 agent 只连接了模型安全端点,其他网络全被物理切断。

实验测试结果令人不寒而栗。看似静态且无害的恶意输入,竟然成功骗过了大模型。它们试图悄无声息地篡改整体分析控制流程。安全专家的实战结论非常直接。恶意构造的输入数据可以把你的安全 agent 变成攻击者的肉鸡 agent。新型攻击面刚刚开始被审视和清理。这也解释了为什么 AX 官方坚持必须跑在沉重的 Agent Substrate 之上。面对隐蔽且未知的威胁,底层的硬性物理隔离与沙箱机制在安全底线上不容妥协。

Agent Substrate 威胁模型 图:Agent Substrate 的威胁模型图,AX 的沙箱隔离建立在这一运行时之上。来源:agent-substrate/substrate 仓库 docs/assets/threat-model-diagram.svg

社区激辩:Kubernetes 时刻还是新的拔插头惨案

在 Hacker News 上短短十二个小时内涌现的二百多条长篇评论中,支持派与质疑派展开了互不相让的交锋。支持者乐观地认为当前行业正处于类似当年 CoreOS 与 Kubernetes 混战的早期探索阶段。所有公司都在试图解决如何做授权、沙箱是否时刻必要的问题。agent 是 prompt 还是控制流、多个 agent 之间该怎么协调,都是同一批通用架构难题。他们坚信 Google 的 ADK 底座和 AX 生态系统值得押注。Google 在这块全新领域投入的营销预算与前期维护资源足够庞大。

质疑派发出的声音死死聚焦于 Google 历史上饱受诟病的开源信誉与产品生命周期问题。这家商业公司会在不知不觉中随手拔掉项目的插头。这种充满讽刺意味的调侃迅速成为了整个评论区里的最大声量。人们如数家珍般地细数了从 Google Reader 到 Google Wave 的诸多产品墓碑。有人挖苦说连 AX 这个简短的名字都已经提前预装了过去时态。历史论据显得更加锋利。Google 之前曾把初代原生 agent 框架仓促捐给 Linux Foundation。近期大张旗鼓推出的 Gemini CLI 被砍掉后,又偷偷以 antigravity CLI 形式复活。这种操作加剧了开发者群体心中的深层不信任感。

除了充满发泄情绪的调侃,也有务实的开发者直接在帖子下点名提问。他们要求前来的 Googler 必须如实回答这个框架在公司内部究竟有没有投入大规模实际使用。代理运行时层还没有形成一套被广泛接受的事实标准。AX 作为一个新生开源项目,需要解决庞大的技术债。长期积攒下来的沉重信任债,也是它必须跨越的鸿沟。一条广受认可的评论指出,看别人踩的坑本身就有着巨大的研究价值。最终能让这个前沿项目真正存活下去的,是官方用时间证明的长期坚定维护承诺。