mirror of
https://github.com/sanbuphy/claude-code-source-code.git
synced 2026-04-03 11:34:54 +08:00
3.4 KiB
3.4 KiB
远程控制与紧急开关
基于网络公开资料与社区讨论整理的 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 远程更改任何用户的行为。