홈어시스턴트를 위한 로컬 AI 스택: 배포 및 최적화 가이드
클라우드 서비스 없이 홈어시스턴트용 AI 에이전트를 배포하려면 Ollama, Whisper, OpenClaw, n8n을 조합하면 됩니다. 이 스택은 GPU에서 3~6초 내에 음성 명령을 처리합니다: 음성 인식, 의도 분석, HA 서비스 호출. Llama 3.1 8B의 한계를 우회하는 핵심 방법은 도구 호출 대신 HA 컨텍스트를 프롬프트에 주입하는 것입니다.
Ollama는 로컬에서 모델을 실행합니다: phi3:mini (4GB VRAM), llama3.1:8b (6~8GB). CPU에서는 지연이 30초까지 도달할 수 있으며, CUDA를 사용하면 응답이 2~5초 걸립니다. 외부 접근을 위해: systemd 오버라이드에 OLLAMA_HOST=0.0.0.0:11434를 설정하고 .env에 OLLAMA_API_KEY=ollama-local을 설정하세요.
Whisper base는 한국어를 처리합니다. P106-100 (6GB VRAM, CUDA)에서 — 10초 오디오를 0.5초 만에 처리합니다 (실시간의 19배). CPU에서 — 25~30초 (실시간의 0.4배). 이 차이가 어시스턴트의 반응 속도를 결정합니다.
MCP 프로토콜과 OpenClaw 통합
Model Context Protocol (MCP)는 AI가 /api/mcp를 통해 HA 엔티티에 접근할 수 있게 합니다. OpenClaw는 MCP를 지원하는 에이전트로, Ollama와 HA에 연결됩니다.
OpenClaw 온보딩 전에 MCP 설정이 필요합니다: HA에서 Long-Lived Token 생성, 통합에서 MCP 서버 활성화, openclaw.json에서 설정. 배포 옵션:
- 단순성을 위해 HA 애드온.
- HA 하드웨어가 약한 경우 (RPi/Odroid) 별도 호스트(NUC)에 Docker.
네트워크 확인: docker compose exec openclaw ping -c 1 <HA_IP>. 2026.2.21 버전부터 웹 인터페이스 — HTTPS만 (포트 충돌 시: 8443:443). 페어링: devices list → devices approve <requestId>.
안정성을 위한 OpenClaw 설정:
gateway.bind: "lan"또는"auto".tools.profile: "full",deny: ["message", "sessions_send"].contextWindow: 16384,maxTokens: 163840.tools.deny: ["web_search", "web_fetch"]로 402 오류 방지.
n8n을 통한 오케스트레이션과 도구 호출 우회
n8n은 Telegram → Whisper → Ollama → HA를 연결합니다. 두 가지 워크플로:
- 메인: Telegram 트리거 → Whisper → Ollama → HA API → 응답.
- HA 호출을 위한 에이전트 도구로서의 서브-워크플로.
Llama 3.1 8B는 도구 호출 지원이 약합니다: 환각 발생, 실제 도구 호출 실패. 해결책 — update-ha-context.sh 스크립트:
- mcporter를 통해 HA 데이터 가져오기 (온도 조절기, 온도).
TOOLS.md에 기록.- Cron:
/5 * /path/to/update-ha-context.sh.
모델은 프롬프트에서 현재 컨텍스트를 봅니다: "침실 온도는 19.5°C (목표 25°C)." 8B 모델에 대해 mcp-hass 비활성화.
자동화 스크립트와 배포
배포 및 업데이트를 위한 자동화:
| 스크립트 | 목적 |
|--------|---------|
| update-server.sh | .env, docker-compose, openclaw.json, mcporter.json, TOOLS.md 복사. docker compose pull && up -d 실행. |
| update-ha-context.sh | HA 데이터로 TOOLS.md 업데이트 (5분마다 cron). |
| test-openclaw.sh | Ollama API 테스트 (90초 타임아웃). |
| approve-device.sh | 디바이스 페어링. |
| pre-commit | 비밀(.env, 토큰) 커밋 차단. |
배포: SSHPASS=password ./scripts/update-server.sh to [email protected].
mcporter는 data/workspace/config/에 mcporter.json 필요 (스크립트로 복사). 스킬: npx clawhub install mcp-hass.
세 호스트에 걸친 아키텍처
최적의 부하 분산:
- Proxmox VM (GPU GTX 1060): Ollama (llama3.1:8b), Whisper base, n8n. 6GB VRAM에 적합.
- NUC: OpenClaw Docker (CPU 전용).
- Odroid: Home Assistant.
요청 흐름: Telegram/UI → OpenClaw → Ollama (HA 데이터가 있는 TOOLS.md) → 응답. 도구 호출 없음, 클라우드 없음.
핵심 포인트
- Whisper에 GPU 필수: 50배 속도 향상 (0.5초 대 30초).
- 온보딩 전 MCP: 그렇지 않으면 OpenClaw가 HA를 인식하지 못함.
- Llama 8B용 프롬프트 컨텍스트: 도구 호출 대신
update-ha-context.sh. - OpenClaw Control UI용 HTTPS 및 페어링.
- n8n의 두 워크플로: 메인 + 에이전트 도구.
— Editorial Team
아직 댓글이 없습니다.