Mac Mini에서 로컬 코딩 에이전트 실행하기 — 실제 설정 방법
요약
Mac Mini M4 환경에서 로컬 LLM을 활용해 코딩 에이전트를 구축하고 실행하는 구체적인 방법을 소개합니다. oMLX 서버를 통해 OpenAI 호환 API를 사용하며, 메모리 제한을 극복하기 위한 모델 교체 전략과 다양한 확장 기능을 다룹니다.
핵심 포인트
- Mac Mini M4(24GB)에서 로컬 코딩 에이전트 Pi 운영 방법 제시
- oMLX를 활용해 Claude Code, Codex 등과 호환되는 환경 구축
- 메모리 효율을 위해 9B 및 4B 모델을 스왑하며 사용
- 토큰 압축, 워크스페이스 라우팅, 서브 에이전트 등 다양한 확장 기능 활용
Mac Mini에서 로컬 코딩 에이전트 실행하기
Mac Mini에서 로컬 코딩 에이전트 실행하기 — 실제 설정 방법
작성자: Vilius Vystartas
저는 저의 중요도가 낮은 코딩 작업을 수행하는 에이전트를 보유하고 있습니다. 파일 수정, 테스트 수정, 빌드 검증 등이 그 예입니다. 보통 직접 수행하지만 에이전트에게 위임하는 것이 더 빠른 종류의 작업들입니다. 또한 Playwright 테스트 작성, 코드 리뷰, 문서 업데이트, 배포 실행도 수행합니다.
이 에이전트는 로컬에서 실행됩니다 — Mac Mini M4, 24 GB 사양입니다. 코딩 부분에 대해서는 클라우드 API 호출을 사용하지 않습니다. 오케스트레이션 레이어 (orchestration layer)는 계획 및 라우팅을 위해 여전히 저렴한 클라우드 모델을 사용합니다. 실제 파일 수정은 OpenAI 호환 로컬 LLM 서버인 oMLX에 연결되는 코딩 에이전트인 Pi가 수행합니다.
동일한 설정을 통해 Claude Code, Codex 또는 OpenAI 호환 API를 사용하는 모든 코딩 에이전트를 구동할 수 있습니다. 저는 Pi를 사용하지만, oMLX 서버는 무엇과도 호환됩니다.
모든 모델 이름, 설정 파일 및 경로는 하단의 스크립트 안에 포함되어 있습니다.
두 개의 모델
저는 두 개의 모델을 유지하며 작업에 따라 교체합니다. 24 GB 메모리로는 두 모델을 동시에 담을 수 없습니다.
이 기기에서 가질 수 있는 최선의 모델 — 9B 클래스, 약 20 tok/s. 주요 코딩 모델입니다.
또 다른 빠른 모델 — 4B 클래스, 약 27 tok/s. 파일 수정, 빠른 수정, 일상적인 작업용입니다.
교체 스크립트는 하나를 내보내고 다른 하나를 가져온 뒤 서버를 재시작합니다. 약 5초 정도 소요됩니다.
Pi가 하는 일
- 파일 수정 및 리팩토링 (refactoring)
- 테스트 작성 및 수정 (Playwright, 유닛 테스트)
- 빌드 검증 (build verification)
- 코드 리뷰 (code review)
- 문서 업데이트 (documentation updates)
- 배포 실행 (running deploys)
한 줄짜리 코드보다 복잡한 모든 작업은 RPC 모드를 통해 진행됩니다. 오케스트레이션 레이어가 프롬프트를 작성하면 Pi가 실행하고 결과가 돌아옵니다. tmux나 프로세스 관리(process wrangling)는 필요하지 않습니다.
Pi 확장 기능 — 기능 및 사용 이유
- pix-optimizer — ponytail + caveman (게으른 개발 모드 및 토큰 압축). Pi의 출력을 간결하게 유지하고 불필요한 코드(boilerplate)를 건너뜁니다.
- context-mode — 워크스페이스 라우팅(workspace routing) 및 도구 호출 가로채기(tool call interception). Pi가 잘못된 디렉토리로 헤매는 것을 방지합니다.
- pi-subagents — 서브 에이전트(sub-agents)를 생성합니다. 메인 세션을 차단하지 않고 병렬 작업을 수행합니다.
- pi-workflow-engine — 다단계 작업 오케스트레이션(multi-step task orchestration). Pi가 문맥(context)을 잃지 않고 일련의 과정을 처리할 수 있게 합니다.
- pi-mcp-adapter — MCP 서버 연결성. 외부 도구 사용을 위해 context7 및 scrapling에 연결합니다.
- @fgladisch/pi-caveman — pix-optimizer 위에 추가적인 압축 기능을 제공합니다.
알려진 문제 (Known issues)
- 한 번에 하나의 모델만 로드할 수 있습니다. 두 개를 로드하면 OOM(Out of Memory)이 발생합니다. 스왑 스크립트(Swap script)가 이를 처리합니다.
- 사고 모드(Thinking mode)를 비활성화해야 합니다. 기본값은 생각의 사슬(chain-of-thought)로 설정되어 있어 속도를 저하시킵니다.
- 프롬프트에 전체 채팅 기록을 포함하면 로컬 모델이 충돌합니다. 프롬프트에는 파일과 변경 사항만 포함되어야 합니다.
- 프린트 모드(Print mode)는 안전 제어(safety controls)를 건너뜁니다. 사소하지 않은 작업에는 RPC 모드를 사용하세요.
- 모델 스왑 후 첫 번째 요청은 타임아웃(time out)이 발생할 수 있습니다. 한 번 더 시도하세요.
설계도 (The blueprint)
curl -fsSL https://workswithagents.dev/static/setup-local-llm-pi.sh | sh
AI 자동 생성 콘텐츠
본 콘텐츠는 Dev.to AI tag의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기