Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Important
Эта функция доступна в общедоступной предварительной версии.
Подключите ваших агентов ИИ к внешним приложениям, таким как Slack, Google Calendar, или любой службе, имеющей API. Azure Databricks предоставляет несколько подходов в зависимости от того, имеет ли внешняя служба сервер MCP, требуется ли проверка подлинности на пользователя или требуется ли вызывать API непосредственно из кода агента. Все подходы используют HTTP-подключение каталога Unity для безопасного управления учетными данными и управления доступом к внешним службам.
| Подход | Рекомендуемый вариант использования |
|---|---|
| Внешние серверы MCP | Используйте этот подход для служб, публикующих сервер MCP. Он обеспечивает автоматическое обнаружение инструментов и работает со стандартными пакетами SDK. |
| Управляемый OAuth | Используйте этот подход для интеграции Google Drive или SharePoint. Azure Databricks управляет учетными данными OAuth, поэтому регистрация приложений не требуется. |
| Прокси-сервер подключений UC | Используйте этот подход для прямого вызова REST API из кода агента с помощью собственного клиентского пакета SDK внешней службы. |
| Инструменты UC | Используйте этот подход для определений инструментов на основе SQL, которые обтекают функцию http_request() . |
Requirements
- HTTP-подключение каталога Unity для внешнего приложения. Подключения Unity Catalog обеспечивают безопасное, настраиваемое управление учетными данными и поддерживают несколько методов проверки подлинности, включая OAuth 2.0 для аутентификации от пользователя к машине и от машины к машине.
Внешние серверы MCP
Если у внешней службы есть сервер MCP, Azure Databricks рекомендует подключаться через серверы external MCP. Серверы MCP обеспечивают автоматическое обнаружение инструментов, упрощенную интеграцию и проверку подлинности на пользователя. Смотрите Использование внешних серверов MCP для методов установки, программного использования и проверки подлинности.
Добавьте внешний сервер MCP к вашему агенту
После того как вы зарегистрируете внешний сервер MCP как подключение к Unity Catalog, подключите к нему агента, используя управляемый MCP URL: https://<workspace-hostname>/api/2.0/mcp/external/{connection_name}. Замените <connection-name> именем подключения каталога Unity.
Пакет SDK для агентов OpenAI (приложения)
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)
Предоставьте приложению доступ к подключению каталога Unity в 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 (приложения)
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)
Предоставьте приложению доступ к подключению каталога Unity в databricks.yml:
resources:
apps:
my_agent_app:
resources:
- name: 'my_connection'
uc_securable:
securable_full_name: '<connection-name>'
securable_type: 'CONNECTION'
permission: 'USE_CONNECTION'
Обслуживание моделей
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(),
)
Сведения о развертывании агента см. в статье "Развертывание агента для создания приложений ИИ (обслуживание моделей)". Дополнительные сведения об агентах ведения журнала с ресурсами MCP см. в разделе "Использование управляемых серверов MCP Databricks".
Управляемый OAuth
Azure Databricks предлагает управляемые потоки OAuth для выбора поставщиков инструментов API. Вам не нужно регистрировать собственное приложение OAuth или управлять учетными данными. Azure Databricks рекомендует управляемый OAuth для разработки и тестирования. Если в производственных сценариях требуется создание пользовательских учетных данных OAuth, за дополнительной информацией обратитесь к документации со стороны поставщиков.
Следующие интеграции используют учетные данные OAuth, управляемые Azure Databricks, безопасно хранящиеся в серверной части.
| Поставщик | Заметки о конфигурации | Поддерживаемые области | Описание |
|---|---|---|---|
| Google Drive API | Нет | https://www.googleapis.com/auth/drive.readonly https://www.googleapis.com/auth/documents.readonly https://www.googleapis.com/auth/spreadsheets.readonly offline_access |
Доступ только для чтения к файлам Google Drive. |
| API SharePoint | Нет | https://graph.microsoft.com/Sites.Read.All offline_access openid profile |
Доступ только для чтения к SharePoint сайтам. |
Чтобы настроить управляемый OAuth, создайте HTTP-соединение с подключением OAuth User to Machine Per User и выберите вашего поставщика из списка поставщиков OAuth. Подробные инструкции см. в разделе "Установка внешнего сервера MCP".
Каждому пользователю предлагается авторизоваться поставщиком при первом использовании.
При необходимости разрешите следующие URI перенаправления, используемые управляемым OAuth:
| Облако | Перенаправляющий 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
Используйте прокси-сервер конечной точки соединений Unity Catalog вместе с клиентским SDK внешней службы для вызова REST API непосредственно из кода агента. Наведите базовый URL-адрес пакета SDK на конечную точку прокси-сервера и используйте маркер Azure Databricks в качестве ключа API. Azure Databricks выполняет проверку подлинности запроса и автоматически вводит учетные данные внешней службы из подключения каталога Unity. Ваш код никогда не обрабатывает маркеры внешней службы напрямую.
Необходимые разрешения:USE CONNECTION на объект подключения.
OpenAI
Используйте DatabricksOpenAI для маршрутизации вызовов во внешнюю OpenAI через прокси-сервер подключений каталога Unity. Сначала создайте HTTP-соединение для Каталога Unity, используя ключ API OpenAI, хранящийся в качестве секрета в Databricks:
CREATE CONNECTION openai_connection TYPE HTTP
OPTIONS (
host 'https://api.openai.com',
base_path '/v1',
bearer_token secret ('<secret-scope>', '<secret-key>')
);
Затем установите databricks-openai пакет и используйте URL-адрес прокси-сервера и клиент рабочей области в коде агента:
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
Настройте SDK Slack для маршрутизации через прокси-сервер подключений Unity Catalog. Создайте HTTP-подключение каталога Unity с узлом https://slack.com и базовым путем /api, а затем используйте URL-адрес прокси-сервера в качестве базового 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"])
Базовый HTTP-запрос
Для служб без выделенного пакета SDK используйте библиотеку requests с URL-адресом прокси-сервера напрямую:
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 с HTTP-подключениями
Note
Azure Databricks рекомендует использовать серверы MCP или прокси-серверы UC-подключения для новых интеграций. Инструменты функции UC с http_request по-прежнему поддерживаются, но больше не рекомендованы.
Вы можете создать функцию Unity Catalog, оборачивающую http_request(), чтобы вызывать внешние службы. Этот подход полезен для определений инструментов на основе SQL. Дополнительные сведения о создании инструментов функции UC см. в статье "Создание средств агента ИИ с помощью функций каталога Unity ".
В следующем примере создается средство функции каталога Unity, которое отправляет сообщение в 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
См. раздел CREATE FUNCTION (SQL и Python).
Note
Доступ к SQL с помощью http_request заблокирован для типов подключений "Пользователь-компьютер для каждого пользователя" и "Динамическая регистрация клиентов". Вместо этого используйте пакет SDK Python Azure Databricks.
Примеры записных книжек
Подключение агента к Slack
См. статью "Подключение агента ИИ к Slack".
Подключение агента к Microsoft Teams
См. раздел Connect an AI agent to Microsoft Teams.
Средства внешнего подключения
В следующих ноутбуках продемонстрировано создание инструментов для агента ИИ, которые подключаются к Slack, OpenAI и Azure AI Search.