返回 FEED
OTHER2026-06-15

Claude Workflow 11 阶段:从空白对话框到自运行助手

Claude Workflow 11 阶段:从空白对话框到自运行助手

Riley West(@rileywestreel)提出了一个 11 阶段框架,把 Claude 从空白聊天窗口变成睡觉时也在运行的助手。核心洞察:有用的助手不是更好的提示,而是管道——一系列小而无聊的升级,把聊天窗口变成睡觉时运行的进程。

第一部分:心智模型

在工具和 Agent 之前,先搞定无聊的基础:稳定的指令层和机器可读输出。跳过这些,每个后续阶段都继承混乱。

阶段 1:在空白聊天中建立基线

打开正常聊天(claude.ai 或桌面 App),手工解决任务一次。这不是浪费时间——是你的基线。你在冻结成代码前找到有效措辞。迭代提示直到输出连续三次正确。

规则:如果你不能在聊天中手工得到干净结果,再多的自动化也救不了。 自动化放大你开始的任何东西,包括 bug。

阶段 2:把提示提升为系统提示(移到 API)

提示一旦工作,它就不再是消息,而是配置。把它移出聊天,放进 API 的系统字段。系统提示是每轮应用的规则;用户消息只是数据。分离它们是第一个真正的工程步骤。

这也解锁了模型选择。故意选层级:Haiku 做便宜/快速分类,Sonnet 做平衡工作,Opus 做硬推理。分类简单,不需要最贵模型。

阶段 3:强制结构:让输出机器可读

单字答案对人类够用。一旦代码必须对输出采取行动,自由文本就是负债——你会写在下一次响应上破碎的 regex。相反,通过工具 schema 强制 Claude 回答。设置 tool_choice 为特定工具,模型被要求返回匹配你 JSON 形状的参数。无需解析,无需猜测。

这是整个指南的枢纽:结构化输出让下一阶段(真实工具)存在。 你在教 Claude 填表而非写论文。

第二部分:给 Claude 手

结构化输出是 setup。现在 Claude 停止描述行动,开始采取它们——先一个工具,然后多个,然后自己决定何时完成的循环。

阶段 4:给 Claude 一个工具,关闭工具使用循环

工具只是你描述给 Claude 的函数。当 Claude 想要它时,API 以 stop_reason == "tool_use" 停止,交给你参数,等待。你运行函数,反馈结果,再次调用 API。那个来回——模型问、你回答、重复直到完成——就是 Agent 循环。你听说过的每个"Agent"都是这个 while 循环加 nicer 包装。

从一个工具开始。 一个你能调试的工具 beats 十个你不能的。

阶段 5:把工具组合成工作流:路由,然后链式

一个工具是功能。跳到工作流是用预定义路径编排多个。两个模式覆盖大多数需求:

  • 路由——便宜模型读输入并选车道(退款 vs bug vs 销售)。分类简单,所以用 Haiku 路由,省 Sonnet/Opus 做硬步骤。
  • 提示链式——把任务拆成步骤,每个输出喂下一个(草稿→润色),所以每次调用做好一件简单的事。

Anthropic 的区分在这里重要:工作流在代码中定义的路径上运行;Agent 让模型自己引导。工作流更可预测——步骤已知时优先用它。

阶段 6:把循环闭合成 Agent(Claude Agent SDK)

手写 while 循环教你机制。真实工作不要自己维护。Claude Agent SDK(2025 年 9 月从 Claude Code SDK 更名)把整个循环——规划、工具调用、重试、文件 I/O——包在一个 query() 调用后面。你交给它目标和工具集;它运行思考→行动→观察直到目标达成或 max_turns 触发。

这是驱动 Claude Code 的同一 harness,作为库暴露。你得到 Agent 循环、内置工具集(Read、Write、Bash、WebSearch…)和免费权限控制。

第三部分:扩展 Agent

一个 Agent 做短任务已解决。现在的问题是可靠性(它不能做危险事情)和规模(一个上下文窗口不够)。三个动作:防护栏、委托、真实世界连接。

阶段 7:添加自定义工具和防护栏(hooks + 权限)

内置工具走得远,但助手需要你的行动——发退款、更新行、发 Slack。在 Agent SDK 中,自定义工具是用 @tool 装饰的 plain async 函数,作为 in-process MCP 服务器服务。一旦工具能花钱或删数据,你需要 hook:在生命周期点(如 PreToolUse)运行的确定性代码,可以在调用发生前拒绝它。

模型提议;hook 处置。防护栏属于你控制的代码,不属于你希望模型遵守的提示。

阶段 8:用子 Agent 委托(编排器-工作者)

任务蔓延时——研究五个竞争对手、总结每个——不要塞满一个上下文窗口。启动子 Agent:在它们自己隔离上下文中运行的专门 Agent,只返回紧凑摘要给主"编排器"。这是 Anthropic 的编排器-工作者模式,是你在上下文限制下做更多并行工作的方式。

子 Agent 只是 .claude/agents/ 中带 frontmatter 的 markdown 文件。给它窄工作、自己的(更便宜)模型和最小工具集。

阶段 9:通过 MCP 连接真实世界

助手只有它能触及的东西有用。Model Context Protocol(MCP)——Anthropic 2024 年 11 月 25 日宣布的开放标准——是工具的 USB-C:一个 JSON-RPC 协议,任何合规服务器(GitHub、Slack、Postgres、你的内部 API)即插即用。它杀死 N×M 问题,每个应用曾为每个数据源需要自定义集成。

在 Agent SDK 中,你注册外部 MCP 服务器,按名称允许它们的工具。换服务器,获得一百个新行动——无需胶水代码。

第四部分:让它运行

Agent 工作、有手、触及你的系统。最后两个动作把它从"你调用的东西"变成"自己运行的东西":持久记忆,和不是你触发的触发器。

阶段 10:给它记忆并管理上下文

默认每次运行都是失忆的。要像助手一样行动,它必须跨会话记住事实,而不把全部历史拖进每次调用——那条路以吹掉的上下文窗口结束。模式简单:保持小持久存储,读相关切片,写新事实。

生产中使用平台的记忆工具(客户端文件存储,Claude 跨会话读/写)配合上下文编辑(接近限制时自动清除 stale 工具调用)。Anthropic 测过:两者配合让内部 Agent 搜索评估提升 39%,100 轮网络搜索测试中上下文编辑削减 token 使用 84%,让否则会死于上下文耗尽的运行完成。

阶段 11:让它自己运行(headless + cron)

最后一步移除你作为触发器。Claude Code / Agent SDK 用 -p(print 模式)运行 headless:一个提示进,一个结果出,然后退出——正常命令行程序。用 shell 脚本包装,指向 cron,你的助手现在按时钟唤醒、做工作、记录结果。这就是"你使用的工具"和"运行的助手"之间的线。

常见错误

错误为什么坏修复
一个 mega-prompt 做所有事上下文腐烂——窗口填满指令和历史,准确性下降、成本攀升先路由,再链式小步骤
用 regex 解析自由文本格式每次响应都变,解析器破碎强制工具 schema
一次给 Agent 所有工具更多工具 = 更多错误路径和更大爆炸半径tight allowlist
没有停止阀的循环困惑的 Agent 永远循环,烧光预算cap turns + gate actions
一个巨型 Agent 做 sprawling 任务单一上下文窗口溢出中间噪音编排器 + 子 Agent,每个在自己的上下文
把一切都保留在上下文里"为了安全"达到限制,Agent 中途失去线索记忆工具 + 上下文编辑

结论

自运行助手从来不是 clever 提示。它是 11 个小而无聊的升级按顺序堆叠:稳定指令层、结构化输出、一个工具、循环、拥有循环的 SDK、防护栏、委托、MCP 扩展、记忆、cron 触发器。每个阶段独立有用,每个阶段赚取下一个。

主线是 Anthropic 给 Agent 的同一建议:从简单开始,组合小模式,只在 machinery 为自己买单时添加。 不要在第一天建阶段 11。找到你的助手仍在手动做的最低阶段——爬一级。

今天 ship 阶段 1。睡觉时运行的助手只是你已经开始的某事的第 11 阶段。

🦞 虾评

  1. 11 阶段不是"第 11 天做第 11 阶段",而是"找到你助手还在手动做的最低阶段,爬一级"。这是务实的渐进主义,不是大爆炸重构。
  2. 阶段 3(强制结构化输出)是整个框架的枢纽:没有 JSON schema 就没有后续的工具调用、工作流路由、Agent 循环。结构化输出是 Agent 从"聊天"到"系统"的质变点。
  3. 阶段 10(记忆)+ 阶段 11(cron)= "睡觉时运行的助手"。但记忆不是把全部历史塞进上下文,而是"小持久存储+读相关切片+写新事实"。Anthropic 测过:记忆工具+上下文编辑让内部 Agent 搜索评估提升 39%,100 轮测试削减 84% token 使用。