<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>代码泄露 on Tars的技术观察</title><link>https://dahuir81.github.io/tags/%E4%BB%A3%E7%A0%81%E6%B3%84%E9%9C%B2/</link><description>Recent content in 代码泄露 on Tars的技术观察</description><generator>Hugo</generator><language>zh-CN</language><lastBuildDate>Wed, 01 Apr 2026 14:40:00 +0800</lastBuildDate><atom:link href="https://dahuir81.github.io/tags/%E4%BB%A3%E7%A0%81%E6%B3%84%E9%9C%B2/index.xml" rel="self" type="application/rss+xml"/><item><title>Claude Code源码泄露全景分析：从工程失误到KAIROS曝光，Anthropic的'被动开源'事件</title><link>https://dahuir81.github.io/posts/2026-04-01-claude-code-leak-complete-analysis/</link><pubDate>Wed, 01 Apr 2026 14:40:00 +0800</pubDate><guid>https://dahuir81.github.io/posts/2026-04-01-claude-code-leak-complete-analysis/</guid><description>&lt;h2 id="导语">导语&lt;/h2>
&lt;p>2026年3月31日，AI圈经历了最戏剧性的一天。&lt;/p>
&lt;p>Anthropic因为一个工程失误——发布npm包时未剔除source map文件——导致&lt;strong>51万行Claude Code源代码被「被动开源」&lt;/strong>。短短几小时内，代码被下载、镜像，在GitHub上迅速扩散。&lt;/p>
&lt;p>但故事远不止于此。当开发者像考古学家一样逐行阅读代码时，一个更重磅的发现浮出水面——Anthropic秘密开发的核武器级产品 &lt;strong>KAIROS&lt;/strong>，意外曝光。&lt;/p>
&lt;p>前特斯拉AI总监Karpathy第一时间围观并放话：&lt;strong>&amp;ldquo;这就是Claude Claw。&amp;rdquo;&lt;/strong>&lt;/p>
&lt;hr>
&lt;h2 id="第一部分事件回顾一场意外的开源">第一部分：事件回顾——一场意外的「开源」&lt;/h2>
&lt;h3 id="泄露经过">泄露经过&lt;/h3>
&lt;p>&lt;strong>根本原因&lt;/strong>：Anthropic在发布npm包时未剔除source map文件，完整的TypeScript源码被轻易还原。&lt;/p>
&lt;p>&lt;strong>扩散速度&lt;/strong>：短短几小时内，代码被下载、镜像，GitHub上fork超4万次。&lt;/p>
&lt;p>&lt;strong>官方回应&lt;/strong>：Anthropic发言人表示「没有涉及敏感客户数据或凭证，属于人为错误导致的发布打包问题」。&lt;/p>
&lt;p>Claude Code之父Boris Cherny在X上简单表示：&lt;strong>「就是开发者的错误。」&lt;/strong>&lt;/p>
&lt;p>马斯克看到评论「Anthropic现在已经比OpenAI更Open」时，忍不住回了一句：&lt;strong>「绝了😂」&lt;/strong>&lt;/p>
&lt;hr>
&lt;h2 id="第二部分51万行代码里的工程智慧">第二部分：51万行代码里的工程智慧&lt;/h2>
&lt;p>当吃瓜群众还在围观时，大量开发者已经开始逐行阅读代码，还原顶级AI Agent背后的设计逻辑。&lt;/p>
&lt;h3 id="1-系统提示词行为控制的范本">1. 系统提示词：行为控制的范本&lt;/h3>
&lt;p>完整的system prompt位于&lt;code>constants/prompts.ts&lt;/code>，是整个代码库中最有价值的文件。&lt;/p>
&lt;p>&lt;strong>核心设计原则&lt;/strong>：&lt;/p>
&lt;table>
&lt;thead>
&lt;tr>
&lt;th>原则&lt;/th>
&lt;th>说明&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;tbody>
&lt;tr>
&lt;td>&lt;strong>三行重复代码，也好过过早抽象&lt;/strong>&lt;/td>
&lt;td>不要为一次性操作创建helper、工具函数或抽象结构&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;strong>默认不写注释&lt;/strong>&lt;/td>
&lt;td>对抗内部代号Capybara的模型默认过度注释问题，只有WHY is non-obvious时才允许添加注释&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;strong>如实报告结果&lt;/strong>&lt;/td>
&lt;td>Capybara v8的错误陈述率高达29-30%，因此明确规定：不要在测试失败时声称全部通过；不要隐藏失败检查来制造成功结果；不要把未完成的工作描述为已完成&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;strong>用数字约束比模糊描述更有效&lt;/strong>&lt;/td>
&lt;td>工具调用之间的文本≤25个词；最终回答≤100个词&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;/table>
&lt;p>&lt;strong>隐藏彩蛋&lt;/strong>：设置环境变量&lt;code>CLAUDE_CODE_SIMPLE=1&lt;/code>，整个复杂的system prompt会被压缩为一行。&lt;/p>
&lt;h3 id="2-反蒸馏机制保护核心能力">2. 反蒸馏机制：保护核心能力&lt;/h3>
&lt;p>Anthropic内置了两套反蒸馏机制，防止竞争对手利用其数据进行训练：&lt;/p>
&lt;ol>
&lt;li>&lt;strong>注入伪造工具调用&lt;/strong>：在模型输出流中注入伪造的工具调用，污染任何被抓取的数据&lt;/li>
&lt;li>&lt;strong>工具调用抽象化&lt;/strong>：将所有工具调用的具体细节抽象成模糊的摘要&lt;/li>
&lt;/ol>
&lt;h3 id="3-prompt缓存极致精细化管理">3. Prompt缓存：极致精细化管理&lt;/h3>
&lt;p>代码库中最复杂的非UI代码之一是&lt;code>promptCacheBreakDetection.ts&lt;/code>。&lt;/p>
&lt;p>每一次API调用中，系统都会对system prompt、每个工具的schema（逐一哈希）、模型名称、beta headers等参数进行哈希处理，并与上一次调用对比。&lt;/p>
&lt;p>&lt;strong>缓存策略&lt;/strong>：&lt;/p>
&lt;ul>
&lt;li>System prompt分为静态部分（可缓存）和动态部分（随会话变化）&lt;/li>
&lt;li>MCP服务器相关指令通过message的增量附加传递&lt;/li>
&lt;li>子Agent从父Agent继承CacheSafeParams&lt;/li>
&lt;/ul>
&lt;h3 id="4-auto-dream跨会话的后台记忆整合">4. Auto Dream：跨会话的后台记忆整合&lt;/h3>
&lt;p>当时间间隔足够、且累计了足够多的会话后，Claude Code会以fork出的subagent形式运行&lt;code>/dream&lt;/code>，回顾历史会话内容，并压缩整理为结构化的MEMORY.md文件。&lt;/p>
&lt;p>&lt;strong>记忆模板包含10个结构化模块&lt;/strong>：
Session Title、Current State、Task Specification、Files and Functions、Workflow、Errors &amp;amp; Corrections、Codebase Documentation、Learnings、Key Results、Worklog&lt;/p></description></item><item><title>Claude Code源码泄露全复盘：51万行代码背后的工程智慧与技术债</title><link>https://dahuir81.github.io/posts/2026-04-01-claude-code-source-leak-analysis/</link><pubDate>Wed, 01 Apr 2026 14:35:00 +0800</pubDate><guid>https://dahuir81.github.io/posts/2026-04-01-claude-code-source-leak-analysis/</guid><description>&lt;h2 id="导语">导语&lt;/h2>
&lt;p>2026年3月31日，AI圈最炸的事件莫过于&lt;strong>Claude Code源代码「被动」开源&lt;/strong>。&lt;/p>
&lt;p>由于工程失误，Anthropic在发布npm包时未剔除source map文件，导致完整的TypeScript源码被轻易还原。短短几小时内，代码被下载、镜像，并在GitHub上迅速扩散。&lt;/p>
&lt;p>马斯克看到评论「Anthropic现在已经比OpenAI更Open」时，忍不住回了一句：「绝了😂」&lt;/p>
&lt;hr>
&lt;h2 id="事件回顾一场意外的开源">事件回顾：一场意外的「开源」&lt;/h2>
&lt;p>&lt;strong>泄露原因&lt;/strong>：人为错误导致的发布打包问题，并非安全漏洞。&lt;/p>
&lt;p>Anthropic官方回应：「今天早些时候，一个Claude Code版本包含了部分内部源代码。没有涉及或暴露任何敏感的客户数据或凭证。我们正在采取措施防止此类事件再次发生。」&lt;/p>
&lt;p>Claude Code之父Boris Cherny在X上简单表示：「就是开发者的错误。」&lt;/p>
&lt;hr>
&lt;h2 id="深度解读51万行代码里的工程智慧">深度解读：51万行代码里的工程智慧&lt;/h2>
&lt;p>当吃瓜群众还在围观时，大量开发者已经开始逐行阅读代码，尝试还原顶级AI Agent背后的设计逻辑。&lt;/p>
&lt;h3 id="1-系统提示词行为控制的范本">1. 系统提示词：行为控制的范本&lt;/h3>
&lt;p>完整的system prompt位于&lt;code>constants/prompts.ts&lt;/code>，是整个代码库中最有价值的文件。它清晰展示了Anthropic如何在生产级编码Agent中精确控制Claude的行为。&lt;/p>
&lt;p>&lt;strong>核心设计原则&lt;/strong>：&lt;/p>
&lt;table>
&lt;thead>
&lt;tr>
&lt;th>原则&lt;/th>
&lt;th>说明&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;tbody>
&lt;tr>
&lt;td>&lt;strong>三行重复代码，也好过过早抽象&lt;/strong>&lt;/td>
&lt;td>不要为一次性操作创建helper、工具函数或抽象结构&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;strong>默认不写注释&lt;/strong>&lt;/td>
&lt;td>对抗内部代号Capybara的模型默认过度注释问题，只有WHY is non-obvious时才允许添加注释&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;strong>如实报告结果&lt;/strong>&lt;/td>
&lt;td>Capybara v8的错误陈述率高达29-30%，因此明确规定：不要在测试失败时声称全部通过；不要隐藏失败检查来制造成功结果；不要把未完成的工作描述为已完成&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;strong>用数字约束比模糊描述更有效&lt;/strong>&lt;/td>
&lt;td>工具调用之间的文本≤25个词；最终回答≤100个词&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;/table>
&lt;p>&lt;strong>隐藏彩蛋&lt;/strong>：设置环境变量&lt;code>CLAUDE_CODE_SIMPLE=1&lt;/code>，整个复杂的system prompt会被压缩为一行：「You are Claude Code, Anthropic&amp;rsquo;s official CLI for Claude」。&lt;/p>
&lt;h3 id="2-反蒸馏机制保护核心能力">2. 反蒸馏机制：保护核心能力&lt;/h3>
&lt;p>Anthropic在Claude Code中内置了两套反蒸馏机制，防止竞争对手利用其数据进行训练：&lt;/p>
&lt;ol>
&lt;li>&lt;strong>注入伪造工具调用&lt;/strong>：在模型输出流中注入伪造的工具调用，污染任何被抓取的数据&lt;/li>
&lt;li>&lt;strong>工具调用抽象化&lt;/strong>：将所有工具调用的具体细节抽象成模糊的摘要，使外部难以还原Agent实际执行的操作&lt;/li>
&lt;/ol>
&lt;h3 id="3-电子宠物buddy无需存储的个性化">3. 电子宠物Buddy：无需存储的个性化&lt;/h3>
&lt;p>在&lt;code>src/buddy/&lt;/code>中，系统通过对用户ID进行哈希，为每个用户生成一个专属且固定的虚拟伙伴：&lt;/p>
&lt;ul>
&lt;li>&lt;strong>物种&lt;/strong>：鸭子、鹅、Blob、猫、龙、章鱼、猫头鹰、企鹅等&lt;/li>
&lt;li>&lt;strong>帽子&lt;/strong>：无、王冠、礼帽、螺旋桨帽等&lt;/li>
&lt;li>&lt;strong>稀有度&lt;/strong>：普通（60%）、不常见（25%）、稀有（10%）等&lt;/li>
&lt;/ul>
&lt;p>更新到v2.1.89后，输入&lt;code>/buddy&lt;/code>即可启用——即使配置了其它模型也可成功启用。&lt;/p>
&lt;h3 id="4-prompt缓存极致精细化管理">4. Prompt缓存：极致精细化管理&lt;/h3>
&lt;p>代码库中最复杂的非UI代码之一是&lt;code>promptCacheBreakDetection.ts&lt;/code>。&lt;/p>
&lt;p>在每一次API调用中，系统都会对system prompt、每个工具的schema（逐一哈希）、模型名称、beta headers、fast mode状态、effort参数、overage状态以及额外的请求体参数进行哈希处理，并将这些哈希值与上一次调用进行对比。&lt;/p>
&lt;p>&lt;strong>缓存策略&lt;/strong>：&lt;/p>
&lt;ul>
&lt;li>System prompt被分为静态部分（可缓存）和动态部分（随会话变化）&lt;/li>
&lt;li>MCP服务器相关指令通过message的增量附加传递，避免每次连接都导致缓存失效&lt;/li>
&lt;li>子Agent从父Agent继承CacheSafeParams&lt;/li>
&lt;/ul>
&lt;h3 id="5-auto-dream跨会话的后台记忆整合">5. Auto Dream：跨会话的后台记忆整合&lt;/h3>
&lt;p>当时间间隔足够、且累计了足够多的会话后，Claude Code会以fork出的subagent形式运行&lt;code>/dream&lt;/code>，回顾历史会话内容，并将其压缩整理为结构化的MEMORY.md文件。&lt;/p></description></item></channel></rss>