Weave Router의 핵심 기능과 성능 지표

Weave가 Anthropic, OpenAI, Gemini의 모델들을 단일 엔드포인트로 통합해 요청마다 최적의 모델을 선택해주는 스마트 모델 라우터를 공개했다. 이 도구는 기존의 프롬프트 기반 라우팅 방식이 아니라, 로컬에 설치되는 소형 임베더(tiny on-box embedder)를 사용해 모델을 결정한다.

가장 먼저 확인되는 수치는 지연시간과 비용 절감률이다. 모델 라우팅에 소요되는 시간은 50ms 미만으로 설계되었으며, 이를 통해 전체 LLM 운영 비용을 40~70%까지 낮출 수 있다고 밝혔다. 지원 대상은 Claude Code, Codex(OpenAI CLI), opencode, Cursor 등 주요 AI 개발 도구와 자체 구축 앱이다.

설치 방식은 두 가지로 나뉜다. Docker나 Postgres 설치 없이 단일 명령어로 실행하는 호스팅 버전과, 로컬 환경(localhost:8080)에서 라우터와 대시보드를 직접 운영하는 셀프 호스팅 버전이다. 셀프 호스팅을 위해서는 Node.js 18 버전 이상이 필요하며, Claude Code와 opencode 경로를 사용할 경우 `jq` 라이브러리가 추가로 요구된다.

임베더 기반 라우팅 메커니즘과 API 구조

Weave Router의 작동 방식은 'Avengers-Pro'라고 불리는 연구(arXiv:2508.12631, Beyond GPT-5: Making LLMs Cheaper and Better via Performance–Efficiency Optimized Routing)에 기반한다. 일반적인 라우터가 LLM에게 어떤 모델을 쓸지 묻는 '프롬프트 기반' 방식을 사용하는 것과 달리, 이 시스템은 입력값의 벡터를 처리하는 소형 임베더를 통해 효율성과 성능이 최적화된 모델로 요청을 보낸다.

API 수준에서는 기존 도구들의 설정을 최소한으로 변경하는 프록시 구조를 취한다. 라우터는 Anthropic Messages API를 네이티브하게 지원하므로, opencode와 같은 도구는 수정 없이 그대로 작동한다. 통신 과정에서 인증은 `X-Weave-Router-Key`라는 HTTP 헤더를 통해 처리되며, 기존의 `OPENAI_API_KEY` 등은 계획 기반 패스스루(plan-based passthrough)를 통해 `api.openai.com`으로 전달된다.

사용자는 `http://localhost:8080/v1` 엔드포인트를 통해 모델에 접근하며, 관리자 대시보드는 `http://localhost:8080/ui/`에서 제공된다. 이러한 구조는 개발자가 개별 모델의 API를 일일이 호출하는 대신, 라우터라는 단일 계층을 통해 인프라를 제어하게 만든다.

도구별 구현 방법 및 실무 적용 변화

개발자가 실무에 도입할 때 가장 크게 바뀌는 점은 각 도구의 설정 파일 수정 방식이다. Weave Router는 도구별 전용 설치 명령어를 통해 설정 파일을 자동으로 패치한다.

Codex(OpenAI CLI)의 경우, `npx @workweave/router --codex` 명령어를 실행하면 `~/.codex/config.toml` 또는 프로젝트 경로의 설정 파일에 `[model_providers.weave]` 블록이 추가되고 `model_provider = "weave"`로 설정값이 변경된다. opencode는 `~/.config/opencode/opencode.json`에 `provider.weave` 항목이 병합되는 방식으로 동작한다.

Cursor의 경우 설정 메뉴에서 직접 변경해야 한다. `Settings → Models → Override OpenAI Base URL` 항목에 `http://localhost:8080/v1`을 입력하고, API 키 란에 `rk_...`로 시작하는 라우터 키를 입력하는 방식이다.

운영 중 라우팅을 일시적으로 중단하고 원래의 제공자로 되돌리려면 다음과 같은 명령어를 사용한다.

bash
npx @workweave/router off --claude
npx @workweave/router off --codex
npx @workweave/router off --opencode

Claude Code 사용자는 슬래시 명령어인 `/router-off`, `/router-on`, `/router-status`를 통해 실시간으로 라우팅 상태를 제어하고 확인할 수 있다. 이는 개발자가 성능 저하나 예외 상황 발생 시 코드 수정 없이 즉시 기본 API 경로로 복구할 수 있는 제어권을 제공한다.