¿Cuántos agentes Copilot hay en tu organización? Parece una pregunta sencilla hasta que el centro de administración muestra una cifra, Power Platform devuelve otra y los registros de actividad una tercera.

La diferencia no implica necesariamente un error. Cada fuente responde a una pregunta distinta: qué recursos existen, cuáles están disponibles y cuáles han generado actividad observable. Para obtener una cifra defendible hay que definir el alcance, conciliar identidades y documentar las exclusiones.

La respuesta corta

Empieza por el inventario de Power Platform y el registro de agentes de Microsoft 365. Contrasta después informes de uso y eventos. No sumes los contadores y no utilices los eventos como sustituto del inventario.

1. Define qué significa «un agente»

Antes de contar, acuerda si buscas agentes creados por tu organización, agentes disponibles para sus usuarios, agentes publicados o agentes con actividad en un periodo. Decide también si incluyes borradores, pruebas, agentes de Microsoft, soluciones de terceros y chatbots clásicos.

El catálogo puede representar un paquete; otra fuente, un recurso de plataforma; y otra, una identidad o una instancia. Una solución distribuida en varios canales no debe convertirse automáticamente en varios agentes. Tampoco debes fusionar agentes distintos solo porque comparten nombre.

En IntegroIA recomendamos separar cuatro cifras: inventariados dentro del alcance, publicados, disponibles y con actividad observada. La adopción y el valor de negocio necesitan indicadores adicionales.

2. Obtén el informe del centro de administración

En el centro de administración de Microsoft 365, accede a Agents → All Agents → Registry —los nombres pueden aparecer traducidos—. El registro distingue agentes de Microsoft, agentes de socios externos, publicados por la organización y compartidos por sus creadores.

  1. Revisa y limpia los filtros para entender el conjunto visible.
  2. Anota la tarjeta Total agents, la fecha de extracción y el alcance del registro.
  3. Exporta el inventario seleccionando All agents o Filtered agents de forma explícita.
  4. Incluye los identificadores disponibles, plataforma, propietario, estado y canales; no te quedes con el nombre.
  5. Revisa también los agentes sin propietario y asigna una acción de gobierno.

Atención: según Microsoft, filtrar la lista no cambia la tarjeta Total agents. Por eso el número de una exportación filtrada puede no coincidir con esa tarjeta. No presentes ambos como si midieran el mismo subconjunto.

El registro documenta además la exportación de usuarios activos de los últimos 30 días, con agentes utilizados, sesiones y última actividad. Es una capa de uso, no una lista completa de todos los agentes existentes. El informe general de uso de Microsoft Copilot, en Reports → Usage, tampoco sustituye un inventario de agentes.

Para extracción programática, Microsoft documenta la API de paquetes de Graph. La documentación del registro la identifica como vista previa; revisa permisos, rol AI Administrator, cobertura y paginación antes de incorporarla a un proceso estable.

3. Contrasta el inventario de Power Platform

En el centro de administración de Power Platform, abre Manage → Inventory, o la vista Manage → Copilot Studio. La documentación actual incluye agentes creados en Copilot Studio y en Microsoft 365 Copilot Agent Builder. Por tanto, no sería correcto afirmar que esta fuente solo cuenta agentes de Copilot Studio.

Exporta a CSV el conjunto completo y registra identificador, entorno, propietario, fecha de creación y metadatos de publicación cuando estén disponibles. La exportación del inventario abarca el conjunto exportado, no únicamente las filas cargadas en pantalla.

4. Conecta con la API de Power Platform

Para repetir el inventario sin depender de exportaciones manuales, la Power Platform inventory API admite consultas estructuradas que traduce a KQL sobre Azure Resource Graph. El endpoint documentado es:

POST {PowerPlatformAPI url}/resourcequery/resources/query?api-version=2024-10-01
Authorization: Bearer <token delegado de usuario>
Content-Type: application/json

{PowerPlatformAPI url} es un marcador: resuelve la URL base para tu nube y configuración en la referencia oficial. No pegues este ejemplo sin configurar autenticación y permisos.

Este cuerpo solicita el recuento de registros del tipo de recurso de agentes documentado:

{
  "TableName": "PowerPlatformResources",
  "Clauses": [
    {
      "$type": "where",
      "FieldName": "type",
      "Operator": "==",
      "Values": ["'microsoft.copilotstudio/agents'"]
    },
    { "$type": "count" }
  ]
}

Limitación importante: esta operación requiere actualmente autenticación delegada de usuario. Microsoft indica que los tokens de principal de servicio o identidad administrada producen HTTP 403. No prometas una extracción desatendida con identidad de aplicación para esta operación. Cualquier automatización debe respetar MFA, acceso condicional y las políticas del tenant.

También existe la acción Query Power Platform resources del conector Power Platform for Admins V2, con la misma limitación de autenticación. Valida su licencia y los costes de las herramientas elegidas: que exista un conector no significa que toda la solución sea gratuita.

Para obtener el detalle, retira la cláusula de recuento y utiliza proyección y paginación. La respuesta documenta count, totalRecords, resultTruncated, skipToken y data. El número de filas de una página no es el total del inventario. En una consulta agregada, el resultado del recuento está en los datos agregados, no se deduce del número de filas de la respuesta.

5. Usa KQL para contar el inventario, no eventos

En Azure Resource Graph, y con acceso a la tabla documentada, puedes contar identificadores de recursos distintos:

PowerPlatformResources
| where type == "microsoft.copilotstudio/agents"
| distinct name
| count

Esta consulta cuenta recursos del tipo indicado dentro de la cobertura accesible. No representa por sí sola todos los agentes de cualquier plataforma. Comprueba el campo name (Item ID) en el esquema y contrasta el resultado con la exportación. PowerPlatformResources es una tabla de Azure Resource Graph, no de Advanced Hunting.

Para una revisión por entorno, conserva la identidad antes de agrupar:

PowerPlatformResources
| where type == "microsoft.copilotstudio/agents"
| extend p = parse_json(properties)
| project name, Entorno = tostring(p.environmentId)
| distinct name, Entorno
| summarize Agentes = count() by Entorno
| order by Agentes desc

Un entorno vacío debe figurar como pendiente de clasificación, no desaparecer del informe. Estos ejemplos se basan en el esquema documental; no se han ejecutado contra un tenant de cliente.

6. Añade un informe de eventos con KQL

El siguiente paso responde a otra pregunta: ¿qué agentes han generado actividad registrada durante la ventana analizada? Microsoft documenta AgentsInfo para inventario y configuración en Defender, y CloudAppEvents para observabilidad de Agent 365, incluidas acciones e invocaciones de herramientas. La detección e investigación de amenazas a agentes y AgentsInfo están documentadas en vista previa.

En Defender → Advanced Hunting, comprueba primero licencias, roles, habilitación de seguridad para agentes, conector de Microsoft 365, emisión de telemetría, retención y cobertura de las plataformas. Examina muestras para identificar el ID real del agente en cada tipo de evento. No existe en este artículo una ruta universal de campos de CloudAppEvents.

Para ver el último registro de inventario observado por identidad de Defender:

AgentsInfo
| where isnotempty(AgentId)
| summarize arg_max(Timestamp, *) by AgentId
| project AgentId, SourceAgentId, AgentName, Platform,
          PublishedStatus, LifecycleStatus, Timestamp

Este resultado refleja registros disponibles en Defender y su retención, no garantiza el inventario total del tenant. SourceAgentId, EntraAgentId y ObservabilityId pueden ayudar a construir la correspondencia con otras fuentes; valida su significado antes de unirlas.

Una vez extraídos y depurados los eventos, el informe puede seguir esta plantilla. ActividadAgentesNormalizada es una vista propia ficticia, con columnas Timestamp, AgentKey y EsProduccion. No es una tabla nativa ni se puede pegar directamente en Advanced Hunting sin construir esa normalización.

// Vista propia: una fila por evento válido y deduplicado.
ActividadAgentesNormalizada
| where Timestamp >= ago(30d) and Timestamp < now()
| where EsProduccion == true and isnotempty(AgentKey)
| summarize EventosObservados = count(),
            UltimoEvento = max(Timestamp) by AgentKey
| order by UltimoEvento desc

Una conversación puede producir varios registros. Eventos no equivale a sesiones, usuarios ni tareas resueltas. Para agentes autónomos, evalúa ejecuciones y resultados con claves de correlación válidas, sin exigir usuarios humanos. Para conocer adopción, contrasta los informes oficiales y la analítica del producto; Microsoft advierte que agregados de auditoría no tienen por qué coincidir con sus informes de uso.

7. Concilia las fuentes y conserva los «sin actividad»

No sumes el registro de Microsoft 365 y Power Platform: pueden contener el mismo agente. Construye una tabla de correspondencias con clave canónica, plataforma de origen, ID nativo, ID de paquete, identidad Entra y entorno, cuando cada dato exista. Conserva la relación entre paquete, agente e instancias, sin asumir que es uno a uno.

Marca las coincidencias verificadas, los registros exclusivos de una fuente y las correspondencias pendientes. Los nombres sirven para revisar, no como clave de deduplicación. No fuerces coincidencias ambiguas para lograr una cifra aparentemente exacta.

Parte del inventario conciliado y aplica una unión izquierda con la actividad agregada por clave canónica. Así conservas los agentes sin eventos. Solo escribe «sin actividad observada» cuando hayas documentado la cobertura; donde no haya telemetría suficiente, escribe «cobertura desconocida o incompleta».

Qué debería incluir el informe final
CampoPara qué sirve
Clave canónica e IDs de origenEvitar duplicados y permitir trazabilidad.
Plataforma, entorno y estadoSeparar borradores, producción y recursos disponibles.
Propietario y responsable de negocioAsignar revisión y decisiones de ciclo de vida.
Fuente y fecha de extracciónExplicar diferencias y cambios de inventario.
Ventana y cobertura de actividadDistinguir falta de eventos de falta de observabilidad.
Eventos y último eventoMostrar actividad sin presentarla como adopción o valor.
Correspondencias pendientesHacer visible la incertidumbre del recuento.

En móvil, desliza horizontalmente los bloques de código o la tabla si lo necesitas.

Checklist para obtener una cifra defendible

Limita el acceso a exportaciones y telemetría. Para este informe normalmente no necesitas contenido de prompts ni clasificaciones individuales de productividad. Prioriza metadatos y agregados, con una finalidad y conservación acordadas.

El criterio de IntegroIA

El recuento útil no es el número más alto ni el que muestra un único panel: es el que puedes explicar, reproducir y relacionar con responsables y decisiones. Ayudamos a conectar inventario, gobierno y observabilidad sin confundir existencia con uso.

Continúa con nuestra guía sobre cómo medir el uso real de agentes o revisa nuestros servicios de agentes y Copilot Studio.

Fuentes oficiales y alcance técnico

Fuentes consultadas el 4 de octubre de 2026. Las fechas siguientes corresponden a la actualización indicada por cada documento. Artículo basado en documentación, sin acceso a tu tenant: no publica un recuento real ni acredita ejecución de las consultas. Comprueba requisitos y esquemas antes de implantarlo.