핵심 요약
잡코리아가 스트리밍 AI 에이전트의 공통 어댑터를 설계해 Talent Agent와 Career Agent의 이벤트 스트림을 하나의 UI 스냅샷으로 실시간 렌더링하는 구조를 구축했습니다.
구현 방법
- Converter: content_index 기반 버퍼링으로 텍스트, 위젯, 워크플로 등의 이벤트를 정확한 위치에 배치
- Turn 상태 머신: 한 턴은 하나의 입력에 대한 텍스트, 진행 표시, 워크플로, 위젯, 결과를 포함; 시작 원인, 메시지 ID, 생성 시각 추적
- Runtime/Turn lifecycle: 새 메시지 시 턴 초기화, 재생성 시 같은 메시지 ID 유지, 취소/에러에 대한 기본 플로우 포함
- Adapter 구조: Converter, Runtime, Client Tools로 구성; API/Transport로 SSE/HTTP 전송 관리
- UI 프레임워크 선택: assistant-ui를 채택해 외부 상태 소스와 인터페이스를 활용, 커스텀 렌더러(TalentCustomPartsRenderer)로 10종 이상 파트 렌더링
- 에러/취소 처리: 취소는 즉시 UI 반영, 에러는 원인별 재시도 전략, 어댑터가 에러 코드를 앱에 전달
주요 결과
- 2개 서비스(Talent Agent, Career Agent) 및 10종 이상의 이벤트 타입을 다루는 공통 패키지 1개로 구성
- 어댑터 도입으로 서비스 간 버그 수정 및 렌더링 로직 중복 제거, 개발 속도 향상
- 스트리밍에서 안정적으로 스냅샷을 생성하고, UI가 일정하게 화면에 렌더링되는 구조 확보
