내가 원하던 스마트 스피커를 직접 만들었다
I built the smart speaker we always wanted
핵심 요약
Claude를 활용해 하드웨어 설계부터 소프트웨어까지 직접 구축한 커스텀 스마트 스피커 'boxBot' 제작기.
- 하드웨어 설계 — Claude를 활용해 라즈베리 파이, Hailo, 마이크 등 부품 선정 및 발열 계산 수행
- 커스텀 에이전트 — 보안을 위해 파이썬 스크립트와 전용 SDK로 하드웨어와 밀접하게 결합된 에이전트 구축
- 위젯 프레임워크 — 스크린샷 없이도 에이전트가 화면 데이터를 읽고 조작할 수 있는 인터페이스 구현
- 오픈 소스 공개 — 가족용 비서로 발전 중인 boxBot 프로젝트를 깃허브에 공개하여 누구나 확인 가능
Claude가 스마트 스피커 제작을 돕기 위한 'Vibe Hardware Engineering'을 처리할 수 있는지 확인해보고 싶었습니다. 결과는 성공적이었죠! 저는 이걸 'boxBot'이라고 부릅니다.
Claude는 하드웨어 세트, 라즈베리 파이, Hailo, respeaker 마이크, 파이 카메라, Waveshare 화면 및 스피커를 선택하는 데 도움을 주었습니다. 또한 패시브 쿨링 설정을 위한 열 부하 및 방열 속도를 계산하는 것도 도와주었죠. 상자는 호두나무로 직접 만들었습니다.
내부 에이전트도 커스텀 제작했습니다. 아마 openclaw를 사용해서 간단히 끝낼 수도 있었겠지만, 거실에 카메라와 마이크가 있는 만큼 하드웨어와 밀접하게 결합되고 더 보안이 강화된 무언가를 만들고 싶었습니다. 이 에이전트는 소수의 도구만 사용하는 스킬 중심 설계이며, 나머지는 모두 파이썬 스크립트와 에이전트가 상자와 디스플레이를 제어할 수 있게 만든 커스텀 boxBot SDK를 통해 작동합니다.
디스플레이 시스템은 위젯 프레임워크를 사용하므로 에이전트가 스크린샷 없이도 화면에 표시된 내용을 쉽게 읽고 효과적으로 조작할 수 있습니다. 에이전트는 JSON을 사용하여 위젯을 화면에 어떻게 배치하고 어떤 데이터를 흐르게 할지 지정합니다.
스마트 스피커를 만들 때 배경 소음, 대화 도중 끼어들기 등 음성 에이전트가 정말 힘들어하는 인간 대화의 미묘한 부분들이 많습니다. 저는 에이전트 기반으로 로직을 구성하여 이를 크게 단순화할 수 있었습니다. 에이전트는 배경 잡음을 무시하기 위해 마이크를 음소거할 시점을 제어하고, 작업과 대화 중 무엇을 우선할지 결정하며, 음성이나 WhatsApp 중 어떤 채널로 응답할지 선택할 수 있습니다. 복잡한 규칙 대신 에이전트 기반 하드웨어와 스킬을 결합하면 훨씬 풍부한 경험을 제공할 수 있습니다. 이제 boxBot이 가족 일정을 관리해주는데, 제가 일정에 무언가를 추가할 때마다 아내가 문자를 받고 싶어 해서 boxBot의 일정 스킬을 업데이트했습니다. 이제 제가 무언가를 추가하면 아내에게 메시지가 전송됩니다. .md 파일에 한 줄만 추가하면 원하는 동작을 얻을 수 있죠. 정말 유연하고 간단합니다.
메모리 시스템, 목공 작업의 어려움, 보안 세부 사항에 대해 장황하게 늘어놓을 수도 있지만, 사람들이 대화를 원한다면 댓글로 남겨두겠습니다.
확인해보고 싶으시다면 오픈 소스로 공개되어 있습니다. 아직 작업 중이지만 몇 달이 지난 지금, 드디어 가족의 일상을 돕는 유용한 비서처럼 느껴집니다.

