Nate Herk 花时间把 Claude Code Agents 的三种部署方式全部跑了一遍,整理出了每个方法真实的 trade-off。
两个维度
在进入具体方法之前,先理解清楚每个部署方案都横跨两个维度:
在哪里跑:你的机器,还是云端别人的机器。
有多 Agentic:是完全自主循环带 Skills 和工具,还是每次都跑确定性脚本。
这两个维度独立,要分别决策。
他还用 WAT 框架描述发布出去的内容:W = Workflow(工作流),A = Agent(自主推理),T = Tools(工具)。Skills 通常落在 W 和 T 上,有时候 Skill 本身就是一套 Workflow,有时候 Skill 链接着 Workflow 和工具。Agent 则是决定下一步做什么的自主推理层。
方法一:本地循环(/loop)
最简单的方案,零配置。
直接在 Claude Code 里说"设置一个每 10 分钟的循环,读取我最新 YouTube 视频的新评论并根据字幕回复"。Claude Code 内部用 cron create、cron list、cron delete 三个工具处理。
跑在终端里比桌面 app 更稳定——桌面 app 如果 /clear 对话,cron 会死掉;终端里 /clear 不杀 cron,可以定期清上下文来保持窗口健康。
注意事项:
- 机器必须开机
- 会话必须保持开启
- 终端里循环 7 天后过期,桌面 app 是 3 天
- "每 10 分钟"的触发有最多 30 分钟的抖动,不是精确时间
这个方法给你完整的 WAT:Workflow + Agent + Tools 全部保留。
方法二:Scheduled Tasks 和 Claude Routines
这是 Claude Code 内置的功能。
Local Scheduled Tasks 跑在你自己的机器上,关机不触发。Claude Routines 跑在 Anthropic 的云端,关机也触发,但每天有配额限制(Pro 5 次,Max 15 次,Team 25 次),超额后扣额外用量。
Local 的一个有趣特性:Catch-up 机制。如果电脑关了 5 天,回来打开 app,Claude Code 会把漏掉的执行全部补跑。如果不想这样,记得暂停任务。
Claude Routines 也可以通过 API endpoint 或 GitHub 事件触发,不只是时间驱动。
一个限制:Routine 的最小间隔是 1 小时,不能设每 20 分钟。如果需要更短间隔,回到 /loop 方法。
WAT 全部保留,唯一的变量是你的机器是否开机。
方法三:Modal 或 Trigger.dev
这个方法是彻底跳出 Claude Code 的方案。
用 Python 写 Modal 脚本,或用 TypeScript 写 Trigger.dev 脚本,部署到它们的云上,设置 cron 或 webhook 触发。
Claude Code 可以帮你推送脚本到 dev、设置环境变量、部署上线。
两者区别:Modal 更像云端 cron job,Trigger.dev 更像 durable workflow engine。Modal 用 Python,Trigger.dev 用 TypeScript。
关键取舍:
- 你失去了 Agent,只部署 Workflow 和 Tools
- 你失去了 Claude Code 订阅,AI 调用需要单独付费(按 Token 计费)
- 好处是:不需要 AI 的确定性脚本,成本大幅降低
另外,Anthropic 最近宣布 Claude Agent SDK 可以用 Claude Code 订阅额度了,给这个方案补上了一点 Agent 能力。
W + T 有,A 取决于你引入什么。
怎么选
| 场景 | 推荐方案 |
|---|---|
| 现场工作,需要完整的 Agent 循环 | /loop |
| 希望 Claude 在你睡觉时按计划跑 | Claude Routine |
| 确定性脚本,不需要 AI 推理 | Modal 或 Trigger.dev |
| 需要 Agent 能力,但在自己的基础设施 | Agent SDK + Modal/Trigger.dev |
最大的错误是默认选最 Agentic 的方案。确定性工作不需要 Agent。把方法和工作匹配起来,而不是反过来。