๐Ÿ‘ค Who is this for?

Data Engineer BI Developer Data Scientist Platform Owner โ€” This guide explains how AI and Copilot show up across Microsoft Fabric, what prerequisites matter, where the features help most, and which governance controls you should put in place before scaling usage.

Overview

AI in Fabric Overview

Fabric embeds AI across the analytics lifecycle โ€” from authoring and modeling to querying, automation, and conversational access to trusted business data.

In Microsoft Fabric, AI is not a separate sidecar experience bolted onto the platform. It is woven into the tools that teams already use: Power BI for semantic modeling and reporting, notebooks for code authoring, pipelines for orchestration, SQL experiences for warehousing, and Data Agents for natural-language question answering over governed data.

It helps to think about Fabric AI in two categories:

๐Ÿ’ก Operating model

Treat AI in Fabric as an accelerator for expert work, not a replacement for architecture, data modeling, governance, or testing. The best results come from strong semantic models, clear naming, good descriptions, and tightly scoped permissions.

๐Ÿ“Š Copilot for Power BI

Natural language to visuals, narrative summaries, report page suggestions, and DAX assistance over semantic models.

๐Ÿ““ Copilot for Notebooks

Generate and explain PySpark or Python code, troubleshoot errors, and iterate faster inside notebook chat.

๐Ÿ”„ Copilot for Data Pipelines

Describe an orchestration flow in plain English and get a starting pipeline, activity suggestions, and expression help.

๐Ÿง  Copilot for SQL

Translate business questions into T-SQL, explain existing queries, and refine logic in warehouse authoring experiences.

๐Ÿค– Data Agents

Conversational agents that reason over curated Fabric data sources and return grounded answers for business users.

๐Ÿงฉ Skills for Fabric

Reusable SKILL.md instruction files that give AI coding tools Fabric-specific guidance. Authoring aid, not a runtime item.

Power BI

Copilot for Power BI

Use natural language to move faster from semantic model to insight, report draft, and executive-ready narrative.

What Copilot helps with

๐Ÿ—ฃ๏ธ Natural language to visuals

Ask for a chart, KPI, or comparison in business language and Copilot proposes visuals based on your model.

๐Ÿงฑ Report page generation

Copilot can draft an entire report page layout with relevant visuals, titles, and narrative framing for a scenario.

๐Ÿ“ Narrative summaries

Generate executive summaries that call out trends, anomalies, and key contributors in the current filter context.

โˆ‘ DAX generation

Get help creating or refining measures when you can describe the business logic more easily than writing DAX from scratch.

๐Ÿ“‹ Prerequisites

Copilot for Power BI requires a paid Fabric capacity (F2 or higher) or equivalent Premium entitlement, plus the relevant Copilot tenant/admin settings enabled. Availability and exact controls can evolve, so verify current requirements in Microsoft Learn before rollout.

Prepare your data for AI

Copilot quality is strongly tied to semantic model quality. Keep this page focused on the essentials, then use the full guide in Best Practices โ†’ Preparing Data for AI for implementation detail.

Prompts that usually work well

ScenarioPromptWhy it works
Executive overviewBuild a page that explains revenue, margin, and YoY growth for the last 12 months.Clear metrics + time window + business outcome.
Visual explorationShow a clustered bar chart of sales by product category with a trend line for profit margin.Specifies chart type, dimensions, and measures.
DAX assistanceCreate a measure for year-to-date sales that respects the fiscal calendar starting in July.Defines calculation goal and fiscal nuance.
Narrative summarySummarize the key drivers behind the drop in gross margin this quarter.Targets a specific business question, not a generic recap.
Follow-up analysisCompare the Northeast region to the company average and call out the biggest variance drivers.Gives Copilot a comparison target and output expectation.

Limitations to keep in mind

Notebooks

Copilot for Notebooks

Accelerate Spark and Python development by using Copilot as a coding partner inside Fabric notebooks.

Notebook Copilot is especially useful when you know the transformation you want but do not want to spend time writing boilerplate PySpark, fixing syntax, or documenting every step by hand. It can work across authoring, explanation, and debugging loops.

โšก Code generation

Generate PySpark or Python cells for ingestion, joins, aggregations, filtering, schema inspection, and Delta writes.

๐Ÿ“š Explanation & documentation

Ask Copilot to explain an existing cell, document a notebook section, or rewrite rough code into something more maintainable.

๐Ÿฉบ Error analysis

Paste an exception or point Copilot at a failed cell to get likely root causes and suggested fixes.

๐Ÿ’ฌ Iterative chat

Use the chat panel to refine a solution step by step instead of trying to generate an entire notebook in one prompt.

Best practices for better notebook results

Context awareness and cell behavior

Copilot can use the surrounding notebook context โ€” prior cells, variable names, dataframe references, and markdown explanations โ€” to generate more relevant code. It is particularly effective when your notebook has a clean narrative structure.

It can also help with IPython magic commands and notebook-specific behavior, such as working with %run, switching between Python and Spark SQL contexts, or explaining how a cell's output feeds the next step. Still, you should verify that generated magic commands and session assumptions match your Fabric runtime.

Example prompts for notebooks
Generate PySpark code to read the bronze_orders Delta table,
filter to the current month, and aggregate revenue by sales region.

Explain why this merge statement fails with a duplicate key error.

Add markdown documentation for this notebook section in a concise,
team-friendly style.

Refactor this cell so it writes a partitioned Delta table and includes
basic error handling.
Pipelines

Copilot for Data Pipelines

Turn orchestration ideas into a pipeline draft faster, then use Copilot to fill in expressions and common control-flow logic.

Where it helps most

๐Ÿšš Ingestion starter flows

Useful for building common patterns such as copy from source to lakehouse, then trigger a notebook or stored procedure.

๐Ÿ”€ Control flow

Helpful for If Condition, ForEach, parameter-driven branching, and dependency chains that are tedious to wire manually.

๐Ÿงฎ Dynamic content

One of the highest-value uses: generating expressions for dates, filenames, workspace parameters, and activity outputs.

Example prompts

Pipeline prompts
Create a pipeline that copies daily CSV files from ADLS into a bronze
lakehouse folder and then runs a notebook to convert them to Delta.

Generate a dynamic expression that writes files to /raw/year=YYYY/month=MM/day=DD.

Suggest activities to retry a failed API extract, log the error, and send
an alert if the retry count is exceeded.

Current limitations

SQL

Copilot for SQL / Data Warehouse

Use natural language to speed up T-SQL authoring and make warehouse development more approachable to non-SQL specialists.

Copilot for SQL is valuable when analysts or engineers understand the question they want answered but need help turning that requirement into valid T-SQL. It can also help explain legacy code, generate comments, and suggest improvements when a query is hard to maintain.

๐Ÿงพ Query generation

Describe the dataset, filters, and aggregation you need, and Copilot can draft a T-SQL query or view definition.

๐Ÿงญ Schema-aware suggestions

When object names and relationships are clear, Copilot can produce more grounded joins, filters, and grouping logic.

๐Ÿš€ Optimization ideas

Ask for recommendations around predicate pushdown, join shape, window functions, or simplified logic to improve readability and performance.

๐Ÿ’ฌ Explanation & comments

Useful for documenting stored procedures, explaining CTE-heavy queries, and making warehouse logic easier for teammates to support.

Where it works

These capabilities are most relevant in Fabric Warehouse and the SQL analytics endpoint, where teams author and review SQL over governed Fabric data.

Prompt patterns that work well

โš ๏ธ Review generated SQL

Copilot can accelerate authoring, but it does not understand every business rule automatically. Always verify join logic, cardinality assumptions, filtering semantics, and performance characteristics before promoting code.

Agents

Fabric Data Agents

Configurable, read-only conversational analytics over governed OneLake data — and the tuning layers that decide whether answers are trustworthy.

Release status — read carefully

The core data agent on the standard runtime is documented as generally available. However, Microsoft's Copilot/AI feature-state table still lists the Data Science row that contains "Data agent" as Preview, and many of the most interesting capabilities below (Copilot Studio, Foundry, M365 Copilot, SDK, MCP, service principal auth, visuals, code interpreter, schema object descriptions) each carry their own preview banner. Check the status of the specific capability you plan to depend on rather than the umbrella feature.

What a Data Agent actually is

A Fabric data agent is a first-class Fabric item (created via + New Item → Fabric data agent) that turns governed OneLake data into a plain-English Q&A experience. Behind the scenes it uses a Microsoft-managed Azure OpenAI Assistant plus natural-language-to-query engines — NL2SQL, NL2DAX, NL2KQL, NL2GQL and NL2Ontology — to translate a question into a query against the sources you selected.

⚠️ Strictly read-only — by design

Data agents maintain read-only connections and generate only read queries. They do not create, update, or delete data, and they don't trigger notebooks, anomaly detection jobs, or other action workflows. If you need an agent that acts, that's an Operations Agent, not a Data Agent.

The distinction versus Copilot matters: Copilot is preconfigured and assists you inside a Fabric tool. A data agent is a standalone artifact you configure, publish, share, version in Git, and promote through deployment pipelines.

Supported data sources

An agent supports up to five data sources in any combination — five semantic models, or a mix of two semantic models, a lakehouse, and a KQL database. The current source catalog is broader than the older concept pages suggest:

CategoryArtifactsQuery languageSchema selection
SQLLakehouse, Warehouse, SQL Database, Mirrored Databases (Azure SQL, Cosmos DB, Snowflake)T-SQLTables, views, functions
EventhouseEventhouse KQL DatabaseKQLTables, materialized views, functions, shortcuts
Semantic ModelPower BI semantic modelsDAXTables / measures
Graph PreviewGraph modelGQLNot supported
Ontology PreviewFabric OntologyOntology-nativeNot supported
Azure AI Search PreviewAzure AI Search index (unstructured: PDFs, text)Natural language + searchn/a
💡 Shortcuts count

Shortcut-backed and externally shared tables are queryable in place — no copying data into the workspace, and OneLake external data sharing needs no extra auth configuration. This makes shortcuts a clean way to expose cross-domain data to an agent.

The four tuning layers — where answer quality is actually won

Most disappointing data agents are under-configured, not under-powered. Configuration is a layered model, and knowing which layer to fix is the core operating skill:

Your goalUse this layerNotes
Limit what the agent can query at allSchema selectionCheapest, highest-leverage control. Fewer objects = less ambiguity
Explain what one table or column meansSchema object descriptions PreviewRequires the preview runtime
Define business rules, joins, grain across objectsData source instructionsApplied when the agent routes to that source
Demonstrate the query pattern for a questionExample queriesFew-shot learning; validated against schema
Steer routing, terminology, and response styleAgent instructionsAgent-level; up to 15,000 characters

Microsoft publishes a recommended structure for agent instructions — use these headings verbatim as a starting template:

Agent instructions — recommended structure
## Objective
What this agent is for, and who asks it questions.

## Data sources
Which source answers which kind of question (this drives routing).

## Key terminology
Acronyms, KPI definitions, what "active customer" or "MAU" means.

## Response guidelines
Tone, level of detail, when to show numbers vs. narrative.

## Handling common topics
Recurring question shapes and how to treat them.

And for data source instructions, which feed the NL2X engine directly:

Data source instructions — recommended structure
## General knowledge
Authoritative tables, default filters, fiscal calendar, time zone rules.

## Table descriptions
Grain of each table (one row per order? per order line? per day?),
dedup rules, and join keys.

## When asked about
Map user terminology to stored values, e.g. "region" means
DimGeography.RegionName, and status "complete" means StatusCode = 'AP'.
✅ Write directives, not prohibitions

Microsoft's guidance is explicit: state what the agent should do. Use "Join EmployeeStatusFact to EmployeeDim on EmployeeID" rather than "Avoid joining employee tables incorrectly". Negative instructions give the query engine nothing to act on.

Example queries — the few-shot layer

Example question/query pairs are few-shot learning. At question time the agent retrieves the most relevant examples by vector similarity and passes the top few into the prompt (docs say three in one place and four in another). Key mechanics worth knowing:

🔧 The SDK has real example-query QA tooling

The Python SDK can grade your few-shot library. evaluate_few_shots() returns a success_rate plus success and failure cases, and a conflict detector flags examples that express the same intent but hit different tables or compute a metric with different granularity — complete with a confidence score. Each example is also scored on Clarity, Relatedness, and Mapping; an example is only high quality if all three are positive. Note this evaluation is SQL-only today.

Security model

👤 Runs as the user

Queries execute under the requesting user's Entra ID identity and their existing workspace and data permissions. Foundry integration uses On-Behalf-Of identity passthrough. No Azure OpenAI key or token to manage.

🔒 RLS and CLS hold

Row-Level and Column-Level Security are honored, including when the agent is consumed from M365 Copilot. Two users asking the same question can correctly get different answers.

🌐 Service principal is the exception

Service principal auth Preview makes the SPN the calling identity, so it needs read on every attached source. Managed identities aren't supported, and it doesn't work with KQL sources.

Microsoft documents an explicit precedence order when instructions conflict, highest to lowest: organizational intent (tenant policy) → role-based intent (workspace governance) → developer intent (your instructions and examples) → user intent (the prompt). Attempts to talk the agent out of read-only behavior are refused at a layer you don't control — which is the correct design.

Minimum permission per source type

SourceMinimum permission the end user needs
Power BI semantic modelRead — Build/Write not required, workspace access not required
LakehouseRead on the lakehouse item (plus table access if enforced)
WarehouseRead (SELECT on the relevant tables)
KQL databaseReader role on the database
OntologyRead on the ontology item and on the bound semantic model / lakehouse / KQL DB
Microsoft Graph in FabricRead on the graph item and the underlying data

If a user can open the agent but lacks permission on an underlying source, those queries fail with an authorization error or return empty results — a common and confusing support ticket. Note also that sharing an agent before publishing it means default-permission users can't query it at all.

⚠️ OneLake security enforcement is not documented

RLS and CLS enforcement is explicitly confirmed in Microsoft's docs. Enforcement of OneLake security roles by data agents is not stated anywhere official. Don't assume it — validate against your own data before exposing an agent to a broad audience.

Licensing, capacity, and tenant settings

⚠️ Cross-region queries simply fail

If the data source's workspace capacity is in a different region than the data agent's workspace capacity, the agent cannot execute the query. A lakehouse in North Europe will fail for an agent whose capacity is in France Central. Plan capacity placement before you build.

Consuming a published agent

SurfaceStateWhat to know
In Fabric (chat)CoreDraft vs published versions; run steps expose routing, retrieved examples, and the generated query. Visual responses Preview chart up to 200 rows
Copilot StudioPreviewAdded as a connected agent or as a tool. Needs an M365 Copilot license, same tenant and account
Microsoft FoundryPreviewAdded as a knowledge source via FabricTool. Only one data agent per Foundry agent
M365 Copilot / TeamsPreviewPublish to the Agent Store. Your publish description becomes the model-facing description and steers the orchestrator
Python SDKPreviewfabric-data-agent-sdk; also the home of few-shot evaluation
MCP serverPreviewExposes the agent as a single MCP tool; download mcp.json from Settings → Model Context Protocol
💡 Your publish description is a functional artifact

In M365 Copilot and MCP, the description you write at publish time becomes the machine-readable description that orchestrators use to decide when to call your agent. Treat it as code, not marketing copy. A documented trick: ask the agent to describe what it does, then refine that answer into the description.

Current limitations

Building one that actually works

  1. Scope narrowly. One high-value domain per agent. An "everything agent" routes badly and answers vaguely.
  2. Fix names before prompts. CustomerOrders and order_submission_date carry signal; Table1 and value do not. But don't rely on naming alone.
  3. Select the minimum schema. Exclude staging, archive, and unrelated domains. Every extra object is another wrong path the query engine can take.
  4. Declare grain and joins explicitly in data source instructions — one row per order, per order line, or per daily total changes every answer.
  5. Define terminology and encodings. Does the state column store "CA" or "California"? Is the flag 1/0 or Y/N? Is currency dollars or cents?
  6. Add examples only for hard patterns — multi-table joins, pre-aggregation, fiscal/relative dates, ranking and window functions. One reusable pattern per example; avoid overlapping or contradictory examples.
  7. Debug at the closest layer. Read the generated query in run steps, then fix in this order: schema selection → schema description → data source instructions → example query.
  8. Review before publishing — permissions, labels, and expected audience. Then version it in Git and promote via deployment pipelines.

Common use cases

📈 Self-service analytics

Let business users ask plain-language questions without browsing dozens of reports.

📬 Automated reporting

Generate recurring summaries for leadership using governed measures and approved data sources.

🏷️ Domain Q&A

Scenario-specific assistants: sales pipeline Q&A, inventory status, or finance variance analysis.

Reusable AI

Skills for Fabric

Reusable SKILL.md instruction files that teach AI coding tools your Fabric conventions - a developer productivity feature, not a Fabric workspace item.

What Skills for Fabric are

Skills for Fabric are reusable instruction files (SKILL.md) that teach AI coding tools how to work correctly with Fabric. They are not Fabric workspace items and they are not invoked at runtime from notebooks or pipelines. Instead, they give an AI assistant curated, Fabric-specific guidance so generated code follows the right patterns.

⚠️ Common confusion

Skills for Fabric are a developer productivity feature for AI coding tools. If you want a runtime, callable AI capability inside Fabric, look at Data Agents (read-only conversational analytics) or User Data Functions instead.

How they work

📜 Consistent Fabric code

Encode your team's notebook, pipeline, and deployment conventions so generated code matches house style.

🔧 API guidance

Point the assistant at the correct current Fabric REST and SDK patterns instead of outdated snippets.

👥 Onboarding

New engineers inherit institutional Fabric knowledge through the repository rather than tribal knowledge.

The main value is consistency: capture Fabric conventions once in version control, and every AI-assisted change in that repository benefits from them.

New

Agentic Fabric & What's New in AI

Fabric is shifting from "AI that helps you build" to "AI that can reason and act on your data estate" — here is the current landscape and its real release state.

Three distinct layers are emerging, and they are frequently confused. Getting the mental model right saves a lot of wasted design effort:

Copilot — assists you

Preconfigured, in-product help inside notebooks, pipelines, SQL, and Power BI. You stay in control; Copilot drafts.

Data Agents — answer questions

Artifacts you configure over governed sources. Conversational, shareable, embeddable — and strictly read-only.

Operations Agents — take action

Part of Fabric IQ. Reason over an ontology and can trigger workflows, which Data Agents deliberately cannot.

MCP: Fabric as a tool for any AI client

Model Context Protocol is becoming Fabric's standard integration surface for external AI clients — VS Code, GitHub Copilot, Claude, Foundry agents, and custom orchestrators. Rather than one monolithic endpoint, Microsoft is shipping several MCP servers, each scoped to a workload:

MCP serverStateWhat it exposes
Fabric Core / platform MCPPreviewWorkspace and item operations, plus grounded access to Fabric documentation for code generation
Data warehouse MCPPreviewSchema discovery and T-SQL querying against Warehouse and SQL analytics endpoints
Real-Time Intelligence MCPPreviewEventhouse/KQL exploration for agent-driven telemetry analysis
Data agent MCPPreviewPublishes one data agent as a single MCP tool via a downloadable mcp.json
Ontology MCPPreviewSemantic-layer reasoning over Fabric IQ ontologies
🎯 The architectural takeaway

MCP changes where your governance has to live. Once an external client can call Fabric tools, your guardrails must be enforced in Fabric permissions, RLS/CLS, sensitivity labels, and Purview policy — not in the client application. Design assuming the calling app is untrusted.

Recent and emerging capabilities

CapabilityStateWhy it matters
Data source routing for multi-source agentsGAThe agent picks which of its (up to five) sources answers a question. Your agent instructions are the main lever over this decision
Operations Agents in Fabric IQGAOntology-grounded agents that can act, not just answer
Plan in Fabric IQGAScenario modeling and planning on top of the semantic layer
Code interpreter tool for data agentsPreviewAdds Python execution so agents can go beyond retrieval into analysis
Visual responses in data agent chatPreviewCharts results directly in the conversation, up to 200 rows
Build an agent with AIPreviewBootstraps instructions and example queries from your schema instead of a blank page
Schema object descriptionsPreviewPer-table and per-column meaning; requires the preview runtime
Service principal authenticationPreviewUnattended/app-driven consumption. No managed identities; not supported for KQL
AI functions in WarehousePreviewLLM operations (summarize, classify, extract) invoked from T-SQL
Skills for FabricOpen sourceReusable SKILL.md instruction files that teach coding agents Fabric patterns — see the section above
⚠️ Preview means preview

Most of the interesting surface area above is in preview: no SLA, behavior can change, and it should not sit on a critical production path. Microsoft's own release-state pages are occasionally inconsistent between the concept page and the Copilot feature-state table — verify the status of the specific capability in the Fabric admin portal and the release plan before you commit an architecture to it.

How to adopt this without regret

  1. Invest in the semantic layer first. Agents amplify whatever quality your model already has. Clear names, documented grain, certified measures, and endorsements pay off far more than prompt tinkering.
  2. Start read-only. Prove value with Data Agents before granting anything the ability to act.
  3. Pick one domain and one audience for your first agent, and measure answer accuracy against a fixed question set before widening access.
  4. Set governance before scale — tenant settings, cross-geo choices, sensitivity labels, Purview DLP, and capacity region alignment.
  5. Treat instructions and example queries as code. Version them in Git, review changes, and promote through deployment pipelines like any other Fabric item.
Governance

AI Governance & Security

Roll out Copilot and other AI features with the same rigor you apply to workspace access, information protection, and production change control.

๐Ÿ” Core boundary

Fabric Copilot and related AI experiences operate within your organization's security boundaries. Data remains within your tenant and responses are constrained by the user's existing permissions, labels, and governed access path.

๐Ÿ›ก๏ธ Data boundaries

Use AI only after you are confident that workspace access, model permissions, and downstream sharing are already correct.

๐Ÿท๏ธ Information protection

Apply sensitivity labels and DLP strategy first so AI experiences inherit the right guardrails from day one.

๐ŸŽ›๏ธ Administrative control

Enable features deliberately, starting with a pilot capacity or a curated set of workspaces before scaling to the whole tenant.

๐Ÿ“‹ Responsible AI

Train users to treat AI output as draft analysis: useful, fast, and often insightful โ€” but still subject to review and validation.

For deeper guidance on protection controls, labeling, audit, and defense-in-depth architecture, see the full Security guide.

Checklist

AI Readiness Checklist

A practical rollout checklist for making Copilot useful, trusted, and supportable in production.

1. Enable Copilot in the admin portal

Review tenant settings, pilot scope, and support expectations before turning the feature on broadly.

2. Ensure F2+ capacity

Confirm the workspace and Power BI experiences that need Copilot are on supported paid capacity.

3. Optimize semantic models

Use good naming, descriptions, AI data schema curation, and clean business-friendly measures.

4. Add AI instructions

Document business terminology, calculation rules, fiscal calendar assumptions, and preferred metrics.

5. Set up verified answers

Curate trusted responses for critical business questions that executives and frontline teams ask repeatedly.

6. Train your team

Show authors what Copilot is good at, where it struggles, and why review discipline is still required.

7. Establish governance policies

Define who can enable AI features, which workspaces are in scope, and how sensitive data is handled.

8. Monitor audit logs

Track usage, investigate issues, and use audit evidence to improve both governance and end-user training.

Quick self-check

Resources

Resources

Official documentation and next-step reading for AI and Copilot across Microsoft Fabric.

Recommended companion pages in this guide