Bulwark Gateway – fail-closed security proxy for LLM agents (self-hosted) Bulwark Gateway, a self-hosted fail-closed security proxy for LLM agents, intercepts and validates tool calls between users and LLM backends, blocking threats immediately with 400+ detection patterns and 4 threat intel feeds. The proxy adds less than 40ms overhead and supports multi-tenancy, streaming tool call buffering, and SIEM integration across 13 platforms. Security guardrail proxy for AI agents in cloud environments. Intercepts, validates, and enforces policies on tool calls between users and LLM agents. Designed for environments where the user is potentially adversarial fail-closed by default . Overview overview Architecture architecture Features features How It Compares how-it-compares Quick Start quick-start Configuration Summary configuration-summary Admin Portal admin-portal Documentation documentation Project Structure project-structure Development development License license Bulwark Gateway sits between your users/applications and your LLM backends OpenAI, Ollama, vLLM, Azure, etc. . Every request passes through multiple security layers before reaching the backend: Authentication — JWT/API key validation fail-closed Input Guardrail — Detects prompt injections, jailbreaks, encoding evasion IOC Check — Scans for malicious URLs/IPs/domains from threat intel feeds Tool Policy — RBAC enforcement per tenant/agent Output Filter — Redacts secrets/PII, detects indirect injection in responses Rate Limiter — Per-tenant request throttling via Redis If any layer detects a threat, the request is blocked immediately fail-closed . ┌──────────────────────────────────────────────┐ │ Bulwark Gateway │ │ │ User Request ─────► Auth ► Input Guardrail ► IOC Check │ X-Tenant-ID │ │ │ X-Agent-ID │ Agent Registry │ │ multi-backend │ │ │ │ │ Forward to backend │ │ │ │ │ Tool Policy ◄── Response ──► Output Filter │ └──────────────┼──────────────────────────────┘ │ ┌─────────────────────────┼─────────────────────────┐ ▼ ▼ ▼ Backend A RAG Backend B LLM Backend C Agent | Component | Port | Description | |---|---|---| Proxy | 8080 | Security hot path — intercepts all LLM requests | Admin Portal | 8090 | Web UI for configuration, monitoring, audit logs | Redis | 6379 | Rate limiting, state, session management | Prometheus | 9090 | Metrics collection | Grafana | 3000 | Dashboards and visualization | Full architecture details: docs/ARCHITECTURE.md Multi-tenant, multi-agent — Route requests to different backends per tenant/agent Zero-LLM hot path — Only regex + Pydantic + cache; p95 < 40ms overhead 400+ detection patterns — Prompt injection, jailbreak, encoding evasion, multilingual ES/ZH/AR 4 threat intel feeds — URLhaus, ThreatFox, AlienVault OTX, AbuseIPDB + MISP, OpenCTI, VirusTotal, Shodan Streaming tool call buffering — Tool calls validated BEFORE yielding to client Self-protection — Blocks agents from modifying gateway config Hot-reloadable — Policies, IOCs, and agent registry reload without restart Admin Portal — Full web UI for managing all aspects of the gateway SIEM integration — Export to 13 platforms Wazuh, Splunk, Elastic, QRadar, Datadog, etc. Notification channels — Slack, Teams, Discord, PagerDuty, Opsgenie, Telegram, Email, Google Chat Kubernetes-native — Full K8s manifests with NetworkPolicies, HPA, PDB, Pod Security Audit trail — Immutable log of all administrative changes Enterprise secrets — Vault, AWS SM, Azure KV, GCP SM, CyberArk, SealedSecrets Most LLM-security tools ship as a library/SDK you embed in your app code, or as a hosted SaaS you send your prompts to. Bulwark Gateway is a self-hosted, fail-closed proxy that sits in front of any OpenAI-compatible backend — no code changes in your app, no prompts leaving your network. | Capability | Bulwark Gateway | LLM-security SDKs LLM Guard, Guardrails AI, NeMo, Rebuff | Hosted SaaS Lakera, Prompt Security, etc. | |---|---|---|---| Deployment | Self-hosted proxy | Library in your app | Vendor cloud API call | Data leaves your network | No | No | Yes prompts sent to vendor | Code changes required | None drop-in proxy | Yes wrap every call | Yes SDK/API | Deterministic hot path | Yes — regex only, no LLM | Varies some call LLMs | Vendor-side opaque | Added latency | p95 < 40 ms in-cluster | Varies | Network round-trip to vendor | Multi-tenant / multi-agent routing | Built-in | No | Vendor-dependent | Tool-call / MCP RBAC | Yes per-agent policies | Rare | Vendor-dependent | Secret / PII output redaction | Yes | Some | Yes | SIEM export ECS / Wazuh / Splunk / … | Yes 13 platforms | No | Limited / vendor dashboard | Standalone scan API /v2/scan | Yes | N/A is the library | Yes is the API | Honest scope. Bulwark is a guardrail proxy , not a WAF and not a model-hosting platform. Classic SQLi/XSS on free-form chat input is not reliably matched by the input layer by design — those are enforced at the tool-argument layer where the payload actually reaches a DB/filesystem. See the published gap report /red-orbita/bulwark-gateway/blob/master/reports/blog-evidence/GAP-REPORT.md for exactly what it does and does not catch. The hot path is pure regex ~446 input + ~150 output patterns , so detection is fast and auditable but not a substitute for a semantic classifier on every edge case — ML scanners are available as an optional layer. Comparison reflects the common deployment model of each category; individual tools vary. Verify against each vendor's current capabilities. - Python 3.11+ - Docker 24+ - Kubernetes 1.28+ production or Docker Compose development - Redis 7+ Helm is the recommended path for managed clusters AKS/EKS/GKE . Build and push the images to your registry, then point the chart at them.