Notatka
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Important
Ta funkcja jest dostępna w publicznej wersji testowej.
Połącz agentów sztucznej inteligencji z aplikacjami zewnętrznymi, takimi jak Slack, Google Calendar lub dowolna usługa z interfejsem API. Azure Databricks oferuje kilka metod w zależności od tego, czy usługa zewnętrzna ma serwer MCP, niezależnie od tego, czy potrzebujesz uwierzytelniania poszczególnych użytkowników, czy też wolisz wywoływać interfejsy API bezpośrednio z kodu agenta. Wszystkie podejścia polegają na połączeniu HTTP katalogu Unity, aby bezpiecznie zapewniać poświadczenia oraz zarządzać dostępem do usług zewnętrznych.
| Metoda | Zalecany przypadek użycia |
|---|---|
| Zewnętrzne serwery MCP | Użyj tego podejścia w przypadku usług, które publikują serwer MCP. Zapewnia automatyczne odnajdywanie narzędzi i współpracuje ze standardowymi zestawami SDK. |
| Zarządzane uwierzytelnianie OAuth | Użyj tego podejścia w przypadku integracji z usługą Google Drive lub SharePoint. Azure Databricks zarządza poświadczeniami OAuth, więc rejestracja aplikacji nie jest wymagana. |
| Serwer proxy połączeń UC | Użyj tego podejścia, aby wykonywać bezpośrednie wywołania interfejsu API REST z kodu agenta przy użyciu własnego zestawu SDK klienta usługi zewnętrznej. |
| Narzędzia funkcji UC | Użyj tej metody w przypadku definicji narzędzi opartych na języku SQL, które opakowują funkcję http_request(). |
Requirements
- Połączenie HTTP do Katalogu Unity dla aplikacji zewnętrznej. Połączenia Unity Catalog zapewniają bezpieczne, zarządzane poświadczenia i umożliwiają wiele metod uwierzytelniania, w tym uwierzytelnianie użytkownik-maszyna OAuth 2.0 i uwierzytelnianie maszyna-maszyna.
Zewnętrzne serwery MCP
Jeśli usługa zewnętrzna ma dostępny serwer MCP, Azure Databricks zaleca nawiązywanie połączenia za pośrednictwem zewnętrznych serwerów MCP. Serwery MCP zapewniają automatyczne odnajdywanie narzędzi, uproszczoną integrację i uwierzytelnianie poszczególnych użytkowników. Zobacz Use external MCP servers for installation methods, programmatic usage, and authentication details ( Używanie zewnętrznych serwerów MCP , aby uzyskać informacje o metodach instalacji, użyciu programowym i uwierzytelnianiu).
Dodaj zewnętrzny serwer MCP do agenta
Po zarejestrowaniu zewnętrznego serwera MCP jako połączenia Unity Catalog, połącz agenta z nim przy użyciu zarządzanego adresu URL MCP: https://<workspace-hostname>/api/2.0/mcp/external/{connection_name}. Zastąp <connection-name> nazwą połączenia katalogu Unity.
Zestaw SDK agentów OpenAI (aplikacje)
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)
Udziel aplikacji dostępu do połączenia z Unity Catalog w 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 (aplikacje)
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)
Udziel aplikacji dostępu do połączenia Unity Catalog w databricks.yml:
resources:
apps:
my_agent_app:
resources:
- name: 'my_connection'
uc_securable:
securable_full_name: '<connection-name>'
securable_type: 'CONNECTION'
permission: 'USE_CONNECTION'
Modelowa obsługa
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(),
)
Aby wdrożyć agenta, zobacz Deploy an agent for generative AI applications (Model Serving) (Wdrażanie agenta na potrzeby generowania aplikacji sztucznej inteligencji (obsługa modeli). Aby uzyskać szczegółowe informacje na temat rejestrowania agentów z zasobami MCP, zobacz Use Databricks managed MCP servers (Korzystanie z zarządzanych serwerów MCP usługi Databricks).
Zarządzane uwierzytelnianie OAuth
Azure Databricks oferuje zarządzane przepływy OAuth dla wybranych dostawców narzędzi interfejsu API. Nie musisz rejestrować własnej aplikacji OAuth ani zarządzać poświadczeniami. Azure Databricks zaleca korzystanie z zarządzanego protokołu OAuth na potrzeby programowania i testowania. Jeśli przypadki użycia w środowisku produkcyjnym wymagają generowania niestandardowych poświadczeń protokołu OAuth, zobacz dokumentację dostawców, aby uzyskać więcej informacji.
Poniższe integracje używają poświadczeń protokołu OAuth zarządzanych przez Azure Databricks, przechowywanych bezpiecznie w infrastrukturze backendowej.
| Dostawca | Uwagi dotyczące konfiguracji | Obsługiwane zakresy | Opis |
|---|---|---|---|
| Interfejs API Google Drive | Żadne | https://www.googleapis.com/auth/drive.readonly https://www.googleapis.com/auth/documents.readonly https://www.googleapis.com/auth/spreadsheets.readonly offline_access |
Dostęp do plików Google Drive w trybie tylko do odczytu. |
| SharePoint API | Żadne | https://graph.microsoft.com/Sites.Read.All offline_access openid profile |
Dostęp tylko do odczytu do witryn SharePoint. |
Aby skonfigurować zarządzany protokół OAuth, utwórz połączenie HTTP z typem uwierzytelniania OAuth na maszynę na użytkownika i wybierz dostawcę z menu rozwijanego Dostawca OAuth . Aby uzyskać szczegółowe instrukcje, zobacz Instalowanie zewnętrznego serwera MCP.
Każdy użytkownik jest monitowany o autoryzację u dostawcy podczas pierwszego użycia.
W razie potrzeby dodaj do listy dozwolonych następujące identyfikatory URI przekierowania używane przez zarządzany protokół OAuth:
| Cloud | URI przekierowania |
|---|---|
| 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 |
Punkt końcowy proxy połączeń UC
Użyj punktu końcowego proxy połączeń Unity Catalog wraz z własnym klientem SDK usługi zewnętrznej, aby bezpośrednio z kodu agenta korzystać z interfejsów API REST. Wskaż podstawowy adres URL zestawu SDK na punkt końcowy serwera proxy i użyj swojego tokenu Azure Databricks jako klucza API. Azure Databricks uwierzytelnia żądanie i automatycznie wprowadza dane uwierzytelniające zewnętrznej usługi z połączenia Unity Catalog. Nigdy nie obsługujesz tokenów usługi zewnętrznej bezpośrednio w swoim kodzie.
Wymagane uprawnienia:USE CONNECTION w obiekcie połączenia.
OpenAI
Użyj DatabricksOpenAI do przekierowywania wywołań do zewnętrznego OpenAI za pośrednictwem proxy połączeń Unity Catalog. Najpierw utwórz połączenie HTTP Unity Catalog przy użyciu klucza interfejsu API OpenAI przechowywanego jako sekret Databricks:\
CREATE CONNECTION openai_connection TYPE HTTP
OPTIONS (
host 'https://api.openai.com',
base_path '/v1',
bearer_token secret ('<secret-scope>', '<secret-key>')
);
Następnie zainstaluj databricks-openai pakiet i użyj adresu URL serwera proxy i klienta obszaru roboczego w kodzie agenta:
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
Skonfiguruj SDK Slack, aby kierować przez serwer proxy połączeń w katalogu Unity. Utwórz połączenie HTTP katalogu Unity z hostem https://slack.com i podstawową ścieżką /api, a następnie użyj adresu URL serwera proxy jako bazowego adresu URL SDK.
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"])
Standardowe HTTP
W przypadku usług bez dedykowanego zestawu SDK użyj requests biblioteki bezpośrednio z adresem URL serwera proxy:
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"},
)
Narzędzia funkcji Zunifikowanej Komunikacji z połączeniami HTTP
Note
Azure Databricks zaleca używanie serwerów MCP lub serwera proxy połączeń UC na potrzeby nowych integracji. Narzędzia funkcji UC z http_request nadal są obsługiwane, ale nie są już zalecanym podejściem.
Możesz utworzyć funkcję Unity Catalog, która opakowuje http_request() do wywołania usług zewnętrznych. Takie podejście jest przydatne w przypadku definicji narzędzi opartych na języku SQL. Aby uzyskać szczegółowe informacje na temat tworzenia narzędzi funkcji katalogu Unity, zobacz Tworzenie narzędzi do agentów sztucznej inteligencji przy użyciu funkcji Unity Catalog.
Poniższy przykład tworzy funkcję katalogu Unity, która publikuje komunikat w usłudze Slack.
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
Zobacz CREATE FUNCTION (SQL i Python).
Note
Dostęp SQL za pomocą http_request jest blokowany dla typu połączenia "User-to-Machine Per User". Zamiast tego użyj zestawu SDK Python Azure Databricks.
Przykładowe notatniki
Łączenie agenta z usługą Slack
Zobacz Łączenie agenta sztucznej inteligencji z usługą Slack.
Łączenie agenta z Microsoft Teams
Zobacz Połącz agenta sztucznej inteligencji z Microsoft Teams.
Narzędzia połączeń zewnętrznych
W poniższych notatnikach przedstawiono tworzenie narzędzi agenta sztucznej inteligencji łączących się z usługami Slack, OpenAI i wyszukiwanie sztucznej inteligencji Azure AI.