limited-planet-15554
12/26/2025, 4:52 AMtall-airline-16756
12/26/2025, 4:52 AMtall-airline-16756
12/26/2025, 4:53 AMAgentSession.shutdown() 또는 JobContext.shutdown() 사용.
◦ `drain=True`로 설정하면 현재 발화를 자연스럽게 마친 뒤 종료(그레이스풀 종료).
• 방 전체(모든 참가자)를 강제로 종료하려면: 서버에서 방 삭제 API 호출(delete_room) — 방에 있는 모든 사용자·에이전트 연결이 끊기고 녹음(egress)도 중단됩니다. 이 방법이 전체 대화 세션을 즉시 끝내는 가장 확실한 방법입니다.
예시 코드
• Python (AgentSession 종료, 그레이스풀):
await session.shutdown(drain=True)
• Node.js (JobContext에서 종료):
ctx.shutdown('Session ended');
• Python (방 삭제):
from livekit import api
api_client = api.LiveKitAPI(LIVEKIT_URL, LIVEKIT_API_KEY, LIVEKIT_API_SECRET)
await api_client.room.delete_room(api.DeleteRoomRequest(room=ctx.job.room.name))
• Node.js (방 삭제):
import { RoomServiceClient } from 'livekit-server-sdk';
const roomServiceClient = new RoomServiceClient(LIVEKIT_URL, LIVEKIT_API_KEY, LIVEKIT_API_SECRET);
await roomServiceClient.deleteRoom(ctx.job.room.name);
질문
• 에이전트만 종료하길 원하시나요, 아니면 방 전체(모든 참가자)를 즉시 종료하길 원하시나요? 원하는 방식 알려주시면 구체적인 구현 예나 주의사항(권한·API 키 등)을 바로 안내해드리겠습니다. Sources: Job lifecycle | LiveKit docs