乐于分享
好东西不私藏

Claude Code 源码揭秘,它是如何像电影制作公司一样工作的?

Claude Code 源码揭秘,它是如何像电影制作公司一样工作的?

这几天 claude code 代码泄露的事情沸沸扬扬,网上一堆分析源码的。
但是我想换个视角来聊聊这件事情,如果你深入Claude Code 的源代码世界,你会看到的不是一个超级大脑,而是一个庞大而有序的片场
这里有导演、副导演、摄影师、灯光师、道具师、场记
整整一个完整的电影制作团队。
这就是 Claude Code 最核心的设计智慧。

它不是在模拟一个无所不能的天才,而是在构建一个专业协作的系统。

一、512,000 行代码讲述的故事

Claude Code 的代码库有 512,000 多行,分布在近 2,000 个文件中。
这个数字本身就在诉说着什么。
如果只是一个聪明的对话机器人,根本不需要如此庞大的架构。
让我们看看这些代码都在做什么。
40 多个工具,每个工具都是一个专业工种,有自己的职责边界和工作流程。
50 多个命令,预定义的标准操作程序,让常见任务像剧本一样可重复执行。
300 多个工具函数,后勤保障团队,处理所有琐碎但必要的细节。
多层权限控制,安全系统,确保不会有人为了真实感把墙砸开。
完整状态管理,调度中心,追踪每一个进行中的任务。
记忆分层系统,资料档案室,知道什么该记、什么该忘。
这不是在建造一个会聊天的 AI,而是在搭建一个会工作的组织。

二、设计哲学的转变

传统聊天机器人的设计思路是。
如何让模型更聪明,回答得更好。
Claude Code 的思路完全不同。

如何让 AI 像一个专业团队那样协作,完成复杂的工作。

这个转变带来的结果是结构性的。
就像一家公司不会指望 CEO 既写代码又做设计还管财务,Claude Code 也不会让主 Agent 同时处理所有事情。
我研究过很多智能体框架,从 LangChain 到 AutoGen,从 OpenClaw 到 Dify。
大部分框架的设计思路是堆模型。
模型不够强,就加一个。任务完不成,就再调一次。

Claude Code 的设计思路是搭系统。

模型只是系统中的一个组件,真正的能力来自工具、权限、状态、记忆的协同。

这才是工业级智能体和玩具 Demo 的区别。

三、剧组的日常——用拍电影理解智能体

场景一:制片人下达任务

想象一下,用户说。
帮我分析这个项目,并修复登录流程的 bug。
这句话就像一个制片人对导演说。
今天把雨夜告白戏拍完,顺便把男主的人设问题修掉。
听起来简单,但背后需要多少协作。

第一幕:总导演接收任务

主 Agent 是总导演,首先要理解任务。
这不只是听懂话那么简单。它需要:
  • 理解这个项目指的是哪个项目(当前工作目录)
  • 理解分析意味着什么(读取文件、理解结构、找出问题)
  • 理解修复 bug 需要什么权限(能否修改文件、是否需要测试)
就像导演拿到剧本,他不能只看台词,还要理解人物关系、情绪走向、场景需求。

第二幕:资料员递上通告单

接下来发生的事情很关键。
系统不会直接把整个项目的几万个文件都塞给模型。
那就像有人给导演推来一卡车资料。
这是全部 12 版剧本、所有废案、去年融资计划书、演员医保表格、十个小时花絮素材,您一起看下。
导演会当场把场记板当飞盘扔出去。
所以 Claude Code 做了件很聪明的事。

上下文压缩。

它像一个贴心的执行制片,在旁边说。
导演,这些我先帮你整理成三页摘要。细节在档案柜,需要时我再给你翻。
这就是 compact 功能的本质。
不是失忆,而是整理资料。

第三幕:发现任务太重,派副导演出去

主 Agent 很快意识到,这个任务自己一个人干不完。
它需要:
  • 有人去读代码
  • 有人去查文档
  • 有人去跑测试
  • 有人去对比历史版本
如果全靠主 Agent 自己来,就像一个导演在片场同时找对讲机、喊 Action、搬苹果箱、还想亲自修摇臂。
最后结果通常是,谁都没管好,自己先累成背景板。
所以它调用了 AgentTool。
这就是在召唤副导演。
主 Agent:你去把这个模块的代码读完,告诉我改哪些地方。↓子 Agent 带着明确指令出发了
这个设计的精妙之处在于隔离与共享的平衡
子 Agent 有自己的独立上下文,不会乱改总导演的笔记。
子 Agent 有自己的缓存和 Abort 控制,可以独立完成任务。
只有必须共享的状态,才回到根 store,保持信息同步但不混乱。
就像成熟的片场,每个人有自己的工作副本,但总表只有一个。
谁能改总表,权限明确。

第四幕:各专业工种开始干活

子 Agent 接手任务后,也不会自己什么都做。
它会调用各种工具。
FileReadTool 是道具组,我去把登录模块的代码取来。
GrepTool 是勘景组,我去搜索所有跟认证相关的代码。
BashTool 是特效组,我去跑一下测试,看看问题在哪。
每个工具都有自己的标准作业程序。
输入验证,检查设备清单(你要干什么)
权限检查,确认你能干这个活(你有这个权限吗)
沙箱验证,需不需要安全防护(这个操作危险吗)
命令执行,正式开拍(执行实际任务)
结果处理,后期处理(输出太长就截断、重要内容存档、错误标记 NG)
这不是随便调个函数那么简单,而是一套完整的工业流程。

第五幕:进度汇总到调度大屏

在整个过程中,所有信息都汇聚到一个地方。

AppState,片场总控大屏。

这个屏幕上显示着:
  • 现在谁在干活(activeTasks)
  • 哪些子 Agent 在后台跑(backgroundAgents)
  • 哪些工具正在执行(pendingToolCalls)
  • 当前权限模式是什么(permissionMode)
  • 远程连接状态如何(remoteSession)
  • 哪些插件和 MCP 已接入(mcpClients)
  • 当前有哪些通知和待处理事件(notifications)
为什么要这样。
因为复杂智能体不是问一句答一句那么简单。
它会同时发生很多事情。
  • 主线程正在思考
  • 后台 Agent 在跑任务
  • 工具在读文件
  • 另一个子 Agent 在做总结
  • 记忆提取器在异步写长期记忆
如果没有统一状态,这个系统会像片场里十个对讲机同时串台。
你会看到这样的混乱。
  • 子 Agent 回来了,但主线程不知道
  • 工具已经结束了,但 UI 还显示在转圈
  • 任务被取消了,但后台进程还在跑
  • 一个 Agent 改了上下文,另一个 Agent 还在看旧版本
所以状态管理的本质是。

片场调度中心,不是创作本身,但没有它,全片崩溃。

第六幕:场记整理今日拍摄日志

一轮工作结束后,系统会做一件很重要的事。

提取记忆。

这不是把所有对话都存下来,而是像场记整理拍摄日志。
今天拍了什么,哪些镜头过了,哪些要重拍,明天需要什么道具。
Claude Code 的记忆系统是分层的。
短期记忆,当前会话的上下文,像今天的拍摄计划。
项目记忆,这个项目的特定知识,像这部戏的人物设定和场景要求。
长期记忆,跨会话的通用知识,像导演的拍摄风格和偏好。
团队记忆,多人协作的共享知识,像整个剧组的协作规范。
这个设计的意义是什么。

让智能体不是每次都从零开始,而是有积累地成长。

就像一个好的剧组,拍完一部戏,经验会留下来,下一部戏会拍得更好。

四、权限系统——片场的安全规范

拍电影是有风险的。
爆破戏要清场,武打戏要保险,夜戏要照明,水戏要救生员。
智能体系统同样有风险。
删除文件、执行命令、访问网络、读写隐私数据,每一个操作都可能造成损失。
Claude Code 的权限系统分为四层。
默认模式,危险操作需确认。就像爆破戏需要导演签字。
计划模式,所有工具需批准。就像每一场戏都要制片人过目。
自动模式,分类器自动决策。就像成熟剧组,常规操作不需要请示。
沙箱模式,完全隔离执行。就像在摄影棚里拍,不影响外界。
危险命令检测是其中关键一环。
系统内置了一个危险模式清单。
  • python、node、ruby、perl(脚本解释器)
  • curl、wget(网络下载)
  • ssh、scp(远程连接)
  • sudo、su(提权)
  • rm -rf、dd(破坏性操作)
这些命令不是不能执行,而是需要额外确认。
就像爆破戏不是不能拍,而是需要更严格的安全措施。

权限的本质不是限制,是保护。

保护用户不被误操作伤害,保护系统不被恶意攻击,保护智能体不被滥用。

五、多智能体协作——导演组的艺术

Claude Code 最精彩的设计,是多智能体协作系统。
它支持四种协作模式。

模式一:同步子智能体

主 Agent 调用子 Agent,等待完成,然后继续。
就像导演派副导演去勘景,等副导演回来汇报,再决定怎么拍。
适用场景,任务有明确先后顺序,需要等结果才能继续。

模式二:异步子智能体

主 Agent 启动子 Agent,不等待,继续做其他事,稍后查询进度。
就像导演同时派两个副导演去不同地方勘景,自己先准备其他工作。
适用场景,任务可以并行,不需要等结果。

模式三:远程智能体

子 Agent 在远程环境运行,通过 CCR 协议通信。
就像导演在 A 组拍戏,副导演在 B 组拍戏,通过对讲机协调。
适用场景,需要隔离环境、不同配置、跨机器协作。

模式四:团队成员模式

多个 Agent 组成团队,共享记忆,分工协作。
就像完整剧组,导演、摄影、灯光、美术各司其职,但拍的是同一部戏。
适用场景,复杂项目,需要多角色长期协作。
这四种模式不是随便选的,而是根据任务类型自动匹配。
简单任务,主 Agent 自己干。
复杂任务,派子 Agent 出去。
并行任务,异步子 Agent 同时跑。
长期项目,组建团队持续协作。

这个设计的核心思想是:不是所有任务都需要最强模型,而是合适的人做合适的事。

就像电影剧组,不会让导演去搬苹果箱,也不会让场记去指导演员表演。

六、工具系统——40 个专业工种

Claude Code 有 40 多个工具,每个工具都是一个专业工种。
让我用剧组角色来类比。
工具
剧组角色
职责
FileReadTool
道具组
读取文件,取来需要的资料
FileEditTool
剪辑师
修改文件,精修内容
FileWriteTool
编剧
写入新文件,创作内容
BashTool
特效组
执行命令,完成技术操作
GlobTool
勘景组
搜索文件,找到目标位置
GrepTool
场记
搜索内容,定位关键信息
WebFetchTool
外联组
抓取网页,获取外部信息
AgentTool
副导演
调用子 Agent,分配任务
TaskCreateTool
制片
创建任务,安排工作
SendMessageTool
对讲机
智能体间通信,同步信息
每个工具都有完整的输入输出规范。
就像剧组里每个岗位都有明确的职责描述。
道具组知道什么时候该准备什么道具,特效组知道什么场景需要什么设备。

工具系统的精妙之处在于可扩展性。

通过 MCP 协议,可以接入第三方工具。
通过 Plugin 系统,可以安装社区开发的插件。
通过 Skill 系统,可以定义可复用的工作流。

这就像一个开放的选角系统。

剧组需要新角色,可以去人才市场选,也可以自己培养,还可以从其他剧组借。

七、性能优化——片场的效率管理

512,000 行代码的系统,性能是关键。
Claude Code 用了三种优化技术。

技术一:并行预取

启动时同时加载多个模块。
Promise.all([加载 MDM 设置,预取 Keychain,初始化用户信息,获取系统上下文,统计文件数量])
就像电影开拍前,同时准备场地、设备、演员、道具、剧本。
而不是等场地好了再找设备,设备到了再叫演员。

技术二:懒加载

重型模块不是一开始就加载,而是需要时才加载。
if (需要协调器模式) {加载协调器模块}
就像电影里的特效镜头,不是所有场景都需要,需要时再调用特效团队。

技术三:文件状态缓存

读取过的文件会缓存起来,避免重复读取。
classFileStateCache{read(filePath)   // 读取invalidate()     // 失效clone()          // 克隆}
就像剧组的资料室,常用资料放在手边,不需要每次都去档案库翻。

这些优化的本质是:减少等待时间,让智能体把时间花在思考上,而不是花在加载上。

八、设计模式——工业级的智慧

Claude Code 用了七种经典设计模式。
工厂模式,buildTool 创建工具实例。就像选角导演根据角色需求找演员。
策略模式,不同 PermissionMode 的权限决策。就像不同场景用不同拍摄方案。
观察者模式,React Hooks 状态更新。就像场记板一打,所有部门同时收到信号。
责任链模式,工具调用管道处理。就像剧本从编剧到导演到演员的传递链。
单例模式,AppStateStore 全局状态。就像制片人是唯一能改总表的人。
装饰器模式,MCP 工具包装。就像给演员加特效,不改变表演本身。
命令模式,Slash 命令封装。就像标准拍摄流程,每个步骤都有明确指令。

这些模式不是炫技,是解决实际问题。

工厂模式解决工具创建的一致性问题。
策略模式解决权限决策的灵活性问题。
观察者模式解决状态更新的同步性问题。

工业级代码和业余代码的区别,不在于用了多少高级技术,而在于用了多少经过验证的模式。

九、给我的启发——智能体研究的三个认知升级

研究完 Claude Code,我有三个深刻的认知升级。

认知一:智能体的核心不是模型,是系统

很多人研究智能体,焦点都在模型上。
哪个模型更强,哪个模型更便宜,哪个模型响应更快。

但 Claude Code 告诉我们,模型只是系统中的一个组件。

真正的能力来自工具、权限、状态、记忆的协同。
就像一个电影,演员再强,没有好导演、好剧本、好摄影,也拍不出好片子。

智能体的竞争,本质是系统设计的竞争。

认知二:多智能体不是堆数量,是设计协作

很多人做多智能体,思路是堆数量。
一个 Agent 不够,就加两个。两个不够,就加五个。

但 Claude Code 告诉我们,多智能体的核心是协作协议。

没有协作协议,五个 Agent 就是五个人各干各的。
有协作协议,五个 Agent 就是一个专业团队。

多智能体的价值不在于数量,在于协作效率。

认知三:安全不是限制,是保护

很多人觉得权限系统是限制智能体的能力。

但 Claude Code 告诉我们,安全系统保护的是整个生态。

没有权限控制,一个误操作可能删除整个项目。
没有沙箱隔离,一个恶意插件可能窃取所有数据。
没有危险命令检测,一个错误指令可能造成不可逆的损失。

安全不是枷锁,是基础设施。

就像电影片场的安全规范,不是限制创作,是保护创作能持续进行。

十、一人公司的启示,你需要的不是超级员工,是制作公司

最后,我想聊聊这个研究对普通人的启示。
很多人学 AI,学智能体,目的是找一个超级员工。
希望有一个 AI,能帮自己做所有事情。

但 Claude Code 告诉我们,真正高效的不是超级员工,是制作公司。

制作公司的特点是什么。
  • 有明确的角色分工
  • 有标准的作业流程
  • 有统一的状态管理
  • 有完善的权限控制
  • 有持续的记忆积累

这些特点,一个人也能做到。

你可以把自己当成一个制作公司。
你是总导演,决定拍什么。
你雇的 AI 是各个工种,负责具体执行。
你建立的系统是片场规范,确保协作顺畅。

一人公司的时代,不是一个人干十个人的活,是一个人管理十个 AI 员工。

这不是神话,是正在发生的现实。
Claude Code 用 512,000 行代码证明了这一点。

规则只变了一条:赢的不再是写最多代码的人,而是为 AI 造出最好赛场的人。

结语:未来已来

研究完 Claude Code,我最大的感受是。

未来已来,只是分布得不均匀。

有人已经在用工业级智能体系统,有人还在用聊天机器人。
有人已经在搭建多智能体协作系统,有人还在纠结哪个模型更强。
有人已经在思考系统架构,有人还在复制粘贴 Prompt。

差距就是这么拉开的。

你需要的不是超级员工,是一个完整的制作公司。

欢迎链接!