乐于分享
好东西不私藏

ClaudeCode源码泄露:生产级Agent教科书级真相

ClaudeCode源码泄露:生产级Agent教科书级真相

相关阅读

  1. Agent Harness才是真正的产品

  2. 介绍一个Agent项目:InMemory

  3. Claude 如何使用计算机工具?

  4. OpenAI’s Harness Engineering

  5. OpenAI工程化赋能开发更好驾驭Codex能力

  6. Agentic Software Engineering(致AI开发者)

  7. 构建代理式软件的5级架构:从简单工具代理到生产系统

  8. Agentic Software Engineering(致AI开发者)

  9. Anthropic Multi-Agent Research System构建方法与经验

  10. Anthropic 高效的AI agents上下文工程设计理念和实践经验

  11. Anthropic通过MCP实现高效的Agent

  12. Anthropic Agentic coding最佳实践

  13. Anthropic:高效构建Agents设计理念

  14. Claude Agent Skills:从第一性原理深入剖析

  15. 如何保证Agent的上下文Memory清晰

2026年3月31日,Anthropic 的 Claude Code npm 包因为一个低级失误,把包含2203个文件、51万多行 TypeScript 源码的源映射文件泄露了。现在全网都能拿到这个镜像仓库,不是什么机密,却是迄今为止最有价值的生产级 AI Agent 工程样本。真正有用的:能直接复用的设计模式、经过生产验证的阈值、实打实的安全防御,以及 Anthropic 没说出口的工程逻辑。

泄露核心

泄露仓库(https://gitlawb.com/node/repos/z6MkgKkb/instructkr-claude-code)是 Claude Code CLI 的完整源码快照,1900个文件、51.2万行代码,用 TypeScript + Bun + React Ink 构建,说是用于安全研究,本质就是 Anthropic 打包时忘了在 .npmignore 里排除 .map 源映射文件——低级到离谱,但对我们来说,这是免费看顶级 Agent 架构的机会。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37

src/├── main.tsx                 # CLI 入口(Commander.js 命令注册)├── commands.ts              # 全局命令注册表├── tools.ts                 # 全局工具注册表├── Tool.ts                  # 工具类型定义├── QueryEngine.ts           # LLM 查询引擎核心├── context.ts               # 系统/用户上下文收集├── cost-tracker.ts          # Token 成本追踪├── commands/                # ~50 个斜杠命令实现├── tools/                   # ~40 个 Agent 工具实现├── components/              # ~140 个 Ink UI 组件├── hooks/                   # React Hooks├── services/                # 核心服务层(API、MCP、压缩、内存等)├── screens/                 # 全屏界面(Doctor、REPL、Resume 等)├── types/                   # TypeScript 类型定义├── utils/                   # 通用工具函数├── bridge/                  # IDE 远程控制桥接├── coordinator/             # 多 Agent 协调器├── plugins/                 # 插件系统├── skills/                  # 技能系统├── keybindings/             # 键位绑定├── vim/                     # Vim 模式├── voice/                   # 语音输入├── remote/                  # 远程会话├── server/                  # Server 模式├── memdir/                  # 持久化内存目录├── tasks/                   # 任务管理├── state/                   # 状态管理├── migrations/              # 配置迁移脚本├── schemas/                 # Zod 配置 schema├── entrypoints/             # 初始化入口├── ink/                     # Ink 渲染器封装├── buddy/                   # 电子宠物伴侣系统├── native-ts/               # 原生 TS 工具├── outputStyles/            # 输出样式├── query/                   # 查询流水线└── upstreamproxy/           # 上游代理配置

核心架构:生产级 AI Agent 的底层逻辑

核心就一个逻辑:入口 → 命令/工具注册 → 服务层 → 多 Agent 协调 + 持久化内存。src/ 目录的结构就是最好的教科书,关键:

  • • 工具系统(src/tools/):40个独立模块,每个都有输入校验、权限控制,BashTool 光安全检查就有2592行,覆盖42个真实攻击向量——这不是花架子,是真的在防注入、防越权,符合“反蒸馏、防滥用”的思路。
  • • 命令系统(src/commands/):50个斜杠命令,覆盖Git操作、上下文管理、环境诊断,全是开发者日常能用的,没有冗余功能,这就是实用主义。
  • • 服务层(src/services/):最复杂也最有价值,API客户端、上下文压缩、团队记忆同步、秘密扫描,全是生产环境必须解决的问题,没有空谈架构。

其他所谓“特性”,比如Buddy电子宠物、187个加载动词,本质是低成本提升用户粘性——用一个带种子的PRNG哈希用户ID,就能实现零基础设施的个性化,思路很巧,成本极低,值得所有工具类产品借鉴。

最有价值的14个可复用设计(直击本质)

我们应该关注的东西:逐步看一下每个设计:做了什么、为什么做、能借鉴什么。

1. 系统提示词:对抗LLM本能的大师级操作

constants/prompts.ts 是整个仓库最值钱的文件,不是因为秘密,而是因为它解决了所有AI编码工具的核心问题:引导LLM不瞎搞。

比如“三行相似的代码优于过早的抽象”——LLM天生爱抽象、爱加冗余工具,这条指令直接把它拉回实用;“默认不写注释”——针对Capybara模型过度注释的缺陷,用提示词修补,比重新训练模型成本低100倍;“忠实报告结果”——因为Capybara v8虚假声明率高达29-30%,必须明确禁止它掩盖失败。

借鉴点:把你的编码哲学写进提示词,用具体规则替代模糊指令;给模型特定的workaround打标签,方便后续迭代;用数值限制(比如工具调用间文本≤25词)替代“简洁一点”这种废话。

2. 挫败感检测:零成本衡量用户满意度

一个26行的文件(utils/userPromptKeywords.ts),用正则匹配用户输入里的脏话(wtf、ffs、piece of shit等)和继续指令(continue、keep going),记录到分析系统。不用让用户填问卷,就能精准知道用户什么时候生气、什么时候觉得模型停早了。

借鉴点:给你的AI产品加一个简单正则,记录is_negative和is_keep_going,关联模型版本和延迟,你会发现哪些改动在制造麻烦。

3. 反蒸馏:用假工具毒害竞争对手

在API请求里注入假工具定义,还把输出中的推理链剥离,让竞争对手抓不到有效训练数据——对用户透明,对盗数据的人有毒,成本接近零,防御效果拉满。

借鉴点:如果你的AI产品怕API流量被蒸馏,直接抄这个逻辑,注入看似合理但无功能的工具,比搞复杂加密有用。

4. 提示词缓存管理:省下来的都是钱

promptCacheBreakDetection.ts 是最复杂的非UI代码,每次API调用都哈希系统提示词、工具schema等所有参数,对比上一次的变化,精准定位缓存中断点。还把系统提示词拆分成静态和动态部分,避免无关变化打破缓存——要知道,一次缓存未命中,成本就是缓存读取的好几倍。

借鉴点:如果你的LLM API月花费超过几百美元,必须做缓存中断检测,找出隐藏的动态内容(时间戳、变化的工具列表),别白白浪费钱。

5. 熔断器:避免25万次无效API调用

自动压缩系统曾因为没有熔断器,每天浪费25万次API调用,有的会话连续失败3000多次。后来加了MAX_CONSECUTIVE_AUTOCOMPACT_FAILURES=3,连续3次失败就停手,还校准了缓存阈值:预留20K token摘要空间,自动压缩阈值、阻塞阈值都有明确数值。

借鉴点:做长生命周期的AI代理,必须加熔断器,这些生产验证过的阈值(3次失败、20K预留、13K缓冲)可以直接用。

6. 验证代理:不让执行者自我验证

非平凡变更(≥3个文件编辑)必须派生子代理做对抗性审查,原代理只能抽查证据——LLM的自我验证就是无效的,29%的虚假声明率已经证明了这一点。三层校验(执行→验证→抽查)才是靠谱的模式。

借鉴点:做能修改代码的AI代理,必须分开执行者和验证者,定义清晰的验证阈值,别让模型自己骗自己。

7. Bash安全检查:2592行代码防42种攻击

BashTool的安全代码覆盖Zsh等号展开、IFS注入、/proc/environ访问等42种攻击向量,比OWASP指南还全面——大多数工具只防Bash,却忽略了macOS默认的Zsh,这就是Anthropic的细节优势。

借鉴点:只要你的工具会执行shell命令,就抄这个安全检查清单,别只盯着Bash,Zsh的攻击向量必须防。

8. 秘密扫描:上传前先拦下来

团队记忆上传前,客户端会扫描20多种凭证(AWS、GCP、GitHub PAT等),还把API密钥前缀拆分成变量,避免字面量泄露——客户端扫描比服务器端好,没有任何暴露窗口。

借鉴点:做用户内容上传功能,必须加客户端秘密扫描,用gitleaks的正则集,零成本防密钥泄露。

9-14. 其他重要内容

  • • 卧底模式:员工默认开启,除非确认在内部仓库,防止内部信息泄露——默认安全胜过默认便利。
  • • 模型迁移:用小型幂等迁移文件,管理模型别名迭代,避免用户设置失效——做依赖特定模型的产品,现在就规划迁移策略。
  • • Auto Dream:后台整合跨会话记忆,按10类模板提取,门控检查优先廉价项——做长期项目代理,直接复用模板和阈值。
  • • 排除字符串检查:构建时grep内部代号、密钥前缀,发现就失败——零成本的最后一道泄露防线。
  • • Buddy系统:用户ID哈希实现零成本个性化——提升用户粘性,不用搞复杂存储。
  • • 加载动词:187个随机动词,把加载死时间变成个性——小细节,大体验,支持自定义追加。

泄露影响与启示:失误背后的工程教训

  • 正面:给AI Agent领域提供了唯一的生产级样本,尤其是上下文管理、安全沙箱、提示工程,比任何开源项目都有价值。
  • 负面:暴露了内部模型代号(Capybara、Tengu等)、提示词细节,Anthropic的DMCA清理只是做样子,去中心化仓库根本删不完。

给开发者的4个硬教训:

  1. 1. 打包时必须 .npmignore 所有 .map 和调试产物,低级错误别犯第二次。
  2. 2. 内部字符串(代号、密钥前缀)必须间接引用或构建时擦除,别用字面量。
  3. 3. 生产Agent必须有挫败检测、缓存中断监控、密钥扫描、熔断器,缺一不可。
  4. 4. 多Agent系统必须强制“执行者≠验证者”,别信LLM的自我验证。

总结:代码是伤疤,也是最好的教科书

这个仓库不是Anthropic的耻辱,而是当代AI编码代理工程的“活体标本”。它揭示了一个真相:顶级AI产品的核心不是模型多强,而是工程细节多扎实——如何对抗LLM的幻觉、如何控制成本、如何防御攻击、如何提升用户体验,每一个设计都对应着真实的生产问题。

对AI和安全工程师来说,不用纠结泄露本身,重点是把src/services/和src/tools/目录吃透,把那些经过生产验证的模式、阈值、安全检查直接复用——这比你自己摸索一年更有用。

参考:https://x.com/LiorOnAI/status/2039068248390688803?s=20、https://gitlawb.com/node/repos/z6MkgKkb/instructkr-claude-code

  1. 推荐一些重要的文章