用 Cloud Run 实例低成本部署长期运行的个人 AI Agent

2026-08-28 49 预计阅读时间: 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.

预计阅读时间:8 分钟

对于 OpenClaw、Hermes 这类面向个人开发者的 AI Agent,传统的无状态 Web 服务模型并不总是合适。它们通常需要长期运行、保存状态,而且大多数时间只服务一个用户。Cloud Run 实例正是为这类单实例、长生命周期工作负载提供了更贴近实际的运行方式。

为什么 Cloud Run 服务不够合适

Cloud Run 服务擅长处理无状态、高吞吐的 HTTP 请求。当一段时间没有请求时,服务可以缩容到零,从而节省成本。但一个持续运行的个人 Agent 往往有不同的要求:

  • 希望始终只有一个副本运行,避免多个 Agent 同时处理同一份状态。
  • 需要保留配置、会话和工具连接。
  • 可能通过 Telegram、WhatsApp 或其他平台持续接收事件。
  • 不能因为用户的笔记本合盖或休眠而停止工作。

使用专用虚拟机可以解决长期运行问题,但代价是需要持续支付完整的计算资源,并自行处理操作系统更新、防火墙、HTTPS 入口和运行环境维护。

Cloud Run 实例提供了一个介于两者之间的选择:它在 Cloud Run 上运行一个专用的单例计算运行时,同时保留托管平台的网络和部署体验。

Cloud Run 实例的运行模型

Cloud Run 实例目前处于预览阶段,核心特征包括:

  • 只运行一个实例,不进行自动扩缩容。
  • 最长可连续运行 7 天,并默认配置自动重启策略。
  • 每个实例拥有一个 HTTPS URL,该 URL 在更新和重启后保持不变。
  • 不使用时可以停止实例,需要时再恢复。
  • 采用共享 vCPU 和突发计算预算,适合大多数时间空闲、被请求时短暂增加计算量的 Agent。

以 1 vCPU、1 GiB 内存的实例连续运行 30 天为例,摘要给出的成本是 5.70 美元。实际费用仍应结合区域、网络流量、存储和其他相关资源核算,不能只看计算实例价格。

这种模型尤其适合不持续执行重计算的个人 Agent:Agent 平时等待消息或定时任务,只有在用户提出问题、调用工具或执行自动化流程时才出现计算峰值。

实践:部署 OpenClaw

下面的命令展示了一个可改造的部署示例。假设你已经完成以下准备工作:

  • 已安装并登录 gcloud
  • 当前项目已经启用 Cloud Run 和 Cloud Storage 相关能力。
  • 已将 OpenClaw 配置文件上传到一个 Cloud Storage bucket。
  • 已设置 BUCKETPASSWORDGEMINI_API_KEY 环境变量。

命令中的镜像、端口、挂载路径和环境变量需要根据实际 Agent 镜像进行调整:

export BUCKET="your-openclaw-config-bucket"
export PASSWORD="replace-with-a-strong-password"
export GEMINI_API_KEY="replace-with-your-api-key"

gcloud beta run instances create openclaw-instance \
  --image ghcr.io/openclaw/openclaw:latest \
  --port 18789 \
  --public \
  --add-volume \
    mount-path=/home/node/.openclaw,\
    type=cloud-storage,\
    mount-options="uid=1000;gid=1000;file-mode=0700;dir-mode=0700",\
    bucket="${BUCKET}" \
  --set-env-vars \
    "OPENCLAW_GATEWAY_PASSWORD=${PASSWORD},GEMINI_API_KEY=${GEMINI_API_KEY}"

部署前应检查几个关键点:

  1. --public 会让实例通过公开 HTTPS 入口访问。必须使用强密码,并确认 Agent 自身的认证和授权配置已经启用。
  2. 不要把真实密钥直接提交到 Shell 历史记录、脚本仓库或日志系统。生产环境可以改用更合适的密钥管理方式,并限制访问权限。
  3. Cloud Storage 挂载目录用于保存 Agent 配置和状态时,要确认容器用户的 UID、GID 以及文件权限与镜像内部用户一致。
  4. 使用 :latest 便于快速试用,但生产部署更适合固定镜像版本,避免一次更新改变运行行为。
  5. Agent 的外部平台连接、回调地址和工具权限仍然需要单独配置。Cloud Run 实例解决的是运行时托管问题,不会自动替代 Agent 的安全边界。

实例创建完成后,可以继续让它运行,也可以在不使用时停止。由于实例 URL 在更新和重启后保持不变,外部集成不必随着每次重启重新修改地址。

适合什么场景

Cloud Run 实例适合以下类型的工作负载:

  • 个人 AI 助手和长期运行的 Agent。
  • 需要单例状态的自动化机器人。
  • 持续等待消息、Webhook 或定时事件的轻量服务。
  • 大部分时间低负载,但偶尔需要突发计算的任务。
  • 希望减少虚拟机维护工作,同时又不能接受服务频繁缩容到零的应用。

它并不意味着所有后台任务都应该迁移到实例。高吞吐、可水平扩展的无状态 API 仍然更适合 Cloud Run 服务;持续占用大量 CPU 或需要超过 7 天不间断运行的任务,也应评估其他计算产品。对于需要复杂持久化、队列、分布式锁或多副本容灾的系统,还需要额外设计数据和协调层。

上线前检查清单

可以按下面的顺序评估是否采用 Cloud Run 实例:

  • Agent 是否明确需要长期运行,并且只需要一个副本?
  • 状态是否保存在持久化存储,而不是只写入容器本地文件系统?
  • 实例停止或自动重启后,Agent 能否恢复工作?
  • 是否已经限制公开入口、密钥和第三方工具权限?
  • 负载是否以等待为主,而不是持续占满 CPU?
  • 是否能接受预览阶段的产品边界和最长 7 天连续运行限制?
  • 是否同时估算了计算、存储、网络流量和外部 API 成本?

如果这些问题的答案大多是肯定的,Cloud Run 实例可以成为个人 AI Agent 的一个务实运行环境:比本地笔记本稳定,比长期维护虚拟机轻量,并且能以相对可预测的成本承载持续在线的单例工作负载。


相关推荐