Claude Code agent 源码泄露事件分析

张开发
2026/4/7 14:01:29 15 分钟阅读

分享文章

Claude Code agent 源码泄露事件分析
Claude Code agent 源码泄露事件分析这篇文章是我作为开发者对 Claude Code 源码泄露事件的一次完整复盘。目标不是“吃瓜”而是回答三个工程问题这件事到底有没有发生、边界在哪从代码结构看Claude Code 到底是个什么系统对我们做 Agent 产品的人有哪些可落地的工程启发一、先说结论我先给结论再展开证据和代码分析泄露事件本身高度可信有对应版本的源码 https://gitee.com/wisdomfriend/claude-code-source-2.1.88。问题根因是发布/打包链路失误不是“黑客攻破内网”这种叙事。Claude Code 的核心价值在 Agent Runtime 工程能力不是单点模型能力。二、事件证据链公开媒体报道BleepingComputerThe RegisterVentureBeatDMCA 公开记录GitHub DMCA 原文这不是“所有 Anthropic 内部系统源码都公开了”更准确是Claude Code 某次发布产物含 source map造成了大量源码可还原并扩散。三、我的复现方式我的代码复现仓库https://gitee.com/wisdomfriend/claude-code-source-2.1.88说明请仅用于学习研究遵守许可证与平台规则。四、先跑起来从“能执行”到“可调试”我这边的最小验证链路很直接cdclaude\claude-code-sourcenode.\cli.js--version node.\cli.js--version返回2.1.88 (Claude Code)这说明入口程序是可执行的。后续Unable to connect to Anthropic services说明国内不能运行, 等我在服务器上运行起来后, 再更新博文吧五、代码体量它不是“一个脚本”基于本地统计我得到这组数据src下*.ts: 1332src下*.tsx: 552合计1884源码文件cli.js.map中sources: 4756sourcesContent: 4756一级目录文件量Toputils: 564components: 389commands: 207tools: 184services: 130这已经是典型“产品级终端应用 Agent 平台”规模而不是简易 CLI。六、技术栈为什么说它是 Agent Runtime从代码结构与依赖看核心栈大致是Node.js TypeScript ESMReact Ink终端 UI 组件化Anthropic SDKMCP SDK多传输协议接入bun:bundle feature gate构建期能力裁剪src/entrypoints/cli.tsx和src/tools.ts里大量feature(...)让我印象很深它不是在“运行时做 if-else”而是在打包时就裁剪能力矩阵。这类做法对多版本发布、内部能力隔离、性能优化都很有帮助。七、启动链路两段式设计很工程化阶段 A轻入口分流src/entrypoints/cli.tsx这个文件做了非常多“快路径”--version几乎零负载daemon/bg/remote-control路由MCP 特殊入口核心目标是减少不必要模块加载提升冷启动体验。阶段 B系统初始化src/entrypoints/init.tsinit()里能看到完整的工程初始化顺序配置加载与安全环境变量应用mTLS、代理、证书配置API preconnect 预热policy/remote settings 加载清理器注册与退出流程治理这块非常像“应用平台内核启动”。八、运行中枢QueryEngine 不是普通函数src/QueryEngine.ts里的QueryEngine更像会话状态机管理消息历史、工具调用、MCP 客户端、预算与中断维持会话级状态而非单次请求负责多轮执行中的一致性和恢复这也是为什么我会把 Claude Code 看作 “Agent Runtime”而不是“模型 shell”。九、工具系统能力“可组合”才是关键src/tools.ts提供了一个很清晰的事实基础工具固定存在文件、搜索、命令、网络进阶工具由 feature/环境/权限动态裁剪运行时会做工具可见性与权限前置过滤这点很重要让模型“看到”一个工具并不等于可执行中间还有策略层和权限层。十、MCP 体系从“能连”到“能生产”src/services/mcp/client.ts体现的是生产级设计而不是 demo 级接入多传输SSE / stdio / streamable HTTP / WebSocket认证错误与会话过期处理重连、状态恢复大输出截断、二进制落盘、结果持久化这意味着 Claude Code 的外部能力接入不是“调用个 API”那么简单。十一、权限与安全这部分值得抄作业src/utils/permissions/permissions.ts的设计很像一个策略引擎规则来源分层settings / cliArg / command / session决策行为分层allow / deny / ask决策原因可解释rule/hook/classifier/modeBash 子命令与重定向细粒度处理我个人认为这部分是 Agent 产品落地企业场景的关键能力之一。

更多文章