Skip to content Skip to footer

Programmiersprachen von Bot Service im Microsoft Bot Framework

Das Microsoft Bot Framework ist eine umfassende Entwicklungsplattform zur Erstellung intelligenter Bots und konversationeller KI-Anwendungen. Die Architektur basiert auf zwei Kernkomponenten: dem Bot Framework SDK und dem Bot Framework Service. In Kombination mit Microsoft Azure ermöglichen diese Komponenten Entwicklern die Modellierung und Implementierung sophistizierter Konversationsabläufe mit verschiedenen Programmiersprachen wie Python, JavaScript und Java.

Unterstützte Programmiersprachen im Bot Framework SDK

Das Framework unterstützt primär folgende Entwicklungssprachen:

  • C# mit .NET Core
  • JavaScript/TypeScript
  • Python
  • Java (Support bis November 2023)

Architektur und Komponenten des Bot Framework

Die Kernarchitektur besteht aus drei wesentlichen Elementen:

Komponente Funktion
Channels Kommunikationsschnittstellen für Benutzerinteraktionen
Bot Connector Nachrichtenaustausch zwischen Bot und Kanälen
Bot Service Zentrale Verarbeitungs- und Geschäftslogik

Der Bot Framework Service, als Teil des Azure KI Bot Service, übernimmt die Kommunikation zwischen der Benutzer-App und dem Bot. Die Integration mit Azure KI-Services ermöglicht erweiterte Funktionen in fünf Domänen:

  1. Vision für Bild- und Videoanalyse
  2. Speech für Spracheingabe und -ausgabe
  3. Language Understanding für natürliche Sprachverarbeitung
  4. Knowledge für Wissensextraktion
  5. Search für Bing-basierte Intelligenz

Die Bot-Entwicklung erfolgt typischerweise als Webservice in Azure, wobei das Framework eine modulare und erweiterbare SDK-Struktur bietet. Entwickler können ihre Bots mit verschiedenen Kanälen wie Microsoft Teams, Slack, Facebook oder Telegram verbinden, wobei derselbe Code für unterschiedliche Plattformen verwendet werden kann. Der Bot Connector standardisiert dabei die eingehenden Nachrichten, sodass Entwickler sich nicht um plattformspezifische Datenformate kümmern müssen.

protected override async Task OnMessageActivityAsync(ITurnContext<IMessageActivity> turnContext,
    CancellationToken cancellationToken)
{
    var mention = new Mention
    {
        Mentioned = turnContext.Activity.From,
        Text = $"<at>{XmlConvert.EncodeName(turnContext.Activity.From.Name)}</at>"
    };
    var replyActivity = MessageFactory.Text($"Hello {mention.Text}.");
    replyActivity.Entities = new List<Entity> { mention };
    await turnContext.SendActivityAsync(replyActivity, cancellationToken);
}

Programmiersprachen und SDKs für die Bot-Erstellung mit dem Azure Bot Service

Das Microsoft Bot Framework SDK bietet eine vielseitige Entwicklungsumgebung für die Erstellung intelligenter Bots in verschiedenen Programmiersprachen. Entwickler können zwischen mehreren robusten SDKs wählen, die jeweils ihre eigenen Stärken mitbringen.

SDKs für verschiedene Programmiersprachen

Sprache Framework Status Hauptmerkmale
C# .NET Core Aktiv ASP.NET Integration, vollständige IDE-Unterstützung
JavaScript/TypeScript Node.js Aktiv Restify-basiert, async/await Support
Python aiohttp Aktiv Moderne asyncio-Features
Java Support bis Nov 2023 Bestehende Bots bleiben funktional

SDK-Features und die neuesten Funktionen

Das Bot Framework SDK ermöglicht in allen unterstützten Sprachen die Implementierung essentieller Bot-Funktionalitäten:

protected override async Task OnMessageActivityAsync(ITurnContext<IMessageActivity> turnContext,
    CancellationToken cancellationToken)
{
    var replyActivity = MessageFactory.Text($"Echo: {turnContext.Activity.Text}");
    await turnContext.SendActivityAsync(replyActivity, cancellationToken);
}

Die SDK-Architektur basiert auf drei Kernkomponenten und bietet Informationen zum Erstellen eines Bots:

  • Bot Connector Service für die Nachrichtenweiterleitung
  • Memory Management für Zustandsverwaltung
  • Language Understanding für Sprachverarbeitung

Jedes SDK bietet dabei modulare Erweiterbarkeit und unterstützt die Integration mit Azure KI-Services, um leistungsfähige Anwendungen zu erstellen. Entwickler profitieren von einer konsistenten Architektur über alle Programmiersprachen hinweg, was die Migration zwischen verschiedenen Implementierungen erleichtert.

Entwicklungsunterstützung und Verwaltung

Das Framework stellt für jede Sprache spezifische Entwicklungswerkzeuge bereit:

  • Visual Studio Integration für C#
  • VS Code Erweiterungen für JavaScript/TypeScript
  • Bot Framework Emulator für alle Plattformen
  • CLI Tools für automatisierte Entwicklungsabläufe

Die SDK-Features ermöglichen plattformübergreifend die Entwicklung von Enterprise-Grade Bots mit Funktionen wie Authentifizierung, Skalierung und Multi-Channel-Support. Besonders hervorzuheben ist die nahtlose Integration mit Azure-Services und die Unterstützung von Streaming-Verbindungen im Bot Framework SDK für C# und JavaScript.

Entwicklungsumgebungen und der Bot Framework Emulator

Die Entwicklungsumgebung für das Microsoft Bot Framework bietet ein umfassendes Ökosystem an Tools und Integrationen, um Bots zu erstellen und zu verwalten. Im Zentrum steht die nahtlose Visual Studio Integration mit speziellen Bot Framework v4 SDK Templates sowie der Bot Framework Emulator.

Entwicklungstools und Azure Ressourcen im Überblick

Tool Hauptfunktionen Einsatzbereich
Visual Studio Bot-Templates, Debugging, Deployment Hauptentwicklung
VS Code Leichtgewichtige Entwicklung, Erweiterungen JavaScript/TypeScript
Bot Framework Emulator Testing, Debugging, Trace-Analyse Lokales Testing
BF CLI Asset-Management, CI/CD, Orchestrierung Automatisierung

Bot Framework Emulator

Der Bot Framework Emulator ermöglicht das lokale Testen des Bots und Debuggen von Bots. Zentrale Features sind:

  • Echtzeit-Nachrichtenaustausch
  • JSON-Request/Response Logging
  • Integrierte LUIS und QnA Maker Traces
  • Azure-Authentifizierung für Cloud-Debugging
# Bot lokal starten
dotnet run

# Emulator-Verbindung
http://localhost:3978/api/messages

Command Line Interface mit Azure CLI

Das BF CLI Tool, zusammen mit der Azure CLI, bietet moderne Entwicklungswerkzeuge:

  • Asset-Management für LUIS und QnA Maker
  • Orchestrator-Befehle für Dispatch und Evaluation
  • Chatdown für Konversations-Mockups
  • CI/CD-Pipeline Integration

Die Entwicklungsumgebung unterstützt verschiedene Debugging-Szenarien, von der lokalen Entwicklung bis zum Cloud-Deployment. Der Bot Framework Emulator bietet dabei erweiterte Funktionen wie Proxy-Konfiguration und Authentifizierungs-Token-Management. Für Enterprise-Entwicklung steht die vollständige Azure-Integration zur Verfügung, einschließlich der Möglichkeit, Bots direkt aus der IDE heraus in die Cloud zu deployen und zu verwalten.

Die Visual Studio Templates beschleunigen den Entwicklungsprozess durch vorkonfigurierte Projektstrukturen für verschiedene Bot-Typen. Mit dem BF CLI Tool können Entwickler ihre Bot-Assets effizient verwalten und in CI/CD-Pipelines integrieren. Diese Werkzeugkette ermöglicht eine professionelle Bot-Entwicklung, bei der Bots schnell bereitgestellt und verwalten werden können, von der ersten Konzeption bis zum produktiven Einsatz.

Grundlagen zur Erstellung und Registrierung eines Bots

Die Bot-Entwicklung im Microsoft Bot Framework basiert auf einer robusten Architektur mit klar definierten Komponenten. Die Bot-Klassenstruktur bildet das Fundament für die Implementierung intelligenter Konversationsabläufe in Anwendungen.

Kernkomponenten und APIs

Komponente Funktion Verantwortlichkeit
Bot-Klasse Konversationslogik Erkennung, Interpretation, Antwortgenerierung
Adapter Kanalverbindung Nachrichtenweiterleitung, Middleware-Pipeline
Aktivitätshandler Ereignisverarbeitung Verarbeitung spezifischer Aktivitätstypen

Implementierungsbeispiel

public class EchoBot : ActivityHandler
{
    protected override async Task OnMessageActivityAsync(
        ITurnContext<IMessageActivity> turnContext,
        CancellationToken cancellationToken)
    {
        var replyText = $"Echo: {turnContext.Activity.Text}";
        await turnContext.SendActivityAsync(replyText, cancellationToken);
    }
}

Konversationsablauf und Benutzerinteraktionen

Der Durchlaufkontext (Turn Context) spielt eine zentrale Rolle in der Konversationslogik. Er enthält:

  • Aktivitätsinformationen (Absender, Empfänger)
  • Kanalinformationen
  • Konversationszustand
  • Middleware-Pipeline-Zugriff

Die Adapter-Implementierung übernimmt dabei drei wesentliche Aufgaben:

  1. Verarbeitung eingehender Anfragen
  2. Durchführung der Middleware-Pipeline
  3. Fehlerbehandlung außerhalb des Turn-Handlers

Der Aktivitätshandler bietet ein ereignisgesteuertes Modell für die Verarbeitung verschiedener Aktivitätstypen. Besonders wichtig ist die Implementierung des OnMessageActivityAsync für die grundlegende Nachrichtenverarbeitung und OnMembersAddedAsync für Begrüßungsnachrichten, um Benutzer zu verwalten.

Die Bot-Logik verarbeitet eingehende Aktivitäten durch den Turn-Handler und generiert entsprechende Antworten. Informationen zum Erstellen solcher Bot-Logiken finden Sie in der Dokumentation. Dabei können verschiedene Paradigmen zum Einsatz kommen, von einfachen Aktivitätshandlern bis hin zu komplexen Dialogsystemen für langlaufende Konversationen.

Bots mit dem Bot Framework: Wichtige Komponenten

Das Microsoft Bot Framework besteht aus mehreren Kernkomponenten, die zusammen mit Azure KI-Services eine robuste Plattform für die Entwicklung intelligenter Bots bilden.

Bot Connector Service

Der Bot Connector Service ermöglicht die nahtlose Kommunikation zwischen Bot und verschiedenen Kanälen über standardisierte REST-APIs und JSON über HTTPS. Die Authentifizierung erfolgt mittels Microsoft Entra ID und JWT Bearer Tokens, wodurch eine sichere Nachrichtenübermittlung gewährleistet ist.

Language Understanding und KI-Funktionen

Die Sprachverarbeitung wird durch zwei zentrale Dienste unterstützt:

Dienst Status Hauptfunktion
Azure Language Understanding Aktiv Konversationsanalyse und Intent-Erkennung
QnA Maker Bis März 2025 Frage-Antwort-Funktionalität

Rich Cards & Media

Das Framework unterstützt acht verschiedene Rich Card-Typen für multimediale Interaktionen:

var card = new HeroCard
{
    Title = "Bot Framework Card",
    Text = "Diese Karte demonstriert Rich Media Funktionen",
    Images = new List<CardImage> { new CardImage("URL") },
    Buttons = new List<CardAction> { new CardAction(ActionTypes.OpenUrl) }
};

Die verfügbaren Card-Typen umfassen:

  • Adaptive Cards
  • Hero Cards
  • Thumbnail Cards
  • Receipt Cards
  • Sign-In Cards
  • Media Cards (Audio/Video/Animation)

State Management

Das State Management ermöglicht das persistente Speichern und Verwalten von Konversationsdaten und Benutzerzuständen. Nach der Einstellung des Microsoft Bot Framework State Service müssen Entwickler eigene Speicherlösungen implementieren, typischerweise mittels Azure Bot-Ressource oder anderen Azure-Diensten:

  • Azure Storage
  • Cosmos DB
  • Custom State Provider

Die Framework-Architektur ermöglicht durch diese Komponenten die Entwicklung skalierbarer und funktionsreicher Bots und Anwendungen, die sowohl text- als auch sprachbasierte Interaktionen unterstützen.

Bots in Azure bereitstellen und veröffentlichen

Das Bereitstellen und Testen von Bots in Azure mit dem Microsoft Bot Framework erfolgt über einen strukturierten Prozess, der sowohl die lokale Entwicklung als auch das Cloud-Hosting umfasst.

Lokale Entwicklungsumgebung mit dem Bot Framework Emulator

Die lokale Entwicklung beginnt mit dem Bot Framework Emulator, einer leistungsfähigen Desktopanwendung für das Testen und Debuggen. Entwickler können ihre Bots mit folgendem Befehl lokal starten:

dotnet run

Azure-Hosting und Bereitstellung mit Service-Ressourcen

Das Azure-Hosting bietet eine skalierbare Infrastruktur für produktive Bots. Die Bereitstellung erfolgt über das Azure Portal mit folgenden Komponenten:

Komponente Funktion
Bot Service Zentrale Verwaltung und Hosting
Channels Kommunikationsschnittstellen
Application Insights Monitoring und Analyse

Debugging-Funktionen

Der Bot Framework Emulator bietet umfangreiche Debugging-Möglichkeiten:

  • JSON-Request/Response Logging
  • Nachrichtenverfolgung in Echtzeit
  • Detaillierte Statusmeldungen
  • Integrierte Authentifizierungstests

Kanal-Integration

Die Kanal-Integration ermöglicht die Verbindung zu verschiedenen Messaging-Plattformen. Das Framework unterstützt:

  • Microsoft Teams
  • Facebook Messenger
  • Slack
  • Direct Line
  • Azure Communication Services

Für die Produktivumgebung ist eine vollständige Azure-Integration erforderlich, die sowohl das Monitoring als auch das Verwalten der Bot-Anwendung ermöglicht. Die Registrierung des Bots erfolgt über das Azure Portal, wobei jeder Kanal spezifische Konfigurationsanforderungen hat.

Bot Framework REST APIs

Die Bot Framework REST APIs bilden das Fundament für die direkte Kommunikation zwischen Bots und benutzerdefinierten Clients. Im Zentrum steht die Direct Line API 3.0, die standardisierte REST- und JSON-Kommunikation über HTTPS ermöglicht.

Direct Line API

Die API verwendet folgende Base URIs für verschiedene Regionen:

Region Base URI
Global directline.botframework.com
Europa europe.directline.botframework.com
Indien india.directline.botframework.com

Authentifizierung

Die Authentifizierung erfolgt über JWT-Token im Authorization-Header:

POST /v3/directline/conversations
Authorization: Bearer ACCESS_TOKEN

Custom Client Integration

Die Custom Client-Entwicklung ermöglicht folgende Funktionen:

  • Erhalt mehrerer Aktivitäten als ActivitySet
  • Preservation von Attachment Cards
  • Private Links für hochgeladene Anhänge
  • Unmodifizierte Übertragung von Channel Data

Webhook-Integration

Outgoing Webhooks bieten eine vereinfachte Bot-Integration mit folgenden Eigenschaften:

  • Konfiguration auf Team-Ebene
  • Reaktive Messaging über @mentions
  • Standard HTTP-Nachrichtenaustausch
  • Unterstützung für Rich Content (Karten, Bilder, Emojis)

Die Webhook-Implementierung erfordert:

{
    "type": "message",
    "from": {
        "id": "user-id",
        "name": "username"
    },
    "text": "message-content"
}

Die REST API-Architektur ermöglicht eine flexible Integration verschiedener Client-Typen bei gleichzeitiger Wahrung der Sicherheit durch robuste Authentifizierungsmechanismen. Die Webhook-Integration eignet sich besonders für einfache Interaktionen und schnelle Implementierungen, während die Direct Line API umfassendere Funktionen für komplexe Anwendungsfälle bietet.

Die Microsoft Teams Integration des Bot Frameworks ermöglicht die Entwicklung leistungsfähiger Bots mit teamsspezifischen Funktionen. Der Teams Activity Handler bildet dabei das Fundament für die Bot-Implementierung.

Teams-spezifische Handler

Der Bot verarbeitet Teams-Events durch spezialisierte Handler:

protected override async Task OnTeamsChannelCreatedAsync(
    ChannelInfo channelInfo,
    TeamInfo teamInfo,
    ITurnContext<IConversationUpdateActivity> turnContext,
    CancellationToken cancellationToken)
{
    // Teams-spezifische Logik
}

Aktivitätstypen und Events

Aktivitätstyp Handler Beschreibung
Message OnMessageActivityAsync Verarbeitung von Textnachrichten
ConversationUpdate OnConversationUpdateActivityAsync Team/Kanal-Änderungen
Invoke OnInvokeActivityAsync Teams-spezifische Aktionen

Messaging Extensions

Messaging Extensions erweitern die Bot-Funktionalität durch:

  • Action Commands für benutzerdefinierte Aktionen
  • Search Commands für Datenabfragen
  • Link Unfurling für Rich-Card-Previews
  • Task Modules für interaktive Dialoge

Teams Bot Deployment

Das Deployment eines Teams-Bots erfordert:

  • Registrierung einer Azure Bot-Ressource
  • Aktivierung des Teams Channels
  • Konfiguration des Messaging Endpoints
  • Erstellung eines App Manifests mit Bot-Definition

Die Teams-Integration ermöglicht durch den Teams Activity Handler die Verarbeitung teamsspezifischer Events wie Kanalerstellung, Teammitgliederänderungen und benutzerdefinierte Aufrufe. Besonders wichtig ist die korrekte Implementierung der Authentifizierung und Berechtigungsverwaltung für verschiedene Teams-Kontexte.

Best Practices

Die Best Practices für Microsoft Bot Framework Anwendungen umfassen zentrale Aspekte der Architektur, Skalierbarkeit, Wartbarkeit und Sicherheit.

Architektur-Patterns

Eine modulare Architektur ist essentiell für robuste Bot-Anwendungen. Die Kernkomponenten sollten folgende Struktur aufweisen:

Komponente Funktion Best Practice
Bot-Logik Konversationssteuerung Modulare Handler
Datenverarbeitung State Management Getrennte Speicherschicht
Sicherheit Authentifizierung HTTPS/TLS 1.2

Skalierbarkeit

Die Skalierbarkeitsarchitektur sollte folgende Aspekte berücksichtigen:

  • Load Balancing für Lastverteilung
  • Auto-Scaling basierend auf Nutzerlast
  • Ressourcen-Management durch Cloud-Services
  • Caching-Strategien für häufige Anfragen

Wartbarkeit

Für optimale Wartbarkeit sind folgende Praktiken wichtig:

// Beispiel für modularen Handler
protected override async Task OnMessageActivityAsync(
    ITurnContext<IMessageActivity> turnContext,
    CancellationToken cancellationToken)
{
    // Strukturierte Fehlerbehandlung
    try {
        await ProcessMessageAsync(turnContext);
    }
    catch (Exception ex) {
        await LogErrorAsync(ex);
    }
}

Security

Die Sicherheitsarchitektur erfordert mehrschichtige Schutzmaßnahmen:

  • HTTPS/TLS 1.2 für verschlüsselte Kommunikation
  • Bot Connector Authentifizierung
  • Benutzerdaten-Verschlüsselung
  • Regelmäßige Security Audits

Die Implementierung dieser Best Practices ermöglicht die Entwicklung skalierbarer, wartbarer und sicherer Bot-Anwendungen. Besonders wichtig ist die Balance zwischen Funktionalität und Sicherheit, wobei der Schutz sensibler Daten höchste Priorität hat.

Zusätzliche Ressourcen

Das Microsoft Bot Framework bietet ein umfangreiches Ökosystem an Ressourcen und Support-Optionen für Entwickler. Die verfügbaren Unterstützungsmöglichkeiten sind auf verschiedene Plattformen verteilt.

Community Support

Support-Kanal Beschreibung Anwendungsfall
Stack Overflow Technische Fragen mit Tag ‚botframework‘ Entwicklungsprobleme
Gitter.IM Community Chat Direkter Austausch
GitHub Issues SDK-spezifische Probleme Bugs und Features

Dokumentation und Samples

Die offizielle Dokumentation umfasst:

  • Ausführliche API-Referenzen
  • Implementierungsbeispiele
  • Best Practices
  • Migrationsanleitungen

Code-Beispiele

// Beispiel eines grundlegenden Bot-Handlers
public class EchoBot : ActivityHandler
{
    protected override async Task OnMessageActivityAsync(
        ITurnContext<IMessageActivity> turnContext,
        CancellationToken cancellationToken)
    {
        var replyText = $"Echo: {turnContext.Activity.Text}";
        await turnContext.SendActivityAsync(replyText, cancellationToken);
    }
}

Migrationspfade

Für bestehende Bot-Implementierungen gibt es verschiedene Migrationsmöglichkeiten:

  • Upgrade von SDK v3 auf v4
  • Migration von Java (Support bis November 2023) zu C#/JavaScript/Python
  • Übergang zu Microsoft Copilot Studio für neue Projekte

Die Support-Infrastruktur wird durch das Azure Help + Support-Team ergänzt, das bei cloud-spezifischen Fragen zur Verfügung steht. Dokumentationsprobleme können direkt über GitHub-Issues gemeldet werden, während Feature-Anfragen über die entsprechenden SDK-Repositories eingereicht werden können.