Databricks Agent Bricks + Neo4j 集成
概述
Databricks Agent Bricks (Mosaic AI Agent Framework) 于 2025 年 6 月发布,具备自动优化、评估和治理功能。它具有 MCP 目录、Unity Catalog 集成以及对多种模型(GPT-5、Gemini、Claude、Llama)的支持。
核心功能
-
用于管理 MCP 服务器的 MCP 目录 (MCP Catalog)
-
用于治理的 Unity Catalog 集成
-
自动生成评估并对智能体进行调优
-
多模型支持
-
文档智能
-
用于可观测性的 MLflow
官方资源
示例
本目录包含三个端到端示例,每个示例都演示了通过自定义和官方 Neo4j MCP 服务器实现的 Databricks 与 Neo4j 之间不同的集成模式。示例可以使用 Databricks SDK/CLI 或通过 Databricks UI 进行部署,并默认使用公共 Neo4j 公司演示数据库:neo4j+s://demo.neo4jlabs.com:7687。
| # | 示例 | Pattern (模式) | 认证模式 | 部署 |
|---|---|---|---|---|
1 |
作为工具的 UC 函数 |
代码中,受 UC 治理保护 |
Databricks Notebook |
|
2 |
作为 Databricks App 的 Python 自定义 MCP 服务器 |
Databricks Secrets |
Databricks CLI |
|
3 |
作为 Databricks App 的官方 MCP 服务器 |
Databricks Secrets |
Databricks CLI |
示例 2:自定义 MCP 服务器 — 使用 Databricks App
使用 Databricks App 部署用 Python 编写的自定义 MCP 服务器,该服务器将 Neo4j 驱动程序查询定义为工具。Neo4j 基本身份验证凭据从 Databricks Secrets 中获取。
→ 完整文档
扩展点
1. MCP 目录(主要)
从 Databricks Marketplace 安装 Neo4j MCP 服务器或手动安装
from databricks_mcp import DatabricksMCPClient
from databricks.sdk import WorkspaceClient
workspace_client = WorkspaceClient(profile="DEFAULT")
host = workspace_client.config.host
client = DatabricksMCPClient(
servers=[
f"{host}/api/2.0/mcp/neo4j/prod/company_research"
],
workspace_client=workspace_client
)
# Use tools
tools = client.as_tools()
MCP 身份验证
✅ 个人访问令牌 (PAT) - 用于用户访问
✅ 服务主体 (Service Principals)(机器对机器交互的主要方式)
-
Agent Bricks 多智能体主管 (Supervisor) 需要 OAuth M2M
-
Databricks 账户中的 OAuth 应用程序注册
✅ M2M OIDC
-
以 Databricks 作为身份提供商的 OAuth 2.0
-
支持动态客户端注册
-
Azure Databricks 的 Azure AD 集成
其他机制
-
Unity Catalog 权限
-
托管 MCP 代理(令牌刷新由 Databricks 处理)
-
代理用户 (On-Behalf-Of-User, OBO) 身份验证
-
自动身份验证直通 (passthrough)
行业研究智能体示例
import mlflow
from databricks_mcp import DatabricksMCPClient
from databricks.sdk import WorkspaceClient
# Setup
workspace_client = WorkspaceClient()
mcp_client = DatabricksMCPClient(
servers=["https://your-workspace/api/2.0/mcp/neo4j/prod"],
workspace_client=workspace_client
)
# Define agent
class ResearchAgent:
def __init__(self, tools):
self.tools = tools
def research_company(self, company_name: str) -> str:
# Query company data
company_data = self.tools["query_company"](company_name)
# Search news
news = self.tools["search_news"](company_name)
# Generate report
return self.synthesize_report(company_data, news)
# Log agent to MLflow
tools = mcp_client.as_tools()
agent = ResearchAgent(tools)
with mlflow.start_run():
mlflow.log_param("model", "claude-3-5-sonnet")
mlflow.pyfunc.log_model("research_agent", python_model=agent)
# Deploy
deployment = mlflow.deployments.create_deployment(
name="research-agent",
model_uri=f"runs:/{run.info.run_id}/research_agent",
endpoint="agents"
)
其他资源
-
Databricks MCP: https://docs.databricks.com/en/generative-ai/mcp/
-
演示数据库: neo4j+s://demo.neo4jlabs.com:7687 (companies/companies)