workweave/router
요약
Workweave Router는 Anthropic, OpenAI, Gemini 등 다양한 LLM을 단일 엔드포인트로 연결하는 드롭인 프록시입니다. 온박스 임베더를 통해 요청마다 최적의 모델을 자동으로 선택하며, Claude Code나 Cursor와 같은 도구와 쉽게 연동됩니다.
핵심 포인트
- 요청별 최적 모델 자동 라우팅 기능 제공
- Anthropic, OpenAI, Gemini 및 OSS 모델 지원
- BYOK 방식으로 API 키 보안 유지
- OTLP 트레이스를 통한 관측 가능성 지원
- npx 명령어로 간편한 설치 및 설정 가능
단 하나의 엔드포인트. 모든 모델. 언제나 최적의 모델.
Anthropic, OpenAI, Gemini를 위한 드롭인 (drop-in) 프록시로, 단순한 느낌(vibes) 기반의 프롬프트가 아닌, 온박스(on-box) 임베더를 사용하여 모든 요청에 대해 최적의 모델을 선택합니다.
Weave 제작: Robinhood, PostHog, Reducto 및 수백 개의 기업이 사랑하는 #1 엔지니어링 인텔리전스 플랫폼.
Claude Code, Codex, Cursor 또는 귀하의 앱을 localhost:8080으로 지정하세요.
router의 기능:
- 🎯
요청별 라우팅 (Routes per request). Avengers-Pro1에서 파생된 클러스터 스코어러(cluster scorer)가 매 턴마다 활성화된 제공업체 중에서 올바른 모델을 선택합니다. - 🔌
모든 API 지원. Anthropic Messages, OpenAI Chat Completions, Gemini 네이티브를 지원합니다. 스트리밍 (Streaming), 도구 (tools), 비전 (vision) 등 모든 기능을 포함합니다. - 🧠
OSS도 지원. OpenRouter을 통해 DeepSeek, Kimi, GLM, Qwen, Llama, Mistral (또는 모든 OpenAI 호환 엔드포인트)을 지원합니다. - 🔒
기본적으로 BYOK (Bring Your Own Key) 방식. 제공업체 키는 귀하의 로컬 환경(box)에 머물며, 저장 시 암호화됩니다. - 📊
관측 가능성 (Observable). OTLP 트레이스(traces)를 기본적으로 제공합니다. Weave 대시보드(http://localhost:8080/ui/dashboard)에서 확인하거나 Honeycomb, Datadog, Grafana 등에 연결할 수 있습니다.
가장 빠른 방법: 단 한 번의 명령으로 호스팅된 (hosted) Weave Router를 Claude Code, Codex 또는 opencode로 지정하세요. 클론(clone), Docker, Postgres가 필요 없습니다.
npx @workweave/router
그게 전부입니다. 설치 프로그램이 어떤 도구(Claude Code, Codex 또는 opencode)를 사용할지 묻고, 범위(사용자 vs 프로젝트)를 안내하며, 라우터 키를 가져와 올바른 설정 파일을 연결합니다. 다른 방식:
npx @workweave/router --claude # 선택 단계를 건너뛰고 Claude Code 실행
npx @workweave/router --codex # 선택 단계를 건너뛰고 OpenAI Codex CLI 실행
npx @workweave/router --opencode # 선택 단계를 건너뛰고 opencode 실행
...
Node ≥ 18 버전이 필요합니다 (Claude Code 및 opencode 경로는 jq도 필요합니다).
전체 플래그 참조: install/npm/README.md.
router(및 대시보드)를 귀하의 로컬 환경(box)에서 실행하려면:
# 1. 제공업체 키를 입력합니다. OpenRouter을 기본값으로 권장합니다.
echo "OPENROUTER_API_KEY=sk-or-v1-..." >> .env.local
# 2. :8080에서 Postgres + router를 부팅하고 rk_ 키를 시드합니다.
...
router는 http://localhost:8080에서 실행 중이며, 대시보드는 http://localhost:8080/ui/ (비밀번호: admin)에서 확인할 수 있고, rk_... 키는 로그에 출력됩니다.
# Anthropic처럼 호출하기
curl -sS http://localhost:8080/v1/messages \
-H "Authorization: Bearer rk_..." \
...
Claude Code. make install-cc를 실행하여 로컬 셀프 호스팅 (self-hosted) router에 Claude Code를 연결하세요 (이는 make full-setup 끝부분에서 자동으로 호출되기도 합니다). 호스팅된 router의 경우, 위에서 사용한 npx @workweave/router를 사용하세요.
Codex (OpenAI CLI). npx @workweave/router --codex는 ~/.codex/config.toml (또는 --scope project 옵션 사용 시 <repo>/.codex/config.toml)에 관리형 [model_providers.weave] 블록을 패치하고 model_provider = "weave"를 설정합니다. Codex의 기존 OPENAI_API_KEY는 플랜 기반 패스스루 (plan-based passthrough)를 위해 api.openai.com으로 전달되며, router 키는 X-Weave-Router-Key HTTP 헤더에 실려 전달됩니다. 재설치 시 관리형 블록만 다시 작성하며, --uninstall --codex를 사용하면 나머지 Codex 설정은 건드리지 않고 관리형 블록만 다시 작성하거나 제거합니다.
opencode. npx @workweave/router --opencode는 ~/.config/opencode/opencode.json (또는 --scope project 옵션 사용 시 <repo>/opencode.json)에 provider.weave 항목을 병합합니다. 이는 router의 /v1 엔드포인트를 가리키는 opencode의 번들된 @ai-sdk/anthropic 프로바이더를 사용합니다. router는 Anthropic Messages API를 네이티브로 지원하므로 opencode는 수정 없이 작동합니다. router 키와 identity 헤더는 프로바이더 설정과 함께 전달됩니다. 재설치 시 관리형 블록만 다시 작성하며, --uninstall --opencode는 이를 제거합니다.
Cursor (초기 베타 버전이며, 성능이 최적화되지 않았을 수 있습니다). Settings → Models → Override OpenAI Base URL → http://localhost:8080/v1로 설정하고, API 키로 rk_...를 붙여넣으세요.
켜기/끄기 (Switching on/off). 설치 후, npx @workweave/router off --claude (또는 --codex / --opencode)를 실행하면 router 설정을 삭제하지 않고 해당 클라이언트를 다시 원래의 프로바이더로 직접 라우팅합니다. on을 실행하면 다시 활성화되며, status
reports which way it's pointing. Claude Code 또한 /router-off , /router-on , 그리고 /router-status 슬래시 명령어 (slash commands)를 지원합니다. Cursor는 위에서 언급한 동일한 Settings → Models override를 통해 전환합니다. install/README.md를 참조하세요.
두 가지 키가 있으며, 혼동하지 마세요:
sk-or-... / sk-ant-... / sk-... = 귀하의 업스트림 프로바이더 (upstream provider) 키입니다. .env.local에 저장됩니다.
rk_... = 귀하의 라우터 키 (router key)입니다. 클라이언트는 이를 Bearer 토큰으로 전송합니다.
| 엔드포인트 (Endpoint) | 형식 (Format) |
|---|---|
POST /v1/messages | Anthropic Messages, 라우팅됨 |
POST /v1/chat/completions | OpenAI Chat Completions, 라우팅됨 |
POST /v1beta/models/:action | Gemini generateContent, 라우팅됨 |
POST /v1/route | 결정 사항을 반환하며, 업스트림 호출 없음 |
GET /v1/models · POST /v1/messages/count_tokens | Anthropic 패스스루 (passthrough) |
GET /health · GET /validate | 활성 상태 (liveness) + 키 확인 |
- 📐 설정 참조 (Configuration reference): 모든 환경 변수 (env var), BYOK 암호화, OTel 노브 (knobs), 클러스터 라우팅.
- 🛠️ 기여하기 (Contributing): 레이어링 규칙 (layering rules), 핫 리로드 개발 (hot-reload dev), 마이그레이션, 테스트, 전체 엔지니어링 루프.
- 🏗️ 아키텍처 (Architecture): 패키지 레이아웃, 임포트 계약 (import contracts), 엔드포인트 / 프로바이더 / 전략 추가를 위한 레시피.
각주 (Footnotes)
- Zhang, Y. et al. Beyond GPT-5: Making LLMs Cheaper and Better via Performance–Efficiency Optimized Routing(Avengers-Pro). arXiv:2508.12631, 2025. https://arxiv.org/abs/2508.12631 ↩
AI 자동 생성 콘텐츠
본 콘텐츠는 GitHub Trending Go (weekly)의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기