187 lines
7.8 KiB
Markdown
187 lines
7.8 KiB
Markdown
---
|
||
tags: [GrowthBook, feature-flag, 门控, 启用计划, 配置]
|
||
create time: 2026-06-09 22:30
|
||
---
|
||
|
||
# GrowthBook 功能启用计划
|
||
|
||
## 概述
|
||
|
||
Claude Code 使用三层门控系统控制功能启用:编译时 feature flag、GrowthBook 远程开关和运行时环境变量。本文档汇总所有被 GrowthBook 门控的功能,按优先级排列实施计划。
|
||
|
||
> [!info]
|
||
> 编制日期: 2026-04-06
|
||
> 基于: feature-flags-codex-review.md + 4 个并行研究代理的深度分析
|
||
> 前提: 我们是付费订阅用户,拥有有效的 Anthropic API key
|
||
|
||
## 正文
|
||
|
||
### 背景
|
||
|
||
Claude Code 使用三层门控系统:
|
||
1. **编译时 feature flag** — `feature('FLAG_NAME')` from `bun:bundle`
|
||
2. **GrowthBook 远程开关** — `tengu_*` 前缀,通过 SDK 连接 Anthropic 服务端
|
||
3. **运行时环境变量** — `USER_TYPE`、`CLAUDE_CODE_*` 等
|
||
|
||
在我们的反编译版本中,GrowthBook 不启动(analytics 链空实现),导致所有 `tengu_*` 检查默认返回 `false`。
|
||
|
||
> [!warning]
|
||
> **核心发现:所有被 GrowthBook 门控的功能代码都是真实现,没有 stub。**
|
||
|
||
### 启用方式说明
|
||
|
||
#### 方式 1:硬编码绕过(推荐先用)
|
||
|
||
在 `src/services/analytics/growthbook.ts` 的 `getFeatureValueInternal()` 函数中添加默认值映射。
|
||
|
||
#### 方式 2:自建 GrowthBook 服务器
|
||
|
||
```bash
|
||
docker run -p 3100:3100 growthbook/growthbook
|
||
# 设置环境变量
|
||
CLAUDE_GB_ADAPTER_URL=http://localhost:3100
|
||
CLAUDE_GB_ADAPTER_KEY=sdk-xxx
|
||
```
|
||
|
||
#### 方式 3:恢复原生 1P 连接
|
||
|
||
让 `is1PEventLoggingEnabled()` 返回 `true`,连接 Anthropic 的 GrowthBook 服务端。
|
||
|
||
> [!warning]
|
||
> 会发送使用统计(不含代码/对话内容)。
|
||
|
||
### 优先级 P0:纯本地功能(零外部依赖,立即可用)
|
||
|
||
这些功能不需要 API 调用,开启 gate 即可工作。
|
||
|
||
| 功能 | Gate | 代码量 | 效果 | 风险 |
|
||
|------|------|--------|------|------|
|
||
| P0-1 自定义快捷键 | `tengu_keybinding_customization_release` | 473 行 | 用户可自定义所有快捷键 | 无 |
|
||
| P0-2 流式工具执行 | `tengu_streaming_tool_execution2` | 577 行 | 显著提升交互速度 | 低 |
|
||
| P0-3 定时任务系统 | `tengu_kairos_cron` | 1025 行 | 可设置定时执行的 Claude 任务 | 低 |
|
||
| P0-4 Agent 团队 / Swarm | `tengu_amber_flint` | 45 行 | 允许创建和管理 agent 团队 | 无 |
|
||
| P0-5 Token 高效 JSON 工具格式 | `tengu_amber_json_tools` | 几行 | 省钱(减少约 4.5% 输出 token) | 低 |
|
||
| P0-6 Ultrathink 扩展思考 | `tengu_turtle_carbon` | — | 已默认启用,确保不被远程关闭 | 无 |
|
||
| P0-7 即时模型切换 | `tengu_immediate_model_command` | — | 无需等当前任务完成就能切换 | 低 |
|
||
|
||
### 优先级 P1:需要 Claude API 的功能(有 API key 即可用)
|
||
|
||
这些功能需要调用 Claude API(使用 forked subagent 或 queryModel),有订阅即可。
|
||
|
||
| 功能 | Gate | 代码量 | 效果 | 依赖 |
|
||
|------|------|--------|------|------|
|
||
| P1-1 会话记忆 | `tengu_session_memory` | 1127 行 | Claude 记住跨会话的工作上下文 | Claude API |
|
||
| P1-2 自动记忆提取 | `tengu_passport_quail` | 616 行 | 自动构建项目知识库 | Claude API |
|
||
| P1-3 提示建议 | `tengu_chomp_inflection` | 525 行 | 更流畅的交互体验 | Claude API |
|
||
| P1-4 验证代理 | `tengu_hive_evidence` | 153 行 | 自动化代码验证 | Claude API |
|
||
| P1-5 Brief 模式 | `tengu_kairos_brief` | 335 行 | 减少冗余输出 | Claude API |
|
||
| P1-6 离开摘要 | `tengu_sedge_lantern` | 176 行 | 快速恢复上下文 | Claude API + 终端焦点 |
|
||
| P1-7 自动梦境 | `tengu_onyx_plover` | 349 行 | 记忆自动保持整洁有序 | Claude API + auto-memory |
|
||
| P1-8 空闲返回提示 | `tengu_willow_mode` | — | 避免在过期缓存上浪费 token | — |
|
||
|
||
### 优先级 P2:增强型功能(提升体验但非必须)
|
||
|
||
| 功能 | Gate | 效果 |
|
||
|------|------|------|
|
||
| P2-1 MCP 指令增量传输 | `tengu_basalt_3kr` | 减少 token 消耗 |
|
||
| P2-2 叶剪枝优化 | `tengu_pebble_leaf_prune` | 减少存储和加载时间 |
|
||
| P2-3 消息合并 | `tengu_chair_sermon` | 减少 token 消耗 |
|
||
| P2-4 深度链接 | `tengu_lodestone_enabled` | 可从浏览器直接打开 Claude Code |
|
||
| P2-5 Agent 自动转后台 | `tengu_auto_background_agents` | 不再阻塞主交互 |
|
||
| P2-6 细粒度工具状态 | `tengu_fgts` | 模型更好地理解工具可用性 |
|
||
| P2-7 文件操作 git diff | `tengu_quartz_lantern` | 更好的变更追踪 |
|
||
|
||
### 优先级 P3:需要自建服务或 Anthropic OAuth
|
||
|
||
| 功能 | Gate | 依赖 | 可行性 |
|
||
|------|------|------|--------|
|
||
| P3-1 团队记忆 | `tengu_herring_clock` | Anthropic OAuth + GitHub remote | 需要自建兼容 API |
|
||
| P3-2 设置同步 | `tengu_enable_settings_sync_push` | Anthropic OAuth | 需要自建兼容 API |
|
||
| P3-3 Bridge 远程控制 | `tengu_ccr_bridge` | claude.ai 订阅 + WebSocket 后端 | 需要 Anthropic CCR 后端 |
|
||
| P3-4 远程定时 Agent | `tengu_surreal_dali` | Anthropic CCR 基础设施 | 需要远程服务 |
|
||
|
||
### Kill Switch 清单(确保不被远程关闭)
|
||
|
||
这些 gate 默认为 `true`,是 kill switch。应确保它们保持 `true`:
|
||
|
||
| Gate | 默认 | 控制什么 |
|
||
|---|---|---|
|
||
| `tengu_turtle_carbon` | `true` | Ultrathink 扩展思考 |
|
||
| `tengu_amber_stoat` | `true` | 内置 Explore/Plan agent |
|
||
| `tengu_amber_flint` | `true` | Agent 团队/Swarm |
|
||
| `tengu_slim_subagent_claudemd` | `true` | 子 agent 精简 CLAUDE.md |
|
||
| `tengu_birch_trellis` | `true` | tree-sitter bash 安全分析 |
|
||
| `tengu_collage_kaleidoscope` | `true` | macOS 剪贴板图片读取 |
|
||
| `tengu_compact_cache_prefix` | `true` | 压缩时复用 prompt cache |
|
||
| `tengu_kairos_cron_durable` | `true` | 持久化 cron 任务 |
|
||
| `tengu_attribution_header` | `true` | API 请求署名 |
|
||
| `tengu_slate_prism` | `true` | Agent 进度摘要 |
|
||
|
||
### 需要新增的编译 flag
|
||
|
||
以下编译时 flag 尚未在 `build.ts` / `scripts/dev.ts` 中启用,但功能代码完整:
|
||
|
||
| Flag | 用于 | 优先级 |
|
||
|---|---|---|
|
||
| `AGENT_TRIGGERS` | 定时任务系统(P0-3) | P0 |
|
||
| `EXTRACT_MEMORIES` | 自动记忆提取(P1-2) | P1 |
|
||
| `VERIFICATION_AGENT` | 验证代理(P1-4) | P1 |
|
||
| `KAIROS` 或 `KAIROS_BRIEF` | Brief 模式(P1-5) | P1 |
|
||
| `AWAY_SUMMARY` | 离开摘要(P1-6) | P1 |
|
||
| `TEAMMEM` | 团队记忆(P3-1) | P3 |
|
||
|
||
### 实施路线图
|
||
|
||
#### Phase 1:硬编码 P0 纯本地 gate(最快见效)
|
||
|
||
1. 在 growthbook.ts 添加默认值映射
|
||
2. 在 build.ts / dev.ts 添加 `AGENT_TRIGGERS` 编译 flag
|
||
3. 验证 7 个 P0 功能正常工作
|
||
4. 预计工作量:1-2 小时
|
||
|
||
#### Phase 2:启用 P1 API 依赖功能
|
||
|
||
1. 添加编译 flag:`EXTRACT_MEMORIES`、`VERIFICATION_AGENT`、`KAIROS_BRIEF`、`AWAY_SUMMARY`
|
||
2. 添加 P1 gate 默认值
|
||
3. 验证 8 个 P1 功能正常工作
|
||
4. 预计工作量:2-3 小时
|
||
|
||
#### Phase 3:评估自建 GrowthBook(可选)
|
||
|
||
1. Docker 部署 GrowthBook 服务器
|
||
2. 迁移硬编码值到 GrowthBook 后台管理
|
||
3. 获得 Web UI 管理所有 flag 的能力
|
||
4. 预计工作量:半天
|
||
|
||
#### Phase 4:评估远程功能(可选)
|
||
|
||
1. 研究是否可以使用 Anthropic OAuth
|
||
2. 评估团队记忆、设置同步的自建可行性
|
||
3. 预计工作量:待评估
|
||
|
||
### 隐私说明
|
||
|
||
#### 硬编码绕过(方案 A)
|
||
|
||
- **零数据外发**
|
||
- GrowthBook SDK 不启动
|
||
- 完全离线运行
|
||
|
||
#### 自建 GrowthBook(方案 B)
|
||
|
||
- 数据仅发送到你自己的服务器
|
||
- Anthropic 无法获取任何数据
|
||
- 可通过 Web UI 实时管理所有 flag
|
||
|
||
#### 恢复原生 1P(方案 C)
|
||
|
||
- 会发送使用统计到 `api.anthropic.com`
|
||
- **不发送**:代码、对话内容、API key
|
||
- **会发送**:邮箱、设备 ID、机器指纹、仓库哈希、订阅类型
|
||
- 可用 `DISABLE_TELEMETRY=1` 关闭遥测(但同时关闭 GrowthBook)
|
||
|
||
## 关联笔记
|
||
|
||
- [[claude-code-best/docs/features/kairos]]
|
||
- [[claude-code-best/docs/features/proactive]]
|