1️⃣ 한 줄 요약 (제일 중요)
나는 지금 “핸드폰에 AI를 넣는 게 아니라,
핸드폰을 AI의 마이크·스피커로 쓰는 구조”를 만들고 있다.
즉,
- 핸드폰 = 입출력 단말
- AI의 뇌 = 서버(Python Agent)
2️⃣ 전체 구조를 사람 말로 풀면
Plain Text
[ 핸드폰 ]
├─ 마이크로 말함
├─ 버튼(UI) 누름
└─ 소리로 응답 들음
↓ (실시간 음성 스트림)
[ LiveKit ]
├─ 전화선 같은 역할
└─ 음성 데이터 중계
↓
[ Python Agent ]
├─ 음성을 글자로 바꿈 (STT)
├─ 생각함 (LLM)
├─ 필요하면 기능 실행 (tools)
└─ 말을 만들어 다시 보냄 (TTS)
더 많은 선 표시
3️⃣ 지금 내가 직접 쓰고 있는 기능들 (정리)
✅ ① 안드로이드 앱 (UI + 입출력)
내가 쓰는 기능
- 버튼 (START CALL)
- 마이크 권한
- 스피커 출력
- LiveKit Room 참가
중요한 점
- ❌ AI 로직 없음
- ❌ API 키 없음
- ❌ 판단 로직 없음
👉 진짜로 ‘전화기’ 역할만 함
✅ ② LiveKit (실시간 연결)
내가 쓰는 기능
- WebRTC 기반 음성 스트리밍
- Room 개념 (통화방)
- Token Server (자동 제공)
비유하면
- LiveKit = 전화국
- 핸드폰 ↔ AI를 실시간으로 연결만 해줌
👉 LiveKit은 AI가 아니고, 연결 인프라임
✅ ③ Token Server (인증용)
내가 쓰는 기능
- Sandbox Token Server ON
- 참가자 토큰 자동 발급
안 하는 것
- ❌ API Key 안 씀
- ❌ 직접 토큰 발급 코드 안 짬
👉 “누가 이 방에 들어와도 되는지”만 결정
✅ ④ Python Agent (Jarvis의 진짜 뇌)
내가 쓰는 파일
- agent.py → 전체 흐름 제어
- prompts.py → 성격/말투/규칙
- tools.py → 기능(행동) 확장
여기서 실제로 일어나는 일
- 핸드폰 음성 수신
- 음성을 텍스트로 변환(STT)
- 텍스트를 보고 판단(LLM)
- 필요하면 기능 실행(tools)
- 말로 다시 변환(TTS)
- 핸드폰으로 음성 전송
👉 여기가 진짜 개발 포인트
✅ ⑤ Android Studio (의외로 중요하지 않음)
내가 쓰는 기능
- 무선 디버깅
- 앱 실행
- 로그 확인
안 하는 것
- ❌ 로직 개발
- ❌ AI 수정
- ❌ 핵심 디버깅
👉 그냥 “설치기 + 리모컨”
4️⃣ 그래서 지금 내가 만들고 있는 건 정확히 뭐냐면
❌ “안드로이드 AI 앱”
✅ “모바일을 UI로 쓰는 분산 AI 시스템”
조금 더 멋있게 말하면:
- AI는 서버에서 산다
- 핸드폰은 항상 들고 다니는 입과 귀
- LiveKit은 신경계
5️⃣ 지금 단계에서 내가 하는 개발의 성격
❌ 지금 아닌 것
- UI 디자인
- 안드로이드 앱 개발
- 모바일 로직 최적화
✅ 지금 맞는 것
- AI 사고 흐름 설계
- 프롬프트 튜닝
- 음성 대화 품질 개선
- 기능(tool) 추가
6️⃣ 진짜 중요한 한 문장
나는 “핸드폰에 AI를 넣고 있는 게 아니라,
AI에게 핸드폰을 하나 달아주고 있다.”
이 관점이 잡히면:
- 왜 Android 코드를 안 봐도 되는지
- 왜 API 키가 필요 없는지
- 왜 Agent가 먼저 떠야 하는지
전부 자연스럽게 연결됨
'자비스' 카테고리의 다른 글
| 인터렉션 확장 (0) | 2026.06.07 |
|---|---|
| 카메라 기반 AI 눈 추적 시스템 환경구축 (1) | 2026.06.07 |