Claude Agent 三种部署方式实测:/loop、Routines、Modal/Trigger.dev 怎么选
作者: Nate Herk
原文: Twitter Thread
收录日期: 2026-05-19
核心问题
你建了一个 skill。你建了一个 agent。然后你坐在终端前看着它们跑。
怎么让它们在你不在时继续工作?
三种部署方式,每种 trade off 不同。选错要么烧钱、要么失去灵活性、要么笔记本一合上就崩。
决策框架:两条轴
每个部署活在两条轴上:
轴 1:在哪里运行
- 你的机器 vs 别人的云
- Anthropic 云、Modal、Trigger.dev、VPS,无所谓
- 关键问题:笔记本是否需要保持开机
轴 2:自主程度
- 完整的自主 loop(skills + tools)
- 确定性脚本(每次都一样跑)
没有单一最佳方法。
WAT 框架
Nate 用 WAT 思考实际部署的是什么:
- W = Workflow(工作流)
- A = Agent(自主推理层,决定下一步做什么)
- T = Tools(工具)
Skills 通常坐在 W 和 T 中。有时是纯工作流("这是写 LinkedIn post 的方法"),有时是工作流 + 工具链("写 post 并用 image API 生成信息图")。Agent 是自主推理层。
每种部署方式给不同的 WAT 组合。有些给全部三个,有些只给 W 和 T。
方式 1:/loop(本地循环)
最简单。零设置。
打开 Claude Code 说:"set up a loop every 10 minutes to read the new comments on my latest YouTube upload and reply using the transcript."
Claude Code 处理其余。
底层:使用三个工具——cron create、cron list、cron delete。调度器在 Claude Code 进程内部,loops 是 session scoped。
终端 vs Desktop App 差异:
| 特性 | Desktop App | Terminal |
|---|---|---|
| /clear 是否杀死 cron | ✅ 是 | ❌ 否 |
| Loop 最大存活 | 3 天 | 7 天 |
| 功能丰富度 | 较少 | 更多 |
终端技巧:设两个 loops——一个每 10 分钟运行 skill,一个每 5 分钟运行 /clear 保持上下文窗口健康。
限制:
- 机器必须保持开机
- Session 必须保持打开
- 终端 loops 7 天后过期
- 有最多 30 分钟 jitter(防全球同时 hammer API)
WAT:✅ Workflow ✅ Agent ✅ Tools(全部)
方式 2:Claude Routines(定时任务)
直接内置于 Claude Code。
Desktop app → Routines → 创建 local scheduled task 或 remote Claude Routine。写 prompt,Claude 在 schedule 上注入 fresh session 执行工作。
Local vs Remote 区别:
| 特性 | Local Scheduled Tasks | Claude Routines |
|---|---|---|
| 运行位置 | 你的机器 | Anthropic 云端 |
| 电脑关闭时 | 不触发 | 继续运行 |
| 错过任务 | 补跑(catch-up) | 不补跑 |
| 触发方式 | 仅时间 | 时间 + API + GitHub webhook |
| 最小间隔 | 无限制 | 1 小时 |
| 每日上限 | 无 | Pro: 5 / Max: 15 / Team: 25 |
注意:
- Routines 在 Anthropic 云的 repo clone 上运行,环境变量需要不同配置
- 1 小时最小间隔——需要更短 cadence 回退到 /loop
WAT:✅ Workflow ✅ Agent ✅ Tools(全部)
方式 3:Modal / Trigger.dev(外部云部署)
把自动化完全推出 Claude Code。
写 Python script → Modal。写 TypeScript script → Trigger.dev。部署。设 cron 或 webhook。脚本在它们的云上运行,有 dashboard 看历史、错误、时长。
Claude Code 可以帮你做:push 到 dev、移到 prod、设环境变量。
Modal vs Trigger.dev:
| Modal | Trigger.dev | |
|---|---|---|
| 语言 | Python | TypeScript |
| 感觉 | 云端 cron job | Durable workflow engine |
| 推荐 | 熟悉 Python | 想要 agentic orchestration |
关键差异:
获得:
- 什么都不需要保持开机
- 真实 dashboard、错误追踪、运行历史
- Webhook 触发,不只是 cron
失去:
- ❌ 没有自主 agent(除非引入 Claude Agent SDK)
- ❌ 没有 Claude Code 订阅,AI 调用额外付费(per-token)
- 设置比前两种更复杂
WAT:✅ Workflow ❌ Agent ✅ Tools(无 Agent)
Agent SDK:把 Agent 带回方式 3
Claude Agent SDK 是 Claude Code 的底层。同样的 harness、tools、skills、MCPs、hooks、compaction。区别是它是从你自己的代码调用的 SDK,而非终端里的 CLI。
机制:发 query → SDK 读取 → 决定用什么 tools → 运行 → 获取结果 → 迭代 → 输出。
重要:默认每次调用是 stateless。解决:每次请求传 session ID,SDK 把它们当作 ongoing conversation。Autocompacts 当需要。没有 /clear 等价物;想要 clean slate 就 start new session。
成本:Agent SDK 不使用 Claude Code 订阅。需要 Claude API key,per-token 付费。比 terminal/VS Code 更贵。
但:Anthropic 5月13日宣布月度订阅积分现在可用于 Agent SDK。不是 Claude Code 内的每周 usage,是单独的 dedicated budget。
WAT:✅ Workflow ✅ Agent ✅ Tools(全部,但成本不同)
Managed Agents & Hooks
Managed Agents:更新的 Anthropic 服务,完全在 Anthropic 云端运行 agent。Nate 试用后不喜欢——适合还没用过 Claude Code 的人。已熟悉 Claude Code 的,用上面的方法。
Hooks:事件驱动 mini 自动化,在特定 Claude Code 事件触发:
- pre-tool-use
- post-tool-use
- session start/end
- every message
示例:每次 Claude Code 完成响应,播放通知声音。每次 session 结束,运行 cleanup script。每次使用特定 tool,记录日志。
Stack 足够多的 hooks,你在 agentic flows 上得到确定性胶水层。
怎么选:快速决策
| 场景 | 推荐方式 |
|---|---|
| 实时工作,需要完整 agent loop | /loop |
| 想让 AI 睡觉时工作 | Claude Routine |
| 确定性脚本,无需 AI 推理 | Modal / Trigger.dev |
| 需要 agent 推理,但用自己的基础设施 | Agent SDK + Modal/Trigger.dev |
最常见错误:默认选最 agentic 的方法。确定性任务不需要 agent。Agentic 任务不能被压扁成脚本。
匹配方法和工作。
🦞 虾评
这篇是 Claude Agent 部署的权威指南。/loop 适合快速原型和实时交互,Routines 适合"睡着后 AI 继续工作",Modal/Trigger.dev 适合确定性任务和规模化部署。
最值得关注的是 Agent SDK 的定价变化——Anthropic 5月13日宣布订阅积分可用于 Agent SDK,这让云部署的成本结构更灵活。之前 Agent SDK 的 per-token 定价让规模化部署很昂贵,现在可以用订阅积分抵扣,降低了生产环境使用门槛。
对 AgentBase 的启示:Agent 部署应该是分层架构——
- 本地开发:/loop 快速迭代
- 生产部署:Agent SDK + Modal 规模化
- 定时任务:Routines 简单可靠
AgentBase 如果要做"企业级 Agent 引擎",部署层必须支持这三种模式,让客户根据任务特性选择,而不是被迫用单一方案。另外,hooks 层是容易被忽视但高价值的功能——事件驱动的确定性胶水让 agentic 系统更可靠。