Local LLM Agent on a GPU-less

AI & HCI
Claude(CLI) 연동의 반복 인증과 토큰 소모가 불편해서 로컬 모델로 바꿔봤다가, GPU 없는 하드웨어의 더 근본적인 벽에 부딪혔다
Posted on Sept. 15, 2026, 9:05 a.m. by SANGJIN
random_image

Originally ran OpenClaw on this machine with Claude (CLI) as the model provider, but recurring re-authentication and heavy token usage made it impractical for regular use. Tried swapping in a local model instead — Ollama (local LLM server) + OpenClaw (agent gateway) + Telegram (remote control) — on a 2017 15" MacBook Pro (Intel, Radeon Pro 560 4GB, 16GB RAM) stuck on macOS 13.6.7 with no further OS updates available.

Item Spec
Model MacBook Pro 15-inch, 2017
CPU 2.9GHz Quad-Core Intel Core i7
GPU Radeon Pro 560 4GB + Intel HD Graphics 630
RAM 16GB 2133MHz LPDDR3
OS macOS 13.6.7, update-locked

What actually happened:

  • Every official installer hit a version wall. Homebrew failed on SSL certificate verification, then demanded an Xcode upgrade (13.2 → 15.2) to build from source. Ollama's official macOS app failed to launch at all (kLSIncompatibleSystemVersionErr, -10825) because it now requires macOS 14+. Worked around it with Ollama's CLI-only ollama-darwin.tgz binary instead of the app bundle, and installed Node.js via the official nodejs.org package instead of Homebrew.
  • No GPU acceleration meant every number was CPU-bound. With the default 32K context window, even a 3B model (llama3.2:3b) took 4 minutes 45 seconds to answer "hi," because OpenClaw sends the full system prompt plus tool definitions (38 tools by default, ~7,000+ tokens) on every request.
  • Context tuning cut both ways. Lowering context to 4096 caused a hard "Context overflow" error, since the system prompt + tools already exceeded it. Settled around 8192–12288 after also trimming the tool profile from 38 to 20 tools.
  • The real blocker wasn't speed — it was tool-calling reliability. llama3.2:3b repeatedly sent the wrong parameter name to a search tool (q instead of query), called a non-existent tool ID instead of the file-write tool, and once wrote garbled, meaningless text to a file instead of the requested content. Switching to qwen2.5:7b improved text quality but introduced a different failure: the model announced "I will now write the file" four times in a row without ever emitting an actual tool call.

Stack: Ollama, OpenClaw (Node.js gateway/CLI/TUI), Telegram channel, macOS 13.6.7 (Intel)

===

원래 이 맥북에는 OpenClaw를 Claude(CLI) 모델로 연동해서 쓰고 있었는데, 정기적으로 재인증이 필요하고 토큰 소모도 커서 일상적으로 쓰기엔 불편했다. 대신 로컬 모델을 붙여보기로 했다 — GPU가 없는 2017년형 15인치 맥북 프로(Intel, Radeon Pro 560 4GB, 16GB RAM, 업데이트가 macOS 13.6.7에서 멈춘 상태)에 Ollama(로컬 LLM 서버) + OpenClaw(에이전트 게이트웨이) + Telegram(원격 제어)으로 구성한 로컬 자동화 스택이다.

항목 사양
모델 MacBook Pro 15-inch, 2017
CPU 2.9GHz Quad-Core Intel Core i7
GPU Radeon Pro 560 4GB + Intel HD Graphics 630
RAM 16GB 2133MHz LPDDR3
OS macOS 13.6.7, 업데이트 불가

실제로 겪은 것들:

  • 공식 설치 과정마다 버전 벽에 부딪혔다. Homebrew는 SSL 인증서 검증에서 실패한 뒤 Xcode를 13.2에서 15.2로 올리라고 요구했다. Ollama 공식 앱은 macOS 14 이상을 요구하도록 바뀌어서 아예 실행조차 안 됐다(kLSIncompatibleSystemVersionErr, -10825). 앱 번들 대신 CLI 전용 바이너리(ollama-darwin.tgz)로 우회했고, Node.js도 Homebrew 대신 nodejs.org 공식 패키지로 설치했다.
  • GPU 가속이 없으니 모든 수치가 CPU 성능 그대로 드러났다. 기본 컨텍스트(32K) 상태에서는 3B급 모델(llama3.2:3b)조차 "hi" 한마디에 답하는 데 4분 45초가 걸렸다. OpenClaw가 매 요청마다 시스템 프롬프트+도구 정의(기본 38개, 약 7,000토큰 이상)를 함께 보내기 때문이다.
  • 컨텍스트 조정은 양날의 검이었다. 4096으로 낮추니 이번엔 시스템 프롬프트+도구 정의가 이미 그보다 커서 "Context overflow" 에러가 났다. 도구를 38개에서 20개로 줄이면서 8192~12288 사이에서 타협점을 잡았다.
  • 진짜 문제는 속도가 아니라 도구 호출의 신뢰성이었다. llama3.2:3b는 검색 도구를 부를 때 파라미터 이름을 query가 아니라 q로 계속 잘못 보냈고, 파일 쓰기 대신 존재하지 않는 스킬 ID를 호출했으며, 한 번은 저장 내용 자체가 의미 없는 글자 나열이었다. qwen2.5:7b로 바꾸니 텍스트 품질은 나아졌지만, 이번엔 "파일을 쓰겠습니다"라는 말만 네 번 반복하고 실제 함수 호출은 한 번도 발생하지 않는 문제가 새로 나타났다.

사용 기술: Ollama, OpenClaw(Node.js 게이트웨이/CLI/TUI), Telegram 채널, macOS 13.6.7 (Intel)

Velog: GPU 없는 오래된 맥북에 Ollama + OpenClaw를 붙여보면서 깨달은 것들

Leave a Comment: