LLMProxy is an Elixir-native gateway that can run inside an application or as a standalone service. The project favors a focused execution and governance layer over a broad hosted AI platform.

Product boundary

In scope:

  • in-process, ReqLLM, SafeRPC, and HTTP execution through one provider boundary;
  • OpenAI and Anthropic protocol compatibility where clients need it;
  • public model aliases, provider routing, fallback, and circuit breakers;
  • API keys, model access, budgets, quotas, token pools, usage, cost, and traces;
  • deterministic cache and guardrail extension points;
  • service-owned admin surfaces through optional Incant integration;
  • local ownership of configuration and operational data.

Out of scope for the core package:

  • a hosted prompt-management or evaluation product;
  • bundled SSO, organization, or billing systems;
  • a general non-LLM reverse proxy;
  • provider-specific modules for services already supported through ReqLLM configuration;
  • semantic caching or a bundled policy engine;
  • MCP and agent gateway features without a concrete Elixir integration need.

Current priorities

Governance

  • Add per-model and future actor/team budget scopes without weakening the existing API-key boundary.
  • Add RPM, TPM, and concurrent-request limits to the composable limit model.
  • Improve cache-hit accounting and policy visibility.

Routing

  • Add latency-aware and least-busy strategies when enough runtime measurements exist to make them predictable.
  • Improve operator visibility into route eligibility, cooldowns, and circuit state.
  • Keep provider credentials isolated as routing configurations grow.

Observability

  • Extend spans around cache and guardrail hooks.
  • Add export hooks for external analytics without making them storage dependencies.
  • Improve feedback and trace workflows through the optional admin surface.

Operations

  • Keep standalone TOML intentionally narrow and secret-free.
  • Improve release migration, backup, restore, and drain ergonomics.
  • Preserve library mode as the default architectural constraint: no feature should require a network hop when an application embeds LLMProxy.