LiveKit Agents
실시간 음성 에이전트를 만드는 서버 프레임워크
pip install "livekit-agents[openai,deepgram,cartesia]"서버에서 도는 실시간 참가자를 만드는 프레임워크입니다. 듣고 보고 이해하는 대화형 에이전트가 목표입니다. 음성 인식과 언어 모델, 음성 합성, 실시간 API 를 골라 섞어 쓰는 구조라 특정 제공자에 묶이지 않습니다. 작업 배분 API 가 들어 있어 사용자를 에이전트에 연결하는 일을 프레임워크가 맡습니다. 전화망 연동이 되어 있어 에이전트가 전화를 걸고 받습니다. 사용자가 말을 끝냈는지 판단하는 데 트랜스포머 모델을 써서 말 끊김을 줄입니다. MCP 를 한 줄로 붙이고, 판정자를 두고 시험을 쓰는 틀도 들어 있습니다. 전부 오픈소스라 자체 서버로 돌릴 수 있습니다.
판단
이럴 때 씁니다
- 실시간으로 듣고 말하는 에이전트를 만들 때
- 전화망과 이어야 할 때
- 음성 인식과 합성 제공자를 갈아 끼우고 싶을 때
이럴 땐 쓰지 마세요
- 글로만 주고받는 챗봇에는 과합니다
- 실시간 미디어 서버 운영 부담이 있습니다
- 제공자를 여럿 붙이면 비용 구조가 복잡해집니다
차별점
- 음성 인식과 언어 모델, 음성 합성, 실시간 API 를 조합해 씁니다.
- 작업 배분 API 가 프레임워크에 들어 있습니다.
- 전화망 연동으로 에이전트가 전화를 걸고 받습니다.
- 판정자를 쓰는 시험 틀이 기본 제공됩니다.
워크플로
- 01핵심 라이브러리와 쓸 제공자 플러그인을 함께 설치합니다.
- 02에이전트 동작을 정의합니다.
- 03배분 API 로 사용자와 이어 줍니다.
- 04판정자를 두고 시험을 씁니다.
- 05필요하면 서버까지 직접 띄웁니다.
주요 명령
| 명령 | 설명 |
|---|---|
pip install "livekit-agents[openai,deepgram,cartesia]" | 핵심 라이브러리와 제공자 플러그인을 함께 설치합니다. |
python agent.py dev | 개발 모드로 에이전트를 띄웁니다. |
함정
설치 전에 확인하세요
- 제공자 플러그인은 추가 설치 대상입니다. 핵심만 깔면 아무 모델도 안 붙습니다.
- 말이 끝났는지 판단하는 데 별도 모델을 씁니다. 이 부분을 끄면 말 끊김이 늘어납니다.
- 자바스크립트와 타입스크립트를 쓴다면 저장소가 다릅니다.
- 실시간 미디어라 네트워크 상태가 품질에 그대로 반영됩니다.
비교
음성 에이전트를 직접 만들면 미디어 전송과 순서 판단, 제공자 연결을 전부 손으로 붙여야 합니다. 이쪽은 그 계층이 이미 있고 전부 오픈소스라 자체 서버로 옮길 수 있습니다. 대신 글만 주고받는 용도에는 무겁습니다.
최근 변경
저장된 도구 호출 인자를 해석하지 못하는 경우에도 죽지 않고 넘어가도록 고쳤습니다. 특정 클라우드 모델이 거부하는 온도와 상위 확률 값을 아예 보내지 않도록 하는 수정도 함께 들어갔습니다.