返回 FEED
AGENT2026-05-28

三种部署 Claude Agent 的方式:从本地循环到云端托管

Nate Herk 是一位专注于 Claude Code 工作流的开发者。这篇文章是他对三种部署方式的完整实测对比。

两个维度

每个部署都活在两个轴上:

  1. 在哪里运行:你的机器,还是别人的云。关键是你的笔记本是否需要保持开机。
  2. 多 Agent 化:是完整的自主循环(带 skills 和 tools),还是确定性的脚本(每次运行方式相同)。

Herk 用 WAT 框架来思考部署内容:W 是工作流,A 是 Agent,T 是 Tools。Skills 通常坐在 W 和 T 里。Agent 是决定下一步做什么的自主推理层。

方法一:/loop(本地循环)

最简单的。零设置。

你打开 Claude Code 说"每 10 分钟设置一个循环,读取我最新 YouTube 视频的新评论,用视频脚本回复。"Claude Code 处理其余一切。

底层使用三个工具:cron create、cron list、cron delete。调度器在 Claude Code 进程内部,循环是 session 范围的。五个不同终端可以运行五个不同循环而不互相干扰。

关键发现:

  • 桌面端:运行循环后 /clear 聊天,cron 会死
  • 终端:/clear 不会杀死 cron。你可以清除上下文后问"这个 session 有什么 cron",Claude Code 会用 cron list 显示活跃的

Herk 经常设置两个循环:一个每 10 分钟运行实际 skill,另一个每 5 分钟运行 /clear 保持上下文窗口健康。Claude Code 本来不认为注入 /clear 会工作,但它确实工作。

限制:

  • 机器必须保持开机
  • Session 必须保持打开
  • 终端循环 7 天后过期,桌面端 3 天
  • 循环触发有最多 30 分钟抖动("每 10 分钟"不会精确在 10:10、10:20 触发)

这里你得到完整的 WAT:工作流、Agent、Tools,全部都有。

方法二:Scheduled Tasks 和 Claude Routines

直接内建在 Claude Code 中。

桌面端打开 routines,可以创建本地定时任务或远程 Claude Routines。设置看起来几乎一样:你写提示词,Claude 在 schedule 上注入到 fresh Claude Code session 中执行。

唯一真正的区别是运行位置。

本地定时任务:在你的机器上运行。关闭桌面端,它们不触发。

Claude Routines:在 Anthropic 的基础设施上运行。电脑可以关机,笔记本可以合上,终端可以退出,它们仍然运行。因为运行在 Anthropic 云上,每天有上限:Pro 5 个,Max 15 个,Team/Enterprise 25 个。超出后从额外使用量扣除。

值得注意:

  • 本地任务会"补跑":关机五天,回来打开桌面端,Claude Code 会运行所有错过的触发(除非你暂停了任务)
  • 远程 Routines 也可以通过 API endpoint 或 GitHub 事件触发——不只是基于时间的
  • 因为运行在 Anthropic 云上的 repo 克隆中,环境变量的配置方式与本地不同
  • 最小间隔 1 小时。如果需要更短频率,回退到 /loop

两种情况下你都得到完整的 WAT。Agent 是活的,skills 已加载,MCPs 工作,subagents 工作,slash commands 工作。

方法三:Modal 或 Trigger.dev

这里你把自动化完全推出 Claude Code。

为 Modal 写 Python 脚本,为 Trigger.dev 写 TypeScript 脚本。部署它。设置 cron 或连接到 webhook。脚本在他们的云上运行,有运行历史、错误和持续时间的 dashboard。

Claude Code 可以帮你做这个:它知道如何推送到 dev、移到 prod、在 Modal 或 Trigger.dev 上设置环境变量。

Modal 更像云中的 cron job。Trigger.dev 更像 durable workflow engine,也支持 cron。懂 Python 默认选 Modal;想要更多 agentic-flavored orchestration,Trigger.dev 更接近你想要的。

关键变化:你失去了 Agent。

你部署的是工作流和工具,不是自主循环。你也失去了 Claude Code 订阅——部署脚本中的任何 AI 处理都变成 API 调用(Claude API、OpenAI、OpenRouter 等),按 token 计费,如果不小心会很贵。

反面:很多这些部署根本不需要 AI。如果脚本是确定性的("获取这个数据,转换它,写入 sheet"),你不需要模型。这就是 Modal 或 Trigger.dev 发光的地方——所有部署好处,没有 per-token 成本。

得到什么:

  • 什么都不需要保持开机
  • 真正的 dashboard、错误追踪、运行历史
  • Webhook 触发,不只是 cron

失去什么:

  • 没有自主 Agent(除非引入 Claude Agent SDK)
  • 没有 Claude Code 订阅,AI 调用额外付费
  • 比前两种方法更多设置

Claude Agent SDK

如果你想在方法三中把 Agent 带回来,这是方式。

Claude Agent SDK 是 Claude Code 的底层。同样的 harness、同样的 tools、同样的 skills、同样的 MCPs、同样的 hooks、同样的 compaction。区别是它是你从自己代码中调用的 SDK,而不是在终端中对话的 CLI。

默认每次调用都是无状态的——唤醒时没有记忆。修复方法是每次请求都传递 session ID,SDK 把它们视为一个持续对话。需要 clean slate 时,开新 session。

这是官方 Anthropic SDK,所以得到所有功能:subagents、MCPs、hooks、skills、slash commands、claude.md、memory、compaction。

成本问题:Agent SDK 不使用 Claude Code 订阅。需要 Claude API key,按 token 付费。比直接在终端或 VS Code 中使用 Claude Code 更贵。

Anthropic 在 5 月 13 日宣布,月度订阅积分现在可以用于 Agent SDK。不是 Claude Code 内的每周使用量,是单独的 dedicated budget。

如何选择

快速自检:

  • 需要实时工作且需要完整 Agent 循环 → 用 /loop
  • 想让 Claude Code 按 schedule 唤醒并在你睡觉时工作 → 用 Claude Routine
  • 确定性脚本,不需要 AI 推理 → 推送到 Modal 或 Trigger.dev
  • 需要 Agent 推理,但在自己的基础设施中 → 把 Agent SDK 接入 Modal 或 Trigger.dev

最常见的错误:默认选择最 agentic 的方法。确定性工作不需要 Agent。Agentic 工作不能被压扁成脚本。

匹配方法和工作。