Files
claude-code-source-code/docs/zh/04-远程控制与紧急开关.md
2026-04-01 18:55:02 +08:00

3.4 KiB
Raw Blame History

远程控制与紧急开关

基于网络公开资料与社区讨论整理的 Claude Code v2.1.88 分析报告。

概述

Claude Code 实现了远程管理机制,允许官方(和企业管理员)通过远程配置来管理和更新客户端的特定行为,以确保系统安全和企业合规。

1. 远程托管设置

架构

客户端会从以下端点获取最新的配置信息:

GET /api/claude_code/settings

来源: src/services/remoteManagedSettings/index.ts

轮询行为

const POLLING_INTERVAL_MS = 60 * 60 * 1000 // 每小时
const DEFAULT_MAX_RETRIES = 5

系统默认每小时检查一次更新,以确保配置的及时性。

适用范围

  • Console 用户 (API key): 默认适用
  • OAuth 用户: 主要面向 Enterprise/C4E 和 Team 订阅者进行企业级管控

安全变更确认

当远程设置涉及关键或敏感的权限变更时,系统会弹出确认提示框:

// src/services/remoteManagedSettings/securityCheck.tsx:67-73
export function handleSecurityCheckResult(result: SecurityCheckResult): boolean {
  if (result === 'rejected') {
    gracefulShutdownSync(1)  // 拒绝后安全退出
    return false
  }
  return true
}

为了保障环境安全,如果用户拒绝了必须的安全配置更新,程序将安全退出。这是一种常见的强制合规策略。

故障容灾

当远程服务器不可达时,系统会回退使用本地缓存的配置,保证基础功能的可用性。

2. 功能开关 (Feature Flags)

系统使用 GrowthBook feature flag 实现了灵活的功能管控,可以在发现严重问题时紧急禁用特定功能:

权限绕过功能管控

// src/utils/permissions/bypassPermissionsKillswitch.ts
// 用于在必要时关闭"绕过权限"功能,防止安全风险

自动模式断路器

// src/utils/permissions/autoModeState.ts
// autoModeCircuitBroken 状态用于在异常情况下暂停自动模式

快速模式开关

// src/utils/fastMode.ts
// 从 /api/claude_code_penguin_mode 获取状态
// 动态管理快速模式的可用性

数据上报通道控制

// src/services/analytics/sinkKillswitch.ts:4
const SINK_KILLSWITCH_CONFIG_NAME = 'tengu_frond_boric'

语音模式开关

// src/voice/voiceModeEnabled.ts:21
// 'tengu_amber_quartz_disabled' — 用于在发现语音模块缺陷时紧急关闭

3. 模型覆盖系统

为了进行灰度测试或应对线上突发情况,系统支持对内部员工等特定群体进行模型版本的动态切换:

// src/utils/model/antModels.ts:32-33
// @[MODEL LAUNCH]: Update tengu_ant_model_override with new ant-only models

tengu_ant_model_override GrowthBook flag 可以:

  • 设置默认模型
  • 设置默认 effort level
  • 追加系统提示词
  • 定义自定义模型别名

总结

机制 范围 用户同意
远程托管设置 Enterprise/Team 接受或退出
GrowthBook feature flags 所有用户
Kill switches 所有用户
模型覆盖 内部 (ant)
快速模式控制 所有用户

远程控制基础设施极其广泛且在很大程度上没有用户可见性或同意机制。企业管理员可以强制执行用户无法覆盖的策略Anthropic 可以通过 feature flag 远程更改任何用户的行为。