源码位置:
src/commands.ts、src/main.tsx、src/services/analytics/growthbook.ts
外部发布版是阉割版。Anthropic 通过三层门控精确控制每个功能的可见性和可用性。
┌─────────────────────────────────────────────────┐
│ 第一层:编译时开关 feature() │
│ 代码包含 or 移除(Dead Code Elimination) │
├─────────────────────────────────────────────────┤
│ 第二层:运行时 USER_TYPE │
│ 'ant'(内部)vs 'external'(外部) │
├─────────────────────────────────────────────────┤
│ 第三层:GrowthBook 远程 A/B 测试 │
│ tengu_ 前缀的远程开关,动态控制 │
└─────────────────────────────────────────────────┘
通过 feature() 函数(来自 bun:bundle)实现。构建时决定代码包含或排除,未包含的代码被 DCE(Dead Code Elimination)完全移除。
| 开关 | 说明 | 状态 |
|---|---|---|
BUDDY |
宠物伴侣系统 | 外部版未启用 |
KAIROS |
持久助手模式 | 外部版未启用 |
KAIROS_BRIEF |
简报模式 | 外部版未启用 |
KAIROS_CHANNELS |
通道通知 | 外部版未启用 |
KAIROS_GITHUB_WEBHOOKS |
GitHub Webhook | 外部版未启用 |
ULTRAPLAN |
云端深度规划 | 外部版未启用 |
COORDINATOR_MODE |
多 Agent 编排 | 外部版未启用 |
BRIDGE_MODE |
远程控制桥接 | 外部版未启用 |
VOICE_MODE |
语音交互 | 外部版未启用 |
PROACTIVE |
主动自主模式 | 外部版未启用 |
FORK_SUBAGENT |
子代理分叉 | 外部版未启用 |
DAEMON |
守护进程模式 | 外部版未启用 |
| 开关 | 说明 |
|---|---|
UDS_INBOX |
Unix Domain Socket 收件箱 |
WORKFLOW_SCRIPTS |
工作流脚本 |
TORCH |
Torch 功能 |
MONITOR_TOOL |
监控工具 |
HISTORY_SNIP |
历史截断 |
BG_SESSIONS |
后台会话管理 |
HARD_FAIL |
硬失败模式 |
CCR_REMOTE_SETUP |
Web 远程设置 |
CHICAGO_MCP |
MCP 扩展(Computer Use) |
| 开关 | 说明 |
|---|---|
CACHED_MICROCOMPACT |
缓存微压缩 |
CONTEXT_COLLAPSE |
上下文折叠 |
REACTIVE_COMPACT |
响应式压缩 |
QUICK_SEARCH |
快速搜索 |
TOKEN_BUDGET |
Token 预算跟踪 |
STREAMLINED_OUTPUT |
精简输出 |
CONNECTOR_TEXT |
连接器文本块 |
TERMINAL_PANEL |
终端面板 |
MESSAGE_ACTIONS |
消息操作 |
| 开关 | 说明 |
|---|---|
ANTI_DISTILLATION_CC |
反蒸馏保护 |
BASH_CLASSIFIER |
Bash 命令分类器 |
NATIVE_CLIENT_ATTESTATION |
原生客户端证明 |
TRANSCRIPT_CLASSIFIER |
转录分类器(自动模式) |
UNATTENDED_RETRY |
无人值守重试 |
| 开关 | 说明 |
|---|---|
EXTRACT_MEMORIES |
自动提取记忆 |
MEMORY_SHAPE_TELEMETRY |
记忆形状遥测 |
COWORKER_TYPE_TELEMETRY |
协作者类型遥测 |
SLOW_OPERATION_LOGGING |
慢操作日志 |
PROMPT_CACHE_BREAK_DETECTION |
缓存中断检测 |
COMMIT_ATTRIBUTION |
提交归属标注 |
| 开关 | 说明 |
|---|---|
LODESTONE |
Lodestone 功能 |
MCP_SKILLS |
MCP 技能系统 |
EXPERIMENTAL_SKILL_SEARCH |
实验性技能搜索 |
TEMPLATES |
模板/工作分类器 |
TEAMMEM |
团队记忆同步 |
FILE_PERSISTENCE |
文件持久化 |
DOWNLOAD_USER_SETTINGS |
下载用户设置 |
UPLOAD_USER_SETTINGS |
上传用户设置 |
BREAK_CACHE_COMMAND |
缓存清除注入 |
AGENT_TRIGGERS |
Cron 触发器系统 |
IS_LIBC_GLIBC |
glibc 检测 |
IS_LIBC_MUSL |
musl 检测 |
process.env.USER_TYPE 在构建时被硬编码。外部版固定为 "external"。
| 值 | 身份 | 检查点数量 |
|---|---|---|
'ant' |
Anthropic 内部员工 | 200+ 处 |
'external' |
外部用户 | — |
源码中到处可见 "external" === 'ant' 的比较,这永远为 false。
| 类别 | 能力 |
|---|---|
| GrowthBook | 调试日志、覆盖、20 分钟刷新(vs 外部 6 小时) |
| 调试 | API 错误详情、推测性执行日志、prompt dump |
| 命令 | 所有 INTERNAL_ONLY_COMMANDS(24+ 个) |
| CLI 参数 | --delegate-permissions、--afk、--tasks、--agent-teams |
| 环境变量 | CLAUDE_INTERNAL_FC_OVERRIDES(JSON 覆盖 GrowthBook) |
| 配置 | /config Gates 标签页(UI 覆盖 GrowthBook) |
| 错误处理 | 5xx 额外重试逻辑 |
| 隐私 | DataDog 中模型名不匿名化 |
src/services/analytics/growthbook.ts 配置了 GrowthBook SDK:
@growthbook/growthbook SDKremoteEval: true)id、deviceID、platform、accountUUID、userType、subscriptionType、rateLimitTier、appVersion 等tengu_ 前缀)| 开关 | 控制内容 |
|---|---|
tengu_kairos |
KAIROS 助手模式总开关 |
tengu_onyx_plover |
AutoDream 阈值(整合间隔/会话数) |
tengu_cobalt_frost |
语音识别(Nova 3)开关 |
tengu_ultraplan_model |
Ultraplan 使用的模型 |
tengu_ant_model_override |
内部用户模型覆盖 |
tengu_session_memory |
会话记忆功能 |
tengu_sm_config |
会话记忆配置 |
tengu_max_version_config |
自动更新 Kill Switch |
tengu_frond_boric |
数据接收器 Kill Switch |
tengu_herring_clock |
团队记忆路径 |
tengu_log_datadog_events |
Datadog 事件日志 |
tengu_1p_event_batch_config |
一方事件批处理配置 |
tengu_event_sampling_config |
事件采样配置 |
tengu_ccr_bridge |
Bridge 远程控制总开关 |
tengu_bridge_repl_v2 |
Bridge v2 传输协议 |
tengu_ccr_mirror |
CCR Mirror 只写模式 |
tengu_scratch |
Coordinator Scratchpad |
tengu_kairos_cron_config |
Cron Jitter 配置 |
tengu_kairos_cron_durable |
持久 Cron 任务开关 |
内部用户可以通过以下方式覆盖远程开关:
CLAUDE_INTERNAL_FC_OVERRIDES(JSON 格式)/config → Gates 标签页 → growthBookOverridesCLAUDE_CODE_GB_BASE_URL 覆盖 GrowthBook API 地址Claude Code 的功能分层非常清晰:
外部用户能看到的
═══════════════════════════════
基础 CLI 功能、公开命令
被 feature() 裁剪掉的
═══════════════════════════════
BUDDY、KAIROS、ULTRAPLAN、
BRIDGE、COORDINATOR、VOICE...
被 USER_TYPE 锁住的
═══════════════════════════════
24+ 内部命令、调试工具、
GrowthBook 覆盖能力
被 GrowthBook 远程控制的
═══════════════════════════════
A/B 测试、灰度发布、
Kill Switch、动态配置
外部版本是经过三层过滤后的精简版。Anthropic 内部用 USER_TYPE=ant 构建解锁全部功能。