A unified Azure platform for creating and managing AI models, agents, and applications with built‑in enterprise security, monitoring, and governance
There is no published Microsoft latency benchmark guaranteeing a particular response time for Fabric data agents on F8, so isolate agent orchestration, generated-query execution, and capacity delay before considering a capacity upgrade.
A 10–20-second end-to-end response is plausible for this multi-stage pipeline, but it cannot be classified as either normal or an F8 limit from data size alone. Fabric supports data agents on F2 or higher, but that prerequisite is not a response-time SLA.^1^
Where the time is spent
For a semantic-model question, the documented flow includes:
- Azure OpenAI parses the question.
- The orchestrator selects a data source using schema information and instructions.
- The DAX generation tool examines model metadata, Prep for AI configuration, and conversation history.
- The generated DAX runs against the semantic model.
- The agent formats the result into a response.^2^
Ontology adds another interpretation and routing layer. It supplies entities, relationships, synonyms, mappings, and bindings; the agent then selects an underlying source and generates DAX, SQL, or KQL, while that underlying source performs the actual execution.^3^
Consequently, reducing the stored data from several megabytes to 1 MB does not remove planning, metadata processing, model inference, validation, or response-generation time. Complexity of the schema, measures, relationships, ambiguity, conversation history, and required reasoning can matter more than row volume.
Measure the bottleneck first
Run a controlled test with 10–20 representative questions, separating simple lookups from aggregations and multi-step questions.
- Open the data agent test experience and submit each question.
- Open its run steps.
- Record the selected source.
- Copy the generated DAX.
- Note whether the agent retried, refined, or performed multiple steps.
- Run the generated DAX directly against the semantic model using DAX Query View.
- Compare direct DAX duration with total agent duration:
- Fast DAX, slow agent: most latency is in orchestration, context selection, query generation, or response generation.
- Slow DAX: optimize the semantic model, measures, relationships, or storage path.
- Wrong source or unnecessary complexity: reduce ambiguity in ontology mappings, source descriptions, and schema scope.
The ontology run steps are specifically intended to expose the selected source, generated query, and source errors.^3^
Optimize the semantic-model path
Apply these changes in this order:
- In Power BI Desktop or Power BI service → Home → Prep data for AI → Simplify data schema, expose only the tables, columns, and measures needed by this agent.
- Select the same tables in the Fabric data agent.
- Remove unnecessary columns and measures from the AI-visible scope—not necessarily from the physical model.
- Use descriptive business names and descriptions for tables, columns, and measures.
- Add Verified Answers for common or expensive questions.
- Put semantic-model business terminology and query-generation guidance under Prep for AI → Add AI instructions.
The DAX generation tool relies on semantic-model metadata and Prep for AI and ignores data-agent-level instructions for DAX generation. Microsoft also states that a focused AI schema reduces ambiguity and response latency.^2^
This is particularly relevant to a 20-table model: 1 MB is small, but exposing all 20 tables and many overlapping fields still increases the metadata and routing search space.
Validate the ontology configuration
Ontology context is currently preview. For ontology-backed questions:
- Keep entity definitions, synonyms, relationships, mappings, and bindings precise.
- Remove duplicate or ambiguous business terms.
- Ensure each entity maps to the intended underlying source.
- Download the ontology context and check what the agent actually received.
- Refresh the context after changes.
A notable limitation is that Power BI semantic models do not support supplemental data-agent-specific context in this integration, and query generation might not use some ontology context.^3^
Determine whether F8 is contributing
Use the Fabric Capacity Metrics app and correlate timestamps with slow requests:
- CU utilization
- Interactive delay and rejection
- Concurrent workloads
- Semantic-model operations
- Refreshes, notebooks, pipelines, or other workloads sharing F8
If there is no interactive throttling at the relevant times, capacity throttling is not the cause; increasing the SKU might add concurrency headroom without materially reducing fixed LLM/orchestration latency. If interactive delay aligns with the tests, first isolate competing workloads, then test a temporary scale-up. Fabric recommends optimizing, scaling up, or scaling out when utilization and throttling establish capacity pressure.^4^
Test the preview runtime separately
For a semantic model and ontology, the preview runtime provides advanced DAX generation and improved ontology cross-source handling. Advanced DAX uses multiple reasoning steps, so it can improve complex-query accuracy and sometimes latency, but it is not guaranteed to make every request faster.^5^
A/B test standard and preview runtimes with the same questions, recording median and p95 latency plus answer correctness. Preview behavior can change between releases, so validate it before production adoption.
Practical conclusion
You have not established that F8 or the architecture has reached its performance limit. Meaningful improvement remains possible if latency comes from:
- oversized AI-visible schema;
- inefficient DAX or measures;
- ambiguous source selection or ontology mappings;
- multi-step retries;
- F8 contention or throttling.
If direct DAX is fast, capacity is unthrottled, the AI schema is already minimal, and repeated tests still cluster around 10–20 seconds, that remaining duration is primarily agent-pipeline overhead. Scaling capacity should then be treated as an experiment for concurrency—not as a guaranteed single-request latency fix.
References