Respan은 Rust 기반의 오픈 소스 AI 게이트웨이를 소개하며, 모든 기능을 플러그인화하여 개발자가 핵심 코드를 건드리지 않고도 쉽게 확장할 수 있도록 설계했습니다. 이 게이트웨이는 다양한 프로바이더(OpenAI, Anthropic 등), 프로토콜, 모달리티를 통합 관리하는 것이 목표입니다.
기존 LLM 게이트웨이의 한계를 극복하고, Nginx처럼 이벤트 디스패치에 집중한 작은 코어 구조를 채택하여 지속 가능한 개발 환경을 제공합니다.
핵심 포인트
모든 기능을 플러그인화하여 확장성이 뛰어난 AI 게이트웨이를 구축했습니다.
Rust 기반으로 작성되어 안정적이며, 다양한 프로바이더와 모달리티를 지원합니다.
핵심 코드를 건드리지 않고도 새로운 기능이나 특이점(quirks)을 쉽게 추가할 수 있습니다.
단순 호출을 넘어 도구 사용, 이미지/비디오 처리 등 복잡한 추론 프로토콜까지 자동 처리합니다.
AI 자동 생성 콘텐츠
본 콘텐츠는 HN Show HN (AI)의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
Launch HN: Respan (YC W24) – 플러그인을 중심으로 구축된 오픈 소스 Rust 기반 AI 게이트웨이
안녕하세요, HN 여러분. 저는 Respan의 Andy입니다 (https://www.respan.ai). 저희는 오픈 소스 Rust 기반 AI 게이트웨이를 구축하고 있습니다. 이 게이트웨이는 디커플링(decoupled)된 구조로 되어 있어, 다양한 프로바이더, 프로토콜(MCP, 음성), 모달리티(이미지, 비디오), 그리고 게이트웨이 기능(폴백, PII 마스킹, 스마트 라우팅)을 포함하여 모든 것이 플러그인입니다. Respan은 수많은 프로바이더와 기능을 하나의 게이트웨이에 패키징하는 대신, 작고 핵심적인 코어와 공개 인터페이스를 제공하여 팀들이 자신들의 애플리케이션에 필요한 AI 인프라를 조립할 수 있도록 합니다. 이런 방식으로 사용자는 게이트웨이의 코어를 변경할 필요 없이 추가 플러그인으로 자체 기능을 구축할 수 있습니다.
여기 비디오 데모가 있습니다:
수많은 LLM 게이트웨이가 존재하며, 대부분은 공통적인 문제, 즉 단일 엔드포인트에서 다양한 프로바이더를 호출하는 문제를 해결합니다. 하지만 새로운 기능을 추가하는 것이 엄청나게 어려워질 수 있습니다. 그래서 개발자들은 특정 문제를 해결하기 위해 또 다른 게이트웨이를 구축하게 됩니다.
저희는 2024년부터 LiteLLM을 기반으로 게이트웨이를 구축해 왔으며, 현재 수천 개의 조직에 서비스를 제공하고 있습니다. 각 조직은 서로 다른 API 키 설정, 라우트, 제한 사항이 필요합니다. 이를 지원하기 위해 저희는 LiteLLM을 계속 감싸고(wrapping), 더 많은 기능을 추가했으며, 한 단계에서는 저희의 래퍼 코드가 10만 줄을 초과했습니다.
지난 1월에 진행된 루틴한 LiteLLM 업그레이드 과정에서 간헐적인 연결 오류가 발생했고, 저희는 롤백해야 했습니다. 아직 원인을 파악하지 못했지만, 그 이후로는 더 이상 LiteLLM을 직접 업그레이드하지 않고 대신 상위(upstream) 수정 사항들을 수동으로 백포팅(backport)하고 있습니다. 이러한 경험들은 LiteLLM을 계속 패치하는 것이 지속 가능한 장기적 해결책이 아님을 깨닫게 했고, 저희는 게이트웨이를 자체적으로 재설계해야 했습니다.
게이트웨이를 재설계하면서, 기존 기능을 망가뜨리지 않으면서 기능을 추가하기 쉽게 만들고 싶었습니다. Nginx에서 영감을 받아, AI 게이트웨이는 이벤트를 디스패치하는 역할에만 집중하는 정말 작은 코어(small core)를 가져야 한다고 생각합니다.
우리는 OpenAI, Anthropic, Gemini와 같은 제공업체(provider), 채팅, 실시간 음성, MCP와 같은 프로토콜(protocol), 이미지, 비디오와 같은 모달리티(modality)를 포함하여 모든 것이 게이트웨이 내 플러그인이어야 한다고 믿습니다. 나아가, 개발자들이 핵심 코드를 건드리지 않고도 자신만의 플러그인을 추가하여 게이트웨이의 기능을 쉽게 확장할 수 있기를 바랍니다. 제공업체를 추가하는 것은 심지어 자체 제작한 것이라도 매우 간단합니다. 왜냐하면 특이점(quirks) 역시 플러그인이기 때문이며, 여기에는 마법 같은 것이 없기 때문입니다. 제공업체는 짧은 파일로 구성되며, Mistral의 경우 22줄에 불과하고, Groq가 토큰 사용량을 별도의 필드에 기록하는 것과 같은 각 특이점(quirk)은 자체 테스트를 거칩니다.
Respan Gateway는 단순히 OpenAI SDK를 통해 Claude나 Gemini 모델을 호출할 수 있게 하는 것을 넘어섭니다. 이는 도구(tools), 이미지, 그리고 추론 프로토콜(reasoning protocols)을 자동으로 처리합니다. OpenAI Realtime API 기반의 애플리케이션은 게이트웨이를 통해 Gemini Live를 사용할 수도 있지만, 모든 기능이 변환되는 것은 아닙니다. 간단한 채팅 앱도 자체적으로 MCP를 구현할 필요 없이 게이트웨이에 구성된 MCP 도구를 사용할 수 있습니다.
또한 우리는 요청을 공유 구조(shared structure)로 파싱합니다. 클라이언트와 제공업체가 동일한 API를 사용하더라도, 우리의 공유 구조에 해당 필드가 없더라도 제공업체별 특정 필드(provider-specific fields)는 네이티브 형식으로 보존됩니다. 따라서 게이트웨이는 이들을 버리는 대신 다시 작성할 수 있습니다.
작동 방식은 다음과 같습니다:
어댑터(adapter)는 각 HTTP 또는 WebSocket 연결을 인식하는 첫 번째 클라이언트 형식에 전달합니다. 이 형식은 요청을 유형화된 입력 및 출력 이벤트의 양방향 스트림으로 노출합니다. 코어는 플러그인을 등록 순서대로 실행하여, 플러그인이 제공업체를 선택하거나, 해당 스트림 중 하나를 필터링/래핑하거나, 추가 호출을 수행하거나, 응답을 반환하거나, 요청을 거부할 수 있도록 합니다. 이후 제공업체 형식이 상위(upstream) 연결을 엽니다.
클라이언트와 제공업체가 동일한 형식을 사용하고 플러그인이 페이로드를 변경하지 않으면, 원본 바이트 및 프로토콜별 필드는 변경 없이 통과할 수 있습니다. 형식이 다를 경우, 메시지, 도구 호출(tool calls), 결과(results), 스트림(streams), 사용량(usage)을 위해 공유된 타입을 통해 변환됩니다. 이 스트림 모델은 일회성 HTTP 요청과 장기간 지속되는 양방향 세션 모두를 표현할 수 있습니다.
이 게이트웨이는 MIT 또는 Apache-2.0 라이선스 하에 https://github.com/respanai/respan-gateway에서 오픈 소스로 공개되었습니다. Respan의 호스팅 플랫폼을 사용할 필요 없이 로컬 머신에서 직접 실행할 수 있습니다. 소스에서 빌드하고, 제공업체 키를 추가한 다음, 지원되는 클라이언트에서 기본 URL만 교체하면 됩니다. 기존 클라이언트가 사용하는 API를 계속 사용할 수 있습니다. 아직 프리-알파(pre-alpha) 단계입니다.
저희는 호스팅 플랫폼(https://www.respan.ai/pricing)을 통해 수익을 창출하며, 여기서는 네이티브 관찰 가능성(observability) 및 평가(evals), 그리고 통합 청구 기능을 제공하며 게이트웨이를 실행합니다.
에이전트를 위해 라우팅(routing), 도구(tools), 필터링(filtering), 관찰 가능성 또는 보안을 구축하고 계시다면, 이를 플러그인으로 만들어 주시면 감사하겠습니다. 저장소의 PLUGINS.md에서 작성 방법을 설명하며 현재까지 제작된 플러그인 링크도 제공합니다. 이것을 생태계로 만드는 것이 기본적으로 저희의 로드맵이며, 여러분이 직접 플러그인을 기여해 주시기를 환영합니다. 질문에 답변하고 피드백을 듣기를 기대합니다!