Agora Agents SDK: 몇 분 만에 음성 에이전트 구축하기
요약
Agora가 Python, Node.js, Go를 지원하는 Agora Agents SDK를 출시했습니다. 이 SDK는 STT, LLM, TTS 파이프라인을 타입 지정 빌더로 쉽게 구성하고, 인증 및 세션 관리를 자동화하여 음성 에이전트 구축을 가속화합니다.
핵심 포인트
- Python, Node.js, Go 언어 지원 및 타입 지정 빌더 제공
- STT, LLM, TTS 및 MLLM(OpenAI Realtime 등) 통합 파이프라인 구축 가능
- 동적 토큰 생성 및 세션 라이프사이클 관리 자동화
- 기존 REST API를 기반으로 하여 높은 호환성 유지
Python, Node.js, Go에서 Agora의 Conversational AI Engine을 기반으로 음성 에이전트(voice agents)를 구축할 수 있는 타입 지정 SDK인 Agora Agents SDK를 소개합니다.
음성 에이전트는 이제 데모 단계를 넘어섰습니다. 팀들은 응답 지연이나 중단(interruption) 인식이 제대로 되지 않으면 오류로 느껴지는 고객 지원 흐름, 온보딩, 일정 예약, 현장 운영 및 내부 도구 등에 음성 에이전트를 도입하고 있습니다.
오늘 우리는 Agora Agents SDK를 출시합니다. 기존 REST API 상에서 타입 지정 빌더(typed builders), 내장 인증(built-in auth), 토큰 생성(token generation) 및 세션 관리(session management) 기능을 제공합니다. 이 SDK는 Python, Node.js / TypeScript, 그리고 Go를 지원합니다.
REST API는 계속해서 완전히 지원됩니다. SDK는 그 위에서 동작합니다.
SDK가 처리하는 기능
수동으로 페이로드(payloads)를 조립하는 대신, 타입이 지정된 코드로 에이전트를 구성할 수 있습니다.
- 타입 지정 파이프라인 빌더 (Typed pipeline builders). Python, TypeScript, Go에서 음성 에이전트를 구축하세요.
.with_stt()를 사용한 음성-텍스트 변환(speech-to-text),.with_llm()을 사용한 대규모 언어 모델(LLM), 그리고.with_tts()를 사용한 텍스트-음성 변환(text-to-speech)을 통해 음성 에이전트 구성을 조합할 수 있습니다. 실시간 멀티모달 모델(real-time multimodal models)의 경우, OpenAI Realtime 및 Gemini Live와 같은 제공업체를 위해 MLLM 빌더 경로인.with_mllm()을 사용하세요. - 동적 토큰 생성 (Dynamic token generation). Agora App ID와 App Certificate를 한 번만 전달하세요. SDK가 각 에이전트 요청에 대해 새로운 인증 토큰을 생성하므로, 개발자가 직접 토큰 로직을 구축하거나 관리할 필요가 없습니다. 웹 또는 모바일 앱을 위한 에이전트 관리 엔드포인트를 노출할 때, SDK는 클라이언트가 Agora 채널에 참여하기 위해 사용하는 토큰 서버를 구성하는 데에도 도움을 줄 수 있습니다.
- 세션 라이프사이클 (Session lifecycle). 원시 에이전트 ID(raw agent IDs), 상태 값(status values), 재시도 로직(retry logic)을 백엔드 곳곳에 흩어놓는 대신, SDK 객체를 통해 세션을 시작, 중지, 조회 및 복구할 수 있습니다.
- Python, Node.js / TypeScript, 그리고 Go 지원. SDK들은 동일한 에이전트 모델을 사용하며, 하나의 범용 래퍼(generic wrapper) 대신 각 언어에 맞게 설계된 API를 제공합니다.
SDK 설치
선호하는 패키지 관리자를 사용하여 SDK를 설치하세요:
pip install agora-agents
npm install agora-agents
go get github.com/AgoraIO/agora-agents-go
빠른 시작 (Quick Start)
이것은 기본적인 Python 음성 에이전트 파이프라인(pipeline)입니다: STT -> LLM -> TTS.
import time
from agora_agent import Agora, Agent, Area
...
이 코드는 에이전트를 시작하고 이를 Agora RTC 채널에 참여시킵니다. 빌더(builder)는 에이전트 설정을 읽기 쉽게 유지합니다: 발화 감지(turn detection), 프로바이더(providers), 모델 동작(model behavior), 채널(channel), 세션 이름(session name), 타임아웃(timeout), 만료(expiry)가 모두 한곳에 유지됩니다. 동일한 설정으로 모델 파라미터(parameters), 히스토리 제한(history limits), 디버그 설정(debug settings)이 필요할 때 함께 가져갈 수 있습니다.
이미 REST API를 사용 중인 경우
기존 기능이 깨지는 일은 없습니다. REST API는 여전히 플랫폼의 기반이며, 직접적인 HTTP 제어가 필요하거나 SDK가 없는 백엔드 언어를 사용하는 팀에게 여전히 적합합니다.
Python, Node.js, Go 서비스의 경우, SDK는 대부분의 팀이 직접 관리하고 싶어 하지 않는 코드들을 제거해 줍니다:
- 수동 토큰 서명 (manual token signing)
- 여러 파일에 걸쳐 조립되는 대규모 설정 객체 (large config objects)
- 반복되는 시작/중지 보일러플레이트 (repeated start/stop boilerplate)
- 세션 시작 시 발생하는 일회성 재시도 및 타임아웃 처리 (one-off retry and timeout handling)
한 번에 하나씩 경계를 옮겨가며 마이그레이션할 수 있습니다. 나머지 백엔드는 그대로 유지하면서, 원시 설정(raw setup) 및 라이프사이클(lifecycle) 호출을 SDK로 교체하고 코드를 나란히 비교해 보세요.
귀하의 모델, Agora의 실시간 인프라
SDK는 귀하를 특정 모델 스택에 종속시키지 않습니다. 자체 STT, LLM, TTS 프로바이더를 가져오거나, 앱 내에 벤더 자격 증명(vendor credentials)을 적게 유지하고 싶을 때는 Agora가 관리하는 모델을 사용하세요. 에이전트를 정의하는 모델 선택과 프롬프트(prompts)에 대한 제어권은 귀하가 유지합니다. Agora는 사용자가 말을 시작하는 순간 체감하게 되는 실시간 미디어 경로(media path), 중단 동작(interruption behavior), 그리고 채널 라이프사이클(channel lifecycle)을 실행합니다.
우리는 첫 번째 작동하는 에이전트를 만드는 데 산더미 같은 글루 코드(glue code)가 필요하지 않도록 Agora Agents SDK를 구축했습니다. SDK는 모델, 프롬프트, 음성, 채널, 세션 동작 등 귀하가 에이전트를 생각하는 방식과 가깝게 설정을 유지합니다.
Python, Node.js/Typescript 및 Go를 위한 소스 및 예제는 Docs에서 확인할 수 있습니다:
https://docs.agora.io/en/ai/build/start-stop-agent#install-the-sdk
에이전트를 구축하여 실제 대화 상황에 적용해 보고, SDK가 여전히 배관 작업(plumbing)과 같은 번거로운 처리를 고민하게 만드는 부분이 있다면 저희에게 알려주세요. 여러분의 피드백이 다음 버전을 만들어갑니다.
원문 링크: https://www.agora.io/en/blog/agora-agents-sdk-build-voice-agents-in-minutes/
원문 저자: Hermes Frangoudis
AI 자동 생성 콘텐츠
본 콘텐츠는 Dev.to AI tag의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기