Pydantic AI vs LiveKit Agents
Pydantic AI vs LiveKit Agents
LiveKit Agents는 LiveKit의 WebRTC 전송(transport) 위에 구축된 음성 에이전트 프레임워크예요. rooms, SIP 전화, turn 감지, 노이즈 제거, 통화 중 핸드오프, 그리고 STT·LLM·TTS 벤더용 플러그인까지 제공하며 기본적으로 캐스케이드 파이프라인(cascaded pipeline)을 사용하죠. 반면 Pydantic AI의 realtime 지원은 하나의 API 뒤에서 네 개 제공자를 지원하는 음성-대-음성 에이전트 루프예요. 또한 텍스트로, 웹 채팅에서, 또는 여러분의 API 뒤에서 실행되는 것과 동일한 타입 기반 Agent를 사용하죠. 통화는 동일한 도구·의존성·능력(capabilities)을 쓰고, 구조화된 출력을 위해 텍스트 에이전트로 넘길 수 있는 일반 메시지 히스토리가 되며, Logfire에서 종단 간 추적돼요. 전송 계층은 여러분이 가져오는 것이고, LiveKit에서는 전송 계층 자체가 제품이에요.
Pydantic AI는 스택의 한 부분이에요. 기능과 완전한 에이전트를 위한 Harness SDK, Pydantic Evals, Pydantic Graph, 관측 가능성을 위한 Pydantic Logfire, 그리고 검증 자체를 위한 Pydantic까지. 아래 표들이 이 전체를 다루고 있어요.
출처: 문서
본문
프레임워크 (Framework)
| 항목 | LiveKit Agents | Pydantic AI · Harness SDK |
|---|---|---|
| 언어 | Python (Node도 지원) | Python |
| 라이선스 | Apache-2.0 | MIT |
| 모델 제공자 | Many (플러그인) | Many |
| 확장성 | 파이프라인 노드 (stt_node, llm_node, ...) |
Capabilities and toolsets; Harness SDK로 50개 이상 |
| 하네스 | 직접 구축 | 내장 Coder 및 Researcher, 또는 직접 구성 |
| 관측 가능성 | OpenTelemetry | OpenTelemetry, Pydantic Logfire 포함 |
| 영속 실행 (Durable execution) | No | 통합 7종 |
| 인터페이스 | WebRTC rooms, 전화, 텍스트 세션 | CLI, 웹 채팅, AG-UI, Vercel AI, ACP (실험적) |
| 실시간 음성 | 음성-대-음성 및 캐스케이드 STT + LLM + TTS | Speech-to-speech, 네 개 제공자 |
| Evals | Yes | Pydantic Evals |
| 이미지 생성 | No | 이미지 생성 |
실시간(Realtime), 나란히 비교
우리의 realtime 지원은 음성-대-음성 모델을 의미해요. 하나의 지속 연결로 오디오 입력과 출력을 주고받으며, 아래 네 제공자를 지원하죠. LiveKit은 우리가 지원하지 않는 캐스케이드 파이프라인도 실행해요. 음성 스택을 고르고 있다면, 아래 행들이 결정 기준이 돼요.
| 항목 | LiveKit Agents | Pydantic AI |
|---|---|---|
| 음성-대-음성 제공자 | 여러 제공자용 플러그인 | 하나의 API 뒤의 네 개: OpenAI, Azure OpenAI, Gemini Live, xAI; ElevenLabs는 #7964에서 |
| 캐스케이드 STT + LLM + TTS | Yes, 기본값이며 수십 개의 STT·TTS 플러그인 | 내장되진 않음; 텍스트 에이전트 주변에서 직접 구성 |
| 오디오 전송 | LiveKit 서버 또는 Cloud를 통한 WebRTC rooms | 여러분의 것: 브라우저 WebRTC sideband 또는 WebSocket 중계 |
| 전화 (Telephony) | SIP 인·아웃, DTMF, 전환; Cloud에서 번호 제공 | Twilio 같은 제공자 브리징 |
| Turn 감지 | Silero VAD, 자체 turn-detector 모델, 적응형 인터럽션 | 제공자 turn 감지, barge-in, push-to-talk |
| 노이즈 제거 | Krisp 및 ai-coustics 플러그인; Cloud에서 강화 모델 | 제공자 측에서만 |
| 통화 중 다른 에이전트로 핸드오프 | Yes, 컨텍스트 이어짐 | No; 대신 도구에서 위임 |
| 통화 중 도구 | @function_tool, MCP |
텍스트 에이전트와 동일한 도구·툴셋·의존성 |
| 통화 중 능력 | 동등한 기능 없음 | 문서화된 한계가 있는 Capabilities and hooks |
| 통화 후 | session.history, SessionReport JSON |
구조화된 출력이나 후속 처리를 위해 통화 히스토리에 대한 Agent.run() |
| 관측 가능성 | OpenTelemetry; Cloud의 Insights | OpenTelemetry: 세션·turn·도구 스팬, 응답별 사용량 귀속 |
| Evals | LLM judge가 있는 pytest 프레임워크; Cloud에서 시뮬레이션 | 텍스트 핸드오프에 대한 Pydantic Evals; 아직 realtime 전용은 없음 |
| 배포 | 에이전트 서버, dispatch, jobs; Cloud 또는 자체 호스팅 | 여러분의 프로세스, 여러분의 백엔드 |
| 음성 없는 동일 에이전트 | 텍스트 전용 세션, 여전히 room과 서버 | run(), CLI, 웹 채팅, AG-UI, Vercel AI |