Claude Code泄露代码隐藏的87个未发布功能 暴露其野心

资讯 » 新科技 2026-04-01

有人从 npm 包里扒出了 Claude Code 的完整源码。

源码里藏着什么,它打算变成什么?

87个编译时feature flag,大部分处于关闭状态。每一个flag背后是一个还没上线的功能。翻完之后我发现,它们指向同一个方向。

Claude Code 的完整源码泄漏后有人说44个隐藏feature flag。

我翻完源码的实际数字是87个。

用正则跑一遍就能数出来:

// 从源码里 grep 出来的完整列表(87个)

ABLATION_baseLINE, AGENT_MEMORY_SNAPSHOT, AGENT_TRIGGERS,

BUDDY, BUILDING_CLAUDE_APPS, COORDINATOR_MODE,

DAEMON, DIRECT_CONNECT, EXTRACT_MEMORIES,

KAIROS, KAIROS_BRIEF, KAIROS_CHANNELS, KAIROS_DREAM,

KAIROS_GITHUB_WEBHOOKS, KAIROS_PUSH_NOTIFICATION,

PROACTIVE, SSH_REMOTE, TEAMMEM, TELEPORT,

UDS_INBOX, ULTRAPLAN, ULTRATHINK, VOICE_MODE,

VERIFICATION_AGENT, WEB_BROWSER_TOOL, WORKFLOW_scriptS

...

这不是完整列表——完整列表87个,上面只列了最有意思的那些。每个flag都是一个还没对外发布的功能开关,编译时决定是否包含在发行版里。

把这87个flag按功能归类,一条进化路线浮出来了:

工具 → 常驻助手 → 团队协作 → 跨设备 → 多感官

每一步都在去掉Agent身上的一个限制。下面一个一个说。

它不想下班了

现在的Claude Code,你问它答,你不问它就安静等着。

源码里有一个叫KAIROS的功能,彻底改变了这个模式。不是增量升级,是另一种运行方式。

Kairos的内部名字叫assistant mode(助理模式)。激活之后,Claude Code变成一个24小时在线的主动助手。它不再等你输入——系统给它发周期性的心跳信号(叫tick),每收到一个tick,它就评估一下现在有没有什么有用的事可做。有就做,没有就调Sleep工具休眠等下一个tick。

系统提示词里是这么写的:

class=language-typescript>6a9955>ce9178>`` prompts

that keep you alive between turns — just treat them as

you're awake, what now?

If you have nothing useful to do on a tick, you MUST call Sleep.

Never respond with only a status message like still waiting

or nothing to do — that wastes a turn and burns tokens

for no reason.

你正在自主运行。把每次tick当作'你醒了,现在干嘛?'

更有意思的是这段:

class=language-typescript>6a9955>ce9178= style=margin: 0px; padding: 0px; box-sizing: border-box;>color:6a9955>// 源码文件: utils/concurrentSessions.ts

export type SessionKind = 'interactive' | 'bg' | 'daemon' | 'daemon-worker'

四种会话类型。interactive是你现在用的交互模式,daemon是后台守护进程——没有TUI界面,纯粹的headless执行者,像数据库服务或Web服务器那样常驻后台。

Daemon模式拥有cron调度器,支持标准5字段cron表达式,本地时区,支持循环任务(默认30天自动过期)和一次性任务,支持持久化(写到.claude/scheduled_tasks.json,进程重启后自动恢复)。有jitter机制防止全球用户的定时任务在同一秒触发。

还有一层是远程scheduled agents——不在你机器上跑,在Anthropic云端跑完全隔离的Claude Code实例。通过/schedule命令管理,最小间隔1小时,cron表达式用UTC时区。

从你问它答到它自己找活干,再到它按时间表自动干。这不是增量升级,是换了个物种。

它开始做梦了

你不用Claude Code的时候,它在后台做一件事:整理记忆

源码里真的管这个叫dream。

class=language-typescript>6a9955>ce9178= style=margin: 0px; padding: 0px; box-sizing: border-box;>color:6a9955>// 源码文件: services/autoDream/consolidationprompt.ts

6a9955>ce9178= style=margin: 0px; padding: 0px; box-sizing: border-box;>color:6a9955>// ls memory 目录,读 MEMORY.md 索引,了解已有记忆

6a9955>ce9178= style=margin: 0px; padding: 0px; box-sizing: border-box;>color:6a9955>// 从日志、现有记忆、session transcripts 中收集新信号

6a9955>ce9178= style=margin: 0px; padding: 0px; box-sizing: border-box;>color:6a9955>// 写入或更新记忆文件。合并重复,日期转绝对,删除已推翻的事实

6a9955>ce9178= style=margin: 0px; padding: 0px; box-sizing: border-box;>color:6a9955>// 更新 MEMORY.md 索引,保持在 200 行 / 25KB 以内

定位→采集→整合→修剪。跟人类睡觉时大脑把工作记忆转化为长期记忆是一个逻辑。

你在底部状态栏能看到一个dreaming标签,可以点进去看它正在review多少个session、修改了哪些文件。如果你觉得它整理得不对,按x可以随时杀掉,锁会回滚,下次重试。

做梦的Agent被限制了权限——Bash只能执行只读命令(ls/find/grep/cat),Edit和Write只能操作memory目录内的文件。安全意识到位。

这个功能已经在灰度了。在设置里或/memory命令的界面里有一个Auto-dream: on/off开关。

Kairos模式下还有一个升级版:白天往日期日志里追加条目(logs/YYYY/MM/YYYY-MM-DD.md),夜间由定时任务调度/dream技能做深度整合。跟人类的白天记笔记、晚上复盘一模一样。

class=language-typescript>6a9955>ce9178= style=margin: 0px; padding: 0px; box-sizing: border-box;>color:6a9955>// Kairos用自己的定时dream

if (getIsRemoteMode) return false

if (!isAutoMemoryEnabled) return false

return isAutoDreamEnabled

}

Kairos模式下auto-dream被禁用,因为Kairos有自己更精细的cron定时dream。普通模式用auto-dream。两条路线,同一个目标:让Claude Code拥有持续的、会自我整理的记忆。

工具不需要记忆。助手需要。这是从工具到助手最本质的跨越。

它不再是一个人了

一个Claude不够用,那就来一队。

Coordinator模式是一个完整的多Agent编排系统。一个Claude当协调者(CEO),只有三个权限:派活(Agent工具)、传话(SendMessage)、叫停(TaskStop)。其他Claude当worker,执行具体任务。

源码里定义了标准的四阶段工作流:

class=language-typescript>6a9955>ce9178= style=margin: 0px; padding: 0px; box-sizing: border-box;>color:6a9955>// | Phase | Who | Purpose |

6a9955>ce9178= style=margin: 0px; padding: 0px; box-sizing: border-box;>color:6a9955>// | Research | Workers (并行) | 调查代码库,找文件,理解问题 |

6a9955>ce9178= style=margin: 0px; padding: 0px; box-sizing: border-box;>color:6a9955>// | Implementation | Workers | 按方案做修改,提交 |

6a9955>ce9178= style=margin: 0px; padding: 0px; box-sizing: border-box;>color:6a9955>// 源码文件: coordinator/coordinatorMode.ts

Never write based on your findings or based on the research.

These phrases delegate understanding to the worker instead of

doing it yourself.

6a9955>ce9178= style=margin: 0px; padding: 0px; box-sizing: border-box;>color:6a9955>// 正面示例(推荐):

Agent({ prompt: Fix the null pointer in src/auth/validate.ts:42.

The user field on Session is undefined when sessions expire

but the token remains cached. Add a null check before user.id

access — if null, return 401 with 'Session expired'.

Commit and report the hash. })

永远不要写'根据你的发现'。这些短语把理解的责任推给了worker。协调者必须自己消化信息,然后给worker精确到行号的指令。这不是偷懒的委派,是有理解的指挥。

UDS Inbox让同一台机器上的多个Claude Code实例可以互相通信。

class=language-typescript>6a9955>ce9178= style=margin: 0px; padding: 0px; box-sizing: border-box;>color:6a9955>// 源码文件: commands/review/reviewRemote.ts

const commonEnvVars = {

BUGHUNTER_DRY_RUN: '1',

BUGHUNTER_FLEET_SIZE: String(posInt(raw?.fleet_size, 5, 20)),

BUGHUNTER_MAX_DURATION: String(posInt(raw?.max_duration_minutes, 10, 25)),

BUGHUNTER_AGENT_TIMEOUT: String(posInt(raw?.agent_timeout_seconds, 600, 1800)),

BUGHUNTER_TOTAL_WALLCLOCK: String(posInt(raw?.total_wallclock_minutes, 22, 27)),

}

在Anthropic云端启动5到20个Agent(默认5个,最多20个),每个从不同角度审查你的代码。总耗时控制在22分钟以内(预留3分钟做综合报告)。单个Agent最多跑600秒。

有两种模式:PR模式(/ultrareview 123,直接从GitHub clone指定PR)和分支模式(/ultrareview,打包本地工作区上传)。

有配额系统——Pro/Max用户有免费额度,用完走Extra Usage按量计费,账户余额低于$10不让启动。从代码来看,Team/Enterprise用户不限次。

5到20个Agent同时审查一份代码,10到25分钟出结果。这就是AI原生的code review:不是一个人仔细看,是一支舰队暴力扫描。

它不再被困在这台电脑里

Teleport让你把整个工作会话从一台电脑传到另一台。

class=language-typescript>6a9955>ce9178= style=margin: 0px; padding: 0px; box-sizing: border-box;>color:6a9955>// 源码文件: utils/teleport.tsx

`This session is being continued from another machine.

Application state may have changed.

The updated working directory is ${getOriginalCwd}`

这个会话正在从另一台机器继续。应用状态可能已经改变。

公司电脑干到一半,回家claude --teleport继续。所有上下文跟着你走。

Ultraplan是另一种逃离本地的方式。

class=language-typescript>6a9955>ce9178= style=margin: 0px; padding: 0px; box-sizing: border-box;>color:6a9955>// Multi-agent exploration is slow; 30min timeout.

const ULTRAPLAN_TIMEOUT_MS = 30 * 60 * 1000;

function getUltraplanModel: string {

return getFeaturevalue_CACHED_MAY_BE_STALE(

'tengu_ultraplan_model',

ALL_MODEL_CONFIGS.opus46.firstParty 6a9955>ce9178= style=margin: 0px; padding: 0px; box-sizing: border-box;>color:6a9955>// 源码文件: services/voice.ts

6a9955>ce9178= style=margin: 0px; padding: 0px; box-sizing: border-box;>color:6a9955>// and Windows for in-process mic access. Falls back to SoX color:ce9178= style=margin: 0px; padding: 0px; box-sizing: border-box;>color:6a9955>// or arecord (ALSA) on Linux if the native module is unavailable.

三层录音后端,按优先级降级:原生NAPI模块(直接调用系统音频API)→ arecord(Linux ALSA)→ SoX的rec命令。16kHz、16位、单声道PCM。macOS首次使用会弹麦克风权限弹窗。

音频通过WebSocket实时流到Anthropic的STT服务,后端是Deepgram Nova 3(通过tengu_cobalt_frost门控),支持20种语言:

class=language-typescript>6a9955>ce9178= style=margin: 0px; padding: 0px; box-sizing: border-box;>color:6a9955>// 源码文件: buddy/types.ts

const c = String.fromCharCode

exportconst duck = c(0x64,0x75,0x63,0x6b) as'duck'

exportconst axolotl = c(0x61,0x78,0x6f,0x6c,0x6f,0x74,0x6c) as'axolotl'

exportconst capybara = c(0x63,0x61,0x70,0x79,0x62,0x61,0x72,0x61) as'capybara'

exportconst dragon = c(0x64,0x72,0x61,0x67,0x6f,0x6e) as'dragon'

exportconst chonk = c(0x63,0x68,0x6f,0x6e,0x6b) as'chonk'

6a9955>ce9178= style=margin: 0px; padding: 0px; box-sizing: border-box;>color:6a9955>// snail, ghost, cactus, robot, rabbit, mushroom

五档稀有度:

class=language-typescript>6a9955>ce9178= style=margin: 0px; padding: 0px; box-sizing: border-box;>color:6a9955>// 60%

uncommon: 25, 6a9955>ce9178= style=margin: 0px; padding: 0px; box-sizing: border-box;>color:6a9955>// 10%

epic: 4, 6a9955>ce9178= style=margin: 0px; padding: 0px; box-sizing: border-box;>color:6a9955>// 1%

} as const satisfies Record

1%概率出闪光版:

class=language-typescript>6a9955>ce9178= style=margin: 0px; padding: 0px; box-sizing: border-box;>color:6a9955>// 6种眼睛: ✦ × ◉ @ °

hat: rarity === 'common' ? 'none' : pick(rng, HATS), 6a9955>ce9178= style=margin: 0px; padding: 0px; box-sizing: border-box;>color:6a9955>// 1%概率闪光

stats: rollStats(rng, rarity),

}

5项属性:DEBUGGING(调试)、PATIENCE(耐心)、CHAOS(混乱)、WISDOM(智慧)、SNARK(毒舌)。属性值由稀有度决定下限,传说级的最低属性都有40多点。

最反作弊的设计:你的宠物由用户ID哈希决定。

class=language-typescript>6a9955>#6a9955>// 源码文件: buddy/companion.ts

const SALT = 'friend-2026-401'

friend-2026-401,2026年4月1日的朋友——愚人节彩蛋。用户ID加上这个盐值,FNV-1a哈希,喂进Mulberry32伪随机数生成器,依次roll出稀有度、物种、眼睛、帽子、闪光、属性。结果完全确定,没法刷。

而且只有灵魂(名字和性格,首次孵化时由模型生成)存在配置文件里,骨骼(物种、稀有度、属性)每次都从哈希重新计算。你想改配置文件伪造一个传说级?没用,骨骼不存配置。

源码里有ASCII精灵图,每种动物3帧动画,5行高、12字符宽。给你看几个:

/_/ n______n }~(______)~{

( ) ( ) }~( )~{

( ω ) ( oo ) ( .--. )

_ `------´ (_/ _)

cat capybara axolotl

8种帽子里有一顶叫tinyduck(小鸭子),渲染出来就是头顶上蹲着一只 ,>。

Buddy的发布时间窗写得很明确:2026年4月1-7日显示彩虹色的/buddy通知,引导你首次孵化。注释里特别说了为什么选7天窗口而不是一个UTC午夜时刻:

24h rolling wave across timezones. Sustained Twitter buzz instead of a single UTC-midnight spike, gentler on soul-gen load.

24小时滚动覆盖所有时区。Twitter上持续的热度,而不是UTC午夜一个尖峰。对灵魂生成的服务器压力也更温和。连发布策略的代码注释都写好了。

87个开关指向同一个方向

把这87个feature flag按功能归类,画出来的路线图是:

Kairos + Daemon + Cron — 去掉你不问它不动

Auto-Dream + Daily Log — 去掉下次要重新教

Coordinator + UDS Inbox + Ultrareview — 去掉只能一个人干

Teleport + Ultraplan — 去掉绑定在一台机器

Voice + Chrome控制 — 去掉只能打字

Buddy — 去掉……无聊?

每一步都在减少一个约束。

上一篇文章的结论是做减法——给Claude更少的规则,它反而更聪明。这篇的结论是Anthropic也在做减法——去掉Agent身上的每一个限制,直到它不再像一个工具。

它会24小时在线,自己找活干,按时间表执行任务。它会做梦整理记忆,白天记笔记夜间复盘。它能指挥一队worker并行工作,还能跟隔壁窗口的自己通信。它能从你的办公电脑传送到家里的笔记本。它能听你说话,能操作你的浏览器。

它甚至有一只宠物。

源码里的提示词已经不再叫它tool了。它管自己叫colleague——同事。

这些功能大部分还锁在feature flag后面,但代码已经写完了——不是原型,不是demo,是有完整UI组件、安全权限、错误处理、配额系统的成品代码。开关拨过去就能用。

我不知道Anthropic会在什么时间点打开这些开关。但翻完这87个flag之后我有一个很明确的感觉:Claude Code现在的样子,不是它最终的样子。它想变成的东西,源码里已经写好了。

你最期待哪个功能先上线?



免责声明:本网信息来自于互联网,目的在于传递更多信息,并不代表本网赞同其观点。其内容真实性、完整性不作任何保证或承诺。由用户投稿,经过编辑审核收录,不代表头部财经观点和立场。
证券投资市场有风险,投资需谨慎!请勿添加文章的手机号码、公众号等信息,谨防上当受骗!如若本网有任何内容侵犯您的权益,请及时联系我们。