Skip to main content

什么是 Ant

USER_TYPE 是一个构建时常量,通过 Bun 打包器的 --define 注入。在 Anthropic 的内部构建中它被设为 'ant',在公开发布的版本中是 'external'
// 反编译版本(src/types/global.d.ts 第 63 行)
// Build-time constants BUILD_TARGET/BUILD_ENV/INTERFACE_TYPE — removed (zero runtime usage)
BUILD_TARGET 等构建时常量在反编译版本中已被移除。USER_TYPE 通过 Bun 的 --define 或环境变量注入,Bun 会进行常量折叠——所有 process.env.USER_TYPE === 'ant' 在外部构建中直接变为 false,后续代码被 DCE 移除。但在反编译版本中,这些代码保留完整。 USER_TYPE === 'ant' 在代码库中出现 377+ 次(含 === 'ant' 291 次、(process.env.USER_TYPE) === 'ant' 86 次),另有 !== 'ant' 53 次、其他引用约 35 次,总计 465 处引用,控制着工具、命令、API、UI 等方方面面。

Ant-Only 工具

以下工具仅在内部构建中被加载到工具注册表:
工具代码位置用途
REPLToolsrc/tools/REPLTool/高级 REPL 模式——在 VM 中包装 Bash/Read/Edit/Glob/Grep/Agent 等工具
SuggestBackgroundPRToolsrc/tools/SuggestBackgroundPRTool/建议在后台创建 PR
ConfigToolsrc/tools/ConfigTool/交互式配置编辑器,包含 Gates 标签页用于覆盖 GrowthBook flags
TungstenToolsrc/tools/TungstenTool/基于 tmux 的终端面板工具(反编译版中已 stub)
// src/tools.ts 第 14-24 行——条件导入 + Dead Code Elimination 标记
// Dead code elimination: conditional import for ant-only tools
/* eslint-disable custom-rules/no-process-env-top-level, @typescript-eslint/no-require-imports */
const REPLTool =
  process.env.USER_TYPE === 'ant'
    ? require('./tools/REPLTool/REPLTool.js').REPLTool
    : null
const SuggestBackgroundPRTool =
  process.env.USER_TYPE === 'ant'
    ? require('./tools/SuggestBackgroundPRTool/SuggestBackgroundPRTool.js')
        .SuggestBackgroundPRTool
    : null

Ant-Only 命令

src/commands.ts 注册了 28 个仅在内部构建中可用的斜杠命令(INTERNAL_ONLY_COMMANDS,lines 225-254),在 USER_TYPE === 'ant' && !IS_DEMO 时才加载(line 343-345):
  • breakCache — 清除缓存
  • ctx_viz — 可视化上下文窗口使用情况
  • debugToolCall — 调试工具调用
  • env — 显示环境变量
  • mockLimits — 模拟速率限制
  • resetLimits — 重置速率限制
  • resetLimitsNonInteractive — 重置速率限制(非交互式)
  • bughunter — Bug 猎人模式
  • goodClaude — 质量评估工具
  • antTrace — 追踪分析
  • perfIssue — 性能问题诊断
  • commit — 快速提交
  • commitPushPr — 一键提交+推送+创建 PR
  • issue — 创建 GitHub Issue
  • autofixPr — 自动修复 PR 中的问题
  • share — 分享会话
  • summary — 生成摘要
  • subscribePr — 订阅 PR(需要 KAIROS_GITHUB_WEBHOOKS feature flag)
  • forceSnip — 强制截断历史(需要 HISTORY_SNIP feature flag)
  • ultraplan — 超级规划(需要 ULTRAPLAN feature flag)
  • backfillSessions — 回填会话数据
  • bridgeKick — 重启 Bridge 连接
  • oauthRefresh — 刷新 OAuth Token
  • teleport — 传送到指定上下文
  • onboarding — 新手引导
  • agentsPlatform — Agents 平台管理
  • version — 内部版本详情
  • initVerifiers — 初始化验证器
这些命令在 IS_DEMO 模式下也会被隐藏,防止在演示环境中暴露内部功能。

Beta API Headers

Claude Code 向 API 发送的 beta headers 分布在 src/constants/betas.ts(主注册表)和其他文件中,按可见性分为以下几类:

公开 Headers(所有构建均发送)

Header功能额外条件
claude-code-20250219Claude Code 标识非 Haiku 时始终发送;Haiku 在 agentic 模式下也发送
effort-2025-11-24推理强度控制动态注入
task-budgets-2026-03-13任务预算始终通过 addAgenticBetas() 注入
fast-mode-2026-02-01快速模式通过 sticky-on latch 动态注入
advisor-tool-2026-03-01顾问工具启用 advisor 时动态注入
advanced-tool-use-2025-11-20工具搜索(1P)Claude API / Foundry
tool-search-tool-2025-10-19工具搜索(3P)Vertex / Bedrock

模型能力相关(有条件发送)

Header功能条件
interleaved-thinking-2025-05-14交错思考模式模型支持 ISP 且未禁用
context-1m-2025-08-071M 上下文窗口模型支持 1M context
context-management-2025-06-27上下文管理Claude 4+ 或 ant 手动启用
structured-outputs-2025-12-15结构化输出Claude 4.5/4.6 + GrowthBook tengu_tool_pear
web-search-2025-03-05网页搜索Vertex (Claude 4+) / Foundry
redact-thinking-2026-02-12思维摘要/脱敏ISP 模型 + 非交互 + 未强制显示思维
prompt-caching-scope-2026-01-05提示缓存作用域firstParty/foundry + 全局缓存

Ant-Only Headers

Header功能条件
cli-internal-2026-02-09内部 CLI 功能USER_TYPE === 'ant' + CLI 入口
token-efficient-tools-2026-03-28Token 高效工具USER_TYPE === 'ant' + GrowthBook tengu_amber_json_tools

Feature Flag Gated

Header功能条件
afk-mode-2026-01-31AFK 模式(离开键盘自动审批)feature('TRANSCRIPT_CLASSIFIER')

其他特殊 Headers

Header功能来源
oauth-2025-04-20OAuth 订阅者标识src/constants/oauth.ts,Pro/Max/Team/Enterprise
environments-2025-11-01Bridge 环境 APIsrc/bridge/bridgeApi.ts,仅 Bridge 模式
// src/constants/betas.ts — 常量定义
export const TOKEN_EFFICIENT_TOOLS_BETA_HEADER =
  'token-efficient-tools-2026-03-28'
export const CLI_INTERNAL_BETA_HEADER =
  process.env.USER_TYPE === 'ant' ? 'cli-internal-2026-02-09' : ''
// src/utils/betas.ts 第 315-321 行——TOKEN_EFFICIENT_TOOLS 的实际门控逻辑
if (
  process.env.USER_TYPE === 'ant' &&
  includeFirstPartyOnlyBetas &&
  tokenEfficientToolsEnabled  // GrowthBook 'tengu_amber_json_tools' flag
) {
  betaHeaders.push(TOKEN_EFFICIENT_TOOLS_BETA_HEADER)
}
cli-internal header 意味着 Anthropic 的 API 服务端也维护着一套 ant-only 的服务端行为——这不仅仅是客户端的门控。token-efficient-tools 进一步需要 GrowthBook flag 开启,说明 Ant 员工内部也有分层灰度。

内部代号体系

Anthropic 有浓厚的”动物命名”文化:
代号身份出处
Tengu(天狗)Claude Code 项目代号所有 GrowthBook flags 的 tengu_ 前缀、分析事件名称
Capybara(水豚)模型代号src/constants/prompts.ts 中被 Undercover Mode 屏蔽的名称
Fennec(耳廓狐)已退役模型别名src/migrations/migrateFennecToOpus.ts——曾用名已迁移到 Opus
这些代号通过 Undercover Mode 在公开仓库的 commit 中被严格过滤。

环境变量开关

除了 USER_TYPE,还有一系列精细的环境变量控制各项功能:
  • CLAUDE_CODE_SIMPLE — 简化模式(禁用高级功能)
  • CLAUDE_CODE_DISABLE_THINKING — 禁用 thinking
  • DISABLE_INTERLEAVED_THINKING — 禁用交错思考
  • DISABLE_COMPACT — 禁用消息压缩
  • DISABLE_AUTO_COMPACT — 禁用自动压缩
  • CLAUDE_CODE_DISABLE_AUTO_MEMORY — 禁用自动记忆
  • CLAUDE_CODE_DISABLE_BACKGROUND_TASKS — 禁用后台任务
  • CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS — 禁用实验性 beta headers
  • USE_API_CONTEXT_MANAGEMENT — 上下文管理工具清除(需 ant)
  • CLAUDE_CODE_VERIFY_PLAN — 启用 VerifyPlanExecutionTool
  • ENABLE_LSP_TOOL — 启用 LSP 语言服务器工具
  • CLAUDE_CODE_UNDERCOVER — 强制启用 Undercover Mode
  • CLAUDE_CODE_TERMINAL_RECORDING — 启用终端录制(asciicast)
  • CLAUDE_CODE_ABLATION_BASELINE — 启用基线对照模式
  • CLAUDE_CODE_REMOTE — 远程执行模式(自动增加堆内存限制)
  • CLAUDE_CODE_COORDINATOR_MODE — 启用 Coordinator 模式
  • CLAUDE_INTERNAL_FC_OVERRIDES — GrowthBook flag 覆盖(ant-only)
  • IS_DEMO — 演示模式(隐藏内部命令和敏感信息)
  • CLAUDE_CODE_ENTRYPOINT — 入口类型标识(cli | 其他)
ABLATION_BASELINE 特别有趣——它同时关闭 thinking、compaction、auto-memory 和 background tasks,用于测量这些高级功能对 AI 表现的因果影响。这是一个严肃的”科学对照实验”工具。