README.md

June 11, 2026 · View on GitHub

SMG Logo

Shepherd Model Gateway

Release Docker PyPI License Docs Discord Slack Ask DeepWiki PyTorch Blog

Engine-agnostic, high-performance model-routing gateway for large-scale LLM deployments. Centralizes worker lifecycle management, balances traffic across HTTP/gRPC/OpenAI-compatible backends, and provides enterprise-ready control over history storage, MCP tooling, and privacy-sensitive workflows.

SMG Architecture

Why SMG?

🚀 Maximize GPU UtilizationCache-aware routing understands your inference engine's KV cache state—whether vLLM, TensorRT-LLM, TokenSpeed, or SGLang—to reuse prefixes and reduce redundant computation.
🔌 One API, Any BackendRoute to self-hosted models (vLLM, TensorRT-LLM, TokenSpeed, SGLang) or cloud providers (OpenAI, Anthropic, Gemini, Bedrock, and more) through a single unified endpoint.
⚡ Built for SpeedNative Rust with gRPC pipelines, sub-millisecond routing decisions, and zero-copy tokenization. Circuit breakers and automatic failover keep things running.
🔒 Enterprise ControlMulti-tenant rate limiting with OIDC, WebAssembly plugins for custom logic, and a privacy boundary that keeps conversation history within your infrastructure.
📊 Full Observability40+ Prometheus metrics, OpenTelemetry tracing, and structured JSON logs with request correlation—know exactly what's happening at every layer.

API Coverage: OpenAI Chat/Completions/Embeddings, Responses API for agents, Anthropic Messages, and MCP tool execution.

Quick Start

Install — pick your preferred method:

# Docker
docker pull lightseekorg/smg:latest

# Python
pip install smg

# Rust
cargo install smg

Run — point SMG at your inference workers:

# Single worker
smg launch --worker-urls http://localhost:8000

# Multiple workers with cache-aware routing
smg launch --worker-urls http://gpu1:8000 http://gpu2:8000 --policy cache_aware

# With high availability mesh
smg launch --worker-urls http://gpu1:8000 --enable-mesh \
  --mesh-advertise-host 10.0.0.1 --mesh-peer-urls 10.0.0.2:39527

Use — send requests to the gateway:

curl http://localhost:30000/v1/chat/completions \
  -H "Content-Type: application/json" \
  -d '{"model": "llama3", "messages": [{"role": "user", "content": "Hello!"}]}'

That's it. SMG is now load-balancing requests across your workers.

Supported Backends

Self-HostedCloud Providers
vLLMOpenAI
TensorRT-LLMAnthropic
TokenSpeedGoogle Gemini
SGLangAWS Bedrock
OllamaAzure OpenAI
Any OpenAI-compatible serverAny OpenAI-compatible provider

Features

FeatureDescription
8 Routing Policiescache_aware, round_robin, power_of_two, consistent_hashing, prefix_hash, manual, random, bucket
gRPC PipelineNative gRPC with streaming, reasoning extraction, and tool call parsing
MCP IntegrationConnect external tool servers via Model Context Protocol
High AvailabilityMesh networking with SWIM protocol for multi-node deployments
Chat HistoryPluggable storage: PostgreSQL, Oracle, Redis, or in-memory
WASM PluginsExtend with custom WebAssembly logic
ResilienceCircuit breakers, retries with backoff, rate limiting

Documentation

Getting StartedInstallation and first steps
ArchitectureHow SMG works
ConfigurationCLI reference and options
API ReferenceOpenAI-compatible endpoints
Kubernetes SetupIn-cluster discovery and production setup

Contributing

We welcome contributions! See Contributing Guide for details.