☰
Dive into Claude Code 深度解析:Agent核心循环的9步管线与5种停止条件
2026/10/8 7:08:36 网站建设 项目流程

Dive into Claude Code 深度解析:Agent核心循环的9步管线与5种停止条件

【免费下载链接】Dive-into-Claude-CodeA Systematic Analysis and Discussion of Claude Code for Designing Today's and Future AI Agent Systems项目地址: https://gitcode.com/gh_mirrors/di/Dive-into-Claude-Code

Dive into Claude Code 是一个对 Claude Code 进行源码级架构分析的开项目,它拆解了 AI 智能体(Agent)核心循环的每一轮是如何运转的。本文将带你快速看懂贯穿智能体循环的9 步管线与5 种停止条件——你会发现,这套系统 98.4% 都是确定性基础设施,真正负责“思考”的 AI 逻辑只占约 1.6%。

为什么值得读这份解析

大多数人以为“聪明的 Agent”来自更复杂的模型或更花哨的循环,但 Claude Code 给出的答案恰恰相反:

  • 核心循环就是一个 while 循环,遵循 ReAct 模式:组装上下文 → 调用模型 → 分派工具 → 检查权限 → 执行 → 重复。
  • 复杂度在循环之外:权限门控、上下文管理、工具路由、故障恢复,这些才是让 Agent 稳定可靠的“骨架”。

这个观点来自 README.md 的 TL;DR:“Agent 循环是一个简单的 while 循环;真正的工程复杂度存在于它周围的系统里。”理解了这一点,你就抓住了整个架构的命脉。

系统全景:Agent 核心循环如何嵌入整个系统

Claude Code 由 7 个组件构成:用户 → 接口 → Agent 循环 → 权限系统 → 工具 → 状态与持久化 → 执行环境。其中Agent Loop 是心脏,它向上向工具“提出行动”,由权限系统给出“允许/询问/拒绝”,再把工具结果收集回来,同时负责从状态中读取数据并持久化。

整个系统可以看成5 层、21 个子系统:表层(入口与渲染)、核心层(Agent 循环 + 压缩管道)、安全/行动层(权限、工具、钩子)、状态层(转录、记忆)、后端层(Shell、MCP、沙箱)。这张分层图能帮你定位“核心循环”在其中的位置——它处在核心层,而上下文整形、压缩管道都围绕它服务。

智能体循环的 9 步管线:每一轮都走这条流水线

这是本文的核心。Claude Code 的每一轮(turn)都严格执行一条 9 步管道,无论来自命令行、SDK 还是 IDE,所有入口最终都汇聚到同一个queryLoop:

步骤名称做什么
1设置解析(Settings resolution)读取并合并配置,确定本轮运行的规则
2状态初始化(State init)初始化本轮的运行状态
3上下文组装(Context assembly)从 9 个有序来源拼装模型能看到的内容
4条件式上下文管理按压力触发 5 个“调用前整形”阶段
5模型调用(Model call)请求大模型生成下一步动作
6工具分派(Tool dispatch)解析模型返回的工具调用意图
7权限门控(Permission gate)拒绝优先地判断允许 / 询问 / 拒绝
8工具执行(Tool execution)真正运行工具,拿到结果
9停止条件检查(Stop condition)判断是否结束本轮,否则回到第 1 步

第 4 步是很多人忽略的关键:在调用模型之前,系统会按顺序检查五个上下文整形阶段(预算缩减 → 裁剪 Snip → 微压缩 Microcompact → 上下文折叠 Context Collapse → 自动压缩 Auto-Compact),每个阶段只在满足自身条件时才真正改动上下文。这样模型始终拿到“刚好够用、又不超载”的信息。

💡 两条执行路径:StreamingToolExecutor让工具一边流入一边开始执行(降低延迟);后备的runTools则把工具区分为“可并发安全”与“互斥”两类。

5 种停止条件:循环什么时候停

一个 Agent 循环最怕失控——既不能该停不停(无限打转、烧钱),也不能不该停就停(任务没做完)。Claude Code 用恰好 5 种停止条件来控制循环的边界,这也是长任务 Agent 稳定性的关键:

停止条件触发时机直觉理解
无工具调用模型这一轮不再请求任何工具活干完了,给出最终回答
达到最大轮次迭代次数超过设定上限预算护栏,防止无限循环
上下文溢出上下文窗口撑爆信息太多,触发压缩或终止
钩子干预Stop 钩子介入用户/开发者插入的自定义刹车
显式中止用户主动叫停人类随时保留控制权

这张“停止条件清单”是长任务 Agent 的核心机制:它让系统知道何时该继续、何时该验证、何时该停下来找人,而不是盲目地把 token 花光。

上下文与恢复:循环之外的“隐形护栏”

循环能跑得稳,靠的是两样东西:稳定的上下文,和出错后的恢复。

  • 9 个有序上下文来源:系统提示 → 环境信息 → CLAUDE.md 层级 → 路径规则 → 自动记忆 → 工具元数据 → 对话历史 → 工具结果 → 压缩摘要。
  • 4 级 CLAUDE.md 记忆:托管级 → 用户级 → 项目级 → 本地级,全部基于文件,可查、可改、可进版本控制。

循环并非“一错就崩”,而内置了多重视恢复机制:

  • 输出 token 上限逐级放宽:每轮最多重试 3 次
  • 反应式压缩:每轮最多触发一次
  • 提示过长降级:上下文折叠溢出 → 反应式压缩 → 终止
  • 流式后备 + 备用模型切换:主路径失败时自动兜底

这套“恢复护栏”正是 98.4% 基础设施的核心体现——循环本身很简单,难的是让它在真实世界里不出事。

小结:把这份解析用起来的 3 个要点

  1. 别把复杂度押在模型上:Agent 的可靠来自循环之外的权限、上下文与恢复系统,这就是“护城河是 harness 而非模型”的含义。
  2. 给循环装好 9 步管线和 5 种停止条件:明确每一轮做什么、何时停,是长任务 Agent 不打转、不失控的前提。
  3. 上下文是稀缺资源:先用渐进式压缩“整形”,再交给模型,远比事后截断更稳。

想继续深入,可阅读 docs/architecture.md 的“轮次执行:9 步管道”章节,以及 docs/architecture_zh.md 的中文详解;若你想亲手构建自己的 Agent,docs/build-your-own-agent.md 提供了从设计问题到取舍的完整指南。

【免费下载链接】Dive-into-Claude-CodeA Systematic Analysis and Discussion of Claude Code for Designing Today's and Future AI Agent Systems项目地址: https://gitcode.com/gh_mirrors/di/Dive-into-Claude-Code

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询