📁 核心机制
8 篇文章
2026年4月3日 · 阅读文章
核心循环解析:QueryEngine 如何驱动一次任务完成 QueryEngine 为什么是核心中的核心 如果只能选一个文件代表 Claude Code 的灵魂,那大概率就是 QueryEngine.ts。 因为它负责的不是某个局部能力,而是整个任务生命周期: 接收用户输入 组装上下文 驱动模型调用 处理中间工具执行 维护会话状态 把任务一直推进到结束 这就是典型的 Agent 主循环。 加载图表中... 它管理的是“会话”,不是“一次请求” 源码中的注释已经把定位写得很明确: One QueryEngine pe…
2026年4月3日 · 阅读文章
不要把 Claude Code 的 prompt 理解成“一大段总提示词” 很多人第一次研究 Claude Code,都会先找那段“终极 system prompt”。 但源码里真正存在的,不是一条 prompt,而是一整套分层装配的提示词系统。 Claude Code 至少同时存在这几类 prompt: 会话级 system prompt 运行时动态追加的 prompt section 工具级 prompt 专项子系统 prompt 多 Agent / teammate 模式下的附加 prompt 也就是说,Cl…
2026年4月3日 · 阅读文章
工具系统解析:Tool 抽象与 tools 注册表 Claude Code 的执行力来自工具,不只来自模型 很多人讨论 AI 编程工具时,容易把注意力全部放在模型上。 但从 Claude Code 源码来看,真正让它“能干活”的,是模型外面的工具系统。 如果没有工具,Claude Code 再强也只是会分析代码。 有了工具,它才能真正读文件、改文件、跑命令、接 MCP、问用户、开子任务。 加载图表中... Tool.ts 负责定义统一协议 Tool.ts 不是某个具体工具实现,而是全系统的工具抽象层。 这里最重要的…
2026年4月3日 · 阅读文章
命令系统解析:Slash Commands 是怎么工作的 命令系统和工具系统不是一回事 Claude Code 里有两套很容易混淆的机制: 工具系统:给模型调用 命令系统:给用户显式输入 比如 /config、/mcp、/review、/plugin 这类东西,不是让模型在主循环里随便调用的,而是用户主动触发的控制入口。 加载图表中... commands.ts 是聚合中心 commands.ts 的体量很大,原因很简单: 它把系统内的各类命令都汇总起来了。 从导入列表就能看出 Claude Code 的命令能力非…
2026年4月3日 · 阅读文章
上下文系统解析:Git、CLAUDE.md 与系统提示词注入 Claude Code 为什么看起来“懂项目” Claude Code 给人的一个强烈印象是: 它不像在面对一段孤立代码,而像是在理解整个项目。 这背后最关键的原因之一,就是上下文系统。 context.ts 让系统在对话开始前,就准备好一些高价值项目信息,再注入到后续主循环里。 加载图表中... getSystemContext():补充系统级背景 从源码看,getSystemContext() 至少会处理一类非常重要的信息:Git 状态。 它会尝试收…
2026年4月3日 · 阅读文章
很多人第一次接触 Claude Code,都会以为它的“长上下文”能力主要来自模型本身。 但从源码看,真正撑住长任务的,不只是上下文窗口,而是一整套分级压缩机制。 Claude Code 并不是等消息塞满之后,简单做一次摘要。它在主查询链路里准备了多层处理: 工具结果预算裁剪 snip 细粒度裁剪 microcompact 微压缩 context collapse 折叠视图 autocompact 自动摘要压缩 reactive compact 出错后的兜底压缩 这意味着 Claude Code 的“上下文管理”本…
2026年4月3日 · 阅读文章
Claude Code 的文件读写与编辑链路 为什么文件链路是 Claude Code 的基本盘 再强的 AI 编程工具,如果不能稳定地: 读取文件 理解文件 编辑文件 写回文件 那它就只能停留在“建议型助手”的层面。 Claude Code 之所以真正进入工程工作流,文件链路是最底层的原因之一。 从工具注册表看,文件能力是一级公民 在 tools.ts 里,文件工具是基础工具集的一部分: export function getAllBaseTools(): Tools { return [ AgentTool,…
2026年4月3日 · 阅读文章
Claude Code 的 Bash 工具为什么这么关键 如果只能保留一个执行工具,很多时候就是 Bash Claude Code 的工具很多,但从真实开发工作流看,BashTool 几乎是最关键的执行工具之一。 因为它把 Claude Code 从“能改代码”推进到了“能操作开发环境”。 没有 Bash,它能做的更多是静态修改; 有了 Bash,它才能: 跑测试 看构建结果 搜索系统信息 调用项目脚本 和 Git、包管理器、构建链路打通 源码里为什么这部分这么重 只看 BashTool.tsx 的导入规模就能知道…