Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
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. Weitere Informationen finden Sie unter Verwenden externer MCP-Server für Installationsmethoden, programmgesteuerte Verwendung und Authentifizierungsdetails.
Hinzufügen eines externen MCP-Servers zu Ihrem Agent
Nachdem Sie den externen MCP-Server als Unity Catalog-Verbindung registriert haben, verbinden Sie Ihren Agent mit ihm über die verwaltete MCP-URL: https://<workspace-hostname>/api/2.0/mcp/external/{connection_name}. Ersetzen Sie <connection-name> durch den Namen Ihrer Unity Catalog-Verbindung.
OpenAI Agents SDK (Apps)
from agents import Agent, Runner
from databricks.sdk import WorkspaceClient
from databricks_openai.agents import McpServer
workspace_client = WorkspaceClient()
host = workspace_client.config.host
async with McpServer(
url=f"{host}/api/2.0/mcp/external/<connection-name>",
name="external-service",
workspace_client=workspace_client,
) as external_server:
agent = Agent(
name="Connected agent",
instructions="You are a helpful assistant with access to external services.",
model="databricks-claude-sonnet-4-5",
mcp_servers=[external_server],
)
result = await Runner.run(agent, "Send a Slack message to the team about the deployment")
print(result.final_output)
Gewähren Sie der App Zugriff auf die Unity-Katalogverbindung in databricks.yml:
resources:
apps:
my_agent_app:
resources:
- name: 'my_connection'
uc_securable:
securable_full_name: '<connection-name>'
securable_type: 'CONNECTION'
permission: 'USE_CONNECTION'
LangGraph (Apps)
from databricks.sdk import WorkspaceClient
from databricks_langchain import ChatDatabricks, DatabricksMCPServer, DatabricksMultiServerMCPClient
from langgraph.prebuilt import create_react_agent
workspace_client = WorkspaceClient()
host = workspace_client.config.host
mcp_client = DatabricksMultiServerMCPClient([
DatabricksMCPServer(
name="external-service",
url=f"{host}/api/2.0/mcp/external/<connection-name>",
workspace_client=workspace_client,
),
])
async with mcp_client:
tools = await mcp_client.get_tools()
agent = create_react_agent(
ChatDatabricks(endpoint="databricks-claude-sonnet-4-5"),
tools=tools,
)
result = await agent.ainvoke(
{"messages": [{"role": "user", "content": "Send a Slack message to the team about the deployment"}]}
)
print(result["messages"][-1].content)
Gewähren Sie der App Zugriff auf die Unity-Katalogverbindung in databricks.yml:
resources:
apps:
my_agent_app:
resources:
- name: 'my_connection'
uc_securable:
securable_full_name: '<connection-name>'
securable_type: 'CONNECTION'
permission: 'USE_CONNECTION'
Bereitstellung von Modellen
from databricks.sdk import WorkspaceClient
from databricks_mcp import DatabricksMCPClient
import mlflow
workspace_client = WorkspaceClient()
host = workspace_client.config.host
mcp_client = DatabricksMCPClient(
server_url=f"{host}/api/2.0/mcp/external/<connection-name>",
workspace_client=workspace_client,
)
tools = mcp_client.list_tools()
mlflow.pyfunc.log_model(
"agent",
python_model=my_agent,
resources=mcp_client.get_databricks_resources(),
)
Informationen zum Bereitstellen des Agents finden Sie unter Bereitstellen eines Agents für generative KI-Anwendungen (Model Serving). Ausführliche Informationen zum Protokollieren von Agents mit MCP-Ressourcen finden Sie unter Use Databricks managed MCP servers.
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 https://www.googleapis.com/auth/documents.readonly https://www.googleapis.com/auth/spreadsheets.readonly offline_access |
Schreibgeschützter Zugriff auf Google Drive-Dateien. |
| SharePoint-API | Nichts | https://graph.microsoft.com/Sites.Read.All offline_access openid profile |
Schreibgeschützter Zugriff auf SharePoint-Sites. |
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 Installieren eines externen MCP-Servers.
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 den Verbindungstyp "Benutzer-zu-Maschine für jeden Nutzer" 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 Einen KI-Agenten mit Microsoft Teams verbinden.
Externe Verbindungstools
Die folgenden Notizbücher veranschaulichen das Erstellen von KI-Agent-Tools, die eine Verbindung mit Slack, OpenAI und Azure KI-Suche herstellen.