返回
Kevin Riedl

10 分钟 阅读 · 2026年9月20日
最近审核

下一篇
图片在你的设备上生成,不连接 Instagram。文章链接会复制到剪贴板,供链接贴纸使用。

Google AX Agent Executor:预算、沙箱与自托管

沙箱可以限制智能体,却不一定能限制账单。 这是采用 Google AX,也就是 Agent Executor 之前,最值得厘清的区别。给智能体准备工作区、限制网络访问很有价值;证明它不会超支、重复执行危险操作,或把状态留在无法迁移的环境里,则是另一项工程任务。

AX 是 Google GitHub 组织下采用 Apache 2.0 许可证的开源编排项目。当前接口包含四种资源:TaskWorkspaceGatewayModel。仓库明确提醒,在稳定版本发布前,核心概念、协议和规范可能发生重大不兼容变更。查看 AX 仓库及开发状态说明。

本文于 核查资料,AX 基线为提交 d8ed0fe38bce。这是一份源码与架构评审,不是部署测试,也不是吞吐量基准。我们聚焦的问题是:要让 AX 智能体真正处于自己的运维控制之下,究竟需要验证什么?

AX 的四种声明式资源究竟控制什么?

AX 将执行环境与智能体的推理逻辑分开。一个 Task 可以运行完整智能体、委派出去的子任务,或其他可执行程序。Workspace 描述起始环境,Gateway 声明网络访问,Model 资源集中管理模型提供方的配置。

AX 资源的职责,以及不能仅凭资源声明推导出的保证
资源声明的职责不等同于
Task镜像、命令、CPU 与内存资源,以及 Workspace 和 Gateway 引用。累计 Token 预算,或业务任务已经成功完成的证据。
WorkspaceGit 仓库、MCP 配置、技能,以及可选的目标驱动环境准备。自动持久化所有会话文件、凭据与外部操作结果。
Gateway监听入口,以及按主机和端口配置的出站白名单。针对每个工具、租户或文档的授权检查。
Model提供方、模型标识、生成参数,以及 Kubernetes Secret 引用。模型权重、本地推理,或适用于任意智能体 SDK 的通用配置。

以上职责来自 AX 核心概念文档。尤其要注意,Model 是一份有名称的配置,不是新发布的大语言模型。AX 自身的组件可以读取它,但 Task 中运行的任意程序仍需要兼容的集成方式。

AX 是智能体框架、沙箱,还是 Kubernetes 的替代品?

AX 是 Agent Substrate 上方的编排层,不会取代智能体的决策循环。 API 和控制器管理资源,Agent Substrate 提供底层执行生命周期。Kubernetes 仍然是基础设施的一部分。

类似 Kubernetes 的 YAML 容易造成误解:AX 的架构把资源状态存入 Redis,通过 Redis Streams 分发协调任务,而不是把每个短生命周期任务都存为 Kubernetes 自定义资源。控制器可通过增加副本进行横向扩展。查看控制平面架构。

这是面向大量任务的一种架构设计,不等于证明你的集群能够同时运行数十亿个智能体。容量仍受任务类型、Worker 资源、存储、模型延迟和运维限制影响。在代表性负载下测出自己的边界之前,应把项目的规模描述视为设计目标,而非已验证的部署承诺。

我们的 Agent Harness 工程指南讨论模型周围的决策循环、工具处理与反馈机制。本文则专门分析 AX 的执行边界和控制权。

如何限制 Google AX 的出站网络访问?

为 Task 绑定只允许明确目标的 Gateway,再验证实际网络限制。 文档中的示例包含端口 443 上的 host: "*"。这代表广泛的 HTTPS 访问权限,不是仅允许自有模型和 Git 服务器的生产白名单。核对当前 Manifest 示例。

下面的 Gateway 仅用于说明配置,不是完整部署。请将示例主机名替换为由运营方控制、且沙箱能够解析和访问的端点。相关基础设施需要单独配置。

apiVersion: ax.io/v1alpha1
kind: Gateway
metadata:
  name: research-egress
spec:
  egress:
    allowlist:
      hosts:
        - host: llm-gateway.internal.example
          port: 443

将以下引用合并到现有 Task 的 spec 中。控制平面里一份没有被使用的 Gateway 资源,并不会限制该 Task。

gateway:
  name: research-egress
debug: false

我们的部署建议是:检查 GatewayReady,实际测试被禁止的目标,并在不需要受控调试时保持 debug: false。测试重定向、直接访问模型提供方、内部元数据端点及其他网络路径。这些是验收要求,不是我们已在 AX 中复现的漏洞。

被允许的主机名仍然代表较大的信任范围。工具服务器可能服务多个租户,也可能自己向外发送请求。因此,服务器仍需对每次请求做授权,并检查后续访问的目标。更完整的隔离评审可参考现有的 智能体沙箱安全检查清单

Google AX 会自动阻止失控的 Token 支出吗?

不要假定当前 Task API 能强制执行累计 Token 或金额上限。 在本次核查的协议中,TaskSpec 的第 9 个字段已被保留;它此前名为 policies,用于预算和审批配置,注释明确说明目前已经移除。UsageStats 中仍有 Token 计数器,也仍有 PendingApproval 状态类型,但存在类型与计数器并不能证明存在有效的拦截流程。查看固定提交版本的 AX API 定义。

CPU 和内存上限约束的是本地计算资源。一个几乎不占 CPU 的循环,依然可能连续发送收费的模型请求。同样,单次回答的最大输出限制并不约束重试、并行子任务和重复调用的总费用。也不能因为存在与审批有关的状态字段,就认定业务审批已经成为不可绕过的关卡。

Google Cloud 同样区分“仅告警”预算与支出控制:alerts-only 预算不会自动停止使用或计费。文档另外提到针对受支持服务提供的预览版支出上限预算。但这两件事都不能证明,智能体调用的所有外部模型已经受到统一的任务级费用限制。阅读 Cloud Billing 对预算类型的区分。

把预算控制放在智能体无法修改的位置

我们建议使用由运营方控制的模型代理,并为主任务及其所有后代任务维护共享预算账本。每次放行请求前,原子地预留可确定上界的最大费用;请求完成后按实际用量结算,把重试和并行调用都计入,在余额不足时拒绝新请求。控制凭据和预算账本必须位于智能体不可写的环境之外。

同时设置总运行时限、重试次数、步骤数、并行子任务数量上限,并识别反复重复的动作。达到阈值后,停止放行新模型调用,再触发取消或挂起。已经获准的请求仍可能产生费用,因此应定义并测试最大超额,而不是承诺瞬间停止一切计费。工作区准备阶段使用的智能体也要计入预算,不能只计算最后的任务命令。

如需分析整体经济性,而不只是 AX 的控制机制,可阅读 AI 智能体每次行动的成本

AX 挂起和恢复后,哪些状态会保留下来?

本次评审的 AX Runner 契约描述的是:恢复工作区,但创建新的进程树。 文档将 /workspace 定义为持久目录,并说明恢复时会把它还原到新容器中。不要据此假定内存中的 Python 对象、网络连接或尚未落盘的数据都能原样继续。阅读 Runner 生命周期与替换契约。

这一结论针对 AX 文档所描述的 Runner 集成方式,并不是对所有 Agent Substrate 后端最大快照能力的判断。验收应针对应用真正依赖的那一层,而不是借用另一层的能力宣传。

把对话或会话检查点、已完成操作的标识,以及重启所需的信息存放在持久路径中,并通过智能体支持的会话机制继续执行。文件系统快照无法撤回已经发出的邮件,也无法撤销已经提交的支付请求。外部写操作需要幂等键,以及持久保存的完成记录。

沙箱已经就绪,不代表业务任务已经完成

同一 Runner 契约还说明,任务命令退出后 Runner 仍会存活,控制平面目前不会回读该命令的退出状态。因此,应监控明确的完成事件或结果产物,而不只是 RunningReady,或仍然响应的健康检查端点。成功退出和失败退出都需要测试。

Google AX 可以脱离 GCP 自托管吗?

现有部署路径并非只支持 GCP,但可迁移不代表开箱即用。 AX 快速入门需要 Kubernetes、容器镜像仓库、Redis,以及可访问的 Agent Substrate Control API。Agent Substrate 同时提供基于 kind 的本地开发路径,以及使用 Google Cloud 资源的 GKE 路径。项目也提醒它仍处于早期开发阶段、不适合生产使用,并且不是 Google 官方支持的产品。对照 Agent Substrate 的本地与 GKE 安装说明。

本地 Substrate 快速入门证明,底层运行时存在不依赖 GCP 的开发路径;它并不证明 AX、你的存储后端和安全配置已经一起通过完整的私有部署测试。本地执行智能体,也不意味着远程模型推理变成了本地推理。

采用 AX 前,需要分别回答的四类控制权问题
层次需要核查什么控制权的证据
执行谁管理 Kubernetes、AX、Substrate 和镜像?无需任务配合,就能重新构建、部署、隔离和停止任务。
推理环境准备与实际执行时,哪个提供方会收到提示词?记录实际访问目标,并验证替代提供方或本地模型路径。
状态工作区、会话、快照和日志存放在哪里?能够按照自己的保留策略成功导出与恢复。
权限谁控制密钥、费用放行和工具权限?在智能体不可写的控制边界外,完成撤权和拒绝测试。

这就是我们对“拥有自己的 AI”的运维定义。云端部署也可以保留实质控制权;自托管仍可能依赖外部模型、镜像仓库或凭据服务。应当有意识地选择这些取舍,而不是用服务器所在位置代替威胁建模。

AX 到底在哪些地方依赖 Antigravity?

需要重点检查的是基于目标的工作区准备。AX 默认 Runner 会把 Workspace 目标交给 Antigravity 智能体,这一步需要 GEMINI_API_KEY。文档给出的默认准备超时为十分钟,可通过 AX_BOOTSTRAP_TIMEOUT 调整。这个超时不是整个任务生命周期的预算上限。查看沙箱启动流程文档。

这比笼统地说“整个项目用 Antigravity 写成”更有实际价值。运行时文档证明的是准备阶段如何使用 Antigravity,而不是仓库中每个文件的编写过程。

为了获得更可控的环境,可以评估预构建镜像并省略目标驱动的引导步骤,或实现兼容的自定义 Runner。AX 要求可执行文件位于 /usr/local/bin/ax-task-runner;仅指定一个普通智能体镜像并不足够。替换前,应按 Runner 契约验证就绪端点、信号转发和持久状态处理。

Pi 编程智能体能使用 AX 的执行模型吗?

Pi 文档列出了交互、print/JSON、RPC 和 SDK 模式。这些接口可以作为集成入口,但不能证明已有开箱即用的 AX 适配器。查看 Pi 编程 Harness 文档。

一个合理的实验方案是:把 Pi 封装在 AX 兼容 Runner 后,通过 spec.command 启动,让模型请求经过外部预算控制,并将可恢复的会话状态保存在 /workspace。这是建议验证的集成设计,不是我们已部署的配置,也不是本文已确认受支持的官方集成。

你也可以不采用 AX,只借鉴职责分离:声明工作区,隔离执行,在进程外限制网络,将模型凭据和预算规则保留在运营方手中。价值在于可执行的控制边界,而不是复制一套云平台实现。

AX 试点在获得真实凭据之前,应该证明什么?

从可丢弃的仓库、合成数据,以及最低权限的模型凭据开始。下表是我们建议的验收标准,不是对当前项目已经通过这些测试的声明。

受控 AX 试点应完成的专项测试
测试通过条件
网络拒绝任务能访问声明的代理,但无法访问未授权目标或直接连接模型提供方。
预算耗尽故意重复执行的任务在共享预算达到上限后不再获得新调用;并发导致的超额有明确上界。
挂起与恢复会话从持久状态继续,不重复执行已经完成的外部操作。
完成与失败命令的成功和失败都会传递给任务监督系统,即使 Runner 仍然健康。
凭据撤销撤销任务权限后,无需智能体配合就能阻止新的高权限操作。
可迁移性导出的工作区和会话能够在真正计划采用的替代环境中恢复。

记录 AX 与 Substrate 的版本、Runner 镜像摘要、实际模型路径、Gateway 策略和观察结果。在 API 持续变化期间保留回退方案。一个规模不大但通过验收的实验,比没有证据支撑的大规模部署承诺更有用。

Wavect 的 AI 工程服务涵盖实现与生产加固。Twinsoft AI 案例代表独立的实施经验,不是 AX 参考部署。使用我们的 上线前 QA 检查清单把试点转化为验收证据,或与我们讨论智能体运行时及控制权要求

Google AX:部署前的实际问题

Google AX Agent Executor 是什么?

AX 是用于编排隔离智能体任务的开源项目。它使用 Task、Workspace、Gateway 和 Model 四种资源,运行在 Agent Substrate 上方。它不是新语言模型,也不会替代智能体自身的推理循环。

AX 会强制执行累计 Token 预算吗?

不能从当前 API 做出这一假设。本次核查的提交已移除 Task 中用于预算和审批的 policies 字段。用量计数器本身不会阻止超支。应由独立控制的请求放行层限制整个任务,包括环境准备和所有子任务。

AX 示例 Gateway 默认锁紧了吗?

文档示例允许所有主机名的 443 端口。需要改成明确的目标,绑定到 Task,并验证禁止的访问路径。主机白名单不能替代工具服务器对每次请求的授权。

AX 会恢复完全相同的智能体内存状态吗?

本次评审的 Runner 契约描述的是:将持久工作区恢复到新容器中,并创建新的进程树。需要明确保存可恢复会话和已完成操作记录。该结论不是对所有 Substrate 后端快照能力的判断。

AX 能在 Google Cloud 之外运行吗?

Agent Substrate 文档同时提供本地 kind 开发路径和 GKE 部署路径。AX 仍需要控制平面及可访问的 Substrate API。这证明存在非 GCP 开发选项,不等于已经验证任意基础设施上的生产部署。

所有 AX 任务都必须使用 Antigravity 吗?

文档中的默认 Runner 使用 Antigravity 完成目标驱动的工作区准备。可以评估不包含该引导步骤的预构建环境,或兼容的自定义 Runner。替代实现必须满足 AX 的 Runner 契约,而不只是包含一个智能体程序。

Pi 智能体能运行在 AX 内吗?

Pi 提供 print/JSON、RPC 和 SDK 集成模式。将其封装在 AX 兼容 Runner 后是一种建议方案,不是本文确认已有的官方即用型适配器。使用真实凭据前,应验证会话持久化、模型路径、预算和信号处理。

开源是否代表拥有整个 AI 系统?

不是。执行、推理、状态和权限必须分开核查。控制权意味着能够检查、导出、撤权和停止系统。自托管运行时仍可能调用远程模型,或依赖由第三方控制的凭据服务。

最终思考

拥有控制机制,而不只是仓库副本。AX 提供有用的执行边界,但费用放行、可恢复状态、明确的完成信号以及迁移退出路径,都需要各自的验证证据。先用一个小规模试点证明这些属性。

生产级 AI 支持

正在构建 AI 产品,却担心推理成本、架构或生产可用性?Wavect 帮助创始人把 AI 原型变成可靠的生产系统。

查看相关服务:

只收重要内容

关注与你相关的内容

每当我们发布新文章,你会收到一封简短邮件。你可以关注整个博客,也可以只选感兴趣的主题。

你希望接收哪些内容?
选择主题

免费、双重确认、不使用跟踪像素。

返回
Kevin Riedl

10 分钟 阅读 · 2026年9月20日
最近审核

下一篇

获取下一篇关于AI 与智能体的一线笔记

有新文章时发送一封简短邮件,不使用跟踪像素,也不发送填充内容。

免费、双重确认、不使用跟踪像素。