The problem

Most AI prototypes can't be trusted in production: they guess when unsure, act without approval, and can't explain or replay what they did.

What we built

A shared core (config, LLM client with retries and a cost ledger, adapter interfaces, Decimal-only record store, human review queue, eval kit) and three engines on it.

  1. RAG support bot

    Intent classification, role-filtered retrieval, a confidence gate on the retrieval score (not the model's self-reported confidence), cited answer or escalation, CRM drafts.

  2. Agent workflow backend

    YAML-declared steps (deterministic, typed-LLM, effect). An effect step never runs inline: it drafts and halts for approval. Any run can be reconstructed from storage alone.

  3. Document validation

    Model extraction with page and character provenance, then a pure-Python rule engine with zero model calls and a versioned, content-addressed report.

Engineering

  • Every model answer is a validated Pydantic schema or a typed error — never a best-effort parse.
  • Role filtering enforced twice; a store that silently ignores filters raises an error.
  • The approval queue refuses machine actors; tests enumerate the whole config schema to prove no setting lets an effect bypass review.
  • Deterministic replay proven after a simulated process restart.
  • Eval gates: 45 support-bot fixtures, 26 workflow fixtures, 33 document fixtures, with oracles that reject self-generated expectations.
  • 576 tests across the core, the three engines and the demo surface.
  • The demo discloses every stubbed component on screen (e.g. its retrieval runs on a hashing embedder rather than a production embedding model).