Claude Code 代理循环(Agent Loop)详解概述当你在终端中键入一条消息并按下回车后,Claude Code 内部发生了什么?从源码层面来看,整个过程由11 个步骤组成,构成一个完整的代理循环(Agent Loop)。这 11 个步骤可以分为三个阶段:阶段步骤核心任务输入阶段Step 1 ~ 4捕获用户输入,组装完整的请求上下文执行阶段Step 5 ~ 8发起 API 请求,解析响应,执行工具调用,循环迭代输出阶段Step 9 ~ 11渲染最终回复,执行后处理,等待下一次输入第一阶段:输入(Step 1 ~ 4)这一阶段的任务是:把用户的一句话,转化为可以发送给 Claude API 的完整请求。Step 1 · 用户输入源码位置:src/components/TextInput.tsxClaude Code 的终端界面基于Ink框架构建——这是一个用 React 编写终端 UI 的库。用户在终端中键入的每一个字符,都由 Ink 的TextInput组件捕获。在非交互模式(例如通过管道输入)下,输入源切换为stdin,这使得 Claude Code 可以被其他程序调用。● claude-code $ 查找 src/ 下所有 TODO 注释并生成摘要关键细节:输入是逐字符捕获的,支持编辑、删除、上下键浏览历史支持管道输入(echo "hello" | claude),此时不走TextInput组件输入完成后,原始文本字符串传递给下一步Step 2 · 消息封装源码位置:src/utils/messages.ts—createUserMessage()用户输入的纯文本不能直接发给 API,需要包装为 Anthropic 要求的消息格式。createUserMessage()函数负责这项工作。它将文本转换为如下结构:{"role":"user","content":[{"type":