实战:路径与工作流

Agent 部署实操指南:从本地到生产的四种方案

更新 原创整合
标签
deploymentserverlesscloudflare-workersdockerproduction

这篇指南解决什么问题

你已经在本地跑通了一个 Agent Demo——可能是跟着 AI 编程趋势日报 Agent 做的,也可能是自己的项目。现在你想让它每天自动运行、或者让团队成员通过 API 调用。

Agent 部署与生产化指南 讲的是生产化决策框架(监控、版本、成本、安全)。本文讲的是更前置的问题:具体选哪种部署方式、怎么配、多少钱、踩什么坑

如果你正在学 Agent 开发路线,本文是 学习路线图 Phase 3 的必读篇。


部署前先回答三个问题

选方案之前,先明确:

问题 选项 影响
谁会使用? 自己 / 团队 / 外部用户 自己用→本地;团队→Serverless/容器;外部用户→需要认证和监控
每次任务运行多久? < 30 秒 / 几分钟 / 长期运行 短任务→Serverless;长任务→容器
需要持久状态吗? 无状态 / 需要数据库 无状态→Serverless 足够;有状态→需要数据库+容器

决策矩阵

你的 Agent 做什么?
│
├─ 定时任务(每天/每小时跑一次)
│  → Option 2: Serverless(Cloudflare Workers Cron)
│
├─ 通过 API 被调用(短任务)
│  → Option 2: Serverless(Workers / Vercel)
│
├─ 持续运行(如客服 Agent、长任务处理)
│  → Option 3: 容器化(Docker + Fly.io / Railway)
│
├─ 企业环境、敏感数据
│  → Option 4: 生产级(私有环境 + 监控 + 队列)
│
└─ 还在开发调试
   → Option 1: 本地运行

Option 1:本地运行

适合个人脚本和调试。零成本,零部署。

# 用 cron 每天早上 9 点运行
crontab -e
# 添加:
0 9 * * * cd /path/to/ai-coding-trends-agent && /usr/bin/python agent.py >> logs/cron.log 2>&1

或者用 Python 自带的 schedule 库:

import schedule
import time

schedule.every().day.at("09:00").do(main)

while True:
    schedule.run_pending()
    time.sleep(60)

成本:0 元(只需 OpenAI API 费用)。

限制:电脑关机就不跑;没有错误告警;不适合给其他人用。


Option 2:Serverless 部署

推荐短任务(< 30 秒)优先选 Serverless。按调用计费、自动扩缩、无需维护服务器。

Cloudflare Workers + Cron Trigger

适合定时触发的 Agent 任务。免费计划每天 10 万次请求。

wrangler.toml

name = "my-agent"
main = "src/index.ts"
compatibility_date = "2026-06-01"

[triggers]
crons = ["0 1 * * *"]  # UTC 01:00 = 北京时间 09:00

[vars]
MODEL = "gpt-4o-mini"

src/index.ts(TypeScript 版骨架):

export default {
  async scheduled(event: ScheduledEvent, env: Env): Promise<void> {
    const apiKey = env.OPENAI_API_KEY;
    if (!apiKey) throw new Error("OPENAI_API_KEY not set");

    // 在这里调用 Agent 逻辑
    const result = await runAgent(apiKey, env.MODEL);
    console.log("Agent result:", result);
  },

  async fetch(): Promise<Response> {
    return new Response("Agent is running on schedule. Check logs for output.");
  },
};

部署:

npx wrangler secret put OPENAI_API_KEY
npx wrangler deploy

Vercel / Railway(对比)

平台 适合 免费额度 超时限制
Cloudflare Workers 定时任务、短 API 10 万次/天 CPU 10ms-30s(按计划)
Vercel Serverless HTTP API 触发 100 GB-hours/月 10 秒(Hobby)/ 60 秒(Pro)
Railway 长时间容器 $5/月试用额度 无硬性超时

短任务选 Workers,HTTP API 触发选 Vercel,需要长时间运行选 Railway。

成本:Cloudflare Workers 免费计划覆盖大多数个人项目;Vercel Hobby 免费但超时 10 秒;超出后按用量计费($0.30/百万请求级别)。


Option 3:容器化部署

适合长时运行、需要状态持久化、或 Agent 依赖不适合 Serverless 环境的库(如 Playwright、Selenium)。

Dockerfile

FROM python:3.12-slim

WORKDIR /app

COPY requirements.txt .
RUN pip install --no-cache-dir -r requirements.txt

COPY . .

CMD ["python", "-m", "agent"]

构建和本地测试:

docker build -t ai-coding-trends-agent .
docker run --env-file .env ai-coding-trends-agent

部署到 Fly.io

# 安装 flyctl
curl -L https://fly.io/install.sh | sh

# 初始化项目(生成 fly.toml)
fly launch

# 设置密钥
fly secrets set OPENAI_API_KEY=sk-... GITHUB_TOKEN=ghp_...

# 部署
fly deploy

Fly.io 按实例计费:最小 VM 约 $1.94/月(256MB RAM,共享 CPU)。适合 7x24 运行的 Agent。

部署到 Railway

railway init
railway up

Railway 检测到 Dockerfile 后自动构建。在 Dashboard 设置环境变量即可。

成本:Fly.io 最小实例 ~$2/月;Railway 按用量计费,试用额度 $5;自建 VM 取决于云厂商($3-10/月区间)。


Option 4:生产级部署(概览)

企业环境或有合规要求时,需要更完整的架构。本文只做概览——详细决策框架参见 Agent 部署与生产化指南

维度 生产级要求 参考文章
监控 日志聚合、指标告警、链路追踪 Agent 测试与评估
安全隔离 沙箱执行、权限分级 Agent 沙箱实战
成本控制 Token 预算、用量监控 Agent 落地成本对比
队列与重试 任务队列、指数退避、死信队列
版本管理 灰度发布、回滚机制

常见故障排查

症状 可能原因 排查方向
Worker 超时 任务超过 CPU 时间限制 拆分任务,或改用容器部署
环境变量未生效 secret 未设置或名称不匹配 wrangler secret list 确认;检查 .toml[vars] vs secret
状态丢失 Serverless 无持久存储 用 D1 / KV / 外部数据库存状态
Cold start 延迟 容器首次启动慢 预热实例或改用 Serverless
API key 泄露 key 写入代码或日志 只用 secret/环境变量;日志中脱敏
日志缺失 Worker 日志未持久化 配置 wrangler tail 或日志导出到外部服务

遇到平台限制变化时,去对应官方文档确认最新值:


决策树总结

你的场景 推荐方案 理由
定时日报 / 定时抓取 Cloudflare Workers Cron 免费、定时、无需维护
短任务 HTTP API Cloudflare Workers / Vercel 按调用计费、自动扩缩
长时运行 Agent Docker + Fly.io / Railway 无超时限制、支持状态
敏感数据 / 合规要求 私有环境 + 监控 数据不出内网
还在开发 本地 cron / schedule 零成本、快速迭代

一句话原则:先用最简单的方案跑起来(本地 → Serverless → 容器 → 生产级),只在当前方案遇到瓶颈时才升级。不要一开始就上 K8s。