Files
cs-note/claude-code-best/docs/features/growthbook-enablement-plan.md

187 lines
7.8 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
---
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]]