Skip to main content

概述

Claude Code 的 GrowthBook 系统支持通过环境变量连接自定义 GrowthBook 服务器,实现远程 feature flag 控制。
  • 有配置时:连接你的 GrowthBook 实例,拉取并缓存 feature 值
  • 无配置时:所有 feature 读取直接返回代码中的默认值,零网络请求

环境变量

变量必填说明
CLAUDE_GB_ADAPTER_URLGrowthBook API 地址,如 https://gb.example.com/
CLAUDE_GB_ADAPTER_KEYGrowthBook SDK Client Key,如 sdk-xxxxx
两个变量都设置时启用适配器模式,否则完全跳过 GrowthBook。

使用方式

基本用法

CLAUDE_GB_ADAPTER_URL=https://gb.example.com/ \
CLAUDE_GB_ADAPTER_KEY=sdk-abc123 \
bun run dev

不使用 GrowthBook(默认行为)

bun run dev
# 所有 getFeatureValue_CACHED_MAY_BE_STALE("xxx", defaultValue) 直接返回 defaultValue

GrowthBook 服务端配置

步骤

  1. 部署 GrowthBook 服务端(Docker 自托管或 Cloud 版)
  2. 创建 Environment(如 production
  3. 创建 SDK Connection,获得 SDK Key(即 CLAUDE_GB_ADAPTER_KEY
  4. 按需添加 Feature,key 和类型见下方列表

核心原则

  • 不配置任何 feature 也能正常运行——代码中每个调用都提供了默认值
  • 只创建你想远程控制的 feature,其余走代码默认
  • GrowthBook 上配了某个 feature 后,其值会覆盖代码中的默认值

Feature Key 列表

高频使用

Feature Key类型代码默认值用途
tengu_hive_evidencebooleanfalse任务证据系统
tengu_quartz_lanternbooleanfalse文件写入/编辑保护
tengu_auto_background_agentsbooleanfalse自动后台 Agent
tengu_agent_list_attachbooleanfalseAgent 列表附件
tengu_amber_stoatbooleantrue内置 Agents
tengu_slim_subagent_claudemdbooleantrue子 Agent CLAUDE.md
tengu_attribution_headerbooleantrueAPI 归因 Header
tengu_cobalt_harborbooleanfalseBridge 模式
tengu_ccr_bridgebooleanfalseCCR Bridge
tengu_cicada_nap_msnumber0后台刷新节流(毫秒)
tengu_miraculo_the_bardbooleanfalse启动欢迎信息

Agent / 工具控制

Feature Key类型代码默认值用途
tengu_surreal_dalibooleanfalse远程触发工具
tengu_glacier_2xrbooleanfalse工具搜索增强
tengu_plum_vx3booleanfalseWeb Search 使用 Haiku
tengu_destructive_command_warningbooleanfalse危险命令警告
tengu_birch_trellisbooleantrueBash 权限控制
tengu_harbor_permissionsbooleanfalseHarbor 权限模式

Bridge / 远程连接

Feature Key类型代码默认值用途
tengu_bridge_repl_v2booleanfalseBridge REPL v2
tengu_copper_bridgebooleanfalseCopper Bridge
tengu_ccr_mirrorbooleanfalseCCR Mirror

内存 / 上下文

Feature Key类型代码默认值用途
tengu_coral_fernbooleanfalse内存目录功能
tengu_passport_quailbooleanfalse内存路径配置
tengu_slate_thimblebooleanfalseSlate Thimble
tengu_herring_clockbooleanfalse跳过索引
tengu_session_memorybooleanfalse会话内存
tengu_pebble_leaf_prunebooleanfalse内存修剪

UI / 体验

Feature Key类型代码默认值用途
tengu_terminal_sidebarbooleanfalse终端侧边栏
tengu_terminal_panelbooleanfalse终端面板
tengu_willow_modebooleanfalseWillow 模式
tengu_collage_kaleidoscopebooleanfalseUI 效果
tengu_chrome_auto_enablebooleanfalseChrome 自动启用
tengu_immediate_model_commandbooleanfalse即时模型切换
tengu_remote_backendbooleanfalse远程后端

配置对象(动态配置)

Feature Key类型代码默认值用途
tengu_file_read_limitsobjectnull文件读取限制配置
tengu_cobalt_raccoonobjectnullCobalt 配置
tengu_cobalt_lanternobjectnullLantern 配置
tengu_desktop_upsellobjectnull桌面版引导
tengu_marble_sandcastleobjectnullMarble 配置
tengu_marble_foxobjectnullMarble Fox 配置
tengu_ultraplan_modelstringnullUltraplan 模型名

Gate(布尔门控)

Gate Key代码默认值用途
tengu_chair_sermonfalse功能门控
tengu_scratchfalseScratch 功能
tengu_thinkbackfalseThinkback 功能
tengu_tool_pearfalseTool Pear 功能

读取优先级链

每个 feature 的值按以下顺序解析,第一个命中即返回:
1. CLAUDE_INTERNAL_FC_OVERRIDES 环境变量(JSON 对象覆盖)
   ↓ 未命中
2. growthBookOverrides 配置(~/.claude.json,仅 ant 构建)
   ↓ 未命中
3. 内存缓存(remoteEvalFeatureValues,本次进程从服务器拉取)
   ↓ 未命中
4. 磁盘缓存(~/.claude.json 的 cachedGrowthBookFeatures)
   ↓ 未命中
5. 代码中的 defaultValue 参数

缓存与刷新机制

机制说明
磁盘缓存~/.claude.jsoncachedGrowthBookFeatures 字段,跨进程持久化
周期刷新每 6 小时自动从服务器拉取最新值(setInterval + unref
初始化超时首次连接超时 5 秒,超时后使用磁盘缓存或默认值
Auth 变更登录/登出时自动销毁并重建客户端

实现细节

修改了 2 个文件共 3 处:
  1. src/constants/keys.tsgetGrowthBookClientKey() 优先读取 CLAUDE_GB_ADAPTER_KEY
  2. src/services/analytics/growthbook.tsisGrowthBookEnabled() 适配器模式下直接启用
  3. src/services/analytics/growthbook.ts — base URL 优先使用 CLAUDE_GB_ADAPTER_URL
所有 130+ 个调用方文件无需修改。