You hold
Model keys. Model invoices. The repo. The agent config.
Architecture
The plane sits in front of the vendor API. It does not live inside the model and it does not rewrite the answer.
Incoming code is parsed into an abstract syntax tree and reduced to a 64-bit structural hash. Comments and whitespace do not create a new key. Two infinite loops that differ only in wording still match. A Redis hit returns the prior completion and sets cache_hit to true.
| Layer | Job | State |
|---|---|---|
| FastAPI gateway | OpenAI-compatible listener | Live |
| Tenant ledger | Key, tier, loop pool, active flag | Live |
| AST engine | Structural fingerprint | Live |
| Redis | Hash cache and per-minute counters | Live |
| Token firewall | Logit bias on GPT after a known trap | Live |
| Process sandbox | Default probe on the public API host | Live |
| Firecracker overlay | Same 150 ms contract, in a microVM when the host exposes KVM | Ready in code · used when KVM is present |
| BYOK forward | OpenAI and Anthropic | Live |
| Gemini forward | Same header pattern | Next |
api.reacontrolplane.com uses the process sandbox until that host exposes /dev/kvm. Health stays 1.4.8-prod either way.Repeats of the same failing structure are fast because the model is not called. First-seen failures still pay sandbox time plus the model. Local models do not infer faster because of REA — they get the same timeout and cache contract.
Model keys. Model invoices. The repo. The agent config.
The REA key, loop budget, cache, and timeout policy. Not card numbers. Not a fallback vendor key for customer traffic.