
随着AI智能体技术快速落地,各类代码助手、自动化办公智能体走进开发者的日常,Anthropic推出的Claude Code更是当下主流的命令行编码智能体。不久前,这款工具因npm发布包中的源码映射文件意外泄露,完整的TypeScript源码得以公开,近1900个文件、超51万行代码,为行业提供了一份极具参考价值的工业级AI智能体架构样本。本文将以Harness工程理念为核心,逐层拆解Claude Code的整体设计、核心模块、运行逻辑与设计思想,理清现代AI智能体背后完整的基础设施体系,同时总结这套架构对各类AI智能体落地的通用启发。
一、理解AI智能体领域的Harness,模型与工程的分工边界
在深入分析Claude Code之前,我们首先要明确Harness这一核心概念。在AI智能体领域,Harness可以理解为围绕大语言模型搭建的全套运行基础设施,如同牵引马匹的缰绳,它不负责思考决策,却决定了智能体能否在真实环境中稳定、安全、高效地完成各类操作。
行业内对Harness有清晰的公式定义,Harness由五大核心部分组成,分别是工具、知识、观测能力、交互行为接口以及权限体系。其中工具包含文件读写、终端命令、网络请求、数据库操作等基础能力,知识涵盖产品文档、技术规范、编码风格指南等专业内容,观测能力负责收集日志、代码差异、运行状态等环境信息,交互行为接口支撑指令调用、界面操作等动作执行,权限体系则通过沙箱、审批流程划定智能体的操作边界。
这套定义也直接点明了AI智能体最核心的分工逻辑,模型负责思考并决定要做什么,Harness负责落地执行并规划具体怎么做。Claude Code作为面向编码场景的专业智能体,正是这套理念的典型落地产品。它依托Claude大模型完成代码编写、问题排查、需求梳理等决策工作,而整套源码构建的Harness系统,承担起所有环境交互、任务执行、安全管控的工作。
本次泄露的源码并非官方主动开源,有研究者发现,Claude Code的npm安装包中附带的.map文件,指向了厂商云存储中未经过混淆的原始源码,外界也因此获取到完整的项目代码。这一事件也暴露出软件供应链中的安全隐患,构建产物泄露会直接导致核心源码外流。但从技术研究的角度来说,这份完整的工业级代码,让开发者能够直观学习成熟AI编码智能体的架构设计,理清商业化产品背后的工程细节。
从整体架构来看,Claude Code的设计逻辑可以凝练为一个简单公式,Claude Code等于单一智能体主循环,叠加工具集、按需技能加载、上下文压缩、子智能体创建、带依赖关系的任务系统、异步通信的多智能体协作、隔离运行空间以及权限管控体系。整个系统没有试图用复杂规则去复刻智能决策,而是专注于搭建一套功能完善、边界清晰的运行环境,让大模型的能力可以充分发挥。
二、整体目录与模块划分,各司其职的Harness子系统
Claude Code的源码采用模块化拆分思路,顶层目录超过30个,每一个目录都对应Harness体系中的一类核心能力,模块边界清晰,职责划分明确,这也是大型代码库能够长期维护、迭代扩展的基础。
src/tools/是智能体的操作核心,相当于智能体的双手,这里实现了近40个独立工具,覆盖文件读写、终端命令执行、代码检索、网页访问等所有原子操作,是智能体和本地环境交互的基础。src/commands/面向终端用户,内置约50个斜杠指令,是用户手动操控智能体的入口,方便开发者主动触发代码提交、会话恢复、成本查看等操作。
src/services/负责对接外部服务,包含各类API客户端、通信协议、身份认证以及代码语言服务协议集成,打通智能体和第三方服务的连接。src/coordinator/是多智能体调度中心,专门管理子智能体的创建、任务分配和协同工作,支撑复杂任务的拆解与并行执行。
src/skills/承担知识管理工作,实现领域知识的按需加载,避免无用内容占用对话上下文。src/bridge/作为跨场景桥接层,实现命令行工具和VS Code、JetBrains等主流IDE的双向通信,让用户可以在熟悉的编辑器中直接使用Claude Code。
src/hooks/聚焦生命周期与权限管控,在工具调用前后做权限校验,同时管理整个会话的启动、运行和终止流程。src/plugins/提供插件扩展能力,支持官方和第三方插件接入,不断丰富智能体的功能。
src/components/和src/screens/共同搭建终端交互界面,基于React加Ink技术栈开发了140多个界面组件,实现命令行内的可视化交互、全屏诊断界面、交互式会话等功能。src/memdir/和src/tasks/分别负责持久化记忆和任务管理,前者跨会话保存关键信息,后者搭建带有依赖关系图的任务系统,保障复杂任务有序推进。
除此之外,src/state/统一管理全局运行状态,src/migrations/和src/schemas/负责配置文件的版本迁移与格式校验,依托Zod框架保证配置项合法有效。众多模块相互配合,构成了一套完整且分层的Harness基础设施。
在所有源码文件中,有几个核心文件支撑起整个系统的运转。QueryEngine.ts代码量达到46000余行,是对接大模型的查询引擎,处理流式响应、工具调用循环、请求重试以及令牌计数等核心逻辑。Tool.ts约29000行代码,定义所有工具的基础类型、输入校验规则和权限标准,是整个工具体系的底层规范。commands.ts负责所有用户指令的注册与执行,main.tsx是程序入口,完成命令行解析、界面渲染和启动阶段的预加载工作。context.ts动态收集并组装对话上下文,cost-tracker.ts实时统计令牌消耗与使用成本,每一个核心文件都在Harness体系中扮演着不可替代的角色。
三、核心智能体循环,整个系统的运转骨架
所有AI智能体都遵循一套通用运行逻辑,接收信息,做出决策,执行动作,获取反馈,再次决策,这套往复运行的流程就是智能体循环,也是Claude Code Harness架构的底层骨架。QueryEngine.ts作为循环的中枢,承载了循环运转的全部核心逻辑。
首先是流式响应处理。Claude Code运行在命令行环境中,QueryEngine.ts对接大模型API的流式返回数据,不需要等待完整响应结束,就能将模型的思考内容实时渲染在终端界面上。结合基于React和Ink开发的终端组件,用户可以直观看到智能体的思考过程,大幅提升交互体验,这也是面向终端场景必备的设计。
其次是核心的工具调用循环,这是智能体完成任务的关键。当大模型的返回结果标记为工具调用时,引擎会自动解析调用指令,执行对应的工具,再将工具运行的结果封装为反馈信息,追加到对话记录中,随后再次发起模型请求。这个循环会持续运转,直到模型判定任务结束,停止工具调用。
这套逻辑可以用伪代码清晰展示:
python
def agent_loop(messages):
while True:
response = client.messages.create(
model=MODEL, system=SYSTEM,
messages=messages, tools=TOOLS,
)
messages.append({"role": "assistant", "content": response.content})
if response.stop_reason != "tool_use":
return
results = []
for block in response.content:
if block.type == "tool_use":
output = TOOL_HANDLERS[block.name](**block.input)
results.append({
"type": "tool_result",
"tool_use_id": block.id,
"content": output,
})
messages.append({"role": "user", "content": results})
简单来说,模型负责判断要不要调用工具、调用哪一个工具,而Harness中的查询引擎负责执行工具、传递结果、维持循环,二者分工明确。
同时,引擎还深度集成了大模型的深度思考模式,允许模型在执行工具之前进行复杂逻辑推演,相当于为智能体增强了认知能力,面对代码重构、故障排查这类复杂任务时,能够做出更周全的规划。针对网络波动、接口限流等线上常见问题,引擎内置了完善的重试机制,保障请求稳定执行。搭配令牌统计模块,全程监控每一次请求的资源消耗,实现成本可控。
从Harness工程的角度来看,这套循环设计有着至关重要的指导思想。智能体循环本身是固定不变的,工具、知识、多智能体协作、上下文管理等所有附加能力,都是在这个基础循环之上叠加扩展,不会改动核心运转逻辑。这种设计保证了系统架构的稳定性,后续新增功能、迭代优化都不会影响底层骨架,大幅降低了维护和升级的难度。
四、工具与命令系统,智能体感知和行动的载体
工具系统是Harness最核心的组成部分,也是智能体和外部环境交互的唯一渠道。Claude Code的所有工具都基于Tool.ts定义的底层规范开发,借助Zod v4框架做输入格式校验,每一个工具都有独立的运行逻辑、权限要求和状态反馈。整套工具可以按照功能划分为感知层、行动层、协调层、知识层等多个层级,覆盖编码场景下的所有操作需求。
感知层工具主要负责收集环境信息,相当于智能体的眼睛。FileReadTool可以读取各类文件,包括代码文件、图片、文档和笔记文件,GlobTool通过文件匹配规则检索目录下的文件,GrepTool依托高性能检索工具ripgrep完成代码内容搜索,WebFetchTool和WebSearchTool实现网页内容获取与全网搜索,LSPTool对接代码语言服务协议,精准获取代码语法、引用关系等专业信息。这类工具只做信息读取,不会修改任何内容,风险等级较低。
行动层工具负责执行修改、创建等操作,是智能体的执行终端。BashTool运行终端命令,是自动化操作的核心,FileWriteTool和FileEditTool分别实现文件新建覆写和局部内容修改,NotebookEditTool专门用于交互式代码笔记的编辑。这类工具会改动本地文件和环境,也是权限管控的重点对象。
协调层工具服务于多任务、多智能体场景,AgentTool用于创建子智能体,拆分复杂任务,TaskCreateTool和TaskUpdateTool管理任务队列与任务状态,SendMessageTool实现智能体之间的异步通信,TeamCreateTool支持组建智能体团队完成协同工作。除此之外,还有知识层、调度层、隔离层等工具,分别负责知识加载、定时任务、运行环境隔离等工作。
整套工具遵循三大设计原则,第一是原子性,每一个工具只负责一项功能,读取文件和编辑文件拆分为独立工具,避免功能混杂,让模型可以精准选择工具,减少误操作。第二是可组合性,不同工具能够自由搭配使用,比如先通过检索工具定位代码位置,再用读取工具查看内容,最后使用编辑工具完成修改,前一个工具的输出可以直接作为后一个工具的输入。第三是自我描述性,所有工具都通过标准化格式定义功能、入参和用途,模型可以自主理解工具使用场景,同时搭配延迟工具发现机制,运行时动态加载工具信息,不用在初始提示词中罗列全部工具,有效节省上下文空间。
除了智能体自动调用的工具,Claude Code还提供了大量面向用户的斜杠命令,存放在src/commands/目录中,作为人工干预的入口。比如/commit可以快速完成代码提交,/review启动代码审查,/compact手动压缩对话上下文,/config修改程序配置,/doctor检测本地运行环境是否正常,/memory管理持久化记忆,/resume恢复上一次的会话。这些指令覆盖了代码管理、会话维护、配置修改、成本查看等场景,让用户可以灵活介入智能体的工作流程,人机配合更加顺畅。
五、知识与上下文管理,打造智能体的动态记忆体系
对于大模型应用而言,上下文窗口大小是硬性限制,如何高效管理知识、维护对话记忆,是Harness工程中的一大难点。Claude Code没有采用传统的静态知识预加载模式,而是设计了按需加载的知识体系和多层级的上下文压缩策略,最大化利用有限的上下文空间。
在知识管理方面,项目的src/skills/目录实现了按需知识加载机制。所有领域知识都以Markdown文件格式存储,文件头部通过配置信息标注触发条件和简要介绍。当模型处理特定任务,判断需要相关专业知识时,会主动调用技能工具,加载对应的知识文件,并将内容注入到当前对话上下文中。这种模式彻底摒弃了把所有文档、规范一次性写入系统提示词的做法,只有用到的知识才会被加载,从源头减少令牌浪费。
在此基础上,系统还采用了渐进式披露的进阶策略,将每一份技能知识划分为三个层级。第一层是元数据,也就是简短的摘要和触发说明,智能体最先读取这部分内容,判断是否需要深入学习。第二层是主体内容,确认需要后再加载完整的核心知识。第三层是参考资料,只有开展深度分析、查阅拓展内容时才会加载。分层加载的模式,让知识使用更加精细化,适配不同复杂度的任务。
同时项目搭载了插件架构,src/plugins/目录支持第三方插件开发,插件可以自定义工具、指令和技能,不断拓展智能体的知识边界和操作能力,让整个系统具备持续扩展的潜力。
对话上下文作为智能体的短期记忆,Claude Code搭建了三层压缩与隔离体系,解决长会话下上下文溢出的问题。第一层是子智能体隔离,主智能体拆分出的子智能体拥有独立的对话记录和运行环境,子任务的完整执行过程不会同步到主会话中,仅将最终结果摘要返回,避免子任务的冗余信息污染主上下文。
第二层是自动上下文压缩,当对话历史接近上下文窗口上限时,系统会自动梳理早期对话内容,剔除重复语句、无效交互等冗余信息,保留代码变更、决策思路、用户反馈等核心内容,并将长对话压缩为精简摘要,持续释放上下文空间。
第三层是任务持久化,依托src/tasks/和src/memdir/目录,将任务状态、关键记录持久化存储到本地文件。即便当前会话关闭,下次启动程序后,通过恢复指令就能读取历史任务,延续之前的工作,把临时的对话记忆拓展为跨会话的长期记忆。
而context.ts文件负责动态组装系统提示词,会整合用户自定义规则、项目配置、本地环境信息、代码目录结构等内容,根据当前会话状态实时调整,保证每一次模型请求的提示词都贴合当下场景,进一步提升上下文的利用效率。
六、多智能体协作与环境隔离,支撑复杂并行任务
单一智能体难以应对大型项目重构、批量代码审查、前后端协同开发这类复杂任务,因此多智能体协作能力成为工业级Harness的标配。Claude Code在src/coordinator/目录中搭建了完整的团队协作架构,结合文件系统隔离能力,实现任务并行、分工协作。
子智能体是任务拆分的基础,主智能体通过AgentTool创建子智能体,每一个子智能体都是独立的运行实例。它们拥有专属的对话记录、独立的权限范围,同时依托Git Worktree技术拥有隔离的文件运行目录。子智能体专注完成分配的子任务,执行完毕后只把结果摘要反馈给主智能体,主智能体无需关注子任务的详细执行流程,只需要整合结果推进整体工作。
当任务复杂度进一步提升,就可以组建智能体团队开展协作。系统提供异步邮箱通信机制,以文件作为消息载体,实现团队内不同智能体的跨实例通信。团队中的智能体可以自动扫描任务列表,根据自身能力主动认领匹配的任务,同时配套状态机管理,处理任务协商、审批等流程,让团队协作有序运转。
结合实际编码场景,这套多智能体架构支持六种主流协作模式。流水线模式适用于有先后依赖的任务,比如需求设计、前端开发、后端开发、测试验收依次推进,上一个环节的输出直接作为下一个环节的输入。分发聚合模式适合并行独立任务,比如一次性对多个代码文件开展审查,所有任务同步执行,完成后统一汇总结果。
专家池模式会根据任务类型,动态选择对应领域的专业智能体处理工作。生产者审核模式采用分工校验的逻辑,一部分智能体负责生成代码或文档,另一部分负责审查校验,保障输出质量。中心化调度模式由总控智能体统一分配任务、把控进度,层级委派模式则针对超大型任务,自上而下层层拆分,形成树状的任务执行结构。
为了保障并行任务的安全性,系统利用Git Worktree实现文件环境隔离。主项目分支作为共享根目录,每一个并行任务、每一个子智能体都会生成独立的工作目录,不同实例在各自的沙箱目录中修改文件,彼此互不干扰。所有任务完成后,再通过Git合并操作,将修改内容汇总到主分支。这种物理层面的隔离,彻底规避了并行编辑带来的文件冲突、代码误改等问题,让多任务并行执行变得安全可靠。
七、权限管控与跨端桥接,筑牢安全边界拓展使用场景
AI智能体拥有读写文件、执行终端命令、访问网络等强大能力,一旦权限失控,很容易造成文件损坏、数据泄露等风险,因此精细化的权限管理是Harness体系中不可或缺的安全防线。Claude Code的权限逻辑集中在src/hooks/toolPermission/模块,设计了多级权限模式和细粒度的校验规则。
系统一共设置四种权限运行模式,适配不同使用场景。默认模式下,每一次工具调用都会弹出审批提示,由用户手动确认后再执行,安全性最高,适合日常开发使用。规划模式区分运行阶段,规划浏览阶段默认只读,不会修改文件,正式执行操作时才需要用户审批,适合大型代码重构这类高风险任务。自动模式会放行低风险操作,读取类工具直接执行,写入、命令执行等高风险操作仍需审批,适合开发者信任的本地环境,兼顾效率与安全。绕过权限模式会关闭所有校验,仅用于内部沙箱和测试环境。
在权限校验的细节上,系统实现了多维度管控。可以针对不同工具单独设置权限,区分读取、写入、执行等操作类型,也能通过路径规则限制智能体仅在指定目录内工作。针对终端命令工具,还支持配置命令白名单,禁止运行高危系统指令。再搭配前文提到的Worktree环境隔离,形成逻辑校验加物理隔离的双层防护,全方位约束智能体的操作边界。
作为一款从命令行起步的工具,Claude Code并没有局限于终端场景,通过src/bridge/桥接系统,打通了和主流IDE的连接通道,实现使用场景的延伸。这套桥接系统是一套双向通信架构,bridgeMain.ts管理IDE和命令行进程的通信生命周期,bridgeMessaging.ts定义统一的消息格式、请求规范和错误处理逻辑,bridgePermissionCallbacks.ts将权限审批弹窗同步到IDE界面中,搭配JWT身份认证机制,保障跨进程通信的安全性。
借助桥接能力,用户可以在VS Code、JetBrains等常用编辑器中直接调用Claude Code的全部功能,结合IDE的代码高亮、文件导航、版本控制等原生能力,让编码辅助体验更加流畅。这也体现出Harness架构的扩展性,一套底层基础设施,可以适配终端、编辑器等多个前端载体。
八、工程优化与技术栈选型,工业级产品的细节打磨
一款面向大规模用户的工业级产品,不仅需要架构合理,还要在启动速度、运行性能、资源占用等方面做到极致。Claude Code结合技术栈特性,在启动优化、模块加载、代码编译等方面做了大量工程优化。
在启动阶段,程序入口文件main.tsx采用并行预取策略。在正式加载业务模块之前,后台同步执行配置读取、凭据拉取、API预连接等耗时操作。当用户看到命令行提示符时,所有前置准备工作已经完成,大幅缩短等待时间,优化开机体验。
针对体积庞大的功能模块,系统全面采用懒加载方案,OpenTelemetry监控、gRPC服务、语音功能等非核心模块,都通过动态导入的方式,在需要使用时才加载到内存中,减少程序初始体积和内存占用。同时依托Bun运行时的编译特性,使用功能标志实现死代码消除,未开启的功能模块,在代码编译阶段就被彻底剔除,不会打包到最终程序中。
项目设置了多项功能开关,分别控制主动运行模式、时间调度、IDE桥接、守护进程、语音输入、监控工具等可选功能,用户可以根据自身需求开启或关闭,让程序适配不同使用场景。
整套项目的技术栈选型,也完全服务于Harness的定位和性能需求。运行时选用Bun,相比传统运行环境拥有更快的执行速度和原生编译优化能力。主体语言采用严格模式的TypeScript,依靠静态类型检查,保障数十万行代码的可维护性,规避线上隐患。
终端界面基于React加Ink开发,复用成熟的组件化思想搭建命令行界面。命令解析使用Commander.js,格式校验依托Zod v4,代码检索集成ripgrep,同时对接MCP、LSP等行业标准协议,保证和外部工具的兼容性。在可观测性方面,搭配OpenTelemetry和gRPC实现全链路监控,身份认证整合OAuth2.0、密钥链等多种方案,构建完整的运维和安全体系。成熟且贴合场景的技术选型,是整套Harness系统稳定运行的底层保障。
九、Claude Code带来的Harness工程思考与行业启示
通读Claude Code的整套架构设计,最核心的理念可以总结为一句话,模型是智能体本身,工程代码是承载智能的Harness。这款产品的设计思路跳出了传统AI应用的误区,没有试图编写复杂的业务规则、决策逻辑去模仿智能,而是选择充分信任大模型的推理能力,把所有工程重心都放在搭建完善、安全、易用的运行环境上。
过去很多AI智能体项目,试图依靠层层嵌套的规则、繁琐的提示词拼接来制造智能效果,这种方式不仅开发成本高,而且灵活性极差,面对复杂多变的场景很容易失效。而Claude Code证明,真正优秀的AI智能体产品,核心不是编写智能逻辑,而是为大模型打造一个可以自由行动的"数字世界"。模型负责思考决策,Harness负责提供工具、知识、记忆、协作能力和安全边界,各司其职才能发挥出最大价值。
基于这款产品的实践,我们也可以总结出Harness工程师的五大核心工作方向。第一是设计并实现工具,打造原子化、可组合、易扩展的操作能力,决定智能体的行动范围和执行精度。第二是梳理和管理知识,通过按需加载、分层展示等方式,让专业知识高效触达模型。第三是优化上下文与记忆体系,通过隔离、压缩、持久化等手段,解决长会话运行难题。第四是搭建权限与沙箱体系,在开放能力的同时守住安全底线。第五是收集全流程运行数据,每一次感知、推理、执行的完整链路数据,都可以作为大模型迭代优化的训练素材,实现产品闭环。
这套Harness架构并非仅适用于编码智能体,而是具备全行业通用价值。无论是物业管理智能体、农业监测智能体、酒店运营智能体、科研辅助智能体,还是教育辅导智能体,底层运行逻辑完全一致。统一的智能体循环作为骨架,只需要替换对应的工具集、领域知识和权限规则,就能落地到不同行业场景中。
编码智能体需要文件操作、代码检索、终端命令工具,农业智能体需要传感器数据读取、设备控制工具,服务行业智能体需要对接订单系统、沟通接口。万变不离其宗,模型负责通用推理,Harness负责场景化落地。
从泄露源码到完整架构拆解,Claude Code为整个AI行业提供了一份标准的工业级Harness范本。它用数十万行代码证明,AI智能体的能力上限,往往不是由模型本身决定,而是由背后的基础设施架构决定。当开发者不再执着于用代码复刻智能,转而专注于为大模型构建完善的运行环境,各类AI智能体才能真正走向实用化、规模化落地。这也是Claude Code这套架构,留给所有AI从业者最珍贵的启发。