Product architecture

What the product is made of

Nine components, one job each. What an AI agent records about its own work goes in at one end, and a causal graph of why it behaved that way comes out at the other. This is the product a customer runs.

Deliberately left out: the demo storefront and the tools that generate test traffic for it. They produce realistic data for local demos and automated tests, and are not part of what ships. The Wiring page shows that full picture.
INPUT — CUSTOMER'S OWN AGENT STORAGE STANDALONE — LLM JUDGES SURFACE Customer's agentic workflow OTel SDK or their own Collector — not part of CausalAgent — OTLP · gRPC :4317 / HTTP :4318 variable-extractor the actual product boundary allowlist extraction · PII blocklist · schema-driven ClickHouse variable rows · graphs read by causal-engine Redis stream buffer / cache also read live by api causal-engine PC · FCI · PCMCI+ · DAGMA-DCE · LiNGAM BF-BIC/BOSS · KSG · Transfer Entropy DoWhy + EconML for effect sizes edge-quality graded, not just discovered api :8000 orchestrates engine + storage + extractor Dashboard React + D3 · human MCP / external agents programmatic, outside CausalAgent beside the customer's agent — privacy-preserving, verdict only hallucination-judge :8091 groundedness-judge :8092
The dotted line matters: the two judges are separate from the rest. They run next to the customer's own agent, score each prompt and reply on that machine, and send out only the verdict, never the text. The verdict travels with the agent's own traces, so it still reaches Auga as data without the judges ever connecting to it.

Also not drawn: the API checks the databases and the extractor directly for live status, not only through the causal engine. The diagram leaves that out to keep the one path that matters, discovery, readable.

The nine components

What each one is for, and the one thing it depends on.

ServiceWhat it does
variable-extractorThe only way data gets in. It keeps only the fields a schema lists, and blocks personal data before anything is stored.
clickhouseThe database. It holds every extracted variable and every graph Auga discovers.
redisA buffer between extraction and storage, and a fast cache for the API.
causal-engineFinds the causal graph. It reads only the database, chooses among ten discovery and estimation methods, and grades every link before it is trusted.
apiThe only public entry point. It coordinates the services behind it, and nothing outside talks to them directly.
dashboardThe screen people use. It gets everything it shows from the API.
hallucination-judgeRuns on its own. It checks whether an AI answer is unsupported, and only its verdict leaves the container.
groundedness-judgeRuns on its own, like the other judge. It checks whether an answer comes from the documents the agent looked up.
MCP / external agentsNot one of Auga's services. Any program that uses the API, alongside the dashboard.
Default MixtureInter 200/300 · Source Sans 3 · line 1.1 · Auga Pro
Source Serif 4Source Sans 3
Plus Jakarta SansIBM Plex Sans
IBM Plex SerifIBM Plex Sans
Young SerifManrope
JostDM Sans
NewsreaderPublic Sans
FrauncesWork Sans
ManropeInter
InterInter
SoraIBM Plex Sans
IBM Plex MonoIBM Plex Sans