Skip to content

Latest commit

 

History

History
161 lines (113 loc) · 4.66 KB

File metadata and controls

161 lines (113 loc) · 4.66 KB

원격 제어 및 킬스위치

Claude Code v2.1.88 디컴파일 소스 코드 분석 기반.

개요

Claude Code는 Anthropic(및 기업 관리자)이 사용자의 명시적 동의 없이 동작을 변경할 수 있는 다수의 원격 제어 메커니즘을 구현하고 있다.

1. 원격 관리 설정

구조

자격이 있는 모든 세션은 다음에서 설정을 가져온다:

GET /api/claude_code/settings

출처: src/services/remoteManagedSettings/index.ts:105-107

폴링 동작

// src/services/remoteManagedSettings/index.ts:52-54
const SETTINGS_TIMEOUT_MS = 10000
const DEFAULT_MAX_RETRIES = 5
const POLLING_INTERVAL_MS = 60 * 60 * 1000 // 1시간

설정은 1시간마다 폴링되며, 실패 시 최대 5회 재시도한다.

대상 자격

  • Console 사용자 (API 키): 전원 대상
  • OAuth 사용자: Enterprise/C4E 및 Team 구독자만 해당

수락 강제 다이얼로그

원격 설정에 "위험한" 변경이 포함되면 차단 다이얼로그가 표시된다:

// src/services/remoteManagedSettings/securityCheck.tsx:67-73
export function handleSecurityCheckResult(result: SecurityCheckResult): boolean {
  if (result === 'rejected') {
    gracefulShutdownSync(1)  // 종료 코드 1로 종료
    return false
  }
  return true
}

원격 설정을 거부하면 애플리케이션이 강제 종료된다. 선택지는 원격 설정 수락 또는 Claude Code 종료뿐이다.

장애 시 동작

원격 서버 접근이 불가능하면 디스크 캐시 설정을 사용한다:

// src/services/remoteManagedSettings/index.ts:433-436
if (cachedSettings) {
  logForDebugging('Remote settings: Using stale cache after fetch failure')
  setSessionCache(cachedSettings)
  return cachedSettings
}

원격 설정이 한 번 적용되면, 서버 장애 시에도 캐시가 유지된다.

2. Feature Flag 킬스위치

GrowthBook feature flag를 통해 여러 기능을 원격 비활성화할 수 있다:

권한 우회 킬스위치

// src/utils/permissions/bypassPermissionsKillswitch.ts
// Statsig 게이트를 확인하여 권한 우회를 비활성화

사용자 동의 없이 권한 우회 기능을 비활성화할 수 있다.

Auto 모드 서킷 브레이커

// src/utils/permissions/autoModeState.ts
// autoModeCircuitBroken 상태로 auto 모드 재진입을 차단

Auto 모드를 원격으로 비활성화할 수 있다.

Fast 모드 킬스위치

// src/utils/fastMode.ts
// /api/claude_code_penguin_mode 에서 조회
// 특정 사용자의 fast 모드를 영구 비활성화 가능

분석 싱크 킬스위치

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

모든 분석 출력을 원격으로 중단할 수 있다.

Agent Teams 킬스위치

// src/utils/agentSwarmsEnabled.ts
// 환경 변수와 GrowthBook 게이트 'tengu_amber_flint' 모두 필요

음성 모드 킬스위치

// src/voice/voiceModeEnabled.ts:21
// 'tengu_amber_quartz_disabled' — 음성 모드 긴급 차단

3. 모델 오버라이드 시스템

Anthropic은 내부 직원이 사용하는 모델을 원격으로 변경할 수 있다:

// src/utils/model/antModels.ts:32-33
// @[MODEL LAUNCH]: tengu_ant_model_override에 새 ant 전용 모델 업데이트
// @[MODEL LAUNCH]: 코드네임을 scripts/excluded-strings.txt에 추가

tengu_ant_model_override GrowthBook flag로 가능한 작업:

  • 기본 모델 설정
  • 기본 노력 수준 설정
  • 시스템 프롬프트에 내용 추가
  • 커스텀 모델 별칭 정의

4. Penguin 모드

Fast 모드 상태는 전용 엔드포인트에서 조회한다:

// src/utils/fastMode.ts
// GET /api/claude_code_penguin_mode
// API가 비활성화를 응답하면 해당 사용자에게 영구 비활성화

Fast 모드 가용성을 제어하는 feature flag:

  • tengu_penguins_off
  • tengu_marble_sandcastle

요약

메커니즘 범위 사용자 동의
원격 관리 설정 Enterprise/Team 수락 또는 종료
GrowthBook feature flag 전체 사용자 없음
킬스위치 전체 사용자 없음
모델 오버라이드 내부 (ant) 없음
Fast 모드 제어 전체 사용자 없음

원격 제어 인프라는 광범위하며, 대부분 사용자에게 보이지 않고 동의 없이 운영된다. 기업 관리자는 사용자가 재정의할 수 없는 정책을 강제할 수 있고, Anthropic은 feature flag를 통해 모든 사용자의 동작을 원격으로 변경할 수 있다.