피드로 돌아가기
Dev.toAI/ML
원문 읽기
Microsoft.Extensions.AI 기반의 Vendor-neutral AI 에이전트 설계
How a .NET dev built an AI assistant
AI 요약
Context
.NET 환경에서 3D 학습 모델을 제어하는 AI 어시스턴트 'Cori' 구현 중 특정 AI 벤더 SDK에 종속되는 Vendor Lock-in 위험 발생. 초기 Semantic Kernel 도입 시 실험적 API 사용으로 인한 대규모 코드 재작성 및 유지보수 비용 증가라는 기술적 부채 경험.
Technical Solution
- Microsoft.Extensions.AI 라이브러리를 통한 IChatClient, IEmbeddingGenerator 등 추상화 인터페이스 계층 구축
- 의존성 주입(DI) 패턴을 활용하여 OpenAI 등 실제 AI Provider를 런타임 등록 단계로 격리한 전략적 설계
- AG-UI 프로토콜 기반의 MapAGUI 설정을 통해 텍스트 및 Tool Calling 전송 계층 표준화
- 오디오 전송을 위한 별도 실시간 채널과 텍스트 기반 에이전트를 분리한 Dual Transport 구조 채택
- 에이전트 내부에서 오디오 처리 로직을 제거하여 Browser, AR, VR 등 다양한 클라이언트 환경에 대응하는 무상태(Stateless) 브레인 설계
- LLM의 Function Calling을 통해 Rotate, SearchContent 등 C# 메서드를 외부에서 실행하는 간접 호출 구조 구현
실천 포인트
- AI SDK 직접 참조 대신 Microsoft.Extensions.AI와 같은 추상화 인터페이스 도입 검토 - 전송 계층(Transport)과 비즈니스 로직(Agent)을 분리하여 채널 독립적 아키텍처 설계 - LLM의 응답 속도 개선을 위해 Token 단위의 Streaming 처리 적용 여부 확인 - 자체 프로토콜 정의 전 AG-UI와 같은 오픈 프로토콜의 활용 가능성 우선 분석