一页结论

这不是一篇“Claude Code 使用教程”,而是一篇 Agent 运行时入门课。它用一个不到 30 行的 while-loop 解释了代码 Agent 的最小内核:把用户请求发给模型,模型要用工具就执行工具,把结果再塞回上下文;模型不再请求工具时,本轮结束。

真正重要的不是 bash,而是闭环。没有 loop,模型只能给出建议;有了 loop,模型才能把建议变成动作,并根据动作结果继续修正。这个差异就是普通聊天机器人和可执行 Agent 的分界线。

我给这章的定位

Agent 工程的第一块地基。它不追求生产级完整性,而是把“模型为什么能自己干活”讲清楚。

适合对象:想理解 Claude Code、Codex、OpenClaw、Devin 这类工具底层形态的人。

一句话模型

while model asks for tool: run tool, append result, call model again

所有权限、记忆、压缩、恢复、并发、子代理,本质上都是在这个循环外面或里面加保护层。

课程内容拆解

问题LLM 能写命令,但不会自动执行,也不会看到执行结果后继续推理。人如果手动复制命令、粘贴结果,其实就在扮演 agent harness。
解法写一个循环:模型返回工具调用就执行,执行结果作为下一条消息回传;没有工具调用就退出。
最小工具页面从一个 bash 工具开始,因为它能读文件、列目录、执行脚本,足够展示真实世界动作。
观察重点模型何时决定调用工具、工具结果如何改变下一步推理、循环何时终止。
进阶方向s02 起会把单一 bash 扩展为更结构化的工具;后续章节再加入权限、hooks、todo、subagent、context compact、memory、scheduler、MCP 等。

最小 Agent Loop

教学版逻辑可以压缩成五步:

  1. 把用户问题放进 messages
  2. 连同系统提示和工具 schema 一起发给模型。
  3. 把模型响应追加进 messages
  4. 如果响应里有工具调用,执行工具并收集结果。
  5. 把工具结果作为新消息追加,然后回到第 2 步。

这解释了一个常被说复杂的概念:Agent 的“自主性”不是魔法,而是模型决策和程序执行之间有一个稳定的反馈回路。模型负责决定下一步,harness 负责让这一步真的发生。

教学版和生产版差异

页面把教学版 loop 与 Claude Code 源码中的生产级 query loop 做了对照。关键差异不是“生产版更长”,而是生产版必须处理大量边界情况。

维度教学版生产级运行时
循环判断依赖 stop_reason == "tool_use"流式响应中 stop_reason 可能滞后,因此更可靠的是检查内容里是否出现 tool_use
状态管理主要维护 messages还要维护工具上下文、压缩状态、token 恢复次数、hook 状态、turn count、继续原因等
退出路径模型不调工具就结束还要处理 max turns、abort、prompt too long、模型错误、hook stop、token budget continuation、reactive compact retry 等
工具执行串行执行命令可流式、可并发,也要区分 concurrency-safe 工具和独占工具
目标概念清楚可靠、可恢复、可观测、能在真实项目里抗错误

对 OpenClaw/Codex 的启发

这章很适合拿来校准我们理解 Agent 平台的层次。一个可用平台至少有三层:

  1. Loop 层:负责持续调用模型、执行工具、回传结果,是所有能力的最小承载结构。
  2. Control 层:负责权限、沙箱、超时、预算、并发、恢复和可观测性,决定它能不能安全地跑。
  3. Memory/Workflow 层:负责任务计划、上下文压缩、长期记忆、子代理和调度,决定它能不能长时间做复杂工作。

这也解释了为什么简单 demo 看起来很容易,但真实 Agent 产品做起来很难:demo 只要证明 loop 成立;产品要证明 loop 在错误、权限、成本和上下文压力下仍然可靠。

值得记住的判断

  • Agent = LLM + Tools + Loop。少了 loop,工具只是建议;有了 loop,工具才成为动作系统。
  • Harness 是能力放大器,不是智能本身。智能来自模型的判断,harness 让判断能被执行、被观察、被修正。
  • 最小实现应该先保持粗糙。过早引入权限、子代理、记忆和调度,反而会遮住核心机制。
  • 生产系统的复杂度主要来自失败路径。真正拉开差距的是恢复、限流、压缩、并发、安全和审计。
  • 后续 19 章可以理解为围绕这个 loop 的增强包。工具、权限、hooks、todo、subagent、memory、scheduler、MCP 都是在增强这个闭环。

学习建议

如果要系统读这套 Learn Claude Code,我建议按“运行时主线”来读,而不是按功能清单平铺:

  1. s01-s04:先搞懂 loop、工具、权限、hooks,这是 Agent 能跑且能被约束的基础。
  2. s05-s11:再看 todo、subagent、skills、context compact、memory、system prompt、error recovery,这是复杂任务的协调和恢复能力。
  3. s12-s20:最后看任务系统、后台任务、cron、agent teams、worktree、MCP 和完整 turn,这是平台化和多 Agent 化。

对轮机长目前的 OpenClaw 工作流来说,最值得优先深挖的是 s01、s02、s03、s08、s09、s11、s12、s14、s19、s20。它们正好对应工具执行、权限、记忆压缩、长期记忆、错误恢复、任务化、调度和 MCP 扩展。

最终评价

这章值得保存。它的价值在于把 Agent 运行时从“看起来神奇”还原成“可以亲手写出来的程序结构”。只要理解这一个循环,后面的 Claude Code、Codex、OpenClaw、Multi-Agent、MCP、后台任务,本质上都能放回同一张图里理解。

我的建议是把它作为 Agent 工程学习路线的第一课,同时把“loop 本身很简单,生产化全在边界条件”这句话记下来。以后看任何 Agent 框架,都可以先问:它的 loop 在哪里?工具结果怎么回传?失败怎么恢复?权限怎么守住?上下文满了怎么办?