Filestore agent volumes:为大规模 AI Agent 提供弹性持久工作区

2026-09-16 23 预计阅读时间: 1 分钟
来源: cloud.google.com AI 摘要 Original link

Disclaimer: This article is an AI-assisted summary. Read it together with the original source when precision matters. The summary may omit context, version differences, or edge cases and is not official documentation.

预计阅读时间:12 分钟

AI Agent 不只是调用模型和返回文本。它们还需要运行构建工具、安装第三方依赖、分析数据集、保存中间结果,并在用户稍后回来时继续之前的工作。随着 Agent 沙箱从几十个扩展到数千甚至数百万个并发会话,工作区存储会成为平台架构中的关键瓶颈。

Google Cloud 推出的 Filestore agent volumes,目标正是解决这类动态工作负载的存储问题:为每个 Agent 沙箱提供隔离、持久、可快速挂载的文件工作区,并自动处理存储卷的生命周期。

Agent 工作区为什么不能只靠本地磁盘

传统做法通常有三类:把沙箱状态频繁同步到集中式对象存储,给每个运行环境预分配本地磁盘,或者自行维护共享文件系统。这些方案都能工作,但在 Agent 数量扩大后会暴露出明显问题:

  • 状态搬运增加延迟:每次恢复任务都要重新下载代码、依赖和中间文件。
  • 预分配造成浪费:大量短任务或间歇性任务并不需要持续占用完整磁盘。
  • 人工运维复杂:平台团队需要创建、挂载、回收和清理大量临时卷。
  • 隔离边界不清晰:多个租户或多个 Agent 共享目录时,容易出现数据泄露和文件冲突。

Filestore agent volumes 与 Agent Substrate on GKE、GKE Agent Sandbox 等计算环境配合使用,把 Agent 的计算沙箱和持久文件工作区连接起来。新任务启动时,系统可以为沙箱动态分配隔离的文件空间;任务暂停或结束时,再由平台自动处理卷的挂载、卸载和生命周期。

这让平台不必把每个 Agent 的工作区当作一台需要手工维护的服务器,而可以把它视为随会话变化的基础设施资源。

四个关键能力:隔离、恢复、成本与协作

1. 按工作区隔离,降低动态代码执行风险

编码 Agent 可能会安装依赖、执行编译命令、运行测试,研究型 Agent 可能会生成和修改大量数据文件。每个沙箱拥有独立工作区,可以减少不同租户、不同会话之间的文件串扰。

对于企业平台,这种隔离还应与身份权限、网络策略和运行时沙箱结合使用。文件存储解决的是工作区边界问题,并不能单独替代容器隔离、最小权限和不可信代码防护。

2. 毫秒级挂载,支持暂停后快速恢复

交互式 Agent 经常处于“等待用户确认”或“等待下一条指令”的状态。如果沙箱和磁盘都长期运行,成本会不断累积;如果释放全部资源,恢复时又需要重新准备环境。

Filestore agent volumes 的设计重点是快速附加和分离持久工作区。平台可以在 Agent 空闲时暂停计算环境,只保留工作区状态;用户继续操作时,再快速恢复执行。对于长时间运行的数据分析、代码审查和人工审批流程,这种模式尤其有价值。

3. 按实际使用量管理存储成本

为每个并发会话预留固定大小的高性能磁盘,通常会导致大量闲置容量。动态工作区配合按使用量计费和自动生命周期分层,可以把活跃数据与低频访问数据区别对待:Agent 正在编译或分析时保持高性能,长时间未访问的状态则转移到成本更低的存储层。

需要注意的是,按使用量并不意味着成本自动可控。平台仍应设置配额、会话保留时间、最大工作区大小和清理策略,避免失控的日志、构建产物或数据集长期占用空间。

4. RWX 与 POSIX 锁支持多 Agent 协作

多 Agent 工作流常见的模式是:主 Agent 拆分任务,研究 Agent 收集资料,代码 Agent 修改实现,验证 Agent 执行测试。若每个 Agent 都通过消息传递文件,编排逻辑会变得复杂,也容易产生版本和文件冲突。

支持 Read-Write-Many(RWX)和 POSIX 文件锁后,多个 Agent 可以挂载同一个共享工作区,在统一目录树中协作。文件锁可以降低并发写入风险,但它不会自动解决所有协作问题。平台仍应设计清晰的目录约定、任务边界和提交协议,例如让不同 Agent 写入不同目录,再由审查 Agent 合并结果。

一个可改造的 Kubernetes 工作区示意

下面的 YAML 展示了一个通用的 RWX 工作区声明方式。它是便于理解和改造的示意配置:实际使用 Filestore agent volumes 时,应根据所在区域、GKE 集群配置以及已启用的 Filestore/GKE 集成,替换 storageClassName 和相关资源字段。不要直接假定示例中的 StorageClass 名称在所有项目中都存在。

apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: agent-workspace
  namespace: agent-runtime
spec:
  accessModes:
    - ReadWriteMany
  storageClassName: <filestore-agent-volume-storage-class>
  resources:
    requests:
      storage: 20Gi
---
apiVersion: v1
kind: Pod
metadata:
  name: agent-sandbox-example
  namespace: agent-runtime
spec:
  restartPolicy: Never
  containers:
    - name: agent
      image: python:3.12-slim
      command: ["bash", "-lc"]
      args:
        - |
          set -euo pipefail
          mkdir -p /workspace/project
          printf 'workspace ready\n' | tee /workspace/project/status.txt
          python - <<'PY'
          from pathlib import Path
          p = Path('/workspace/project/status.txt')
          print(p.read_text().strip())
          PY
      volumeMounts:
        - name: workspace
          mountPath: /workspace
  volumes:
    - name: workspace
      persistentVolumeClaim:
        claimName: agent-workspace

应用前可以先检查集群中的 StorageClass,并确认目标命名空间和权限已经准备好:

kubectl get storageclass
kubectl create namespace agent-runtime --dry-run=client -o yaml | kubectl apply -f -
kubectl apply -f agent-workspace.yaml
kubectl -n agent-runtime get pvc,pod

如果平台采用“每个会话一个工作区”的模型,编排器可以根据会话 ID 生成 PVC 名称,并在会话结束或超过保留期限后执行回收。生产环境中还应补充 ResourceQuota、网络策略、服务账号最小权限以及工作区清理控制器。

适合落地的工作负载

编码与构建沙箱

Agent 可以在隔离目录中安装依赖、修改多文件项目、运行编译和单元测试。由于工作区保留了 .git、构建缓存和测试结果,暂停后恢复不必重新下载所有内容。

多 Agent 研究和验证流水线

主 Agent 可以创建任务目录,研究 Agent 写入原始资料和数据摘要,代码 Agent 生成分析脚本,验证 Agent 读取结果并追加测试报告。共享文件树减少了在消息系统中传递大文件的需要。

长周期、人在回路中的任务

需要用户审批的部署任务、持续数小时的数据分析,以及分阶段生成报告的工作流,都可以将计算和工作区状态分开管理。空闲期间暂停沙箱,用户回来时继续执行,有助于在交互体验和基础设施成本之间取得平衡。

采用前的工程检查清单

Filestore agent volumes 适合动态、文件密集型的 Agent 平台,但并不是所有数据都应该放进工作区。可以按下面的边界进行设计:

  • 将代码、依赖缓存、临时数据和中间结果放入 Agent 工作区。
  • 将最终业务记录、审计日志和不可变数据放入更适合长期保存的系统。
  • 为每个租户、会话和协作组定义明确的目录与权限边界。
  • 明确空闲、完成、失败和过期会话的存储回收策略。
  • 测量冷启动时间、恢复时间、活跃容量、闲置容量和每次任务的存储成本。
  • 对共享工作区制定文件锁、写入归属和冲突处理规则。
  • 将存储隔离与容器、网络、身份和不可信代码防护一起设计。

结语

Agent 平台的存储不应只是一个挂载点,而应成为会话生命周期的一部分。Filestore agent volumes 的价值在于把隔离工作区、快速恢复、弹性容量和多 Agent 共享组合到同一套托管能力中,减少平台团队手工管理临时磁盘和文件系统的负担。

如果你的平台正在运行编码沙箱、企业级 Agent 集群或多 Agent 协作流水线,建议先从非生产环境验证三件事:工作区创建与回收延迟、暂停后的会话恢复体验,以及按真实访问模式计算出的存储成本。验证这些指标后,再决定哪些会话适合使用共享 RWX 工作区,哪些数据应转移到对象存储或数据库中。


相关推荐