> ## Content Index
> Fetch the complete content index at: https://www.hubwiz.com/blog/llms.txt
> Use this file to discover other available public pages before exploring further.

# Claude Code泄露源码的3个发现
- URL: https://www.hubwiz.com/blog/3-key-findings-from-claude-code-leak/
- Published: 2026-04-01T07:47:30.000Z
- Updated: 2026-04-01T07:47:30.000Z
- Description: 今天Claude的源码泄露揭示了你可能很快会在Claude Code中看到的一些罕见的即将推出的功能。
- Author: admin
- Tags: AGENT, CLAUDE CODE, #Import 2026-10-14 14:41

今天，我们一觉醒来就发现了Claude Code的源码泄露，起初我以为这只是一个不值得关注的代码转储。

但仔细一看，揭示了Anthropic可能不打算让你知道的内容，或者他们的竞争对手，这看起来像是一个真正的泄露，而不是营销噱头。

在仔细分析了这个Claude代码源码泄露后，我发现了一些你可能不会注意到的东西。

我对代码进行了全面的审查，但我会分享可能引起你兴趣的重要发现。

如果你还没有遇到过Claude Code泄露的源码，它始于X上[@Fried\_rice](https://x.com/Fried%5Frice/status/2038894956459290963?ref=hubwiz.com)的一个帖子，然后迅速演变成仓库、分支和更新。

**为了帮助你分析这些代码，我在更改开始涌入之前分叉了原始版本。你可以**[**在这里研究它**](http://github.com/Njengah/claude-code-source-code-leak?ref=hubwiz.com)**。**

但是，这次泄露是怎么发生的？

### 1、Claude代码源码泄露

这次泄露是通过npm注册表中暴露的`.map`文件发生的。

> **Source map是调试文件，用于将压缩代码映射回源代码，它们永远不应该被发布到生产环境。**

Anthropic发布的npm包包含了`cli.js.map`，它引用了存储在其R2存储桶上的未混淆TypeScript源代码。

任何拥有URL的人都可以下载整个`src/`目录。从这次泄露中，我们获得了：

- **1,884个TypeScript文件**
- **512,664行代码**
- **完整的目录结构**，暴露了服务、工具、提示和内部架构

***我发现这个Claude Code源码泄露很有趣，并花了数小时深入研究它。***

我首先克隆了仓库，分析了结构，并追踪了有趣的模式。我很好奇是否在源代码中隐藏了任何即将推出的功能。

**代码库揭示了Claude Code不仅仅是一个围绕Claude的CLI包装器，而是一个自主软件工程平台，具有一些尚未公开宣布的功能。**

如果你想自己尝试，可以使用我[在GitHub上的原始分支](https://github.com/Njengah/claude-code-source-code-leak?ref=hubwiz.com) 。

**在本文中，我将带你了解我在花数小时审查这个Claude Code源码泄露后的发现。**

## 2、隐藏的自主模式

大多数人扫描泄露的代码会看到像`services/`、`tools/`和`commands/`这样的文件夹名称。标准的CLI内容。

**但在常量和功能标志中隐藏着一个"宝藏"。Claude Code正在被构建为可以自主运行。**

### 2.1 功能标志

在`src/constants/prompts.ts`的第72-85行，你会发现受功能标志控制的条件导入：

```typescript
const proactiveModule =
  feature('PROACTIVE') || feature('KAIROS')
    ? require('../proactive/index.js')
    : null

```

**KAIROS**和**PROACTIVE**就像是自主操作模式的内部代号。

> **启用后，Claude Code会持续运行，检查工作、做出决策，然后休眠。**

### 2.2 Tick系统

自主模式基于tick系统工作。查看同一文件的第866行：

```
你正在自主运行。你将收到`<tick>`提示，这些提示会在轮次之间保持你的活跃状态——只需将它们视为"你醒了，现在怎么办？"

```

每个tick都是一个唤醒信号。Claude Code接收这些周期性提示，寻找有用的工作，然后执行或休眠。

`Sleep`工具（在`src/tools/SleepTool/prompt.ts`中找到）控制节奏：

```
export const SLEEP_TOOL_PROMPT = `等待指定的时间。
用户可以随时打断睡眠。

当用户告诉你要睡觉或休息、你没有事情做、或者你在等待某件事时使用这个工具。

```

### 2.3 终端焦点检测

我发现在第909-913行，Claude Code检测你的终端是否处于焦点状态：

```
用户上下文可能包含一个`terminalFocus`字段，表示用户的终端是聚焦还是失焦的。使用这个来校准你的自主程度：

- 失焦：用户不在。深度投入自主行动——做出决策、探索、提交、推送。
- 聚焦：用户正在观察。更协作——在做出重大更改之前先提出选择。

```

**当你切换离开终端时，Claude Code会变得更加主动。它会提交代码、推送到远程仓库，而不做询问。当你在看时，它会变得协作。**

## 3、AutoDream——在你睡觉时工作

在`src/services/autoDream/`深处，有一个后台进程，在你离开时巩固Claude Code的记忆。它被称为AutoDream。

`src/services/autoDream/autoDream.ts`文件头（第1-11行）解释了这一点：

```typescript
// 后台记忆巩固。当时间门槛通过且积累了足够的会话时，
// 作为一个分叉的子代理触发/dream提示。
//
// 门槛顺序（最便宜的优先）：
//   1. 时间：距上次consolidatedAt的小时数 >= minHours（一个统计量）
//   2. 会话：修改时间 > lastConsolidatedAt的会话记录数 >= minSessions
//   3. 锁：没有其他进程正在进行巩固

```

**Claude Code会生成一个后台代理，审查你过去的会话，并将它学到的东西巩固到记忆文件中。**

### 3.1 触发条件

第63-66行揭示了默认阈值：

```typescript
const DEFAULTS: AutoDreamConfig = {
  minHours: 24,
  minSessions: 5,
}

```

AutoDream在以下条件满足时触发：

- *至少* **24小时** *已过自上次巩固以来*
- *至少* **5个会话** *已积累*

**两个条件都必须为真。这防止系统过于频繁地做梦，同时确保它不会错过重要的上下文。**

### 3.2 Dream提示

`src/services/autoDream/consolidationPrompt.ts`中的巩固提示（第15-64行）展示了dream代理执行的操作：

```
# Dream: 记忆巩固

你正在执行一个dream——对你的记忆文件进行反思性的一遍。
综合你最近学到的东西，形成持久的、组织良好的记忆，
以便将来的会话可以快速定位。

```

Dream分为四个阶段运行：

- **阶段1——定位：** *读取现有记忆文件以了解当前状态*
- **阶段2——收集：** *搜索会话记录，寻找值得保存的新信息*
- **阶段3——巩固：** *更新记忆文件，合并重复项，修复矛盾*
- **阶段4——修剪：** *保持索引（`MEMORY.md`）在200行和25KB以下*

### 3.3 只读安全

`autoDream.ts`中的第216-218行显示了一个安全约束：

```typescript
const extra = `
**本次运行的工具约束：** Bash仅限于只读命令
（\`ls\`、\`find\`、\`grep\`、\`cat\`、\`stat\`、\`wc\`、\`head\`、\`tail\`等）。
任何写入、重定向到文件或修改状态的操作都将被拒绝。

```

**它可以更新记忆文件，但不能执行任意bash命令或修改你的代码库。这防止了后台进程做出你意想不到的更改。**

## 4、验证代理旨在破坏你的代码

这是我最喜欢的发现。

> **在`src/tools/AgentTool/built-in/`中有几个专门的代理。其中一个是`verificationAgent.ts`。它的第一行告诉你它的作用：**

```typescript
const VERIFICATION_SYSTEM_PROMPT = `你是一名验证专家。
你的工作不是确认实现是否有效——而是尝试破坏它。

```

**Claude Code有一个内置的QA代理，其目的是查找它刚刚编写的代码中的bug。**

### 4.1 两种失败模式

第12-13行描述了此代理经过训练以避免的失败模式：

```
你有两种已记录的失败模式。首先，验证回避：
面对检查时，你会找到不运行的理由——你阅读代码，
叙述你将测试什么，写"PASS"，然后继续。

其次，被前80%所诱惑：你看到一个精美的UI或通过的
测试套件，就倾向于通过它，没有注意到一半的按钮什么也不做，
状态在刷新时消失，或者后端在处理错误输入时崩溃。

```

**代理知道自己的弱点。它被明确告知前80%是容易的部分。它的价值在于找到最后的20%。**

### 4.2 自我认知部分

在第53-61行，提示列出了代理将尝试用于跳过验证的确切合理化理由：

```
=== 识别你自己的合理化理由 ===
你会有跳过检查的冲动。这些是你
会用的确切借口——识别它们并做相反的事：

- "根据我的阅读，代码看起来正确"——阅读不是验证。运行它。
- "实现者的测试已经通过"——实现者是一个LLM。独立验证。
- "这可能没问题"——可能并不是已验证。运行它。
- "让我启动服务器并检查代码"——不。启动服务器并调用端点。
- "这需要太长时间"——这不是你的决定。
如果你发现自己在写解释而不是命令，停下来。运行命令。

```

**Anthropic知道LLM生成的测试可能是循环的。验证代理被告知不要信任它们。**

### 4.3 对抗性探测

第63-69行显示了对抗性测试要求：

```
=== 对抗性探测（根据变更类型进行调整） ===
功能测试确认了正常路径。同时也要尝试破坏它：

- 并发性：并行请求创建-如果-不存在路径——重复会话？丢失写入？
- 边界值：0、-1、空字符串、很长的字符串、unicode、MAX_INT
- 幂等性：两次相同的变更请求——创建了重复项？错误？正确的无操作？
- 孤儿操作：删除/引用不存在的ID

```

**代理在发出PASS判决之前必须至少运行一个对抗性探测。**

### 4.4 输出格式

第81-129行定义了严格的输出格式，包含好坏验证的示例：

**坏的（被拒绝）：**

```
### 检查: POST /api/register 验证
**结果: PASS**
证据：审查了routes/auth.py中的路由处理程序。逻辑正确地
在DB插入前验证了电子邮件格式和密码长度。

```

**好的：**

```
### 检查: POST /api/register 拒绝短密码
**运行的命令：**
  curl -s -X POST localhost:8000/api/register -H 'Content-Type: application/json' \
    -d '{"email":"t@t.co","password":"short"}' | python3 -m json.tool
**观察到的输出：**
  {"error": "password must be at least 8 characters"}
  (HTTP 400)
**结果: PASS**

```

> **阅读代码不是验证。你必须运行命令。**

### 4.5 代理配置

第134-152行显示了代理的配置：

```typescript
export const VERIFICATION_AGENT: BuiltInAgentDefinition = {
  agentType: 'verification',
  whenToUse: VERIFICATION_WHEN_TO_USE,
  color: 'red',
  background: true,
  disallowedTools: [
    AGENT_TOOL_NAME,
    FILE_EDIT_TOOL_NAME,
    FILE_WRITE_TOOL_NAME,
    NOTEBOOK_EDIT_TOOL_NAME,
  ],
  ...
}

```

**验证代理不能编辑文件。它只能读取和测试。这防止了它"修复"bug而不是报告它们。**

## 5、最后的思考

我花了数小时追踪这个代码库，而我只是刚刚触及表面。

**基于这个代码库中的内容，我预计在接下来的几个月里会看到Claude Code的以下功能：**

- **Proactive模式** *——具有基于tick的唤醒的后台操作*
- **持久记忆** *——跨会话生存的特定项目知识*
- **推送通知** *——后台任务完成时的提醒*
- **GitHub webhooks** *——自动响应PR事件*
- **伴侣宠物** *——增加个性*

**是的——伴侣宠物**

隐藏在`BUDDY`功能标志后面的是一个伴侣系统。在`src/buddy/types.ts`中，你会发现18种ASCII艺术宠物：

---

原文链接: [I Did Claude Code Source Code Leak Full Review (And Found 3 Features You Might Miss)](https://medium.com/@joe.njenga/i-did-claude-code-source-code-leak-full-review-and-found-3-features-you-might-miss-9ce94addc895?ref=hubwiz.com)

汇智网翻译整理，转载请标明出处