← All Insights

Fabric Data Agents Keep Giving Wrong Answers — How Do You Actually Make Them Accurate?

9 min readGuildBuild Team
AI AgentsMicrosoft FabricData ModelingPower BI

Why Data Agents Get It Wrong

If your Fabric Data Agent keeps giving wrong or inconsistent answers, the fix almost never starts in the chat instructions box. It starts in the semantic model. A Data Agent is only as good as the data it's pointed at — a curated Power BI semantic model with defined measures, described columns, tight table scope, and a handful of example queries will out-perform a cleverly-worded prompt against raw lakehouse tables every time. Accuracy problems with Fabric Data Agents are, in the overwhelming majority of cases, a data-modeling problem wearing a prompt-engineering disguise.

Microsoft's own architecture explains most of the failure modes. A Fabric Data Agent doesn't "understand" your business — it uses an Azure OpenAI Assistant to pick a data source, then hands off to a natural-language-to-query tool (NL2SQL for lakehouses/warehouses, NL2DAX for Power BI semantic models, NL2KQL for KQL databases) that generates a query from whatever schema and metadata it can see (Fabric data agent creation). If the schema is ambiguous, the generated query will be confidently wrong, not visibly wrong — which is worse, because it looks like an answer.

Raw lakehouse tables instead of a semantic layer. The failure mode users actually see: they ask "what were sales last quarter" and get an answer built off whichever table or column the LLM guessed matched "sales" — which might be gross revenue, might be net of returns, might be a staging table that hasn't been deduplicated. Lakehouse and warehouse tables carry column names like TR_AMT or DIM_GEO_01 and no business context.

Missing or duplicate measure definitions. Semantic models often accumulate helper measures, intermediate calculations, and near-duplicate metrics (Total Sales, Sales Amount, Revenue) built for report interactivity, not for agent consumption. Microsoft's own semantic-model guidance calls this out directly: a user asking "what were our sales last quarter?" against a model with Total Revenue, Gross Sales, Net Sales, and Sales After Returns all in scope will get the AI's best guess — commonly the wrong one — because nothing tells the AI which "sales" measure the user intended.

Too many items in scope. Fabric currently caps a Data Agent at five data sources, and historically enforced hard limits on table/column counts per source. Community threads document the pain point directly: users hitting the ~25-item ceiling when trying to connect broader lakehouses or larger semantic models, and having to prune or split their configuration to keep the agent from silently ignoring relevant tables (Fabric Data Agent Limitations of 25 items).

Ambiguous date and fiscal logic. Most real models carry multiple date columns — order date, ship date, due date, calendar quarter versus fiscal quarter — and the agent has no built-in way to know which one your organization means by default. Ask "top performers last month" or "revenue this quarter" without that logic encoded somewhere, and you get a plausible-looking answer keyed to the wrong date field or the wrong quarter boundary.

Homonym and overloaded columns. The clearest documented example: a user asks "show me performance by territory," and because a Territory column exists on the Products table, the agent quietly interprets the question as product category rather than sales region — returning a coherent, wrong answer with no error message.

Context that doesn't survive the surface it's accessed from. A subtler failure users have reported: the same question gets a good answer through the Fabric chat UI and a wrong one through the SDK or an external orchestrator like Copilot Studio, because grounding metadata that the UI surfaces automatically doesn't always carry through every integration path (community thread). If you're embedding a Data Agent inside Copilot Studio, Teams, or a custom app, don't assume parity with the native chat experience — verify it.

The 25-row/25-column output cap. Every Data Agent response is capped at 25 rows and 25 columns by design — it's built for conversational insight, not full data extraction. Microsoft's documented limitations page is explicit that a follow-up like "show all rows for this year" still returns at most 25, and that prior turns can compound the truncation, which is why Microsoft recommends starting a fresh chat session rather than iterating on a truncated one (Fabric Data Agent Only Returns 25 Rows).

The Fix, in Priority Order

This is the order that actually moves accuracy — modeling before magic.

  1. Point the agent at curated semantic models with explicit measures, not raw tables. Build (or reuse) a Power BI semantic model with a proper star schema, explicit DAX measures for every metric you want questioned, and correct default summarization on numeric columns — implicit measures produce unpredictable aggregation. If you must use a lakehouse or warehouse source, at minimum select specific tables rather than exposing an entire database.
  2. Write descriptions and synonyms into the model — the agent reads model metadata, not your intentions. The DAX generation tool used for Power BI sources relies solely on the semantic model's own metadata and its Prep-for-AI configuration; instructions you add at the Data Agent level are explicitly ignored for DAX generation. Define an AI data schema that includes only the tables, columns, and measures relevant to the questions you expect, add descriptions to every object, rename cryptic fields to business language, and configure Verified Answers for your highest-stakes or most ambiguous questions.
  3. Scope tightly — fewer, better items beat broad coverage. Five data sources is the ceiling; use fewer if you can. Within each source, select only the tables the agent's intended questions actually need.
  4. Use AI instructions and example queries to encode business logic — at the right layer. Data Agent-level instructions should carry only cross-source guidance: routing rules, formatting preferences, common abbreviations, tone. Business logic specific to a semantic model — fiscal calendar definitions, which "sales" measure is canonical, date-field defaults — belongs in that model's own Prep for AI instructions. Example question/query pairs (up to 100 per non-semantic-model data source) are effectively few-shot examples; they're not currently supported for Power BI semantic model sources, so verified answers do that job there instead (Data Agent Example Queries).
  5. Build a test-question evaluation set and regression-test after every change. Microsoft ships a Python SDK specifically for this: define a ground-truth set of question/expected-answer pairs, run the Data Agent against it, and get back a structured comparison of actual versus expected responses (Evaluate your data agent). Treat this the way you'd treat a regression test suite for code: every time you touch the model, the AI data schema, or the instructions, re-run the set before calling it done.
  6. Roll out with human supervision — verify, then trust. For every response, inspect the generated DAX/SQL/KQL query, not just the final number. Establish an escalation path for sensitive or high-stakes questions rather than assuming the agent's read-only access makes wrong answers low-risk — a wrong number confidently delivered to a leadership meeting is a business problem regardless of who signs off. This is the same philosophy GuildBuild applies to every AI deployment: AI accelerates the work, humans own the outcome.

Where Things Stand in 2026

Two real improvements are worth noting, alongside what's still fragile.

Large data source support has genuinely expanded. Fabric's 2026 update removed the older, tighter caps that previously blocked Data Agents from connecting to sources with large numbers of tables or columns, extending practical support to considerably bigger lakehouses, warehouses, and semantic models than the original preview allowed (Expanded Data Agent Support for Large Data Sources). That's a real unlock for larger organizations, but it doesn't change the modeling advice above — a bigger allowed scope is still worse than a smaller, curated one if accuracy is the goal.

Fabric IQ and ontology-grounded agents point at where this is heading, and it's still preview. Microsoft's Fabric IQ workload — Ontology, Graph, Data Agent, and Operations Agent — reached general availability for several components at Build 2026, with Ontology itself still in preview. The premise is compelling: agents grounded in explicit entity types and relationships rather than raw tables reportedly produce meaningfully better responses with fewer tool calls (Fabric IQ: the semantic layer powering trusted AI agents at enterprise scale; What is Fabric IQ?). It's a serious direction, but new enough that we'd pilot it on a bounded, well-understood dataset before betting a production workflow on it.

The honest summary: Fabric Data Agents are a real capability, and Microsoft has clearly invested in making the grounding tools more capable through 2026. But none of it removes the underlying requirement — someone has to do the modeling work: clean measures, clear names, tight scope, and a test set that catches regressions before your team notices them in a client meeting.

How GuildBuild Helps

Wrong answers from a Data Agent are almost always a symptom of an underlying semantic model that was never built — or was built for reports, not for agents to query. That's modeling work, not prompt work, and it's exactly what GuildBuild does. If you're not sure whether your Power BI models are agent-ready, start with a Power BI Rescue Assessment to get a clear picture of your current model health before layering AI on top of it; if the models are solid and you're ready to design, test, and supervise the agent itself, our AI agents and workflow automation engagement covers the instruction design, example-query and verified-answer setup, and the evaluation-and-rollout discipline described above.

Citations & References

  1. Microsoft — Fabric Data Agent Creation (Concept)
  2. Microsoft — Semantic Model Best Practices for Data Agent
  3. Microsoft — Evaluate Your Data Agent
  4. Microsoft — Create a Fabric Data Agent
  5. Microsoft — Data Agent Example Queries
  6. Fabric Community — Expanded Data Agent Support for Large Data Sources
  7. Fabric Community — Fabric IQ: The Semantic Layer Powering Trusted AI Agents
  8. Microsoft — What Is Fabric IQ?
  9. Fabric Community — Fabric Data Agent Limitations of 25 Items
  10. Fabric Community — Fabric Data Agent Answers Wrongly Through SDK but Not Through UI
  11. Fabric Community — Fabric Data Agent Only Returns 25 Rows