- Weeks 1-2: Dashboard audit (actual usage, lineage, owners). Identify the top 20 recurring business questions not answered by current dashboards.
- Weeks 3-4: Build a minimal semantic catalog (dbt metrics + YAML docs) for those 20 topics. Version in Git. CI with dbt test + SQLMesh.
- Weeks 5-6: Agent prototype (LangGraph + Claude 4 Sonnet) on a read-replica. Tools: sql_generator (with catalog), chart_coder (Plotly), narrator. Eval set: 50 real questions + expected SQL/chart.
- Weeks 7-8: Human-in-the-loop in Teams/Slack. Feedback loop (thumbs up/down + NL correction). Metrics: faithfulness > 0.92, sql_ex_accuracy > 0.8
Data visualization with AI 2025: From passive dashboards to autonomous agents that decide
In 2018, when we published the first version of this article, the challenge was choosing the right tool to draw charts without knowing how to code. Datawrapper, Tableau Public, Raw, Infogram: the range was wide, the learning curve gentle and the goal, a legitimate one, was to “democratize visualization”.
Seven years later, the problem has mutated. Companies don’t need more charts; they need less noise and more decisions. According to Gartner 2025, 78% of corporate dashboards are consulted less than once a month. The cost is not in licensing Tableau or Power BI —which remain the standards— but in senior analysts’ time spent cleaning data, picking the right chart and writing conclusions nobody reads.
The paradigm shift: from passive BI to Agentic Analytics
The arrival of multimodal models (GPT-4o, Claude 4 Sonnet/Opus) and autonomous agent frameworks (LangGraph, CrewAI, AutoGen, MCP) has shifted the focus:
- On-demand visualization code generation: An analyst asks in natural language “show me the churn evolution by cohort and segment over the last 18 months with confidence intervals” and the agent writes the Python (Plotly, Altair, Observable) or SQL + Jinja for Superset/Metabase, runs it and returns the interactive chart.
- Auto-insight & narrative generation: The agent doesn’t just draw; it detects anomalies (trend breaks, multivariate outliers), quantifies the economic impact and writes the executive summary in the organization’s tone.
- Closed-loop actuation: Via MCP (Model Context Protocol), the agent can trigger actions: create a Jira ticket, alert on Slack/Teams, launch model retraining on Vertex AI or fire a workflow in n8n/Temporal.
At BAOSS we have moved from implementing dashboards to designing agentic analytics systems that cut time-to-insight from weeks to minutes.
Real anonymized case: Omnichannel retail — 1,200 stores, 14 TB/day
Problem 2024: The data team (12 people) spent 68% of their sprint maintaining 340 Power BI dashboards. Regional managers received static PDFs every Monday; by Wednesday they were obsolete. Restocking and promotion decisions were made with 5-7 days of latency.
BAOSS solution (Q1 2025):
- Hybrid RAG architecture on Snowflake + Pinecone: governed metric catalog (dbt + Data Contracts), embeddings of business definitions and column-level lineage.
- Multi-step LangGraph agent (planner → sql_generator → validator → chart_coder → narrator) orchestrated with MCP servers for GitLab (viz code versioning), Slack (human-in-the-loop) and ServiceNow (ticketing).
- Conversational UI in Teams (Bot Framework + Adaptive Cards) + React/Observable web portal for drill-down.
- Models: Claude 4 Opus for planning and narrative; GPT-4o for SQL/Plotly coding; Llama-3.1-70B-Instruct (vLLM/Ollama on-prem) for intent classification and PII masking.
Metrics at 6 months (real production):
KPI Baseline Post-AI Delta Time-to-insight (ad-hoc) 4.2 days 12 min -99.5% Dashboards maintained 340 47 (core KPIs) -86% Analysts on “data janitor work” 68% 12% -56 pp Stock decisions with data <24h 31% 89% +58 pp Project ROI — 3.2x Payback month 4 The secret wasn’t “buying Copilot”, but governing context: a versioned metric catalog, regression tests on generated SQL (SQLMesh + dbt unit tests) and human feedback loops (internal RLHF) to align narrative and business judgment.
Stack 2025-2026: What technologies winning teams use
Orchestration and agent layer
- LangGraph (production): cyclic state graphs, checkpointing, native human-in-the-loop. Ideal for multi-step pipelines with conditional branching.
- CrewAI (rapid prototyping): declarative roles/agents/tasks, good support for tools and shared memory.
- AutoGen 0.4+ (multi-agent collaboration): GroupChat patterns, SelectorGroupChat, executable code in sandboxed containers.
- MCP (Model Context Protocol): an emerging standard (Anthropic, Microsoft, JetBrains) for exposing tools, resources and prompts to any LLM client. At BAOSS we run internal MCP servers for: dbt catalog, GitLab, Jira, Confluence, feature store, feature flags.
Model layer: hybrid cloud + on-prem
- GPT-4o / GPT-4o-mini (Azure OpenAI): coding, function calling, vision for chart QA.
- Claude 4 Opus / Sonnet (AWS Bedrock / Anthropic API): long reasoning, narrative, planning.
- Llama 3.1 / 3.2 / Nemotron 3 Ultra (vLLM / Ollama / TGI) on own GPUs (H100/A100): classification, embedding, PII masking, fine-tuned SQL generation (Text-to-SQL Spider benchmark 89% EX).
- Embeddings: BGE-M3, NV-Embed-v2, text-embedding-3-large depending on latency/cost/quality.
Visualization and front-end layer
- Observable Framework / Plot / Plotly.js / Altair: reactive charts, versionable in Git, served statically (CDN) or embedded.
- Apache Superset / Preset / Metabase / Evidence.dev: headless BI for governed dashboards (core KPIs).
- Streamlit / Gradio / Chainlit / CopilotKit: fast conversational interfaces for agents.
Architecture patterns that work (and the ones that don’t)
✅ Pattern: Semantic Layer + RAG + Agentic Loop
The agent never writes raw SQL against physical tables. It queries the semantic catalog (dbt metrics, Cube, AtScale, or a homegrown layer), retrieves definitions via RAG (semantic chunking of YAML + documentation), generates SQL validated against contracts, executes on a read-replica, renders the chart, narrates. Every step has automated tests and an audit trail.
✅ Pattern: Human-in-the-loop as a feature, not a bug
The agent proposes, the analyst validates/edits in natural language (“change the Y axis to log scale and add the 4-week moving average”), the agent regenerates code and learns (preference tuning / DPO over traces). Perceived latency: under 8 seconds.
❌ Anti-pattern: “Text-to-SQL straight to production”
No governed catalog, no tests, no lineage. Join hallucinations, inconsistent metrics, omitted security filters. We’ve seen it fail at 3 clients before they came to BAOSS. Average cleanup cost: 4-6 sprints.
❌ Anti-pattern: One model for everything
Using GPT-4o to classify intent, generate SQL, draw the chart and narrate. Unnecessary cost/latency. Smart routing (small classifier → specialized model) saves 60-75% in tokens and cuts P95 latency from 14s to 3.2s.
Security, governance and cost: the fine print that decides go/no-go
- PII / Data residency: A lightweight classifier (fine-tuned Llama-3.2-3B, 40 ms on CPU) at the edge before anything goes to the cloud. Sensitive data → on-prem model (vLLM/Ollama).
- Metric-level RBAC: The semantic catalog carries policies (OPA/Rego) that the agent respects when generating SQL. The regional director only sees their own stores.
- LLM observability (Langfuse / Helicone / Arize / Phoenix): Full traces, automated evaluations (faithfulness, answer_relevance, sql_correctness), drift alerts.
- FinOps: Monthly budget per agent/user. The router falls back to a cheaper model when the threshold is exceeded. In the retail case: €0.18 per query on average (blended), 4,200 queries/month → €756/month vs €18,000/month in Power BI Premium licenses + 2 FTEs freed up.
How to start tomorrow (90-day roadmap)
- Weeks 1-2: Dashboard audit (actual usage, lineage, owners). Identify the top 20 recurring business questions not answered by current dashboards.
- Weeks 3-4: Build a minimal semantic catalog (dbt metrics + YAML docs) for those 20 topics. Version in Git. CI with dbt test + SQLMesh.
- Weeks 5-6: Agent prototype (LangGraph + Claude 4 Sonnet) on a read-replica. Tools: sql_generator (with catalog), chart_coder (Plotly), narrator. Eval set: 50 real questions + expected SQL/chart.
- Weeks 7-8: Human-in-the-loop in Teams/Slack. Feedback loop (thumbs up/down + NL correction). Metrics: faithfulness > 0.92, sql_ex_accuracy > 0.8
Prefer to talk to us directly? Contact the BAOSS team and tell us about your challenge.
Related articles: 10 Business Intelligence (BI) tools for your company / Dashboards: Data Presentation and Visualization.
