Claude Code Agent基本工作原理
最近 AI 编码工具大火,Claude Code、Codex 大家都在实际工作中更多的使用起来。
用起来后难免想知道它是怎么实现的?后边都是LLM大语言模型,为啥它能自主规划,从头到尾自动完成多轮任务。它的技术架构是啥样的?用户敲下命令后的全链路流程是啥样的?
意外的今年3月,claude code源码泄露,网上已经到处是分析的文章,那就用claude code问它自己吧^_^
一、Claude Code 是什么?
首先说明,Claude Code 和 Claude 模型本身是两个东西,Claude Code是一个运行在本地终端的「AI 编排调度引擎」,一个Agent,背后的LLM大模型用的Claude提供的大模型,比如Opus4.x/5.x。
真正写代码、做推理的是云端 Claude 大模型;读你本地文件、执行 Shell、控制循环、管理上下文、做安全校验 的,是本地的 Claude Code 程序。 源码结构也能看出来:
- 模型推理相关代码只占 1.6%
- 剩下 98% 全是本地工程调度、工具管理、权限、上下文、状态机逻辑 这也是它比普通 Copilot、IDE 补全强大的核心原因:它是一个可以自主闭环干活的 Agent,不是单次代码补全工具。
二、Claude Code 整体技术架构(四层分层)
整体采用经典的分层架构,职责拆分非常干净,完全解耦,方便扩展各种自定义技能、工作流。
简单说,Claude Code就是在干:一个while循环+工具调用+LLM
- 接入层(Adapters) 用户所有交互的入口,只负责展示和接收指令,不处理任何业务逻辑。
- 终端 TUI 交互(日常使用的命令行界面)
- VSCode / IDE 插件桥接
- 无头模式(自动化脚本调用)
- HTTP 服务调用 特点:UI 和核心逻辑彻底分离,一套内核,多端通用。
- 核心编排层(Harness 引擎) 这是 Claude Code 的心脏,也是和普通 AI 代码工具最大的区别。 核心文件 QueryEngine.ts,本质是一个无限循环状态机。 内置核心能力:
- 多轮 Agent 主循环(自动思考-执行-复盘)
- 权限安全校验(所有本地操作默认拦截,按需放行)
- 上下文压缩与记忆管理(解决超长会话卡顿、溢出)
- 工具调度、钩子拦截、子代理任务分发 所有的“自主干活”能力,全部来自这一层,不是模型自带的。
- 工具执行层(Tools) 模型不能直接碰你的电脑,所有本地操作全部通过标准化工具执行。 内置高频工具:
- 文件操作:读、写、编辑、全局检索
- 代码检索:Grep 代码搜索、Glob 文件匹配
- 系统能力:Bash 命令执行
- Agent 能力:子任务拆分、多代理并行执行 所有工具都有严格参数校验、权限拦截、日志记录,保证本地安全。
- 模型推理层(LLM) 纯粹的“大脑”,只负责思考和决策:
- 接收本地引擎传来的上下文、需求、工具结果
- 输出文本回答 / 工具调用指令
- 不触碰、不执行任何本地操作 支持动态切换 Sonnet / Opus 模型,适配不同复杂度的开发任务。
三、基本原理:自动干活的完整链路
重点讲最关键的问题:敲下回车的一瞬间,电脑和云端到底发生了什么? 以及为什么会有「逐字流式输出 + 边思考边执行工具」的效果。
- 网络底层:SSE 流式分块传输 普通对话工具是:模型思考完 → 一次性返回全部内容。 Claude Code 用的是 SSE(Server-Sent Events)流式协议。 简单理解:
- 客户端发起带 stream:true 的 HTTP 请求
- 云端模型每生成几个 Token,就立刻打包成一小块数据推下来
- 本地程序不断拼接这些碎片,实时渲染到终端 “字一个一个蹦出来”,就是增量文本碎片实时渲染的效果。
- 最关键创新:流式工具预执行 普通 AI Agent:必须等模型完整输出全部工具参数 → 解析完成 → 再执行命令。 Claude Code 做了一层 StreamingToolExecutor 缓冲机制:
- 模型还在慢慢输出工具调用的 JSON 碎片
- 本地引擎实时缓冲、拼接、校验
- 只要一个工具参数拼接完整,立刻异步执行
- 不需要等模型本轮思考全部结束 这就是为什么会看到:模型文字还没打完,已经开始读文件、跑命令了。
- 完整端到端全流程(用户视角) 以输入 “帮我修复这个接口的报错” 为例,完整执行链路:
- 本地初始化:Claude Code 读取项目结构、本地配置、历史对话
- 组装请求:Harness 引擎拼接系统提示词、历史消息、工具列表、项目规则
- 发起流式请求:向云端 Claude 开启 SSE 长连接
- 云端推理推流:模型边思考边输出文本、工具调用碎片
- 本地实时渲染:文本碎片逐字展示到终端
- 预执行工具:工具参数拼接完成,立刻执行 grep 查代码、bash 跑日志
- 结果回填:工具执行结果塞回对话上下文
- 循环迭代:再次请求模型,基于执行结果继续分析、改代码、自测
- 任务终止:模型无新工具调用,输出总结,本轮任务结束 核心总结:Claude Code 不是一次请求,是无数次「模型推理 + 本地执行」的自动闭环循环。
四、总结:为什么 Claude Code 是目前最强编码 Agent?
它的核心优势:
- 模型与执行彻底分离:大脑在云端,手脚在本地,安全可控
- 流式预执行机制:极大降低用户等待感知,体验丝滑
- 标准化 Agent 循环:自主思考、执行、校验、修复,形成闭环
- 工程级上下文管理:解决长会话开发的稳定性问题
- 可定制工作流:可以叠加产品分析、技术方案、单测闭环等自定义技能