Claude Code 源码意外泄露,揭开了顶级 AI Agent 的“终极底层逻辑” !
因为一个低级的 npm source map 封装错误,Anthropic 秘密开发多时的终端 Agent 工具 —— Claude Code 的源码(v2.1.88)在 GitHub 上短暂“裸奔”。尽管官方在几小时内迅速清理现场并祭出 DMCA 封禁,但超过 50 万行 TypeScript 代码已被全球开发者翻了个底朝天。
这次泄露并没有暴露出什么“黑魔法”提示词,反而揭开了一个让所有 Agent 开发者冷汗直流的真相:在 Agentic Workflow(智能体工作流)中,模型(Model)正变得越来越不重要,而承载模型的“外壳”(Harness)才是真正的降维打击。
如果你还在苦苦钻研如何写出完美的 Prompt,那么 Claude Code 的这份“架构底牌”,可能要重塑你的认知。
什么是 Agent Harness(智能体外壳)?
在大多数人的认知里,Agent = 大模型 + 提示词 + 外部工具。
但 Claude Code 的设计逻辑完全不同。它在模型与现实世界之间,硬生生地插入了一个极其厚重的中间层,Anthropic 称之为 Harness(装束/外壳)。
模型(The Model)只负责“思考”: 它接收指令,生成文本,提出它“想要”执行的操作。外壳(The Harness)负责“生存”: 它是 Agent 的操作系统,决定了模型能看什么、能碰什么,以及在 Token 烧光时如何活下去。
正如一名宇航员在太空生存靠的不是大脑多聪明,而是那套严密的宇航服。Claude Code 的强大,本质上是这套“宇航服”的工程学胜利。
权限隔离:防范 AI “忽悠”守门员
在泄露的架构中,最令社区惊叹的是其**权限校验(Permission Gate)**的严密性。
很多开发者构建 Agent 时,权限是跟提示词绑在一起的:“如果你要读文件,请告诉我”。这种逻辑在面对“越狱”或“幻觉”时弱不禁风。
Claude Code 采用了逻辑上的完全解耦:
-
1. 三层权限阶梯: 将操作分为 Tier 1(只读,自动通过)、Tier 2(修改,需审批)、Tier 3(高危,强制拦截)。 -
2. 独立的“政治审查”: 当模型想要执行一个 Tier 2 的修改操作时,Harness 会调用一个独立的 Sonnet 4.6 背景分类器。
最绝的设计就在这里: 这个分类器只能看到“原始请求”和“工具调用参数”,它完全看不见主模型生成的那些充满诱导性的“解释”。
这意味着,即使主模型被恶意提示词“洗脑”,试图通过解释说“为了修复安全漏洞,我需要临时提升 root 权限”,守门的分类器也只会冷冷地看到:目标模型请求执行 chmod 777。拒绝执行。
结论:不要在 Prompt 里谈安全,要把安全写进 Harness 的代码路径里。
上下文的“炼金术”:解决 Agent 的失忆症
Agent 开发中最大的痛点是什么?是长对话后的“间歇性失忆”。
当一个 Session 运行了 45 分钟,读了上百个文件,跑了十几次测试后,Context Window(上下文窗口)必然会爆炸。Claude Code 的处理方式堪称工程典范:
1. 动态压缩(Compaction)
当 Token 占用达到 98% 的极限时,Harness 不会简单地砍掉对话开头,而是启动“压缩算法”:
-
• 将早期的交互总结成极其精简的摘要。 -
• 强制剔除所有图像、PDF 等高占用数据。 -
• 保留关键元数据,确保模型知道自己“曾经做过什么”,即便细节已被脱水。
2. 持久化锚点:CLAUDE.md
这是一个极其简单却有效的创新。为了防止模型在复杂的工程目录中迷失,Harness 规定了 CLAUDE.md 文件的至高地位。无论上下文如何压缩,Harness 在每一轮对话中都会重新强制读取这个文件。它就像 Agent 的“短期记忆芯片”,永远保存着当前项目的核心规范和进度。
3. 磁盘溢出(Disk Persistence)
当你调用一个工具(如数据库查询)产生了 10MB 的结果时,传统的 Agent 会直接崩掉。Claude Code 会将这些结果直接写进磁盘,在上下文中仅保留一个“索引 ID”。模型如果需要细节,必须再次申请读取该片段。这种“按需加载”的设计,极大延长了 Agent 在大规模任务中的续航力。
从“内置工具”到“工具生态”
Claude Code 另一个公开的秘密是它对 MCP(Model Context Protocol) 的原生支持。
过去我们给 Agent 加功能,需要手写 Function Call 的 Schema。但在 Claude Code 中,工具是自发现的。
-
• 延迟加载(Lazy Loading): 它不会在启动时把所有工具的说明书都塞给模型。它只给模型一个“索引目录”。 -
• 按需索取: 只有当模型决定“我需要查一下天气”时,Harness 才会去拉取天气工具的具体参数定义。
这种设计让 Claude Code 能够同时连接几十个外部服务,而不会因为提示词太长而导致模型“智商下降”。
Agent 的护城河在哪?
Claude Code 的源码泄露,其实是给所有 AI 创业者泼了一盆冷水:如果你还在倒卖 API、调优 Prompt,你根本没有护城河。
真正的护城河由以下四块砖石砌成:
-
1. 确定性的工程约束: 建立一套独立于模型意愿的权限审核系统。 -
2. 精细化的状态机: 能够处理回滚(Revert)、快照(Snapshot)和会话分叉。 -
3. 上下文的吞吐管理: 决定什么时候该让模型“忘掉”,什么时候该让它“记起”。 -
4. 私有数据的索引能力: 比如利用本地 LSP 或是静态分析工具,给模型提供它凭空想不出来的“上帝视角”。
写在最后
Claude Code 的这次泄露,像是一场关于 Agent 架构的“开源布道”。它告诉我们,通往通用人工智能(AGI)的路也许还很长,但通往生产级 Agent 的路已经清晰:
别再迷信模型的神迹,去构建那个能降服模型的“外壳”。 在大模型时代,最好的开发者不再是写代码最快的人,而是那个能为 AI 划定边界、管理记忆、提供工具的“金牌驯兽师”。
夜雨聆风