Apple Foundation Models와 Claude 통합
Anthropic은 ClaudeForFoundationModels Swift 패키지를 소개했으며, 이를 통해 Claude를 Apple의 Foundation Models 프레임워크에 통합했습니다. 이 통합을 통해 개발자는 Apple 자체 온디바이스 모델에 사용되는 동일한 LanguageModelSession API를 활용하면서 Claude를 서버 측 언어 모델로 사용할 수 있어 로컬과 클라우드 기반 추론 간에 원활한 전환이 가능합니다.
로컬 및 클라우드 추론을 위한 통합 API
이 통합의 주요 장점은 Apple의 LanguageModel 프로토콜이 제공하는 추상화 레이어입니다. Claude를 이 프로토콜에 맞추어 구현함으로써, 개발자는 프롬프트 응답, 스트리밍, 가이드 생성, 도구 호출 등을 위해 동일한 세션 API를 사용해 모델을 구동할 수 있습니다.
개발자는 작업 복잡도에 따라 Claude와 Apple의 온디바이스 모델 중 언제 사용할지 결정할 수 있습니다:
- 온디바이스 모델: 속도, 프라이버시 및 오프라인 사용 가능성을 최적화하여 가벼운 작업에 적합합니다.
- Claude: 더 큰 컨텍스트 윈도우, 최첨단 추론, 혹은 웹 검색 및 코드 실행과 같은 서버 측 도구가 필요한 작업에 권장됩니다.
두 제공자가 동일한 LanguageModelSession API를 사용하기 때문에, 두 모델 간 전환은 세션에서 model: 인자를 교체하는 것만으로 가능합니다.
기술 요구 사항 및 설치
이 패키지는 현재 베타 단계이며 OS 27 베타에서 도입된 서버 측 언어 모델 API를 대상으로 합니다. 다음 요구 사항을 충족해야 합니다:
- 운영 체제: iOS 27, macOS 27, visionOS 27, 또는 watchOS 27 (모두 베타).
- 개발 도구: Xcode 27 (베타).
- 인증: 개발을 위한 Claude Console에서 발급받은 Claude API 키.
설치하려면 개발자는 ClaudeForFoundationModels 패키지를 Package.swift에 추가하거나 Xcode의 "Add Package Dependencies" 메뉴를 통해 추가한 뒤, FoundationModels 프레임워크와 함께 import합니다.
주요 기능 및 구현 세부 사항
모델 선택 및 기능
모델 식별자는 ClaudeModel 열거형을 통해 관리됩니다. .opus4_8와 같이 claude-opus-4-8에 매핑되는 상수는 특정 기능을 가지고 있어, 패키지가 모델이 지원하는 요청 필드만 전송하도록 보장합니다. 이를 통해 지원되지 않는 필드를 API에 보내는 경우 발생하는 하드 오류를 방지할 수 있습니다.
노력 수준
개발자는 fixedEffort: 매개변수를 사용해 특정 노력 수준(low, medium, high, xhigh, max)을 고정할 수 있습니다. 이는 프레임워크의 일반적인 추론 힌트보다 우선합니다. 프레임워크의 추론 수준은 "high"까지이지만, fixedEffort 매개변수를 통해 .xhigh와 .max 수준에 접근할 수 있습니다.
구조화된 출력 및 스트리밍
- 구조화된 출력: 타입에
@Generable을 적용하면 개발자는 구조화된 출력을 요청할 수 있습니다. 선택한 모델이 이 기능을 지원하지 않을 경우, 패키지는LanguageModelError.unsupportedGenerationGuide오류를 발생시킵니다. - 스트리밍:
streamResponse(to:)메서드는 점진적인 응답을 제공합니다. 반환되는 각 요소는 응답의 누적 스냅샷이며, 차이가 아니라 전체 상태를 나타냅니다.
도구 사용: 클라이언트 측 vs. 서버 측
- 클라이언트 측 도구: 프레임워크의 표준
tools:배열이 사용됩니다. Claude가 도구를 요청하면 프레임워크가 디바이스에서 해당 도구를 호출합니다. - 서버 측 도구: 웹 검색 및 웹 페치와 같은 도구는 Anthropic의 인프라에서 실행됩니다. 이러한 도구는
ClaudeLanguageModel을 통해 구성되며, 전사에서는ClaudeServerToolSegment커스텀 세그먼트로 표시됩니다.
인증 및 보안
API 키가 배포된 바이너리에서 노출되는 것을 방지하기 위해, Anthropic은 두 가지 인증 모드를 제공합니다:
- API 키 (개발): 빠른 프로토타이핑에 사용됩니다. 키가 바이너리에서 추출될 수 있기 때문에 프로덕션에서는 권장되지 않습니다.
- 프록시 (프로덕션): 요청이 개발자의 자체 백엔드로 라우팅됩니다. 프록시가 서버 측에서 Claude API 자격 증명을 추가하므로 앱에 키가 포함되지 않습니다. 호출자를 인증하기 위해 프록시에게 커스텀 헤더를 제공할 수 있습니다.
오류 처리 및 제한 사항
패키지는 Claude API 오류를 Apple의 LanguageModelError 케이스에 매핑합니다. 예를 들어, HTTP 429는 .rateLimited로, 컨텍스트 윈도우 초과는 .contextSizeExceeded로 매핑됩니다.
일부 Messages API 기능은 Apple 프로토콜에 포함되지 않아 사용할 수 없습니다. 여기에는 프롬프트 캐싱 제어(자동으로 적용됨), 중지 시퀀스, 배치 처리, 토큰 카운팅 API 등이 포함됩니다.
커뮤니티 인사이트 및 관점
산업 관찰자와 개발자들은 이번 움직임이 Apple이 LLM을 상품화하면서도 사용자 경험과 하드웨어 생태계에 대한 통제를 유지하려는 전략적 전환임을 지적했습니다.
Apple이 LLM을 상품화하면서 UX를 통제하고 있습니다. 그들은 하드웨어 회사이며 AI 활용을 위한 최고의 기계를 계속 판매할 것입니다.
다른 개발자들은 API 키 배포와 사용자가 직접 키를 제공해야 하는 사용자 경험에 대한 우려를 표명했습니다. 일부는 이 추상화 레이어가 Apple이 자체 온디바이스 기능을 개선하면서 다른 클라우드 모델을 더 쉽게 통합하도록 하는 장기적인 전략이라고 제안했습니다.
이는 Apple이 온디바이스 모델이 더 개선될 것을 계획하고 있는 것이라고 생각합니다... 개발자들이 외부 LLM을 호출하는 모든 코드를 이 방식으로 사용한다면, Apple의 모델이 더 강력해지고 사용 사례를 더 많이 포괄하게 될 때 개별 호출 지점에서 쉽게 전환할 수 있을 것입니다.