피드로 돌아가기
Dev.toAI/ML
원문 읽기
3계층 Provider 추상화로 12종 AI API 통합 및 Vendor Agnostic 아키텍처 구현
BoxAgnts Tool System (6) — Multi-Provider Adaptation and the Agent Query Loop
AI 요약
Context
AI 벤더별로 상이한 API 요청 형식과 응답 구조로 인한 코드 복잡도 증가 문제 발생. 대화 흐름 제어와 Tool 실행이 얽혀 있는 오케스트레이션의 비효율적 구조 개선 필요.
Technical Solution
- ProviderRequest/Response 모델 도입을 통한 데이터 형식 표준화 및 상위 Agent Loop의 벤더 의존성 제거
- LlmProvider Trait 기반의 인터페이스 정의로 각 벤더별 HTTP 요청, 인증, SSE 파싱 로직의 캡슐화
- Transformer 순수 함수 설계를 통한 Unified Format과 Vendor Format 간의 1:1 변환 매핑 구조 채택
- FSM(Finite State Machine) 기반의 Stream Parser 구현을 통해 상이한 SSE 이벤트 단위를 단일 StreamEvent로 통합
- Dependency Inversion 원칙을 적용하여 Agent Loop와 Provider 구현체 간의 결합도를 Trait 인터페이스로 분리
- openai_compat 모듈을 통한 공통 SSE 파서 및 Request Builder 재사용으로 신규 벤더 통합 비용 최소화
실천 포인트
1. 외부 API 통합 시 벤더별 특수 로직을 처리하는 Transformer를 순수 함수로 분리했는가
2. 비동기 스트림 처리 시 FSM을 도입하여 서로 다른 이벤트 시퀀스를 단일 상태 모델로 통합했는가
3. 상위 오케스트레이션 로직이 특정 벤더의 데이터 구조에 의존하지 않도록 추상화 계층을 두었는가
4. 신규 프로바이더 추가 시 기존 코드 수정 없이 Trait 구현과 등록만으로 가능한 구조인가