Skip to content

§01 · Open source · AI agent infrastructure

The control plane for agents that call LLMs in production.

Intercept every model request. Validate tenant identity. Enforce policy. Prepare memory context — at the proxy, not in application glue code.

~/ibex — zshv0.1
# bring up the phase-1 stack
$ git clone https://github.com/Rick1330/ibex-harness.git
$ cd ibex-harness && make up
 
ibex-proxy | listening on :8080
ibex-auth | grpc on :50051
postgres | ready for connections
redis | ready ✓
 
$ curl -s localhost:8080/v1/models
p99 · 18ms · trace 7f3a…c21
operational
make up

§02 · CAPABILITIES

Built for agents that cannot afford silent failure.

One ingress. Every model request inspected, authorized, and traced before it leaves your perimeter.

  • [01] INGRESS_PROXY

    OpenAI-compatible proxy

    Drop-in ingress for chat completions. Validate agents and org scope on every request before traffic reaches your model provider.

  • [02] TENANT_AUTH

    Tenant auth + rate limits

    gRPC auth validation, per-org Redis sliding windows, and defense-in-depth isolation so agents cannot cross tenant boundaries.

  • [03] MEMORY_PATH

    Memory-ready request path

    Phase 1 ships the proxy and auth foundation. Memory injection, context assembly, and drift detection land on the same ingress.

  • [04] TELEMETRY

    Observable by default

    Structured logs, Prometheus metrics, and OpenTelemetry traces across proxy boundaries — built for operators running agents at scale.

§03 · REQUEST PATH

Every LLM call passes through one gate.

Identity, policy, and tracing happen before the provider sees a token — one ingress, four decisive steps.

IBEX-PROXY — REQUEST TRACElive
# inbound request
$ POST /v1/chat/completions
X-IBEX-Agent-ID: 7f3a9c21-…
Authorization: Bearer ibex_…
 
# pipeline
auth.ValidateAgent (gRPC) 2.1ms
ratelimit.Check (Redis) 0.8ms
proxy.forward (upstream) 12.4ms
✓ status 200 · duration 17.4ms
trace_id 7f3a…c21 · 17.4ms
  1. Step 1 of 4Agent request

    Your agent calls the proxy with OpenAI-compatible headers and an org-scoped token.

  2. Step 2 of 4Validate + limit

    Auth verifies the token and agent. Redis enforces per-org rate limits before work continues.

  3. Step 3 of 4Assemble context

    Phase 2+ injects memory and directives on the same path — no glue code in your agent.

  4. Step 4 of 4Forward + trace

    The proxy forwards to your LLM provider and emits a full request trace for operators.

§04 · LOCAL STACK

Run the harness on your machine.

Clone the monorepo, apply migrations, and bring up the Phase 1 compose stack for proxy, auth, Postgres, and Redis. No hosted account required.

  • Proxy on :8080
  • Auth gRPC on :50051
  • Postgres with RLS — Redis for rate limits
  • Prometheus + OTel exporters wired
docker-compose.ymlcompose
# compose the phase-1 stack
$ make db-migrate && make db-seed
$ docker compose -f infra/compose/docker-compose.yml up
ibex-proxy | Listening on :8080
ibex-auth | grpc on :50051
postgres | ready for connections
redis | Ready to accept connections ✓
# Hit the proxy
$ curl -s localhost:8080/v1/models | jq .
make up · phase 1

P99 PROXY BUDGET

< 20ms

OPEN SOURCE LICENSE

MIT

TENANT ISOLATION MODEL

RLS

PROXY + AUTH SERVICES

Go

// READY WHEN YOU ARE

Put agent memory
at the proxy.

Read the docs, explore benchmarks, and follow the roadmap for memory and context assembly.