Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
En lugar de crear un agente que haga todo, un orquestador multiagente enruta las solicitudes a subagentes especializados desde un único punto de entrada.
Por ejemplo, puede combinar un agente RAG que consulta documentos no estructurados con un agente de Genie que consulta datos estructurados, por lo que los usuarios obtienen respuestas de varios orígenes.
El orquestador trata cada subagente como una herramienta y utiliza sus instrucciones para enrutar las solicitudes al correcto. El orquestador admite los siguientes tipos de subagentes:
- Agentes de Databricks Apps: otros agentes implementados como Databricks Apps, llamados a través de la API de Responses.
- Genie Agents: consulta de datos de lenguaje natural a través del servidor MCP integrado Azure Databricks.
- Puntos de Servicio: asistentes de conocimiento, agentes o modelos en Model Serving que admiten la API de Respuestas.
Requirements
- La CLI de Databricks instalada y autenticada. Las llamadas de aplicación a aplicación requieren OAuth. Consulte Instalación o actualización de la CLI de Databricks.
- Python 3.11 o superior.
- Administrador de
uvpaquetes. Consulte instalación uv. - Aplicaciones de Databricks habilitadas en el área de trabajo. Consulte Configuración del área de trabajo y el entorno de desarrollo de Databricks Apps.
- Al menos un subagente que orquestar: un Genie Agent, otra aplicación de Databricks, un asistente de conocimiento o un punto de conexión de servicio.
Pruebe el Supervisor de agentes primero.
Antes de compilar un orquestador personalizado, considere la posibilidad de usar el agente supervisor para crear un sistema multiagente coordinado. Compila y administra el sistema multiagente automáticamente a través de una interfaz de usuario. Puedes conectar Genie Agents, puntos de conexión de agentes, funciones de Unity Catalog, servidores MCP y agentes personalizados, y mejorar la calidad de la coordinación con el tiempo mediante comentarios en lenguaje natural de expertos en la materia.
Cree un sistema multiagente en Databricks Apps si necesita una lógica de enrutamiento personalizada o un comportamiento de orquestación que el supervisor del agente no admite.
Clona la plantilla del coordinador multiagente
La plantilla de orquestador multiagente proporciona la estructura básica para la organización del proyecto y la lógica de orquestación mediante el SDK de agentes de OpenAI. También incluye archivos de aptitudes que enseñan a los asistentes de codificación de IA cómo desarrollar el orquestador.
Clone la plantilla y vaya a la carpeta :
git clone https://github.com/databricks/app-templates.git
cd app-templates/agent-openai-agents-sdk-multiagent
Configuración de subagentes
Cada back-end al que puede llamar el orquestador se define como un subagente en la SUBAGENTS lista de agent_server/agent.py.
Elimina el comentario y configura las entradas que necesites. Actualice la descripción para describir el subagente con más detalle. La calidad de la descripción está directamente relacionada con la forma en que el orquestador puede enrutar las solicitudes al subagente correcto:
SUBAGENTS = [
{
"name": "genie",
"type": "genie",
"space_id": "<YOUR-GENIE-SPACE-ID>",
"description": (
"Query a Genie Agent for structured data analysis. "
"Use this for questions about data, metrics, and tables."
),
},
{
"name": "app_agent",
"type": "app",
"endpoint": "<YOUR-APP-AGENT-NAME>",
"description": (
"Query a specialist agent deployed as a Databricks App. "
"Use this for questions the specialist app agent handles."
),
},
{
"name": "knowledge_assistant",
"type": "serving_endpoint",
"endpoint": "<YOUR-ENDPOINT>",
"description": (
"Query the knowledge-assistant endpoint on Model Serving. "
"Use this for knowledge-base and documentation lookups. "
"The endpoint must have task type agent/v1/responses."
),
},
]
Cada entrada se convierte automáticamente en una herramienta a la que el orquestador puede llamar. Debe habilitar al menos un subagente.
En la tabla siguiente se describe cada tipo de subagente:
| Type | Cómo se conecta | Requisitos |
|---|---|---|
app |
API de respuestas a través de apps/<name> |
Autenticación de OAuth, CAN_USE permiso en la aplicación de destino |
genie |
Servidor integrado MCP de Azure Databricks | ID de Genie Agent, permiso CAN_RUN |
serving_endpoint |
API de respuestas a través del nombre del punto de conexión | El punto de conexión debe tener el tipo de tarea Agente (Respuestas) en la interfaz de usuario de Serving. Incluye asistentes de conocimiento, agentes y modelos. |
Personalización del orquestador
El agente orquestador se crea en la función create_orchestrator_agent(). Actualice las instrucciones para describir sus herramientas específicas y cuándo usar cada una de ellas:
Agent(
name="Orchestrator",
instructions=(
"You are an orchestrator agent. Route the user's request to the "
"most appropriate tool or data source:\n"
"- Use the Genie MCP tools for questions about structured data in <dataset_name> that contains information about <topic>\n"
"- Use query_app_agent for questions or tasks that the specialist app agent handles for ...\n"
"- Use query_knowledge_assistant for knowledge-base lookups about <topic>.\n"
"If unsure, ask the user for clarification."
),
model="databricks-claude-sonnet-4-5",
mcp_servers=[mcp_server] if mcp_server else [],
tools=subagent_tools,
)
Tip
Cuanto más específicas sean las instrucciones del orquestador, con mayor precisión enruta las solicitudes. Describir el propósito de cada herramienta y los tipos de preguntas que controla.
Configuración de recursos y permisos
Declare los recursos que necesita el orquestador en databricks.yml. Cada tipo de subagente requiere su propia entrada de recursos:
resources:
- name: 'genie_space'
genie_space:
name: 'Genie Agent'
space_id: '<YOUR-GENIE-SPACE-ID>'
permission: 'CAN_RUN'
- name: 'serving_endpoint'
serving_endpoint:
name: '<YOUR-ENDPOINT>'
permission: 'CAN_QUERY'
Actualice los valores de marcador de posición de databricks.yml para que coincidan con los subagentes que configuró en agent_server/agent.py.
Concesión del acceso del orquestador a una aplicación de Databricks de destino
Si su orquestador llama a una aplicación de Databricks que es un subagente, debe conceder manualmente al principal de servicio de la aplicación del orquestador el permiso CAN_USE en la aplicación de destino. Este permiso no se puede declarar como un recurso de agrupación y se debe aplicar después de la implementación.
Nota:
El service_principal_name campo de la solicitud de permisos debe ser el ID de cliente (UUID) del principal de servicio, no el nombre para mostrar. El uso del nombre para mostrar se realiza con éxito de forma silenciosa, pero no concede el permiso. El databricks apps get comando devuelve este valor como service_principal_client_id.
Busque el ID de cliente del principal de servicio de la aplicación del orquestador:
databricks apps get <YOUR-ORCHESTRATOR-APP-NAME> --output json | jq -r '.service_principal_client_id'Concede al principal de servicio de la aplicación del orquestador el permiso
CAN_USEen la aplicación de destino:databricks apps update-permissions <TARGET-APP-NAME> \ --json '{"access_control_list": [{"service_principal_name": "<SP-CLIENT-ID>", "permission_level": "CAN_USE"}]}'
Prueba localmente
Configure el entorno local e inicie el agente:
uv run quickstart
uv run start-app
El quickstart script configura la autenticación de Azure Databricks y crea un experimento de MLflow para el seguimiento. Después de la instalación, start-app inicia el servidor del agente y una interfaz de usuario de chat en http://localhost:8000.
Implementar en Databricks Apps
Implemente el orquestador mediante agrupaciones de automatización declarativa:
Valide la configuración del lote:
databricks bundle validateDespliegue el paquete en el área de trabajo.
databricks bundle deployInicie la aplicación:
databricks bundle run agent_openai_agents_sdk_multiagent
Importante
bundle deploy carga archivos, pero no inicia la aplicación. Ejecute bundle run para iniciar la aplicación.
Recursos adicionales
Después de implementar el orquestador, explore los siguientes recursos: