AhaInsights.
Foundations: Layers behind an agent your stakeholders can trust.
See the layers working on real data: the question travels the stack, and you watch the context do its job.
https://context-playground-33766633183.asia-south1.run.app/
Password: humans_at_play
Play with the data directly. Ask it things, break it, see where the gotchas show up.
https://ipl-ai-playground.streamlit.app/
Password: humans at work
Technically: It is an LLM with access to a set of data models and documentation Layers. Evaluated on every change.
Today - We learn what each layer achieves.
Every single question goes throug the whole stack.
If you take only one thing from this session, this is it.
When the answer is wrong, the layer tells you where the fix belongs.
A data model is a table that already holds the answer. We build it wide: dimensions and metrics in one table, already joined.
Each table covers one use case, and only that one.
It writes join syntax fine. It can't reliably decide the right join when relationships and grain aren't documented. A wrong key or an unnoticed one-to-many fan-out silently doubles your numbers.
Wide, pre-joined tables remove the decision. The join was made once, correctly, by someone who knew the grain.
Bonus: shorter queries, lower token use, and answers that come back closer to deterministic than you'd get otherwise. Not truly deterministic. Just far less room to drift.
One model per use case, shallow enough that the agent can reason about it without getting lost. The redundancy is deliberate, not sloppy. It has two costs, both managed:
A plain-text definition on top of each table. More than column names:
You don't hand-write these. Draft them from the queries plus business context, then correct what's wrong.
Data model = where the data lives. Semantic model = what it means. Context layer = how to act.
For any question: what exactly is being asked, which model answers it, what to clarify first, how to proceed when the answer takes several steps.
It has to be extensive. Which table for which use case, how to join the few that need it, what to answer, what to refuse. This is where most of the real work lives.
What the agent is, how to behave, which files to read for the real logic.
It holds no domain logic. No metric definitions, no table names, no business rules. The line: how the agent behaves belongs here; how the business is measured does not.
The payoff: change how the business is measured without ever touching the prompt.
Its shape is deliberate: each part exists so a person can trust the answer and act on it.
A fixed set of questions with answers you've already verified. Re-run the whole set every time you change the context.
Without evals, every change is a guess. This is where "analytics your stakeholders can trust" stops being a slogan.
Not failure modes to memorize. Things you write down so the agent stops getting them wrong.
Two tools. Access shared in the session.