你有没有好奇过:Claude Code那些"即将推出"的功能是怎么隐藏的?为什么同样的代码,有的用户能看到新功能,有的看不到?

答案就是Feature Flag——代码里的"秘密开关"。今天咱们揭秘Claude Code的89个Feature Flag。

什么是Feature Flag?代码里的开关

Feature Flag(功能开关)是一种软件开发技术:在代码里埋下开关,通过开关控制功能是否启用。

Claude Code使用Bun的feature()函数:

if (feature('KAIROS')) {
  const { assistant } = require('./assistant')
  assistant.init()
}

构建时,feature('KAIROS')被替换为truefalse。如果是false,整个代码块在tree-shaking阶段被移除——不仅功能不启用,代码都不存在。

这就像:

  • 装修房子时预留的插座(功能预埋)
  • 插上电器才通电(开关启用)
  • 不插电器就当墙是完整的(tree-shaking移除)

89个Flag的五大阵营

Claude Code源码中有89个Feature Flag,按功能域分为五大类:

阵营1:自主Agent与后台运行(18个)

核心Flag:KAIROS(154处引用)

这是引用最多的Flag,代表了Claude Code向"后台自主Agent"演进的方向:

  • 终端焦点感知(用户不看终端时自主执行)
  • 定时唤醒(Tick机制)
  • 简报通信(Brief模式)
  • 多频道通信(Channels)
  • GitHub Webhook订阅

其他重要Flag:

  • PROACTIVE:主动工作模式
  • COORDINATOR_MODE:跨Agent协调
  • BG_SESSIONS:后台会话管理
  • AGENT_TRIGGERS:定时触发器

阵营2:远程控制与分布式执行(14个)

核心Flag:BRIDGE_MODE(28处引用)

实现远程控制Claude Code的能力:

  • 桥接模式:远程控制协议
  • DAEMON:守护进程后台运行
  • SSH_REMOTE:SSH远程连接
  • UDS_INBOX:Unix Domain Socket通信

应用场景:

  • 在服务器上运行Claude Code,本地远程控制
  • 多机器分布式Agent协作

阵营3:上下文管理与性能优化(17个)

核心Flag:TRANSCRIPT_CLASSIFIER(107处引用)

实现auto权限模式——用AI分类器判断是否需要用户确认:

  • 介于plan(全部确认)和auto-accept(全部接受)之间
  • 智能判断操作风险等级

其他重要Flag:

  • CONTEXT_COLLAPSE:精细化上下文折叠
  • CACHED_MICROCOMPACT:缓存微压缩
  • TOKEN_BUDGET:Token预算追踪
  • PROMPT_CACHE_BREAK_DETECTION:缓存断裂检测

阵营4:记忆与知识管理(9个)

核心Flag:TEAMMEM(51处引用)

实现团队记忆同步:

  • 跨会话记忆共享
  • 团队知识库
  • 自动记忆提取
  • 敏感信息保护(Secret Guard)

其他Flag:

  • EXTRACT_MEMORIES:自动记忆提取
  • EXPERIMENTAL_SKILL_SEARCH:实验性技能搜索
  • SKILL_IMPROVEMENT:技能自动改进

阵营5:UI/UX与平台能力(31个)

核心Flag:VOICE_MODE(46处引用)

语音输入模式:

  • 流式语音转文字
  • Push-to-talk快捷键(空格键)

其他重要Flag:

  • WEB_BROWSER_TOOL:Bun WebView浏览器集成
  • TERMINAL_PANEL:终端面板
  • CHICAGO_MCP:Computer Use MCP集成
  • POWERSHELL_AUTO_MODE:PowerShell自动模式

Flag成熟度光谱

89个Flag的成熟度分布:

引用次数Flag数量成熟度阶段
100+2深度集成期
30-996全面织入期
10-2912模块集成期
3-927初步实现期
1-242原型探索期

关键观察

  • 47%的Flag(42个)只有1-2处引用,处于原型阶段
  • 只有KAIROS(154)和TRANSCRIPT_CLASSIFIER(107)达到深度集成
  • 大量实验性功能在探索中

这就像:

  • 100+引用:房子已经盖好,只差开门
  • 30-99引用:主体结构完成,内部装修
  • 10-29引用:框架搭好,还在填墙
  • 1-2引用:刚画完草图

核心未发布功能揭秘

KAIROS:后台自主助手(154处引用)

KAIROS是引用最多的Flag,描绘了一个"Claude Code作为后台Agent"的愿景:

核心机制

  • 焦点感知:检测用户是否在看终端
  • 自主执行:用户不在时自动处理任务
  • Tick唤醒:定时检查待办事项
  • Brief通信:关键点向用户报告进度

使用场景

你:帮我重构这个模块
Claude:好的,我会在后台处理,完成后通知你
(你去做别的事)
(Claude在后台自动执行)
Claude:重构完成,这是变更摘要...

TRANSCRIPT_CLASSIFIER:智能权限模式(107处引用)

当前的权限模式是二元的:

  • plan:每个操作都要确认
  • auto-accept:全部自动接受

auto模式引入AI分类器做智能判断:

  • 安全操作自动放行
  • 危险操作请求确认
  • 边界操作深度分析

这就像:从"要么全管要么全不管"变成"智能安检"。

CONTEXT_COLLAPSE:精细化上下文管理(20处引用)

当前的压缩是"全量压缩"——达到一定阈值后整个对话摘要化。

CONTEXT_COLLAPSE实现"选择性折叠":

  • 只折叠不重要的工具结果
  • 保留关键的推理过程
  • 响应式触发(不是定时检查)

这就像:从"搬家时整屋打包"变成"只收拾不常用的"。

WEB_BROWSER_TOOL:内置浏览器(4处引用)

基于Bun的WebView API,在Claude Code内嵌浏览器:

  • 不是Playwright/Puppeteer外部进程
  • 原生集成,效率更高
  • 可以截图、交互、提取内容

这就是"自带浏览器"的AI助手。

Flag之间的依赖关系

某些Flag之间有依赖:

DAEMON → 需要 BRIDGE_MODE
KAIROS_DREAM → 可独立于 KAIROS
CCR_MIRROR → BRIDGE_MODE的子模式
AGENT_TRIGGERS_REMOTE → AGENT_TRIGGERS的扩展

设计哲学

  • 子功能可独立于父功能启用
  • 硬依赖用&&表达
  • 软关联用||表达

三种构建配置

公开构建(Public Build)

绝大多数Flag为false。只有基础功能默认启用。

内部构建(Ant Build)

USER_TYPE === 'ant'时启用更多功能:

  • 实验性技能
  • 内部工具
  • A/B测试功能

实验构建(Experiment Build)

特定Flag组合用于A/B测试:

  • TREE_SITTER_BASH vs TREE_SITTER_BASH_SHADOW
  • ABLATION_BASELINE:消融实验基线

实战:如何启用实验性功能

通过环境变量

某些Flag暴露为环境变量:

export CLAUDE_CODE_COORDINATOR_MODE=true
export CLAUDE_CODE_EFFORT_LEVEL=high

通过设置文件

settings.json中:

{
  "voiceEnabled": true,
  "alwaysThinkingEnabled": true
}

注意

不是所有Flag都能通过用户配置启用。许多Flag是构建时决定的,普通用户无法修改。

这对构建AI Agent的启示

模式1:构建时Dead Code Elimination

用编译期常量替换和tree-shaking,确保未启用功能的代码不出现在生产构建中。

模式2:引用计数推断成熟度

统计Flag在源码中的引用次数和跨模块分布,评估功能集成深度。

模式3:Flag集群依赖管理

通过&&||表达功能依赖,支持子功能独立启用。

总结

89个Feature Flag揭示了Claude Code的工程深度:

  • 五大阵营:自主Agent、远程控制、上下文管理、记忆知识、UI/UX
  • 两大核心:KAIROS(后台自主)和TRANSCRIPT_CLASSIFIER(智能权限)
  • 成熟度分布:47%处于原型阶段,少数深度集成
  • 演进方向:从"交互式助手"向"后台自主Agent"发展

这就像:

  • Feature Flag是代码里的"预留插座"
  • 有的已经插好电器(深度集成)
  • 有的只画了位置(原型阶段)
  • 有的还在设计图纸上(探索中)

理解Feature Flag,你就能:

  • 预判Claude Code的发展方向
  • 理解实验性功能的实现机制
  • 在自己的项目中应用类似的技术

下篇咱们聊聊跨会话记忆——从遗忘到持久学习。