Hoe we een Power BI Agent bouwden voor governed DAX-uitvoering
De Power BI Agent van Ask Titan gebruikt beheerde semantic-model-metadata en bedrijfsspecifieke businesscontext om de vraag te begrijpen, DAX te genereren en deze uit te voeren tegen het geconfigureerde semantische model.
DAX genereren is de laatste stap. Het begrijpen van de businessvraag komt eerst.
Een zakelijke gebruiker vraagt niet om een tabel, kolom of measure. Die vraagt waarom de marge daalde, welke klanten de verandering veroorzaakten, waar rendement verloren ging of hoe de productie presteerde.
Voordat de Power BI Agent een query kan genereren, moet deze de businessbetekenis achter de vraag bepalen en de semantische context identificeren die nodig is om deze te beantwoorden.
DAX is de output van dat proces, niet het startpunt.
“Welke klanten veroorzaakten vorige maand onze margedaling?”
Bedrijfsterminologie en businessdefinities.
Semantisch model, measures en relaties.
Alleen wat relevant is voor deze vraag.
Combineer de businessbetekenis met de relevante semantic-model-context en bouw de uitvoerbare query.
Het moeilijke deel gebeurt voor de DAX wordt gegenereerd.
Wat bestaat er?
Tabellen, kolommen, datatypes, measures, relaties en voorbeeldwaarden.
Wat betekent het hier?
Bedrijfsterminologie, tabel- en veldbeschrijvingen, KPI-betekenis, jargon en processemantiek vastgelegd in beheerde metadata.
Wat is nu belangrijk?
Alleen de tabellen, schema's, samples en eerdere execution feedback die relevant zijn voor de huidige vraag.
Metadata is niet genoeg. De agent heeft businesscontext nodig
Context engineering is de bredere praktijk van bepalen welke instructies, tools, externe informatie, state en opgehaalde data het model tijdens inference bereiken. Ask Titan past dat idee toe op enterprise-semantiek.
We gebruiken businesscontext-engineering als praktische specialisatie: leg bedrijfsspecifieke terminologie, definities en procesbetekenis rond een semantisch model vast en selecteer vervolgens alleen de bruikbare onderdelen voor de huidige vraag.
Dit is geen Power BI-productterm. Het is hoe we het context-engineeringpatroon rond governed bedrijfsdata beschrijven.
Een semantisch model vertelt de AI hoe data is gestructureerd. Businesscontext vertelt de AI wat die data binnen jouw bedrijf betekent.
Structuur, governed businesslogica en bedrijfsspecifieke betekenis zijn verschillende dingen
Door deze lagen te scheiden is de runtime eenvoudiger te govern-en. Het semantic model blijft het systeem dat berekeningen en relaties beheert. Ask Titan voegt er een expliciete contextlaag omheen toe in plaats van die semantiek naar één grote agentprompt te kopiëren.
Technische metadata
Tabel- en veldnamen, datatypes en modelstructuur vertellen de agent waarnaar verwezen kan worden.
Power BI semantic model
Measures, relaties, hiërarchieën en DAX-berekeningen blijven in de semantic-model-engine.
Businesscontext
Beschrijvingen en beheerde metadata leggen uit hoe de organisatie concepten, velden en terminologie gebruikt.
Configureer de semantische grens voordat de vraag binnenkomt
Ask Titan Webadmin is de control plane voor de Power BI-capability. Beheerders configureren de verbinding, selecteren het semantische model, beheren tabel- en veldbeschrijvingen en slaan de metadata op die de specialist agent tijdens runtime gebruikt.
Businessdocumentatie kan ook helpen bij het genereren van metadata. Voorgestelde beschrijvingen worden beoordeeld en zijn bewerkbaar voordat ze worden opgeslagen. De runtime gebruikt de resulterende beheerde metadata; hij hoeft bedrijfsbetekenis niet voor iedere vraag opnieuw te ontdekken.
Van zakelijke taal naar uitgevoerde query op het semantische model
Neem een gebruiker die vraagt: “Welke retailklanten veroorzaakten vorige maand onze margedaling?” De top-level orchestrator kiest alleen de toegestane Power BI-capability. De specialistische agent is eigenaar van het execution path achter die boundary.
tables = list_available_tables()
relevant = select_relevant_tables(question, tables)
for table in relevant:
load_governed_table_context(table)
dax = generate_dax(question, relevant_context)
result = execute_against_semantic_model(dax)
if result.has_error:
enrich_context_and_retry(result.error)
return result
Stop niet het volledige semantische model in iedere modelcall
De specialist ziet eerst de geconfigureerde tabelcatalogus en beschrijvingen. Daarna laadt hij gedetailleerde informatie alleen voor tabellen die mogelijk nodig zijn. Die detailcontext kan veldbeschrijvingen, datatypes, relaties en kleine samples bevatten.
Wanneer governed metadata beschikbaar is in Ask Titan, wordt die eerst gebruikt. Als die ontbreekt, kan de implementatie terugvallen op live Power BI-modelmetadata. Zo blijft de runtime bruikbaar zonder curated context optioneel te maken in de architectuur.
Toon het geconfigureerde tabeloppervlak
Namen en beschrijvingen bieden een lichte kaart van het model.
Selecteer waarschijnlijk relevante tabellen
De specialist kiest waar voor deze vraag diepere context nodig is.
Laad gedetailleerde governed metadata
Beschrijvingen, schema, relaties en samples komen alleen in de agentcontext waar nodig.
Genereer DAX vanuit die subset
De generatiestap ontvangt geselecteerde context in plaats van het volledige semantic model.
Genereer binnen een bekende semantische grens
De DAX-generatiestap ontvangt de gebruikersvraag plus geselecteerde schema's, samples en eerdere execution errors. Publieke voorbeelden hieronder zijn bewust herschreven en tonen geen private prompts van Ask Titan.
- Verwijs alleen naar bekende modelvelden.
- Gebruik bestaande modelrelaties in plaats van joins opnieuw op te bouwen.
- Houd query-generation gescheiden van query-execution.
- Neem executionfeedback mee wanneer correctie nodig is.
context = select_context(
semantic_model=model,
tables=relevant_tables,
include=[
"descriptions",
"schema",
"relationships",
"samples",
],
)
dax = generate_dax(
question=question,
context=context,
execution_feedback=previous_errors,
)
Het model genereert de query. De semantic-model-engine berekent het antwoord
Ask Titan maakt verbinding met het geconfigureerde Power BI / Fabric semantic model en voert DAX uit via de semantic-model-interface. De LLM berekent marge niet zelf, aggregeert geen rijen en vervangt de measures van het model niet.
Gegenereerde DAX
Uitvoerbare query opgebouwd uit de geselecteerde context.
Semantic-modelverbinding
Geconfigureerde verbinding met het geselecteerde Power BI / Fabric-model.
Resultaatrijen
Power BI evalueert modelrelaties, measures en DAX-logica.
Een mislukte DAX-query wordt context voor de volgende poging
Querygeneratie wordt niet behandeld als one-shot prediction. Als de semantic-model-engine een gegenereerde query afwijst, bewaart de Power BI Agent die execution error in tijdelijke context. Daarna kan extra tabelinformatie worden geïnspecteerd of een herziene query worden gegenereerd.
De loop is ontworpen met deterministische stopcontrols. We publiceren bewust geen interne retry thresholds en behandelen model persistence niet als safety boundary.
Waarom niet iedere businessvraag rechtstreeks naar SQL vertalen?
Als marge, omzet, yield of een andere businessmetric al governed is in een Power BI semantic model, creëert het opnieuw opbouwen van die definitie in gegenereerde SQL een tweede interpretatielaag. De Power BI-specialist bestaat zodat de orchestrator het execution model kan gebruiken dat deze semantiek al beheert.
| Vraagkenmerk | Power BI semantic model | Raw SQL-pad |
|---|---|---|
| Governed measures bestaan al | Hergebruik de bestaande measure-logica | Kan vereisen dat de metric opnieuw wordt geïmplementeerd |
| Relaties en hiërarchieën zijn belangrijk | Gebruik de bestaande semantische structuur van het model | Agent moet redeneren over joins en grouping |
| Gedetailleerde operationele records zijn primair | Kan passend zijn, afhankelijk van het modelontwerp | Vaak een natuurlijk execution path |
| Businessconsistentie met rapporten | Deelt dezelfde governed semantische laag | Hangt af van hoe de SQL-laag wordt beheerd |
Capabilitytoegang, brontoegang en semantische betekenis zijn afzonderlijke controls
Artikel 3 behandelde of de huidige identity de Power BI-capability überhaupt mag gebruiken. Artikel 4 begint na die beslissing. De geconfigureerde bronidentity bepaalt nog steeds waartoe de semantic-model-connection toegang heeft, terwijl het model zelf eigenaar is van measures, relaties en andere semantische logica.
Capability-autorisatie
Mag deze gebruiker de Power BI-specialist-capability aanroepen?
Power BI-autorisatie
Waartoe heeft de geconfigureerde connectie-identiteit daadwerkelijk toegang in Power BI / Fabric?
Modellogica
Welke measures, relaties, velden en definities bestaan in het geselecteerde semantische model?
Leer de top-level agent niet hoe Power BI werkt
Plaats Power BI-semantiek achter een specialistische capability. Configureer de verbinding en bedrijfsbetekenis in de control plane. Selecteer tijdens runtime relevante context, genereer DAX, voer deze uit in de semantic-model-engine en behandel de geretourneerde rijen als evidence.
Eén architectuur, drie verantwoordelijkheden
U zou het model niet in iedere prompt opnieuw uw business hoeven te leren. Configureer die context één keer en maak deze onderdeel van de governed AI-runtime.
Deel 5 · Conversatiestatus + LLM-context
Hoe onthoudt Ask Titan een gesprek zonder iedere eerdere tool-call en ieder resultaat naar het model te sturen? Deel 5 behandelt LangGraph-checkpoints, threadgebonden state, contextselectie en de verwerking van te grote tooloutputs.
Lees deel 5Vragen over Power BI AI-agent, DAX en context engineering
Praktische antwoorden over semantic-model-context, Ask Titan Webadmin, DAX-generatie, Power BI-executie en governancegrenzen.
Wat is business context engineering in Ask Titan?
Het is Ask Titan's toepassing van het bredere context-engineering-patroon op enterprisesemantiek: administrators beheren bedrijfsspecifieke beschrijvingen en metadata rond een semantic model zodat de Power BI-specialist die betekenis tijdens runtime kan gebruiken in plaats van deze uit iedere prompt opnieuw af te leiden.
Hoe verschilt context engineering van prompt engineering?
Prompt engineering richt zich vooral op instructies. Context engineering is breder: het bepaalt welke instructies, tools, metadata, externe informatie, state en execution feedback voor een specifieke inference-stap aan het model worden aangeboden.
Welke Power BI-context kan de specialist-agent gebruiken?
De runtime kan geconfigureerde tabelbeschrijvingen plus gedetailleerde schemainformatie gebruiken, zoals veldbeschrijvingen, datatypes, relaties en samplewaarden. Als governed metadata niet beschikbaar is, kan de implementatie terugvallen op live semantic-modelmetadata.
Kan businessdocumentatie helpen om de metadatalaag te maken?
Ja. In het Ask Titan control plane kan businessdocumentatie helpen bij het genereren van tabel- en veldbeschrijvingen. Een administrator kan die voorstellen beoordelen en aanpassen voordat de resulterende metadata voor runtimegebruik wordt opgeslagen.
Stuurt Ask Titan voor iedere vraag het volledige semantische model naar de LLM?
Nee. De specialist werkt eerst vanuit een lichtgewicht geconfigureerd tabeloppervlak en laadt alleen gedetailleerde tabelcontext waar deze relevant is voor de huidige vraag. DAX-generatie kan vervolgens die geselecteerde subset gebruiken.
Waarom het Power BI-semantische model bevragen in plaats van altijd SQL te genereren?
Wanneer business measures, relaties en hiërarchieën al in het semantische model staan, hergebruikt querying van dat model de governed businesslogica in plaats van een tweede definitie opnieuw op te bouwen in gegenereerde SQL.
Hoe voert Ask Titan DAX uit?
De specialist genereert DAX en stuurt dit via de geconfigureerde Power BI/Fabric semantic-modelconnection. De semantic-model-engine evalueert de query en geeft resultaatrijen terug; de LLM berekent de metric niet zelf.
Wat gebeurt er als gegenereerde DAX faalt?
De execution error wordt als tijdelijke context voor de specialist opgeslagen. De agent kan extra modelinformatie inspecteren of een herziene query genereren, onderhevig aan deterministische stopcontrols.
Is Power BI capability-autorisatie hetzelfde als Power BI-data-autorisatie?
Nee. Ask Titan application policy bepaalt of de huidige identiteit de Power BI-capability mag aanroepen. De geconfigureerde Power BI-connection en source-native permissions bepalen afzonderlijk waartoe de semantic-model-connection toegang heeft.
Geeft deze architectuur automatisch de Power BI-RLS van iedere eindgebruiker door?
Zo'n claim mag niet worden afgeleid. Row-level en source-native autorisatie hangen af van het identity- en connectionmodel in een deployment en blijven gescheiden van Ask Titan's application-level capability-autorisatie.
Geef AI toegang tot governed bedrijfsbetekenis, niet alleen tabelnamen
Ask Titan combineert semantic-model-execution met een control plane voor connectiviteit, metadata en bedrijfsspecifieke context. Zo krijgen specialist agents een stabiele semantische grens zonder businesslogica in één gigantische prompt te stoppen.
Van configuratie naar antwoord
Technische referenties
De Ask Titan-implementatiedetails in dit artikel zijn vereenvoudigd vanuit de private productcode. Deze publieke referenties documenteren het bredere context-engineeringpatroon en de Power BI semantic-model/DAX-interfaces die in de architectuur worden gebruikt.