Verbinden von Agents mit externen Diensten

Important

Dieses Feature befindet sich in der Public Preview.

Verbinden Sie Ihre KI-Agents mit externen Anwendungen wie Slack, Google Calendar oder einem beliebigen Dienst mit einer API. Azure Databricks bietet verschiedene Ansätze, je nachdem, ob der externe Dienst über einen MCP-Server verfügt, unabhängig davon, ob Sie eine Benutzerauthentifizierung benötigen oder ob Sie APIs direkt aus dem Agentcode aufrufen möchten. Alle Ansätze basieren auf einer Unity-Katalog-HTTP-Verbindung , um Anmeldeinformationen sicher zu verwalten und den Zugriff auf externe Dienste zu steuern.

Vorgehensweise Empfohlener Anwendungsfall
Externe MCP-Server Verwenden Sie diesen Ansatz für Dienste, die einen MCP-Server veröffentlichen. Es liefert die automatische Toolerkennung und funktioniert mit Standard-SDKs.
Verwaltetes OAuth Verwenden Sie diesen Ansatz für Google Drive- oder SharePoint-Integrationen. Azure Databricks verwaltet die OAuth-Anmeldeinformationen, sodass keine App-Registrierung erforderlich ist.
UC Connections Proxy Verwenden Sie diesen Ansatz, um direkte REST-API-Aufrufe von Agentcode mithilfe des eigenen Client-SDK des externen Diensts zu tätigen.
UC-Funktionstools Verwenden Sie diesen Ansatz für SQL-basierte Tooldefinitionen, die die http_request() Funktion umschließen.

Requirements

  • Eine Unity-Katalog-HTTP-Verbindung für Ihre externe Anwendung. Unity Catalog-Verbindungen bieten sichere, geregelte Anmeldeinformationsverwaltung und aktivieren mehrere Authentifizierungsmethoden, einschließlich OAuth 2.0-Benutzer-zu-Computer- und Computer-zu-Computer-Authentifizierung.

Externe MCP-Server

Wenn der externe Dienst über einen MCP-Server verfügt, empfiehlt Azure Databricks die Verbindung über external MCP-Server. MCP-Server bieten automatische Toolermittlung, vereinfachte Integration und benutzerspezifische Authentifizierung.

Verwaltetes OAuth

Azure Databricks bietet verwaltete OAuth-Flüsse für ausgewählte API-Toolanbieter. Sie müssen ihre eigene OAuth-App nicht registrieren oder Anmeldeinformationen verwalten. Azure Databricks empfiehlt verwaltetes OAuth für Entwicklung und Tests. Wenn Produktionsanwendungsfälle das Generieren von benutzerdefinierten OAuth-Anmeldeinformationen erfordern, finden Sie weitere Informationen in der Dokumentation der Anbieter.

Die folgenden Integrationen verwenden Azure Databricks verwalteten OAuth-Anmeldeinformationen, die sicher im Back-End gespeichert sind.

Provider Konfigurationsnotizen Unterstützte Geltungsbereiche Beschreibung
Google Drive-API Nichts https://www.googleapis.com/auth/drive.readonly offline_access Lesezugriff auf Google Drive-Dateien, einschließlich Google Docs und Google Tabellen.
Gmail-API Nichts https://www.googleapis.com/auth/gmail.readonly offline_access Nur-Lesezugriff auf Gmail-Nachrichten, Konversationen, Entwürfe und Labels.
Google Calendar API Nichts https://www.googleapis.com/auth/calendar.readonly offline_access Nur-Lesezugriff auf Google Calendar-Ereignisse, Kalender und Verfügbarkeitsinformationen.
SharePoint-API Nichts https://graph.microsoft.com/Sites.Read.All offline_access openid profile Schreibgeschützter Zugriff auf SharePoint-Seiten.

Um verwaltetes OAuth einzurichten, erstellen Sie eine HTTP-Verbindung mit dem Authentifizierungstyp OAuth User to Machine Per User und wählen Sie Ihren Anbieter aus dem Dropdown-Menü OAuth-Anbieter aus. Ausführliche Schritte finden Sie unter Installationsmethoden.

Jeder Benutzer wird aufgefordert, bei der ersten Verwendung mit dem Anbieter zu autorisieren.

Lassen Sie bei Bedarf die folgenden Umleitungs-URIs zu, die von verwaltetem OAuth verwendet werden:

Wolke Umleitungs-URI
AWS https://oregon.cloud.databricks.com/api/2.0/http/oauth/redirect
Azure https://westus.azuredatabricks.net/api/2.0/http/oauth/redirect
GCP https://us-central1.gcp.databricks.com/api/2.0/http/oauth/redirect

UC Connections-Proxyendpunkt

Verwenden Sie den Unity Catalog Connections-Proxyendpunkt mit dem eigenen Client-SDK des externen Diensts, um REST-APIs direkt aus dem Agentcode aufzurufen. Verweisen Sie die Basis-URL des SDK auf den Proxyendpunkt, und verwenden Sie Ihr Azure Databricks-Token als API-Schlüssel. Azure Databricks authentifiziert die Anforderung und fügt die Anmeldeinformationen des externen Diensts automatisch aus der Unity-Katalogverbindung ein. Ihr Code behandelt niemals die Token des externen Diensts direkt.

Erforderliche Berechtigungen:USE CONNECTION auf dem Verbindungsobjekt.

OpenAI

Verwenden Sie DatabricksOpenAI, um Anrufe an externe OpenAI über den Unity Catalog-Verbindungsproxy weiterzuleiten. Erstellen Sie zunächst eine Unity-Katalog-HTTP-Verbindung mit Ihrem OpenAI-API-Schlüssel, der als Databricks-Schlüssel gespeichert ist:

CREATE CONNECTION openai_connection TYPE HTTP
OPTIONS (
  host 'https://api.openai.com',
  base_path '/v1',
  bearer_token secret ('<secret-scope>', '<secret-key>')
);

Installieren Sie dann das databricks-openai Paket, und verwenden Sie den Proxy-URL- und Arbeitsbereichsclient in Ihrem Agentcode:

pip install databricks-openai
from databricks_openai import DatabricksOpenAI
from databricks.sdk import WorkspaceClient

w = WorkspaceClient()

client = DatabricksOpenAI(
    workspace_client=w,
    base_url=f"{w.config.host}/api/2.0/unity-catalog/connections/openai_connection/proxy/",
)

response = client.chat.completions.create(
    model="gpt-4o",
    messages=[{"role": "user", "content": "Hello!"}],
)
print(response.choices[0].message.content)

Slack

Konfigurieren Sie das Slack-SDK, um den Unity Catalog-Verbindungsproxy zu durchlaufen. Erstellen Sie eine Unity-Katalog-HTTP-Verbindung mit Host https://slack.com und Basispfad /api, und verwenden Sie dann die Proxy-URL als SDK-Basis-URL:

from slack_sdk import WebClient
from databricks.sdk import WorkspaceClient

w = WorkspaceClient()

client = WebClient(
    token=w.config.authenticate()["Authorization"].split(" ")[1],
    base_url=f"{w.config.host}/api/2.0/unity-catalog/connections/slack_connection/proxy/",
)

result = client.chat_postMessage(channel="C123456", text="Hello from Databricks!")
print(result["message"]["text"])

Generisches HTTP

Verwenden Sie für Dienste ohne dediziertes SDK die requests Bibliothek mit der Proxy-URL direkt:

import requests
from databricks.sdk import WorkspaceClient

w = WorkspaceClient()

response = requests.post(
    f"{w.config.host}/api/2.0/unity-catalog/connections/my_connection/proxy/api/v1/resource",
    headers={
        **w.config.authenticate(),
        "Content-Type": "application/json",
    },
    json={"key": "value"},
)

UC-Funktionstools mit HTTP-Verbindungen

Note

Azure Databricks empfiehlt die Verwendung von MCP-Servern oder dem UC-Verbindungsproxy für neue Integrationen. UC-Funktionstools mit http_request werden zwar weiterhin unterstützt, sind jedoch nicht mehr der empfohlene Ansatz.

Sie können eine Unity-Katalogfunktion erstellen, die http_request() umschließt, um externe Dienste aufzurufen. Dieser Ansatz ist für SQL-basierte Tooldefinitionen nützlich. Ausführliche Informationen zum Erstellen von UC-Funktionstools finden Sie unter Erstellen von KI-Agent-Tools mithilfe von Unity Catalog-Funktionen .

Im folgenden Beispiel wird ein Unity Catalog-Funktionstool erstellt, das eine Nachricht an Slack sendet:

CREATE OR REPLACE FUNCTION main.default.slack_post_message(
  text STRING COMMENT 'message content'
)
RETURNS STRING
COMMENT 'Sends a Slack message by passing in the message and returns the response received from the external service.'
RETURN (http_request(
  conn => 'test_sql_slack',
  method => 'POST',
  path => '/api/chat.postMessage',
  json => to_json(named_struct(
    'channel', "C032G2DAH3",
    'text', text
  ))
)).text

Siehe CREATE FUNCTION (SQL und Python).

Note

SQL-Zugriff mit http_request ist für die Verbindungstypen "Benutzer-zu-Maschine pro Benutzer" und "Dynamische Clientregistrierung" blockiert. Verwenden Sie stattdessen das Python Azure Databricks SDK.

Beispielnotebooks

Verbinden eines Agents mit Slack

Siehe Verbinden eines AI-Agents mit Slack.

Verbinden eines Agents mit Microsoft Teams

Siehe Verbinden Sie einen KI-Agenten mit Microsoft Teams.

Externe Verbindungstools

Die folgenden Notizbücher veranschaulichen das Erstellen von KI-Agent-Tools, die eine Verbindung mit Slack, OpenAI und Azure KI-Suche herstellen.

Messagingagententool von Slack

Notebook abrufen

Microsoft Graph-API-Agent-Tool

Notebook abrufen

Azure KI-Suche-Agent-Tool

Notebook abrufen