stacktube
Apple Developer·2026-06-08튜토리얼장기 유효원본 영상 보기 ↗
읽기 18분
#AI에이전트#MLX#로컬AI#AppleSilicon

WWDC26: MLX를 사용하여 Mac에서 로컬 에이전트형 AI 실행

핵심: Apple의 MLX 프레임워크를 활용하면 클라우드나 API 키 없이도 Mac에서 강력한 에이전트형 AI 워크플로를 로컬로 구축하고 실행할 수 있어, 개인 정보 보호, 낮은 지연 시간, 오프라인 접근성 및 비용 절감의 이점을 누릴 수 있습니다.

한 줄 요약

이 튜토리얼은 Apple Silicon 기반 Mac에서 MLX와 MLX-LM을 사용하여 완전히 로컬로 실행되는 에이전트형 AI 워크플로를 설정하고, SwiftUI 앱 빌드 및 Xcode 버그 수정 등 실제 개발 작업에 통합하는 방법을 가르칩니다.


사전 준비물

  • Apple Silicon 기반 Mac (M1, M2, M3, M4, M5 칩 등)
  • macOS (특히 macOS 26.2 이상은 Thunderbolt RDMA를 통해 분산 추론 성능 향상)
  • Python 설치 및 pip 사용 가능 환경
  • 기본적인 명령줄(CLI) 사용 능력
  • 에이전트 프레임워크(예: OpenCode, Xcode)에 대한 이해

에이전트형 AI란 무엇인가

01:00부터 설명되듯이, 전통적인 언어 모델 사용 방식은 사용자가 프롬프트를 보내고 응답을 받는 단순한 채팅 경험이었습니다. 하지만 에이전트형 AI는 이보다 훨씬 복잡하고 자율적입니다.

에이전트는 언어 모델과 도구(Tools), 파일(Files), 메모리(Memory) 사이에서 에이전틱 루프를 반복합니다:

  1. 관찰(Observe): 도구 호출 결과, 파일 내용 등을 수집
  2. 사고(Thinking): 언어 모델이 정보를 분석하고 다음 행동 결정
  3. 계획(Plan): 도구 호출, 코드 작성 등 실행할 작업 선택

이러한 루프를 통해 에이전트는 복잡한 작업을 여러 단계로 나누어 자율적으로 수행할 수 있습니다. 예를 들어 풀 리퀘스트 요약, 코드베이스 검색, 버그 수정 등의 작업이 가능합니다.

로컬 실행의 핵심 이점

01:16에서 강조하듯, Apple Silicon에서 전체 에이전틱 루프를 로컬로 실행하면:

데이터가 기기에 머물러 코드, 프로젝트 파일, 민감한 정보가 외부로 전송되지 않습니다 AI가 언제 어디서나 사용 가능하며 인터넷 연결이 필요하지 않습니다 사용 비용이 들지 않아 클라우드 API 요금 걱정 없이 무제한으로 실행할 수 있습니다 낮은 지연 시간으로 빠른 응답 속도를 제공합니다


Mac 로컬 에이전틱 AI 스택 이해하기

03:20부터 소개되는 로컬 에이전트 AI 스택은 네 가지 계층으로 구성됩니다:

계층역할설명
MLX (기반)AI 프레임워크Apple Silicon을 위한 오픈소스 AI 프레임워크로, 하드웨어 가속을 자동 최적화
MLX-LM언어 모델 레이어대규모 언어 모델을 로드, 실행, 양자화, 파인튜닝하는 도구. HuggingFace의 수천 가지 모델 지원
MLX-LM ServerAPI 서버OpenAI 호환 HTTP 서버로, 모든 클라우드 LLM API를 대체 가능
Local Agent (최상단)에이전트 프레임워크OpenCode, Xcode 통합 등 다양한 에이전트 애플리케이션

이 스택 위에는 Lama, LM Studio, VLLM 등 인기 있는 앱들이 구축되어 있습니다.

MLX-LM Server의 역할

MLX-LM Server는 표준 OpenAI 채팅 완료 프로토콜을 지원하므로, 기존 에이전트 프레임워크가 MLX 로컬 모델과 즉시 연동될 수 있습니다. 에이전트는 모델이 클라우드가 아닌 Mac에서 실행된다는 것을 알 필요도, 신경 쓸 필요도 없습니다.


단계별 절차

Step 1: MLX-LM 설치

06:17에서 시작하는 첫 번째 단계입니다.

MLX-LM은 MLX 기반으로 대규모 언어 모델을 로드, 실행, 양자화하고 파인튜닝하는 데 필요한 모든 것을 제공합니다. HuggingFace의 수천 가지 모델을 지원하며 CLI(명령줄 인터페이스) 도구와 Python API를 모두 포함합니다.

설치 명령어:

pip install mlx-lm

이 명령어 하나로 필요한 모든 구성 요소가 한 번에 설치됩니다.

주의: 설치 환경에 따라 Python 및 pip 버전 호환성을 확인해야 할 수 있습니다. Apple Silicon Mac에서는 ARM64 네이티브 Python 사용을 권장합니다.


Step 2: MLX-LM 서버 시작

06:30에서 설명되는 단계입니다.

설치된 MLX-LM을 사용하여 OpenAI 호환 HTTP 서버를 시작합니다. 도구 호출(Tool Calling)을 지원하는 모델을 지정해야 에이전트가 제대로 작동합니다.

서버 시작 명령어:

mlx_lm.server --model mlx-community/Qwen2.5-Coder-7B-Instruct-4bit
  • --model 인자 뒤에는 HuggingFace 모델 이름 또는 로컬 경로를 지정합니다
  • 서버는 기본적으로 localhost:8080에서 실행됩니다
  • 초기 테스트를 위해 작은 모델(예: 7B 또는 14B 4-bit 양자화 모델)부터 시작하는 것이 좋습니다

서버가 시작되고 모델이 로드되면 로컬 호스트에서 에이전트의 요청을 받을 준비가 됩니다.

주의:

  • 서버 실행 시 사용할 모델의 이름과 경로를 정확히 지정해야 합니다
  • 포트 충돌이 발생하지 않도록 기본 포트(8080)가 이미 사용 중인지 확인해야 합니다
  • 모델 로딩 시 충분한 RAM이 필요합니다 (7B 4-bit 모델은 약 4-6GB)

Step 3: 에이전트를 로컬 서버로 연결

06:45에서 설명되는 마지막 설정 단계입니다.

대부분의 에이전트 프레임워크에서 base URL을 로컬 서버 주소로 설정하기만 하면 됩니다. 에이전트는 모델이 클라우드 대신 Mac에서 실행된다는 것을 알지 못하고 신경 쓰지 않으므로, 기존의 에이전트 프레임워크를 수정 없이 로컬 MLX 서버와 쉽게 연동할 수 있습니다.

OpenCode 예시 (JSON 설정):

{
 "provider": {
 "mlx": {
 "baseUrl": "http://localhost:8080"
 }
 },
 "default_model": "mlx-community/Qwen2.5-Coder-7B-Instruct-4bit"
}

일반적인 연결 테스트 (cURL):

curl http://localhost:8080/v1/chat/completions \
 -H "Content-Type: application/json" \
 -d '{
 "model": "mlx-community/Qwen2.5-Coder-7B-Instruct-4bit",
 "messages": [{"role": "user", "content": "Hello!"}]
 }'

주의:

  • 에이전트 프레임워크가 OpenAI 채팅 완료 프로토콜을 지원하는지 확인해야 합니다
  • 서버에 로드된 모델 이름과 에이전트 설정의 모델 이름이 정확히 일치해야 합니다
  • 방화벽 설정이 로컬 포트 통신을 방해하지 않는지 점검합니다

MLX의 하드웨어 최적화 기능

Neural Accelerator를 통한 프롬프트 처리 가속

08:00부터 설명되는 핵심 성능 향상 기술입니다.

에이전트 세션은 100K 이상의 토큰을 처리할 수 있으며, 시스템 프롬프트, 도구 호출 결과, 파일 읽기 등이 반복적으로 언어 모델에 전달됩니다. 프롬프트 처리 속도가 빠를수록 에이전트의 전체 작업 속도가 향상됩니다.

M5 칩은 M4 대비 **4배 더 빠른 행렬 곱셈(matrix multiplication)**을 제공하며, MLX는 전용 Neural Accelerator를 활용하여 프롬프트 처리 속도를 극적으로 향상시킵니다.

성능 비교 (M4 vs M5):

모델M4 처리 시간M5 처리 시간배속 향상
Qwen3 1.7B12초3초4.0x
Qwen3 8B24초6초4.0x
Qwen3 14B (4-bit)32초8초4.0x
GPT-OSS 20B45초11초4.1x
Qwen3 30B A3B (4-bit)50초15초3.3x

MLX가 사용 가능한 하드웨어에 맞는 최적의 커널을 자동으로 선택하므로, 개발자는 별도의 최적화 작업 없이도 하드웨어 성능을 최대한 활용할 수 있습니다.


연속 배칭(Continuous Batching)으로 동시성 처리

09:30부터 설명되는 병렬 처리 기법입니다.

에이전트는 종종 여러 개의 서브 에이전트를 동시에 실행하여 작업을 병렬화합니다. 예를 들어:

  • 서브 에이전트 #1: 문서 검색
  • 서브 에이전트 #2: 코드 분석
  • 서브 에이전트 #3: 테스트 실행

MLX-LM Server는 **연속 배칭(Continuous Batching)**을 통해 이러한 여러 요청을 하나의 배치로 묶어 동시에 처리합니다. 이를 통해:

GPU 활용도를 최대화하여 모든 서브 에이전트가 지연 없이 동시에 서비스를 받을 수 있습니다 병렬 워크플로가 순차 실행보다 훨씬 빠르게 완료됩니다


분산 추론으로 대규모 모델 및 성능 확장

10:30부터 다루는 고급 기능입니다.

단일 Mac에 맞지 않는 대규모 모델을 실행하거나, 프롬프트 처리를 더욱 가속하려면 MLX 분산 추론을 사용할 수 있습니다.

분산 추론의 두 가지 이점:

  1. 모델 분산: 70B, 100B 이상의 대규모 모델을 여러 Mac에 분산하여 실행
  2. 프롬프트 처리 병렬화: 여러 기기에서 프롬프트 처리를 동시에 수행하여 에이전틱 루프 가속

분산 추론 설정 명령어:

mlx.launch \
 --host-file hosts.txt \
 python -m mlx_lm.server \
 --model mlx-community/Qwen2.5-Coder-70B-Instruct-4bit
  • hosts.txt 파일에는 참여할 Mac들의 IP 주소 또는 호스트명을 나열합니다
  • 모든 노드에서 동일한 명령어로 서버가 시작됩니다

macOS 26.2의 Thunderbolt RDMA 지원:

macOS 26.2부터 Thunderbolt RDMA 지원이 추가되어 저지연 고대역폭 통신이 가능해졌습니다 MLX 분산 추론 성능이 최대 3배까지 향상되었습니다


흔한 실수 & 해결법

MLX-LM 서버 시작 시 올바른 모델을 지정하지 않거나 모델이 로드되지 않는 경우 mlx_lm.server 실행 명령에서 --model 인자가 올바른 모델 경로 또는 HuggingFace 모델 이름을 가리키는지 확인합니다. MLX 저장소에서 지원하는 모델 목록을 참조하고, 필요한 경우 모델을 미리 다운로드해 둡니다.

에이전트가 로컬 MLX-LM 서버에 연결되지 않거나 오류가 발생하는 경우 에이전트의 구성 파일 또는 코드에서 base URLhttp://localhost:8080 (또는 서버가 실행 중인 포트)으로 정확히 설정되었는지 확인합니다. 또한, 서버에 로드된 모델 이름과 에이전트가 기대하는 모델 이름이 일치하는지 확인합니다. 방화벽 설정이 로컬 포트 통신을 방해하는지 점검합니다.

대규모 모델 실행 시 메모리 부족 오류가 발생하는 경우 우선적으로 더 작은 양자화된 모델을 사용해봅니다. 만약 더 큰 모델이 필요하다면, MLX의 분산 추론 기능을 활용하여 여러 Mac에 모델을 분산하여 실행하는 방법을 고려합니다. Mac의 RAM 용량을 확인하고, 다른 불필요한 애플리케이션을 종료하여 메모리 자원을 확보합니다.


완성 결과물

이 튜토리얼을 완료하면:

  • 클라우드 API 없이 Apple Silicon 기반 Mac에서 완전히 로컬로 실행되는 에이전트형 AI 워크플로를 구축할 수 있습니다
  • 이 에이전트가 코드 생성, 버그 수정, 문서 요약 등 다양한 개발 작업을 수행할 수 있습니다

실제 데모 사례

02:00 - PR 요약 에이전트: OpenCode 에이전트가 MLX 리포지토리의 풀 리퀘스트를 읽고, 변경 사항을 식별하며, 요약을 생성하는 작업을 로컬에서 수행합니다.

12:00 - SwiftUI 앱 빌드: 사용자가 "iPad용 드로잉 앱을 만들어줘"라고 요청하면, 에이전트가:

  1. 디렉토리 구조를 파악
  2. 계획을 수립 (Canvas, 색상 선택기, 선 굵기 조절)
  3. SwiftUI 코드를 작성
  4. 앱을 컴파일하고 실행

이후 사용자가 "선 끝 부분을 둥글게 만들어줘"라고 요청하면, 에이전트가 DrawCanvas.swift 파일을 수정하여 lineCap 속성을 .round로 변경하고 앱을 다시 빌드합니다.

13:00 - Xcode 버그 수정: Xcode 프로젝트에 타입 변환 오류(String을 CGFloat로 변환)가 있을 때:

  1. Xcode 설정에서 로컬 MLX 서버를 Chat Provider로 추가
  2. 에이전트 채팅 창에서 "이 앱의 버그를 수정해줘"라고 요청
  3. 에이전트가 코드를 조사하고 버그 원인을 식별
  4. lineWidth 변수의 타입을 String에서 CGFloat으로 자동 수정
  5. diff 뷰에서 변경 사항을 검토하고 적용

모든 작업이 Mac 내부에서 처리되어 사용자의 코드가 절대 기기 밖으로 나가지 않습니다.


응용 / 다음 단계

MLX 기반 로컬 에이전트를 더욱 발전시키려면:

  • MLX 파인튜닝을 통해 특정 코드베이스나 도메인에 최적화된 모델 생성
  • 커스텀 도구 개발로 에이전트가 사용할 수 있는 도구 확장 (예: 데이터베이스 쿼리, API 호출)
  • 멀티 에이전트 시스템을 구축하여 여러 전문화된 에이전트가 협력하는 워크플로 구현
  • 에이전트 메모리 관리를 개선하여 장기 작업에서의 컨텍스트 유지 능력 향상
  • MLX 양자화 기법을 학습하여 더 큰 모델을 더 적은 메모리로 실행
  • Thunderbolt RDMA 네트워킹을 활용한 고성능 분산 추론 클러스터 구축

관련 개념

  • MLX 프레임워크
  • Apple Silicon 아키텍처
  • LLM 도구 호출(Tool Calling)
  • OpenAI API 호환성
  • HuggingFace 모델 허브
  • 양자화(Quantization)
  • 에이전트 프롬프팅 전략
  • SwiftUI
  • Xcode 통합
  • 분산 머신러닝
  • RDMA 통신

시각 자료: 영상에서 0:45 보기 ▶ 📷 시각 자료: 영상에서 2:41 보기 ▶ 📷 시각 자료: 영상에서 6:11 보기 ▶

주요 타임스탬프

  • 00:00 — 인트로: MLX 로컬 에이전트형 AI 워크플로 소개
  • 01:00 — 에이전트형 AI 작동 방식 및 로컬 실행의 이점
  • 02:00 — 로컬 에이전트 데모: OpenCode(오픈코드)를 활용한 PR 요약
  • 03:20 — Mac 로컬 에이전틱 AI 스택 구성 요소 설명
  • 06:17 — 로컬 에이전트 설정 3단계: MLX-LM 설치
  • 08:00 — MLX의 하드웨어 최적화: Neural Accelerator(뉴럴 액셀러레이터) 활용
  • 09:30 — MLX-LM Server의 연속 배칭으로 동시성 처리
  • 10:30 — MLX 분산 추론을 통한 대규모 모델 및 성능 확장
  • 12:00 — 라이브 데모: SwiftUI(스위프트UI) 앱 빌드 및 반복 작업
  • 13:00 — 라이브 데모: Xcode(엑스코드)에서 버그 수정 및 로컬 AI 통합
Stacktube · 읽기 18분영상은 흘러가지만, 지식은 쌓여야 합니다.