Feature Flags¶
重要性:⭐⭐⭐ 目标读者:开发者 / 内部用户 关联:topics/dce-deep-dive.md、analysis/dce-dead-code-elimination.md
1. 概览¶
Feature flags 通过 feature('X') 编译时门控 + bun:bundle DCE。
5 类: - AI / Agent - 集成 - 工具 - 安全 / 性能 - 内部 (ANT-ONLY)
2. 5 个 AI / Agent flag¶
2.1 COORDINATOR_MODE¶
多 agent 协调。
2.2 KAIROS¶
Assistant。
2.3 PROACTIVE¶
Proactive。
2.4 AGENT_TRIGGERS¶
任务触发。
2.5 TRANSCRIPT_CLASSIFIER¶
Auto mode 分类。
3. 5 个集成 flag¶
3.1 DIRECT_CONNECT¶
cc:// 协议。
3.2 LODESTONE¶
深链。
3.3 SSH_REMOTE¶
SSH。
3.4 BUDDY¶
桌宠。
3.5 VOICE_MODE¶
语音。
4. 5 个工具 flag¶
4.1 MCP_SKILLS¶
MCP 技能。
4.2 CHICAGO_MCP¶
Computer use。
4.3 WEB_BROWSER_TOOL¶
Web 浏览器。
4.4 MESSAGE_ACTIONS¶
const disableMessageActions = feature('MESSAGE_ACTIONS') ?
useMemo(() => isEnvTruthy(process.env.CLAUDE_CODE_DISABLE_MESSAGE_ACTIONS), []) : false
消息操作。
4.5 BASH_MODE_PROGRESS¶
Bash 进度(推测)。
5. 5 个安全 / 性能 flag¶
5.1 COMPACTION_REMINDERS¶
压缩提醒。
5.2 HISTORY_SNIP¶
历史截断。
5.3 UPLOAD_USER_SETTINGS¶
设置同步。
5.4 EXPERIMENTAL_SKILL_SEARCH¶
...(feature('EXPERIMENTAL_SKILL_SEARCH') &&
skillSearchModules && !options?.skipSkillDiscovery
? [maybe('skill_discovery', () => ...)] : []),
实验性搜索。
5.5 其他(推测)¶
更多 flag 推测存在。
6. ANT-ONLY 双版本¶
字符串字面量 —— 编译时替换。
6.1 ANT-ONLY 选项¶
| Flag | 商业版 | ANT 版 |
|---|---|---|
--delegate-permissions |
❌ | ✅ |
--afk |
❌ | ✅ |
--tasks |
❌ | ✅ |
--agent-teams |
❌ | ✅ |
--enable-auto-mode |
❌ | ✅ |
--proactive |
❌ | ✅ |
--brief |
❌ | ✅ |
--assistant |
❌ | ✅ |
--channels |
❌ | ✅ |
--remote-control |
❌ | ✅ |
--hard-fail |
❌ | ✅ |
11+ ANT-ONLY 选项。
6.2 ANT-ONLY 组件¶
| 组件 | 商业版 | ANT 版 |
|---|---|---|
AntModelSwitchCallout |
❌ | ✅ |
UndercoverAutoCallout |
❌ | ✅ |
| Buddy 桌宠 | ❌ | ✅ |
AntModelSwitch |
❌ | ✅ |
4+ 组件。
7. 3 种 DCE 模式¶
7.1 feature gate + lazy require¶
最常见。
7.2 getter 包 require¶
循环依赖。
7.3 dynamic import¶
async lazy。
8. 完整 feature 列表(推测)¶
| 类别 | Flag | 默认(商业版) |
|---|---|---|
| AI | COORDINATOR_MODE | false |
| AI | KAIROS | false |
| AI | PROACTIVE | false |
| AI | AGENT_TRIGGERS | false |
| AI | TRANSCRIPT_CLASSIFIER | false |
| 集成 | DIRECT_CONNECT | true |
| 集成 | LODESTONE | false |
| 集成 | SSH_REMOTE | false |
| 集成 | BUDDY | false |
| 集成 | VOICE_MODE | false |
| 工具 | MCP_SKILLS | false |
| 工具 | CHICAGO_MCP | false |
| 工具 | WEB_BROWSER_TOOL | false |
| 工具 | MESSAGE_ACTIONS | false |
| 工具 | BASH_MODE_PROGRESS | false |
| 性能 | COMPACTION_REMINDERS | false |
| 性能 | HISTORY_SNIP | false |
| 性能 | UPLOAD_USER_SETTINGS | false |
| 实验 | EXPERIMENTAL_SKILL_SEARCH | false |
| ANT-ONLY | various | true |
19+ flag。
9. 5 个最佳实践¶
- 编译时字面量 —— 用
"external" === 'ant'不用IS_ANT - null 兜底 ——
module?.method?.() - 类型联合 ——
typeof import('./X.js') | null - NOOP stub —— 完整 API 兼容
- 不在 feature 内嵌套 ——
feature(X) && feature(Y)
5 条。
10. 调试¶
grep。
11. 5 个新增 flag 流程¶
- 需求 —— 新功能要门控
- 写 flag ——
feature('MY_FEATURE') - lazy require ——
require('./my-feature.js') - null 兜底 —— 类型 + 运行时
- 测试两版 —— 商业版 + 内部版
5 步。
12. 总结¶
Feature flags = 编译时门控 + DCE。
核心: - 25+ flag - 3 种 DCE 模式 - ANT-ONLY 双版本 - 节省 25000+ 行代码
下一步: - 看 dce-deep-dive.md - 看 analysis/dce-dead-code-elimination.md