NVIDIA-NeMo/Switchyard
Rust0 / 0
OpenAI·Anthropic API 호환성을 유지하며 여러 LLM provider와 모델 사이의 요청을 Rust로 라우팅하는 pre-alpha proxy·library입니다.
TL;DR
Switchyard는 Rust로 작성한 LLM traffic proxy이자 library-SDK로, OpenAI와 Anthropic API 형식을 변환하면서 여러 model provider로 요청을 라우팅합니다. `switchyard-server`는 standalone proxy로 동작하고, `switchyard-libsy`는 라우팅 결정만 기존 Rust gateway나 agent runtime에 임베드하며, launcher는 Claude Code·Codex CLI·OpenClaw를 연결합니다. Random, LLM classifier, stage router, escalation router를 통해 A/B 테스트, weak·strong tier 선택, signal 기반 분배를 구성하고 Prometheus metrics로 운영 지표를 수집합니다. pre-alpha이고 production 사용 금지 경고가 있으므로 실험·개발 환경에는 적합하지만 안정성이 중요한 실서비스 도입에는 적합하지 않습니다.
핵심 포인트
- Rust 기반의 standalone proxy이면서 `switchyard-libsy`와 `switchyard-protocol`을 제공하는 library-SDK입니다. Claude Code, Codex CLI, OpenClaw를 launcher로 연결하거나 `switchyard-server`를 별도 서버로 실행할 수 있습니다. 기존 Rust 애플리케이션에 라우팅 알고리즘만 임베드할 때는 자체 HTTP 스택을 소유하지 않는 library 경로가 적합합니다.
- OpenAI Chat Completions, OpenAI Responses, Anthropic Messages 형식을 서로 변환해 클라이언트의 native API 사용 방식을 유지합니다. 설정한 upstream의 provider-native 형식으로 요청을 전달한 뒤 응답과 streaming 데이터를 원래 클라이언트 형식으로 되돌립니다. vLLM, NVIDIA NIM, Ollama, OpenAI-compatible endpoint를 coding agent 뒤에 연결할 때 호환성 작업을 줄일 수 있습니다.
- `random`, LLM classifier, stage router, escalation router, passthrough 방식으로 요청을 분배합니다. 요청 내용, 대화 중 tool result와 error 같은 signal, 약한 모델의 답변에 대한 judge 판정, 고정 트래픽 비율을 각각 라우팅 기준으로 사용할 수 있습니다. A/B 테스트와 cost 실험부터 weak·strong tier 간 선택까지 하나의 TOML route 설정으로 구성합니다.
- Prometheus metrics로 요청 수, 오류, 지연시간, token 수, routing overhead를 수집합니다. 다만 README는 pre-alpha이며 API와 알고리즘이 v1.0 이전에 크게 바뀔 수 있고 production 사용을 금지합니다. Rust 생태계에서 모델 gateway나 agent runtime을 직접 조립하려는 개발자에게는 후보가 되지만 안정적인 운영 프록시가 필요한 경우에는 보류하는 편이 안전합니다.
1.5k
Stars
127
Forks
+208
Trending
0
조회수
1.5k watchers84 open issuesApache License 2.0
관련 토론
아직 관련 토론이 없습니다.
댓글
댓글을 작성하려면 로그인이 필요합니다.