FRIDAY 소개
FRIDAY는 영화 속 토니 스타크의 비서에서 영감을 받은 음성 AI 비서입니다. 이름은 "Fully Responsive Intelligent Digital Assistant for You"의 약자로, 마이크에 대고 말을 걸면 그 말을 알아듣고, 필요한 도구를 불러 처리한 뒤, 음성으로 답을 되돌려 줍니다. 텍스트 채팅이 아니라 목소리로 오가는 상호작용이 중심이라는 점이 특징입니다. 최근에는 개발 환경을 따로 꾸리지 않아도 설치할 수 있는 독립 실행형 애플리케이션으로 공개되어, Windows용 .exe와 macOS용 .dmg 설치본을 공식 사이트 에서 내려받을 수 있습니다.
FRIDAY는 서로 협력하는 두 개의 조각으로 나뉩니다. 하나는 MCP 서버로, 뉴스·웹 검색·시스템 정보 같은 도구를 SSE(Server-Sent Events) 위로 노출하는 백엔드입니다. 실제 일을 처리하는 부분이라고 보면 됩니다. 다른 하나는 음성 에이전트로, 마이크 입력을 듣고 LLM으로 추론한 뒤 음성으로 답하는 파이프라인이며, 답하는 도중 필요한 도구를 MCP 서버에서 실시간으로 가져다 씁니다. 두 프로세스는 반드시 동시에 떠 있어야 하고, 음성 에이전트가 도구가 필요할 때마다 MCP 서버를 호출하는 구조입니다.
기본 구성은 음성 인식에 Sarvam Saaras v3, 추론에 Google Gemini 2.5 Flash, 음성 합성에 OpenAI TTS의 nova 목소리를 사용하며, 실시간 음성 파이프라인은 LiveKit Agents 위에서 돕니다. 본 게시물에서는 FRIDAY의 음성 처리 파이프라인, 도구 구성과 확장 방법, 그리고 개발자용 설치와 실행 절차를 차례대로 정리합니다.
FRIDAY의 음성 처리 파이프라인
FRIDAY의 처리 흐름은 마이크에서 시작합니다. 사용자의 음성은 먼저 음성 인식(STT)을 거쳐 텍스트가 되고, 이 텍스트를 LLM이 이해해 응답을 만듭니다. LLM은 이 과정에서 뉴스나 웹 검색 같은 정보가 필요하면 MCP 서버의 도구를 호출해 결과를 받아옵니다. 완성된 답변은 음성 합성(TTS)을 거쳐 다시 소리가 되고, 스피커(LiveKit 룸)를 통해 사용자에게 전달됩니다.
이 파이프라인은 두 실행 진입점으로 구동됩니다. uv run friday는 FastMCP 서버를 SSE 전송으로 8000번 포트에 띄우며, LLM이 호출할 수 있는 모든 도구와 프롬프트, 리소스를 등록하는 "브레인 백엔드"입니다. uv run friday_voice는 LiveKit 음성 에이전트를 개발 모드로 띄워 STT·LLM·TTS 파이프라인을 구성하고 LiveKit 룸에 접속한 뒤, MCP 서버를 도구 공급원으로 연결합니다. 앞서 언급했듯 두 명령은 동시에 실행되어야 하며, 음성 에이전트는 뉴스를 가져오는 등 도구가 필요한 순간마다 MCP 서버를 실시간으로 호출합니다.
FRIDAY의 도구와 제공자 교체
MCP 서버가 노출하는 도구는 저장소의 friday/tools/ 디렉토리 에 모여 있습니다. 웹 관련 도구로는 search_web, fetch_url, get_world_news, open_world_monitor 가 있고, 시스템 관련 도구로는 get_current_time, get_system_info 가 있으며, format_json 이나 word_count 같은 보조 도구도 포함됩니다. 여기에 요약·코드 설명 같은 프롬프트 템플릿과 friday://info 리소스도 함께 제공됩니다. 새 도구를 추가하려면 friday/tools/ 안에 파일을 만들어 register(mcp) 함수를 정의하고 도구에 @mcp.tool() 데코레이터를 붙인 뒤, 이를 __init__.py 에서 불러 등록하면 다음 서버 시작 때 자동으로 잡힙니다.
구성 요소는 코드에서 손쉽게 바꿀 수 있습니다. agent_friday.py 상단의 상수를 수정하면 음성 인식은 sarvam 과 whisper 중에서, LLM은 gemini 와 openai 중에서, 음성 합성은 openai 와 sarvam 중에서 고를 수 있습니다. 각 제공자에 해당하는 API 키는 .env 파일에 넣으며, LiveKit·Sarvam·OpenAI·Google 키가 기본 동작에 필요하고 Groq, Deepgram, Supabase 등은 선택적으로 쓰입니다.
FRIDAY 설치와 실행
독립 실행형 앱이 아니라 소스로 직접 돌리려면 Python 3.11 이상과 패키지 매니저 uv, 그리고 LiveKit Cloud 프로젝트(무료 티어로 충분)가 필요합니다. 저장소를 복제하고 의존성을 설치한 뒤 환경 변수를 채웁니다.
git clone https://github.com/SAGAR-TAMANG/friday-tony-stark-demo.git
cd friday-tony-stark-demo
uv sync # .venv 생성 및 의존성 설치
cp .env.example .env # .env 를 열어 API 키 입력
실행은 두 개의 터미널로 나눠서 합니다. MCP 서버를 먼저 띄우고, 그다음 음성 에이전트를 실행한 뒤 LiveKit Agents Playground에서 방에 접속해 대화합니다.
# 터미널 1 — MCP 서버 (먼저 실행)
uv run friday
# 터미널 2 — 음성 에이전트
uv run friday_voice
기술 스택은 MCP 서버 프레임워크 FastMCP, 실시간 음성 파이프라인 LiveKit Agents, 인도식 영어에 최적화된 STT인 Sarvam Saaras v3, LLM인 Google Gemini 2.5 Flash, OpenAI TTS(nova 목소리), 그리고 빠른 패키지 매니저 uv로 이뤄져 있습니다.
FRIDAY 공식 사이트
FRIDAY 프로젝트 GitHub 저장소
이 글은 GPT 모델로 정리한 글을 바탕으로 한 것으로, 원문의 내용 또는 의도와 다르게 정리된 내용이 있을 수 있습니다. 관심있는 내용이시라면 원문도 함께 참고해주세요! 읽으시면서 어색하거나 잘못된 내용을 발견하시면 덧글로 알려주시기를 부탁드립니다. ![]()
파이토치 한국 사용자 모임
이 정리한 이 글이 유용하셨나요? 회원으로 가입하시면 주요 글들을 이메일
로 보내드립니다! 텔레그램(Telegram)이나 Slack/Discord/Teams/Dooray/GoogleChat 등으로도 새 글 알림을 받으실 수 있습니다. ![]()
아래
쪽에 좋아요
를 눌러주시면 새로운 소식들을 정리하고 공유하는데 힘이 됩니다~ ![]()

