乐于分享
好东西不私藏

如何看待 Anthropic的头牌AI助手Claude Code源码泄露事件?

如何看待 Anthropic的头牌AI助手Claude Code源码泄露事件?

这是真Open AI,OpenAI只是ClosedAI,你Anthropic才是OpenAI。

马斯克都给了大大的赞😂

咋就泄露了

Claude Code虽然在github上有一个repo,但其实开源的是边缘的plugin,核心的cli.js是不开源的,而且是混淆后的代码,所谓混淆,就是『丑化』,像下面这样,把有意义的标识符比如code、doc、script换成毫无意义的a、b、c之类。

混淆之后的代码,肯定比源代码小很多,更重要的是,让你拿到JavaScript也看不懂,这样就达到了『闭源』的目的。

Claude Code的发布一直是这么做的,只发混淆过的cls.js,不给产生cls.js的源代码。

当然,混淆让外面的人看不懂,也给自己人带来了麻烦,比如外面报一个bug,说什么情况下出错undefined a ,自己人也看不懂啊,不知道这个混淆后的a 是啥变量名啊!

所以,在混淆的时候,还要产生一个source map文件,简单说,source map包含了所有原代码标识符和混淆后a、b、c的对应关系,甚至包含行号关系,这样,只要source map文件在手,配合cls.js,自己人就可以利用工具搞清楚undefined a 的 a 原名是什么,在哪一行了。

也就是说,有了source map文件,几乎就掌握了所有源代码信息!

也就是说,source map不能泄露。

可是,也就邪了,发布npm应该是标准流程标注脚本,一直把source map文件保护得好,就v2.1.88这版的npm,居然包含了source map,然后就呵呵了。

Anthropic发现之后,紧急召回了v2.1.88版,我甚至只是重启Claude Code的工夫,眼睁睁看着我的Claude Code别从v2.1.88强行自动『降级』到v2.1.87。

但是,你懂的,发出去的npm,泼出去的水。

总有手快的程序员保存现场,于是,就呵呵呵呵呵了。

源代码咋样

github上已经有多个还原Claude Code源代码的repo,考虑到未来Anthropic可能通过法律手段要求github强行下架这些repo,大家可以先clone一份本地,慢慢研究 https://github.com/sanbuphy/claude-code-source-code

从现在初步代码分析看,Claude Code的确有可圈可点之处。

一般来说,AI Coding Agent的模式差不多就是这样的套路:

用户输入 → 调用LLM的API → 获得LLM结果 → 显示给用户

从Claude Code五十多万行代码来看,实际上时候这样:

用户输入
  → 动态组装 7 层系统提示词
  → 注入Git状态、项目约定、历史记忆
  → 42个内嵌工具,附带使用手册
  → LLM 决定使用哪个工具
  → 9层安全审查
  → 权限竞争解析
  → 200ms防误触延迟
  → 执行工具
  → 结果流式返回
  → 上下文是否接近极限?触发三层压缩(微压缩 → 自动压缩 → 完全压缩)
  → 需要并行?触发生成SubAgents 
  → 循环直到任务完成

这些模块单独拿出来,也觉得不过如此,但是,能够执行得这么好,不容易,Claude Code的确有料。

即便现在源代码泄露,估计世界上也没有哪个团队能够复刻Claude Code团队通过AI Coding提高200%工作效率的成就。

写在最后

我觉得对Anthropic来说,只是丢了一个大脸,应该只是泄露了前端代码,核心技术没有泄露。

没准,还帮Anthropic赚一票。

因为,全世界肯定不少程序员会利用Claude Code来分析Claude Code源代码,这得花费多少Tokens啊🤣