Creación de un origen de conocimiento de Work IQ (versión preliminar)

Note

Búsqueda de Azure AI está disponible a través del portal de Azure, las API REST y los SDK de Azure. También respalda Foundry IQ, la capa de conocimiento administrada que transforma el contenido empresarial en bases de conocimiento reutilizables y compatibles con permisos para agentes en el portal de Microsoft Foundry.

Importante

Estas características y funcionalidades forman parte de la API REST 2026-05-01-preview. La versión preliminar 2026-05-01-preview se le concede bajo licencia como parte de su suscripción de Azure y está sujeta a los términos aplicables a las "Versiones preliminares" establecidos en los Microsoft Product Terms, el Microsoft Products and Services Data Protection Addendum ("DPA") y los Términos de uso complementarios para las versiones preliminares de Microsoft Azure.

La 2026-05-01-preview admite conexiones a otros servicios de Microsoft y a servicios de terceros. El uso de estos servicios está sujeto a sus respectivos términos y podría dar lugar a procesamiento o almacenamiento de datos fuera del límite de cumplimiento de Azure, así como a los datos que fluyen a los límites de cumplimiento de Azure.

Al conectarse a Work IQ, puede incurrir en costos y es posible que los datos se envíen fuera del límite de cumplimiento de Azure y se procesen según los términos de servicio y las directivas de control de datos aplicables. Es su responsabilidad gestionar si sus datos saldrán fuera de los límites geográficos y de cumplimiento normativo de su organización, así como cualquier implicación relacionada, y garantizar que se hayan establecido los permisos, límites y aprobaciones adecuados.

Es responsable de revisar y probar cuidadosamente las aplicaciones que compile en el contexto de sus casos de uso específicos y de tomar todas las decisiones y personalizaciones adecuadas. Esto incluye implementar sus propias mitigaciones de IA responsables, como metaprompts, filtros de contenido u otros sistemas de seguridad, y garantizar que las aplicaciones cumplan los estándares de calidad, confiabilidad, seguridad y confiabilidad adecuados. Para obtener más información, consulte la nota de transparencia Búsqueda de Azure AI.

Una fuente de conocimientos de Work IQ (versión preliminar) conecta Work IQ a una canalización de recuperación de agentes en Búsqueda de Azure AI. Los orígenes de conocimiento se crean de forma independiente, se hace referencia en una base de conocimiento y se usan como datos de base cuando se consulta la base de conocimiento en tiempo de ejecución.

Work IQ extrae inteligencia organizativa a partir del contenido de Microsoft 365, incluidos los documentos, los correos electrónicos, las reuniones y la actividad en las aplicaciones de Microsoft 365.

A diferencia de los orígenes de conocimiento indexados, los orígenes de conocimiento de Work IQ consultan datos activos directamente en tiempo de recuperación. No se necesita ninguna canalización de ingesta. Las consultas requieren un token de acceso de usuario final, que el motor de recuperación usa para llamar a Work IQ en nombre del autor de la llamada.

Advertencia

En esta versión preliminar, un origen de conocimiento de Work IQ podría usar funcionalidades de Work IQ que realizan acciones, no solo recuperar información. Úselo con cuidado, limite el acceso a aplicaciones y usuarios de confianza y revise los permisos y controles de gobernanza de su escenario antes de habilitarlo.

Soporte para el uso

Azure Portal Portal de Microsoft Foundry SDK de .NET SDK de Python SDK de Java SDK de JavaScript REST API
✔️ ✔️ ✔️ ✔️ ✔️ ✔️

Prerrequisitos

  • Un servicio de Búsqueda de Azure AI en cualquier región que proporcione recuperación mediante agentes.

  • Cada usuario final que realiza consultas a través de este origen de conocimiento debe tener una licencia de Microsoft 365 Copilot.

  • El servicio de Búsqueda de Azure AI, el entorno Work IQ y los usuarios finales deben estar en el mismo tenant de Microsoft Entra. No se admite recuperación entre inquilinos.

  • Acceso aprobado a la recuperación de Work IQ a través de Búsqueda de Azure AI. Para obtener más información, consulte Solicitar acceso a la recuperación de Work IQ.

  • Permisos para crear orígenes de conocimiento. Configure la autenticación sin clave con el rol Colaborador del servicio de búsqueda asignado a su cuenta de usuario (recomendado) o use una clave de API.

  • El paquete de versión preliminar Azure.Search.Documents más reciente: dotnet add package Azure.Search.Documents --prerelease
  • El paquete de versión preliminar azure-search-documents más reciente: pip install --pre azure-search-documents

Solicitud de acceso a la recuperación de Work IQ

La recuperación de Work IQ a través de Búsqueda de Azure AI está desactivada de forma predeterminada y requiere una solicitud aprobada por Microsoft antes de poder usarse.

Para solicitar acceso:

  1. Registre la marca de característica EnableFoundryIQWithWorkIQ en la suscripción de Azure.

    az feature register --namespace Microsoft.Search --name EnableFoundryIQWithWorkIQ --subscription "<your-subscription-guid>"
    
  2. Vuelva a registrar el proveedor de recursos Microsoft.Search.

    az provider register -n Microsoft.Search --subscription "<your-subscription-guid>"
    
  3. Haga que un administrador de Microsoft Entra para el inquilino envíe el formulario de solicitud de acceso Work IQ.

  4. Espere a que Microsoft habilite el acceso después de revisar y aprobar la solicitud.

    Tip

    El registro de una característica en versión preliminar requiere el Owner o Contributor rol integrado en la suscripción, que es un rol independiente del administrador de Microsoft Entra que envía el formulario. Las dos responsabilidades pueden ser mantenidas por diferentes personas de su organización. Para obtener más información sobre el mecanismo de registro, consulte Set up preview features in Azure subscription.

Gobernanza y cumplimiento de datos

Work IQ funciona completamente dentro del límite de confianza de Microsoft 365. Los siguientes compromisos se aplican al enrutar las solicitudes del agente a través de Work IQ.

Ubicación de almacenamiento de datos

Work IQ recupera datos del inquilino de Microsoft 365 de su organización. Los datos no salen de su entorno ni cruzan los límites regionales durante la recuperación. La ubicación de los datos depende de la configuración de residencia de datos de su inquilino de Microsoft 365, no de la región del servicio Búsqueda de Azure AI. Para obtener más información, consulte Data, Privacidad y Seguridad para Microsoft 365 Copilot.

Privacidad y control de datos

Todas las solicitudes de Work IQ se rigen por Data, Privacidad y Seguridad para Microsoft 365 Copilot. Compromisos clave:

  • Work IQ no usa contenido de cliente para entrenar o mejorar los modelos de inteligencia artificial subyacentes.

Control de acceso y permisos

Work IQ aplica automáticamente los permisos de Microsoft 365 en cada solicitud. Los agentes solo pueden acceder a los datos que el usuario que ha iniciado sesión ya está autorizado para ver. No es posible la elevación de privilegios.

  • Se respetan el control de acceso basado en rol, las etiquetas de confidencialidad y las barreras de información definidas en Microsoft 365.

Certificaciones de cumplimiento

Work IQ hereda las certificaciones de cumplimiento de Microsoft 365. Para obtener más información, consulte Data, Privacidad y Seguridad para Microsoft 365 Copilot.

Comprobación de orígenes de conocimiento existentes

Un origen de conocimiento es un objeto reutilizable de nivel superior. Conocer los orígenes de conocimiento existentes resulta útil para reutilizar o asignar nombres a nuevos objetos.

Ejecute el código siguiente para enumerar los orígenes de conocimiento por nombre y tipo.

// List knowledge sources by name and type
using Azure.Search.Documents.Indexes;

var indexClient = new SearchIndexClient(new Uri(searchEndpoint), credential);
var knowledgeSources = indexClient.GetKnowledgeSourcesAsync();

Console.WriteLine("Knowledge Sources:");

await foreach (var ks in knowledgeSources)
{
    Console.WriteLine($"  Name: {ks.Name}, Type: {ks.GetType().Name}");
}

Reference:SearchIndexClient

# List knowledge sources by name and type
from azure.core.credentials import AzureKeyCredential
from azure.search.documents.indexes import SearchIndexClient

index_client = SearchIndexClient(endpoint = "search_url", credential = AzureKeyCredential("api_key"))

for ks in index_client.list_knowledge_sources():
    print(f"  - {ks.name} ({ks.kind})")

Reference:SearchIndexClient

### List knowledge sources by name and type
GET {{search-url}}/knowledgesources?api-version={{api-version}}&$select=name,kind
Authorization: Bearer {{token}}

Reference:Knowledge Sources - List

También puede devolver un único origen de conocimiento por nombre para revisar la definición JSON de este.

using Azure.Search.Documents.Indexes;
using System.Text.Json;

var indexClient = new SearchIndexClient(new Uri(searchEndpoint), credential);

// Specify the knowledge source name to retrieve
string ksNameToGet = "earth-knowledge-source";

// Get its definition
var knowledgeSourceResponse = await indexClient.GetKnowledgeSourceAsync(ksNameToGet);
var ks = knowledgeSourceResponse.Value;

// Serialize to JSON for display
var jsonOptions = new JsonSerializerOptions 
{ 
    WriteIndented = true,
    DefaultIgnoreCondition = System.Text.Json.Serialization.JsonIgnoreCondition.Never
};
Console.WriteLine(JsonSerializer.Serialize(ks, ks.GetType(), jsonOptions));

Reference:SearchIndexClient

# Get a knowledge source definition
from azure.core.credentials import AzureKeyCredential
from azure.search.documents.indexes import SearchIndexClient
import json

index_client = SearchIndexClient(endpoint = "search_url", credential = AzureKeyCredential("api_key"))

ks = index_client.get_knowledge_source("knowledge_source_name")
print(json.dumps(ks.as_dict(), indent = 2))

Reference:SearchIndexClient

### Get a knowledge source definition
GET {{search-url}}/knowledgesources/{{knowledge-source-name}}?api-version={{api-version}}
Authorization: Bearer {{token}}

Referencia:Orígenes de conocimiento - Obtener

El siguiente JSON es una respuesta de ejemplo para un origen de conocimiento de Work IQ.

{
  "name": "my-workiq-ks",
  "kind": "workIQ",
  "description": "A sample Work IQ knowledge source.",
  "encryptionKey": null
}

Creación de un origen de conocimiento

Ejecute el código siguiente para crear un origen de conocimiento de Work IQ.

using Azure;
using Azure.Search.Documents.Indexes;
using Azure.Search.Documents.Indexes.Models;

Uri searchEndpoint = new Uri("<search-service-url>");
AzureKeyCredential credential = new AzureKeyCredential("<api-key>");
var indexClient = new SearchIndexClient(searchEndpoint, credential);

var knowledgeSource = new WorkIQKnowledgeSource(name: "my-workiq-ks")
{
    Description = "A sample Work IQ knowledge source."
};

await indexClient.CreateOrUpdateKnowledgeSourceAsync(knowledgeSource);
Console.WriteLine($"Knowledge source '{knowledgeSource.Name}' created or updated successfully.");

Reference:SearchIndexClient

from azure.core.credentials import AzureKeyCredential
from azure.search.documents.indexes import SearchIndexClient
from azure.search.documents.indexes.models import WorkIQKnowledgeSource

index_client = SearchIndexClient(
    endpoint="<search-service-url>",
    credential=AzureKeyCredential("<api-key>")
)

knowledge_source = WorkIQKnowledgeSource(
    name="my-workiq-ks",
    description="A sample Work IQ knowledge source."
)

index_client.create_or_update_knowledge_source(knowledge_source=knowledge_source)
print(f"Knowledge source '{knowledge_source.name}' created or updated successfully.")

Reference:SearchIndexClient

### Create a Work IQ knowledge source
PUT {{search-url}}/knowledgesources/my-workiq-ks?api-version=2026-05-01-preview
api-key: {{api-key}}
Content-Type: application/json

{
  "name": "my-workiq-ks",
  "kind": "workIQ",
  "description": "A sample Work IQ knowledge source."
}

Referencia:Orígenes de conocimiento: crear o actualizar

Asignar a una base de conocimiento

Si está satisfecho con el origen de conocimiento, agréguelo a una base de conocimiento.

Consulta de una base de conocimiento

Una vez configurada la base de conocimiento, llame a la acción de recuperación o al punto de conexión de MCP para consultar el contenido de Work IQ. Esta fuente de conocimientos tiene características únicas de respuesta y cumplimiento de permisos en tiempo de consulta.

Importante

El IQ de trabajo puede tardar entre 40 y 60 segundos o más en responder. Para evitar errores de tiempo de espera, establezca maxRuntimeInSeconds en la solicitud de recuperación en 120 o superior.

Aplicar autorizaciones en el momento de la consulta

Las fuentes de conocimientos de Work IQ usan un flujo de tokens en nombre de (OBO). El token de acceso del usuario final se pasa en el encabezado de x-ms-query-source-authorization en la solicitud de recuperación. El token debe estar limitado a la audiencia de Búsqueda de Azure AI (https://search.azure.com/.default). El motor de recuperación cambia este token por un token con ámbito de Work IQ y lo utiliza para consultar Work IQ en nombre del usuario final.

También se requiere la autenticación Búsqueda de Azure AI estándar en la solicitud de recuperación. El x-ms-query-source-authorization token se pasa por separado y no reemplaza la autenticación del servicio.

Para obtener instrucciones sobre cómo pasar el token, consulte Aplicar permisos en tiempo de consulta (versión preliminar).

Campos de respuesta específicos de WORK IQ

Las fuentes de conocimiento de Work IQ devuelven resultados en la matriz references y diagnósticos de la consulta en la matriz activity. Cada entrada de referencia contiene:

  • sourceData.extracts[].text: pasajes de texto fundamentados de Work IQ.
  • attributions[].seeMoreWebUrl: vínculo al documento de origen en Microsoft 365.

En el ejemplo siguiente se muestra una respuesta de recuperación que contiene una referencia de origen de conocimiento de Work IQ y su registro de actividad correspondiente. Para obtener instrucciones más amplias sobre cómo interpretar las respuestas de recuperación, consulte Revisión de la respuesta.

Tip

Para recibir sourceData para referencias, establezca includeReferenceSourceData en true en la entrada de la fuente de conocimientos dentro de knowledgeSourceParams en la solicitud de recuperación.

{
  "response": [
      // ... Response omitted for brevity
  ],
  "activity": [
    {
      "type": "workIQ",
      "id": 0,
      "knowledgeSourceName": "my-workiq-ks",
      "queryTime": "2026-05-01T19:25:23.683Z",
      "count": 1,
      "elapsedMs": 1137,
      "workIQArguments": {
        "search": "my query"
      }
    },
    {
       // ... Additional activity records omitted for brevity       
    }
  ],
  "references": [
    {
      "type": "workIQ",
      "id": "83dd7d40",
      "activitySource": 0,
      "rerankerScore": 3.5,
      "attributions": [
        {
          "seeMoreWebUrl": "https://..."
        }
      ],
      "sourceData": {
        "extracts": [
          {
            "text": "Have your VPN username and password ready."
          }
        ]
      }
    },
    {
      // ... Additional references omitted for brevity
    }
  ]
}

Eliminación de un origen de conocimiento

Para poder eliminar un origen de conocimiento, debe eliminar cualquier base de conocimiento que haga referencia a ella o actualizar la definición de la base de conocimiento para quitar la referencia. En el caso de los orígenes de conocimiento que generan una canalización de índice e indexador, también se eliminan todos los objetos generados . Sin embargo, si usó un índice existente para crear un origen de conocimiento, el índice no se eliminará.

Si intenta eliminar un origen de conocimiento que está en uso, se produce un error en la acción y devuelve una lista de bases de conocimiento afectadas.

Para eliminar un origen de conocimiento:

  1. Obtenga una lista de todas las bases de conocimiento del servicio de búsqueda.

    using Azure.Search.Documents.Indexes;
    
    var indexClient = new SearchIndexClient(new Uri(searchEndpoint), credential);
    var knowledgeBases = indexClient.GetKnowledgeBasesAsync();
    
    Console.WriteLine("Knowledge Bases:");
    
    await foreach (var kb in knowledgeBases)
    {
        Console.WriteLine($"  - {kb.Name}");
    }
    

    Reference:SearchIndexClient

    Una respuesta de ejemplo podría ser similar a la siguiente:

     {
         "@odata.context": "https://my-search-service.search.windows.net/$metadata#knowledgebases(name)",
         "value": [
         {
             "name": "my-kb"
         },
         {
             "name": "my-kb-2"
         }
         ]
     }
    
  2. Obtenga una definición de base de conocimiento individual para comprobar si hay referencias de origen de conocimiento.

    using Azure.Search.Documents.Indexes;
    using System.Text.Json;
    
    var indexClient = new SearchIndexClient(new Uri(searchEndpoint), credential);
    
    // Specify the knowledge base name to retrieve
    string kbNameToGet = "earth-knowledge-base";
    
    // Get a specific knowledge base definition
    var knowledgeBaseResponse = await indexClient.GetKnowledgeBaseAsync(kbNameToGet);
    var kb = knowledgeBaseResponse.Value;
    
    // Serialize to JSON for display
    string json = JsonSerializer.Serialize(kb, new JsonSerializerOptions { WriteIndented = true });
    Console.WriteLine(json);
    

    Reference:SearchIndexClient

    Una respuesta de ejemplo podría ser similar a la siguiente:

     {
       "Name": "earth-knowledge-base",
       "KnowledgeSources": [
         {
           "Name": "earth-knowledge-source"
         }
       ],
       "Models": [
         {}
       ],
       "RetrievalReasoningEffort": {},
       "OutputMode": {},
       "ETag": "\u00220x8DE278629D782B3\u0022",
       "EncryptionKey": null,
       "Description": null,
       "RetrievalInstructions": null,
       "AnswerInstructions": null
     }
    
  3. Elimine la base de conocimiento o, si tiene varios orígenes de conocimiento, actualice la base de conocimiento para quitar el origen. En este ejemplo se muestra la eliminación.

    using Azure.Search.Documents.Indexes;
    var indexClient = new SearchIndexClient(new Uri(searchEndpoint), credential);
    
    await indexClient.DeleteKnowledgeBaseAsync(knowledgeBaseName);
    System.Console.WriteLine($"Knowledge base '{knowledgeBaseName}' deleted successfully.");
    

    Reference:SearchIndexClient

  4. Elimine el origen de conocimiento.

    await indexClient.DeleteKnowledgeSourceAsync(knowledgeSourceName);
    System.Console.WriteLine($"Knowledge source '{knowledgeSourceName}' deleted successfully.");
    

    Reference:SearchIndexClient

  1. Obtenga una lista de todas las bases de conocimiento del servicio de búsqueda.

    # Get knowledge bases
    from azure.core.credentials import AzureKeyCredential
    from azure.search.documents.indexes import SearchIndexClient
    
    index_client = SearchIndexClient(endpoint = "search_url", credential = AzureKeyCredential("api_key"))
    
    print("Knowledge Bases:")
    for kb in index_client.list_knowledge_bases():
        print(f"  - {kb.name}")
    

    Reference:SearchIndexClient

    Una respuesta de ejemplo podría ser similar a la siguiente:

     {
         "@odata.context": "https://my-search-service.search.windows.net/$metadata#knowledgebases(name)",
         "value": [
         {
             "name": "my-kb"
         },
         {
             "name": "my-kb-2"
         }
         ]
     }
    
  2. Obtenga una definición de base de conocimiento individual para comprobar si hay referencias de origen de conocimiento.

    # Get a knowledge base definition
    from azure.core.credentials import AzureKeyCredential
    from azure.search.documents.indexes import SearchIndexClient
    
    index_client = SearchIndexClient(endpoint = "search_url", credential = AzureKeyCredential("api_key"))
    kb = index_client.get_knowledge_base("knowledge_base_name")
    print(kb)
    

    Reference:SearchIndexClient

    Una respuesta de ejemplo podría ser similar a la siguiente:

     {
       "name": "my-kb",
       "description": null,
       "retrievalInstructions": null,
       "answerInstructions": null,
       "outputMode": null,
       "knowledgeSources": [
         {
           "name": "my-blob-ks"
         }
       ],
       "models": [],
       "encryptionKey": null,
       "retrievalReasoningEffort": {
         "kind": "low"
       }
     }
    
  3. Elimine la base de conocimiento o, si tiene varios orígenes de conocimiento, actualice la base de conocimiento para quitar el origen. En este ejemplo se muestra la eliminación.

    # Delete a knowledge base
    from azure.core.credentials import AzureKeyCredential 
    from azure.search.documents.indexes import SearchIndexClient
    
    index_client = SearchIndexClient(endpoint = "search_url", credential = AzureKeyCredential("api_key"))
    index_client.delete_knowledge_base("knowledge_base_name")
    print(f"Knowledge base deleted successfully.")
    

    Reference:SearchIndexClient

  4. Elimine el origen de conocimiento.

    # Delete a knowledge source
    from azure.core.credentials import AzureKeyCredential 
    from azure.search.documents.indexes import SearchIndexClient
    
    index_client = SearchIndexClient(endpoint = "search_url", credential = AzureKeyCredential("api_key"))
    index_client.delete_knowledge_source("knowledge_source_name")
    print(f"Knowledge source deleted successfully.")
    

    Reference:SearchIndexClient

  1. Obtenga una lista de todas las bases de conocimiento del servicio de búsqueda.

    ### Get knowledge bases
    GET {{search-url}}/knowledgebases?api-version={{api-version}}&$select=name
    Authorization: Bearer {{token}}
    

    Reference:Knowledge Bases - List

    Una respuesta de ejemplo podría ser similar a la siguiente:

     {
         "@odata.context": "https://my-search-service.search.windows.net/$metadata#knowledgebases(name)",
         "value": [
         {
             "name": "my-kb"
         },
         {
             "name": "my-kb-2"
         }
         ]
     }
    
  2. Obtenga una definición de base de conocimiento individual para comprobar si hay referencias de origen de conocimiento.

    ### Get a knowledge base definition
    GET {{search-url}}/knowledgebases/{{knowledge-base-name}}?api-version={{api-version}}
    Authorization: Bearer {{token}}
    

    Reference:Bases de Conocimiento - Obtener

    Una respuesta de ejemplo podría ser similar a la siguiente:

     {
       "name": "my-kb",
       "description": null,
       "retrievalInstructions": null,
       "answerInstructions": null,
       "outputMode": null,
       "knowledgeSources": [
         {
           "name": "my-blob-ks"
         }
       ],
       "models": [],
       "encryptionKey": null,
       "retrievalReasoningEffort": {
         "kind": "low"
       }
     }
    
  3. Elimine la base de conocimiento o, si tiene varios orígenes de conocimiento, actualice la base de conocimiento para quitar el origen. En este ejemplo se muestra la eliminación.

    ### Delete a knowledge base
    DELETE {{search-url}}/knowledgebases/{{knowledge-base-name}}?api-version={{api-version}}
    Authorization: Bearer {{token}}
    

    Referencia:Bases de Conocimiento - Eliminar

  4. Elimine el origen de conocimiento.

    ### Delete a knowledge source
    DELETE {{search-url}}/knowledgesources/{{knowledge-source-name}}?api-version={{api-version}}
    Authorization: Bearer {{token}}
    

    Referencia:Orígenes de conocimiento: Eliminar