Überblick
D365 CRM Intelligence ist ein KI-Assistent für die Abfrage von Dynamics-365-CRM-Daten in natürlicher Sprache, aufgebaut auf Azure AI Foundry Agents mit Retrieval-Augmented Generation (RAG) über Azure AI Search.
Statt durch CRM-Ansichten zu navigieren und Advanced-Find-Abfragen zu bauen, stellen Nutzer einfach Fragen wie „Zeig mir offene Opportunities über 500.000 $" oder „Welche Accounts hatten seit 90 Tagen keinen Kontakt?" — und erhalten fundierte Antworten mit Quellenangaben, basierend auf Live-Daten aus Dynamics 365, inklusive Zitaten, die direkt auf die ursprünglichen CRM-Datensätze verlinken.
Zentrale Aspekte:
- Azure AI Foundry Agent (gpt-4.1) auf der neuen Versioned-Agents-Oberfläche (Responses API), orchestriert in .NET über das Microsoft Agent Framework — den Nachfolger von Semantic Kernel
- Hybrides Retrieval (Vektor + Keyword + Semantic Ranking) über Azure AI Search, als Built-in-Tool an den Agent angebunden, mit Vektoren aus text-embedding-3-large
- Live-Zugriff auf die Dataverse Web API über Agent Function Tools — exakte Umsatzzahlen, Pipeline-Summen und aktuelle Aktivitäten direkt aus Dynamics 365
- Enterprise-Sicherheit von Grund auf: Endbenutzer-Authentifizierung mit Microsoft Entra ID, Rate Limiting pro Benutzer, IP-beschränkter API-Zugang sowie DefaultAzureCredential / Managed Identity durchgängig — keine API-Keys
- ASP.NET Core 10 Minimal API, die Agent-Antworten per Server-Sent Events an ein Next.js-16-Frontend streamt, inklusive Live-Citation-Events
- Vollständige Observability mit OpenTelemetry und Application Insights; Agent-Traces direkt im Azure AI Foundry Portal sichtbar
- Infrastructure as Code mit Terraform (Multi-Environment) und Azure DevOps CI/CD mit Workload Identity Federation
Architektur
High-Level-Architektur
Next.js 16 Frontend (Chat-UI)• App Service Built-in Auth (Entra ID, nur zugewiesene Benutzer)• Chat-Proxy leitet das Bearer Token des Benutzers weiter││ HTTPS + SSE▼ASP.NET Core 10 Minimal API• Bearer-Token-Validierung (Microsoft.Identity.Web)• Rate Limiting pro Benutzer · IP-beschränkter Zugang││ Managed Identity▼Azure AI Foundry Agent (gpt-4.1, versioniert, Responses API)• Microsoft Agent Framework (.NET)├── Built-in-Tool → Azure AI Search (hybrides Retrieval + Semantic Ranking)└── Function Tools → Dataverse Web API (Live-CRM-Daten)Background Indexing Service (IHostedService)• Dataverse Delta-Sync → Chunking → text-embedding-3-large → AI Search▲│ OData RESTDynamics 365 / DataverseAccounts · Kontakte · Opportunities · Cases · Aktivitäten
Der Agent kombiniert zwei Datenzugriffspfade: semantisches Retrieval über indexierte CRM-Daten für breite, unscharfe Fragen — und Live-Aufrufe der Dataverse Web API für Fragen, die exakte Werte, Aggregationen oder minutenaktuelle Daten erfordern.
Agentic RAG
Die Lösung geht über klassisches RAG hinaus, indem der Agent selbst entscheidet, wie er jede Frage beantwortet:
- Azure AI Search als Built-in-Agent-Tool — hybrides Retrieval (Vektor + Keyword) mit Semantic Ranking über CRM-Datensätze, eingebettet mit
text-embedding-3-large - Dataverse Function Tools — typisierte .NET-Methoden, die der Agent für Live-Daten aufruft: Account-Details, offene Opportunities mit exakten Schätzwerten, Pipeline-Summen, aktuelle Aktivitäten und Cases
- Fundierte Quellenangaben — der Agent zitiert die verwendeten Suchdokumente; ein Citation Resolver löst sie zu Deep Links auf die ursprünglichen Dynamics-365-Datensätze auf, die in der Chat-UI angezeigt werden
- Inkrementelle Hintergrund-Indexierung — ein
IHostedServicefragt Dataverse in konfigurierbaren Intervallen ab (Standard: alle 15 Minuten) und verarbeitet über eine High-Watermark nur geänderte Datensätze, sodass die Indexierungskosten proportional zum Änderungsvolumen im CRM bleiben
Dieser hybride Ansatz liefert semantische Breite und transaktionale Genauigkeit zugleich — ein Muster, das sich direkt auf Enterprise-Szenarien mit CRM, ERP oder Wissensdatenbanken übertragen lässt.
Sicherheitsmodell
Die Sicherheit folgt einem Enterprise-First-Design ohne Schlüssel:
- Endbenutzer-Authentifizierung mit Microsoft Entra ID: App Service Built-in Authentication auf dem Frontend, beschränkt auf explizit zugewiesene Benutzer; der Chat-Proxy leitet das Access Token des Benutzers weiter, und die API validiert jedes Bearer Token mit Microsoft.Identity.Web — sie vertraut niemals ihrer Netzwerkposition
- DefaultAzureCredential / Managed Identity für sämtliche Service-zu-Service-Kommunikation (Azure AI Foundry, AI Search, Dataverse) — keine API-Keys im gesamten System; derselbe Code läuft lokal über Azure-CLI-Credentials
- Fixed-Window Rate Limiting pro Benutzer auf dem Chat-Endpunkt, um KI-Kapazität zu schützen und Kosten zu kontrollieren
- IP-beschränkter API-Zugang — die API akzeptiert nur Traffic von den ausgehenden Adressen des Frontends, alles andere wird per Default-Deny blockiert
- Konfiguration ohne Secrets: alle Einstellungen sind Umgebungsvariablen, gebunden über
IOptions<T>; der Anwendungscode liest zu keinem Zeitpunkt ein Credential
Streaming & User Experience
- Die ASP.NET Core 10 Minimal API streamt Agent-Antworten per Server-Sent Events mit typisierten Events: Text-Deltas, Zitate sobald sie auftauchen und ein Completion-Event
- Das Next.js-16-Frontend (TypeScript, Tailwind CSS, App Router) rendert Tokens direkt beim Eintreffen und zeigt aufgelöste Quellenangaben mit Links nach Dynamics 365
- Mehrstufige Konversationen werden serverseitig verwaltet: der Agent-Service hält den Konversationszustand, der Client setzt ihn über eine Conversation-ID fort — kein Chat-Verlauf im Browser
Observability
- OpenTelemetry-Instrumentierung über API, Agent-Orchestrierung und Indexierungs-Pipeline hinweg
- Application Insights für Distributed Traces, Metriken (Agent-Latenz, Indexierungsdurchsatz, Embedding-Latenz) und Smart-Detection-Alerts bei Fehlerraten- und Latenzspitzen
- Agent-Traces direkt im Azure AI Foundry Portal sichtbar, inklusive Tool-Aufrufen und Token-Verbrauch
Infrastruktur & CI/CD
- Terraform provisioniert sämtliche Azure-Ressourcen — Foundry-Projekt, Modell-Deployments, AI Search, App Services, Entra-ID-App-Registrierungen, RBAC — über dev, staging und production, mit Remote State in Azure Blob Storage
- Drei Azure-DevOps-Pipelines: CI (Build, Tests, Lint, Terraform-Validierung bei jedem PR), Infrastruktur (
terraform planbei PRs, freigabepflichtigesapply, promotet dev → staging → production) und Release (Zip Deploy der API und des Next.js-Standalone-Builds — ohne Container) - Workload Identity Federation durchgängig — kurzlebige OIDC-Tokens statt gespeicherter Credentials, mit getrennten Pipeline-Identitäten: eine Infrastruktur-Identität mit Entra-Directory-Rechten und eine reine Deploy-Identität, die ausschließlich Web-Apps ausliefern kann
Built With
Einordnung
Dieses Projekt zeigt, wie man produktionsreife KI-Agenten auf dem Microsoft-Stack baut:
- Agentic RAG mit hybridem Vektor-Retrieval, Live-Zugriff auf Enterprise-APIs und fundierten Quellenangaben
- schlüssellose, identitätsbasierte Sicherheit vom Browser bis zum KI-Service
- Streaming-Agent-UX mit modernem .NET und Next.js
- vollständige Observability und Infrastructure as Code von Anfang an
Die Architektur ist direkt auf Enterprise-Szenarien übertragbar, in denen KI-Assistenten sicheren, kontrollierten Zugriff auf Geschäftsdaten in Dynamics 365, Dataverse oder vergleichbaren Systemen benötigen.



