乐于分享
好东西不私藏

51 万行代码 AI 只占 1.6%,Claude Code 的架构设计才是真正值得学的!

51 万行代码 AI 只占 1.6%,Claude Code 的架构设计才是真正值得学的!

点击上方卡片关注我

设置星标 学习更多AI出海知识

MBZUAI(穆罕默德·本·扎耶德 AI 大学)和 UCL(伦敦大学学院)的研究团队最近发了一篇 40 多页的论文,把 Claude Code 公开的 TypeScript 源码从头到尾拆了一遍。

结论挺有意思的,513,000 行代码里,真正跟 AI 决策相关的只占 1.6%。剩下的 98.4% 全是工程基础设施:权限管理、上下文压缩、会话存储、工具调度这些。

这个比例本身就说明一个问题:做一个好用的 AI 编程工具,模型能力只是起点,真正的壁垒在工程。

核心架构:一个 while 循环

Claude Code 的核心,说出来可能让人意外,就是一个 while 循环:调用模型 → 执行模型请求的工具 → 把结果喝回去 → 重复,直到任务完成。

没有复杂的 planner,没有状态机,没有多步编排图。模型读上下文,决定下一步干什么,调工具,观察结果,继续走。

整个过程是完全由模型驱动的,它自己决定什么时候停下来,什么时候再跑一轮。

研究者把这叫“Kernel + Harness”架构:一个极薄的 AI 内核,包在一个很厚的确定性外壳里,所有工程复杂度都在循环外面,不在里面。

换句话说,Claude Code 不是靠精巧的编排逻辑让 AI “更聪明”,而是靠工程系统让 AI “不出事”。模型负责思考,Harness 负责兜底。这个分工清晰得让人意外。

5 层上下文压缩

200K 的上下文窗口听着很大,实际跑一个复杂的多文件调试 session,填满的速度比想象的快。

Claude Code 设计了 5 层压缩机制,从便宜到贵依次触发:

  1. Budget reduction — 削减工具输出的预览长度
  2. Snip — 删掉会话前面已经没用的工具结果
  3. Microcompact — 压缩特定段落
  4. Context collapse — 把大段对话总结成摘要
  5. Auto-compact — 全 session 总结,最后手段

系统在上下文用到 92% 的时候自动触发,从第 1 层开始往下试,能在便宜的层解决就不动贵的。

这个设计的好处是:大部分时候前两层就能腾出足够空间,不需要动到代价最大的全 session 总结。

CLAUDE.md 永远不会被压缩。它不是存在内存里的,每次都从磁盘重新读取,你写在 CLAUDE.md 里的项目约定、架构决策、编码规范,不管 session 怎么压缩,都不会丢。

这也是为什么社区里反复强调“把最重要的规则写在 CLAUDE.md 里”,不是因为它位置显眼,而是因为它在架构层面享有“永不删除”的特权。

权限系统:7 种模式,8 级优先级

三层结构:第 1 层(工具注册过滤)被禁的工具直接从模型视野里移除,模型连看都看不到;第 2 层(单次调用检查)每次工具调用都根据工具名、参数、工作目录做规则验证;第 3 层(交互式询问)没有匹配规则时实时问用户,用户的回答变成当前 session 的规则。

7 种运行模式,从 default(只对高风险操作询问)到 auto(ML 分类器自动判断)到 bypassPermissions(完全信任,用于沙箱环境)。

8 级规则优先级:Policy → User → Project → Local → CLI flag → cliArg → command → session。设计哲学是:安全不应该是粗暴的全部拦截,而是精确地只拦那些真正需要人判断的操作。

4 种扩展机制

Hooks(零成本)— 事件触发的确定性脚本,模型完全不参与。

Skills(低成本)— 可复用的动作模板,模型按需调用。

Plugins(中成本)— 打包的工具集,有独立上下文。

MCP(高成本)— 完整的外部服务集成。

不是所有事情都该用 MCP,确定性操作用 Hook,知识复用用 Skill,别什么都往 MCP 上堆。一个 MCP 服务的工具描述可能就占几千 token,接五六个 MCP 光工具列表就吃掉了你十分之一的上下文窗口。

正确的思路是:能用 Hook 解决的不用 Skill,能用 Skill 解决的不上 MCP,越轻量越好。

Subagent:独立 worktree,只返回摘要

Claude Code 拆分任务时会起 subagent。每个 subagent 跑在独立的 git worktree 里——文件系统隔离,上下文隔离,不会互相污染。

关键设计:subagent 内部可能消耗了 100K+ token,但返回给父 agent 的只是 1,000-2,000 token 的摘要。这就是为什么用 subagent 比在主对话里塞所有任务效率高,父 agent 的上下文不会被撑爆。

举个具体例子:你让 Claude Code 重构一个模块,它可能会起一个 subagent 去跑测试、另一个去检查类型。每个 subagent 各自消耗几万 token,但父 agent 只收到两句话:“测试全过了”、“类型检查没问题”。主会话的上下文干干净净。

Session 存储:只追加,不覆盖

Session 以 JSONL 文件形式存在 .claude/projects/ 里。存储模型是 append-only,永远不会原地覆盖。会话完全可审计,claude --continue 能精确恢复到上次的状态。

从零开始一个新 session 会有“冷启动惩罚”。一个已经跑了一段时间、理解了你代码库的 session,和一个刚启动的,效果是不一样的。前者已经知道你的文件结构、命名习惯、哪些测试容易挂,后者什么都不知道。

所以 claude --continue 不只是“接着聊”的意思,而是接着用一个已经有积累的 agent。这个设计让长期项目的体验越来越好,而不是每次都从零开始。

写在最后

回头看这篇论文拆出来的东西,Claude Code 的设计思路可以用一句话概括:把 AI 当成一个能力很强但需要严格管理的员工。

模型本身只负责“想”,决定下一步干什么,剩下的 51 万行代码,全在解决“怎么让它安全地干、高效地干、干完还能接着干”这个问题。

5 层压缩保证上下文不会爆;权限系统保证它不会乱来;Subagent 保证复杂任务不会拖垮主线程;append-only 的 session 存储保证所有积累不会丢。而 CLAUDE.md 作为唯一“永不删除”的上下文,相当于给这个员工写了一份永远贴在工位上的操作手册。

这套架构对做 AI 产品的人来说,最大的启发可能是别把精力全花在模型选择和 prompt 优化上,真正决定产品好不好用的,是模型周围那 98.4% 的工程。

延伸阅读:

• 论文来源推文(含完整拆解):https://x.com/sinclairdta/status/2046388705296871886 

• Claude Code 官方文档:https://docs.anthropic.com/en/docs/claude-code 

• claude-code-best-practice 仓库:https://github.com/SHANRAISSHAN/claude-code-best-practice

欢迎关注,这个账号还会持续分享更多AI编程、出海工具、实战经验、踩坑记录。

想了解更多可以加我 vx: 257735 聊。

我给 Codex / Claude 做了一个有网页审美能力的 Skill

Claude Code 装上这个插件,我不用再当中间人了

GPT-Image-2 发布!三榜登顶甩开 Nano Banana,设计师要哭了

Mac mini 走起!手机随时随地AI编程,太爽了

飞书开源CLI,我用Claude Code一句话读了12篇文档、建了66条选题表!

 推荐一个牛逼免费的 markdown 工具!

 出海需求挖掘:让OpenClaw 每天帮你找赚钱机会!!

 Google Stitch 2.0 太牛了!UI 丑的问题有救了

 我们出海社区终于有自己的网站了!

(2026年最新)Codex CLI 国内使用全攻略:终端 + VSCode + Cursor + Opencode 四种姿势全搞定

从海外公司注册到 Stripe 收款,跑通了出海收付款全流程(实操分享)