当前位置: 首页 > news >正文

深入解析 Claude Code 架构

架构概览

核心的 Agent 循环是一个简单的 while 循环。绝大部分代码存在于环绕它的各子系统之中。

每个 Coding Agent 都必须回答的四个设计问题

设计问题Claude Code 的回答替代方案
推理能力放在哪里?模型负责推理;运行框架负责执行约束。约 1.6% 的 AI 决策逻辑,98.4% 为基础设施代码。LangGraph:显式状态图。Devin:多步骤规划器。
有多少个执行引擎?一个queryLoop服务所有界面(CLI、SDK、IDE)。针对不同界面使用独立的模式化引擎。
默认的安全姿态是什么?拒绝优先:deny > ask > allow。最严格的规则优先。容器隔离(SWE-Agent),git 回滚(Aider)。
核心资源约束是什么?约 200K token 的上下文窗口。每次模型调用前运行 5 种压缩策略。计算预算、显式草稿本。

高层系统结构(7 大组件)

高层系统结构

  1. 用户— 提交提示词、审批权限、审查输出
  2. 交互界面— 交互式 CLI、无头 CLI(claude -p)、Agent SDK、IDE/桌面端/浏览器端
  3. Agent 循环query.ts中的queryLoop异步生成器:模型调用 → 工具分发 → 结果收集 → 循环重复
  4. 权限系统— 拒绝优先规则 + 自动模式 ML 分类器 + Hook 拦截
  5. 工具— 最多 54 个内置工具 + MCP 提供的工具,通过assembleToolPool组装
  6. 状态与持久化— 仅追加写入的 JSONL 会话记录、提示词历史、子 Agent 侧链
  7. 执行环境— Shell(带沙箱)、文件系统、网络请求、MCP 连接

所有界面都汇聚到同一个queryLoop——交互式 CLI、无头模式、SDK 和 IDE 共享同一条代码路径。QueryEngine是一个对话包装器,而非引擎本身。

5 层子系统分解(21 个子系统)

层级职责核心组件
表现层入口与渲染CLI、无头模式、SDK、IDE(React + Ink 终端 UI)
核心层上下文组装与 Agent 循环queryLoop、5 阶段压缩管线、子 Agent 生成
安全/动作层权限与工具7 种权限模式、自动模式分类器、27 种 Hook 事件、工具池、Shell 沙箱
状态层运行时状态与持久化JSONL 会话记录、CLAUDE.md 层级结构、自动记忆、侧链文件
后端层执行环境Shell 执行、MCP 连接(7 种传输类型)、42 个工具子目录

七层独立安全机制

一个请求必须通过所有适用的层级——任何单一层级都可以阻止它:

  1. 工具预过滤— 从模型视角中完全移除被全面拒绝的工具
  2. 拒绝优先规则评估— deny 始终覆盖 allow,即使 allow 规则更具体
  3. 权限模式约束— 当前激活的模式决定了基础处理方式
  4. 自动模式 ML 分类器— 独立的 LLM 调用,单独评估安全性
  5. Shell 沙箱— 对 Shell 命令进行文件系统与网络隔离
  6. 会话恢复时不还原权限— 权限永远不会跨会话边界持久化
  7. 基于 Hook 的拦截— PreToolUse Hook 可以修改或阻止操作

轮次执行:9 步管线

运行时轮次流程

每个轮次遵循一个9 步管线

  1. 设置解析 → 2. 状态初始化 → 3. 上下文组装 → 4. 五个模型前上下文塑形器 → 5. 模型调用 → 6. 工具分发 → 7. 权限关卡 → 8. 工具执行 → 9. 终止条件检查

五个模型前上下文塑形器

每次模型调用前按顺序执行,从成本最低的开始:

阶段策略触发条件
预算削减每条消息的大小上限始终激活
裁剪修剪较早的历史记录特性门控(HISTORY_SNIP
微压缩缓存感知的细粒度压缩始终执行(基于时间),可选缓存感知路径
上下文折叠读取时的虚拟投影(非破坏性)特性门控(CONTEXT_COLLAPSE
自动压缩完整的模型生成摘要(最后手段)当其他所有方式都失败时

恢复机制

  • 最大输出 token 递增(每个轮次最多重试 3 次)
  • 反应式压缩(每个轮次最多触发一次)
  • 提示词过长处理:尝试上下文折叠溢出 → 反应式压缩 → 终止
  • 流式回退与备选模型切换

权限系统深入解析

权限关卡概览

7 种权限模式

模式行为信任等级
plan执行前用户审批所有计划最低
default标准交互式审批
acceptEdits文件编辑 + 文件系统 Shell 操作自动批准
autoML 分类器评估工具安全性
dontAsk不弹出提示,但仍执行拒绝规则更高
bypassPermissions跳过大部分提示,安全关键检查仍保留最高
bubble内部使用:子 Agent 向父级升级特殊

授权管线

4 阶段流程:预过滤(从模型视角中移除被拒绝的工具)→PreToolUse Hook(可返回permissionDecision)→规则评估(拒绝优先)→权限处理器(4 个分支:协调器、集群 Worker、推测性分类器、交互式)

自动模式分类器

yoloClassifier.ts:加载基础系统提示词 + 权限模板(分为内部和外部)。两阶段评估:快速过滤 + 思维链。将预计算的分类结果与超时时间进行竞争。

扩展性:MCP、插件、技能与 Hook

Agent 循环中的三个注入点

四种扩展机制(递增的上下文成本)

机制上下文成本核心能力
Hook零成本27 种事件、4 种执行类型(Shell、LLM、Webhook、子 Agent 验证器)
技能低成本SKILL.md 文件,支持 15+ 个 YAML 前置字段,通过 SkillTool 元工具注入
插件中等成本10 种组件类型(命令、Agent、技能、Hook、MCP、LSP、样式等)
MCP 服务器高成本通过 7 种传输类型(stdio、SSE、HTTP、WebSocket、SDK、IDE)提供外部工具

工具池组装(5 步管线)

基础枚举(最多 54 个工具)→ 模式过滤 → 拒绝规则预过滤 → MCP 集成 → 去重

三个注入点

  • assemble()— 模型能看到什么:CLAUDE.md、技能描述、MCP 资源、Hook 注入的上下文
  • model()— 模型能调用什么:内置工具、MCP 工具、SkillTool、AgentTool
  • execute()— 操作是否/如何执行:权限规则、PreToolUse/PostToolUse Hook、Stop Hook

上下文构建与记忆

上下文构建与记忆层级

9 个有序上下文来源

系统提示词 → 环境信息 → CLAUDE.md 层级结构 → 路径范围规则 → 自动记忆 → 工具元数据 → 对话历史 → 工具结果 → 压缩摘要

CLAUDE.md 层级结构(4 层)

层级路径作用范围
托管层/etc/claude-code/CLAUDE.md全系统(企业级)
用户层~/.claude/CLAUDE.md每个用户
项目层CLAUDE.md.claude/CLAUDE.md.claude/rules/*.md每个项目
本地层CLAUDE.local.md个人使用(被 gitignore)

关键设计决策:CLAUDE.md 是用户上下文(概率性遵从),而非系统提示词(确定性执行)。权限规则提供了确定性的执行保障层。

基于文件的记忆

  • 没有嵌入、没有向量数据库——使用基于 LLM 的记忆文件头部扫描
  • 按需选择最多 5 个相关文件
  • 完全可被用户检查、编辑和版本控制

子 Agent 委托

子 Agent 委托架构

6 种内置类型 + 自定义 Agent

内置类型:Explore(探索)、Plan(规划)、General-purpose(通用)、Claude Code Guide(指南)、Verification(验证)、Statusline-setup(状态栏配置)。

自定义类型:.claude/agents/*.md,通过 YAML 前置字段支持工具、模型、权限、Hook、技能等配置。

关键设计:SkillTool vs AgentTool

  • SkillTool:将指令注入当前上下文(成本低,同一上下文窗口)
  • AgentTool:生成新的隔离上下文窗口(成本高,约 7 倍 token,但上下文安全)

三种隔离模式

模式机制默认
WorktreeGit worktree(文件系统隔离)
Remote远程执行(仅限内部使用)
In-process共享文件系统、隔离的对话

侧链会话记录

每个子 Agent 写入各自的.jsonl文件。只有摘要返回给父 Agent。完整历史永远不会进入父上下文。多实例协调通过 POSIXflock()实现——零外部依赖。

会话持久化

会话持久化与压缩

三条持久化通道

通道格式用途
会话记录仅追加写入的 JSONL完整对话,链式修补的压缩边界
全局提示词历史history.jsonl跨会话的提示词回溯(反向读取用于上箭头键)
子 Agent 侧链每个子 Agent 独立的 JSONL隔离的子 Agent 历史

安全性:恢复会话时不还原权限

信任始终在当前会话中重新建立。这以用户体验摩擦为代价,维持了安全不变性。

设计权衡

仅追加写入的 JSONL 优先考虑可审计性和简洁性,而非查询能力。每个事件都是人类可读的、可版本控制的,并且无需专用工具即可重建。

学AI大模型的正确顺序,千万不要搞错了

🤔2026年AI风口已来!各行各业的AI渗透肉眼可见,超多公司要么转型做AI相关产品,要么高薪挖AI技术人才,机遇直接摆在眼前!

有往AI方向发展,或者本身有后端编程基础的朋友,直接冲AI大模型应用开发转岗超合适!

就算暂时不打算转岗,了解大模型、RAG、Prompt、Agent这些热门概念,能上手做简单项目,也绝对是求职加分王🔋

📝给大家整理了超全最新的AI大模型应用开发学习清单和资料,手把手帮你快速入门!👇👇

学习路线:

✅大模型基础认知—大模型核心原理、发展历程、主流模型(GPT、文心一言等)特点解析
✅核心技术模块—RAG检索增强生成、Prompt工程实战、Agent智能体开发逻辑
✅开发基础能力—Python进阶、API接口调用、大模型开发框架(LangChain等)实操
✅应用场景开发—智能问答系统、企业知识库、AIGC内容生成工具、行业定制化大模型应用
✅项目落地流程—需求拆解、技术选型、模型调优、测试上线、运维迭代
✅面试求职冲刺—岗位JD解析、简历AI项目包装、高频面试题汇总、模拟面经

以上6大模块,看似清晰好上手,实则每个部分都有扎实的核心内容需要吃透!

我把大模型的学习全流程已经整理📚好了!抓住AI时代风口,轻松解锁职业新可能,希望大家都能把握机遇,实现薪资/职业跃迁~

这份完整版的大模型 AI 学习资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费

http://www.jsqmd.com/news/685057/

相关文章:

  • Istio介绍(开源服务网格Service Mesh平台,用于统一管理微服务之间通信)Sidecar、数据平面Data Plane、Envoy Proxy、控制平面Control Plane、mTLS
  • 如何处理SQL主从架构中的数据一致性冲突_手动同步与覆盖
  • 5分钟掌握DoL-Lyra整合包:Degrees of Lewdity中文美化终极指南
  • 物联网AI MicroPython实战:MQ136硫化氢传感器数据采集与智能预警
  • 从‘隐式共享’到‘遍历优化’:一份给Qt/C++开发者的容器遍历避坑指南(含QVector、QList等)
  • 2026年比较好的宜昌小户型装修公司用户好评榜 - 品牌宣传支持者
  • HarmonyOS 直播连麦实战:从开播端解码到看播端合流完整方案
  • 2026镀金连接器优质供应商推荐指南 - 优质品牌商家
  • 从键盘鼠标到传感器:一文读懂Windows HID驱动架构与开发实战
  • BERT分词器定制指南:从原理到实践
  • TensorRT加速Stable Diffusion的8位量化实践
  • 2026高杆灯技术全解析:亮化设计/兰州交通信号灯/兰州太阳能庭院灯/兰州太阳能景观灯/兰州太阳能照明灯/兰州太阳能路灯/选择指南 - 优质品牌商家
  • html怎么转email模板_HTML页面如何适配邮件客户端格式
  • 终极Dell G15散热控制方案:告别AWCC臃肿,拥抱轻量级性能优化
  • 从零到一:EPLAN电气设计入门与首张图纸实战
  • 2026年热门的乌鲁木齐现代简约装修公司服务口碑榜 - 品牌宣传支持者
  • 爱奇艺“艺人库”风波观察:与其情绪化宣泄 不如积极拥抱AI浪潮
  • 时间序列季节性分析与调整方法详解
  • Burp Suite实战:精准捕获微信小程序与网页API数据流
  • RWKV-7轻量级对话终端效果展示:中英日三语无缝切换实录
  • Kimi Linear:高效注意力机制在长序列处理中的创新应用
  • LSTM超参数调优实战:Keras时间序列预测指南
  • HarmonyOS 组件嵌套优化实战:从节点精简到属性替代完整方案
  • C++并行计算优化Black-Scholes模型实践
  • 卷积神经网络池化层原理与应用全解析
  • 前端调试进阶:除了‘禁用断点’,Chrome开发者工具里还有这些绕过debugger的冷门操作
  • CentOS7.9内核和文件描述符优化【20260422】001篇
  • Onekey实战指南:5分钟搭建自动化Steam清单下载系统
  • 微信管理终极指南:WeChat Toolbox如何让你的联系人管理效率提升300%
  • 突破性解决方案:QMCDecode轻松解锁QQ音乐加密格式,让你的音乐库重获自由