AI agents
Cómo los AI agents acotan roles MCP y skills por tenant — instrucciones, la regla de permisos efectivos, cómo elegir uno al conectar y cómo Plur-e puede desactivarlo.
Respuesta rápida
Un AI agent es un perfil con nombre que un administrador del tenant crea en AI &
MCP → AI agents: instrucciones personalizadas (hasta 4000 caracteres), un conjunto de
roles MCP a los que hace referencia y, para Business Central, las secciones que puede
ver. Un AI agent nunca amplía lo que un usuario ya puede hacer — solo lo acota. Un
usuario del tenant elige uno en la pantalla de consentimiento al conectar, con
select_agent, o con la cabecera X-Plure-Agent; sin ninguno, cada llamada sigue
funcionando exactamente como describen los roles MCP por sí solos.
Qué es un AI agent
- Un AI agent pertenece a un tenant y lista: instrucciones personalizadas para el asistente de IA (hasta 4000 caracteres), los roles MCP a los que hace referencia, las skills que permite por área y las tools que permite.
- Las instrucciones son un punto de partida para la conversación — contexto extra, tono o procedimiento que el administrador del tenant quiere que el asistente de IA siga — no una forma de conceder un acceso que un rol no permita ya.
- Un administrador del tenant crea, edita y publica AI agents en el Admin Center. Un usuario cuyo rol MCP incluya AI agents: Write también puede proponer desde un cliente de IA un agente nuevo o un cambio; la propuesta se guarda como borrador y no hace nada hasta que un administrador la publica en Agent Studio.
Tres capas, una sola regla
| Capa | Controla |
|---|---|
| Roles MCP | Qué entidades (Dynamics 365 CRM) o áreas (Business Central) puede leer, escribir, contabilizar o eliminar un usuario |
| Rol web | Qué skills ve ese usuario en el Admin Center |
| AI agent | Instrucciones personalizadas, y cuáles de los roles, skills y tools del usuario aplican en esta conexión |
La regla es siempre la misma: el acceso efectivo es la intersección entre el acceso del usuario y el del AI agent. Si el AI agent no menciona un rol, una skill o una tool que el usuario tiene, ese rol, skill o tool simplemente no se ofrece mientras el AI agent está seleccionado — nunca se añade encima de lo que el usuario ya tiene. Un AI agent con una lista vacía para algo (sin roles listados, sin skills restringidas) significa que hereda el acceso completo del usuario para esa capa en lugar de acotarlo.
Permisos de los roles de un agente
Cada nivel de la cadena de un AI agent (el propio agente y cada ancestro) puede hacer referencia a roles MCP. Los roles pertenecen a un tipo de conexión (Business Central o Dynamics 365 CRM), así que un nivel que hace referencia a roles solo funciona en una conexión que esos roles cubran.
- Si los roles de cualquier nivel de la cadena no cubren la conexión, el AI agent no lee nada en ella. El acceso se deniega, nunca se amplía: la regla falla en cerrado.
- El cliente de IA recibe este mensaje: The AI agent's roles do not cover this connection. Ask a tenant administrator to add a role for it to the agent, or select another agent.
- La solución está en el Admin Center: añade un rol que cubra la conexión en la pestaña Roles del AI agent, o selecciona otro AI agent.
- Un nivel sin roles no está restringido: hereda lo que permite el nivel superior, como se describe en Tres capas, una sola regla.
Crear uno
En el Admin Center, entra en Developers → AI & MCP → AI agents y pulsa New AI agent: dale un nombre, escribe sus instrucciones y elige los roles MCP, las secciones de Business Central y las tools a las que debe acotar la conexión. Un administrador del tenant puede hacerlo directamente — consulta Roles MCP para ver cómo se crean y asignan los propios roles. Los usuarios sin derechos de administrador solo pueden proponer un agente, como se describe a continuación.
Proponer agentes desde un cliente de IA
Un cliente de IA conectado al servidor de Business Central o de Dynamics 365 CRM puede ayudar a un usuario a diseñar un AI agent o un subagente, y una skill que lo acompañe, sin abrir el Admin Center. Todo lo que crea es un borrador.
Permisos. Añade las líneas AI agents y Skills, cada una con Read o Write, a un rol MCP del destino Business Central y asígnalo al usuario. Read permite al cliente de IA consultar las definiciones existentes y el catálogo; Write le permite proponer borradores. Las líneas también aplican en el servidor de Dynamics 365 CRM: una sesión de CRM sigue necesitando un rol de Business Central que las incluya. Write en una línea no concede Write en la otra.
Pasos.
- El cliente de IA lee el catálogo de lo que el usuario puede usar: límites, política de revisión, agentes existentes, tools, skills y los roles que se pueden asignar.
- Propone un agente nuevo (opcionalmente como subagente de uno existente) o un cambio en un agente existente y, cuando el agente lo necesita, una skill nueva o modificada. El usuario puede pedir ajustes hasta que el borrador quede bien.
- Cuando el usuario lo confirma, el cliente de IA envía el borrador a revisión.
- Un administrador del tenant lo revisa y lo publica en Agent Studio; una skill se publica en Skills → Proposed changes. Consulta Agent studio.
Hasta entonces, el agente publicado y la skill publicada siguen funcionando exactamente como antes.
Tools. Nueve tools plure_* cubren estos pasos:
| Tool | Requiere | Qué hace |
|---|---|---|
plure_get_authoring_catalog | AI agents: Read | Lista límites, política de revisión, agentes, tools, skills y roles que puedes asignar |
plure_get_agent_definition | AI agents: Read | Lee el contenido publicado de un agente y su versión abierta |
plure_propose_agent | AI agents: Write | Propone un agente o subagente nuevo como borrador |
plure_propose_agent_change | AI agents: Write | Propone cambios en un agente existente como borrador |
plure_submit_agent_draft | AI agents: Write | Envía tu borrador a revisión en Agent Studio |
plure_discard_agent_draft | AI agents: Write | Descarta tu borrador (elimina un agente que nunca se publicó) |
plure_get_skill_definition | Skills: Read | Lee una skill y su propuesta abierta |
plure_propose_skill | Skills: Write | Propone una skill nueva o modificada como borrador |
plure_discard_skill_draft | Skills: Write | Descarta tu propuesta de skill |
Conviene saber.
- Un agente nuevo no se puede usar hasta su primera publicación: aparece como Awaiting
first publication y
select_agentno lo encuentra. Un subagente no se puede publicar antes que su padre. - Los roles añadidos a una propuesta nunca pueden conceder más que los roles del propio usuario.
- Una propuesta solo puede usar las tools y skills que permite su agente padre, y un agente gestionado por Plur-e no se puede cambiar de esta forma.
- Las propuestas no se ofrecen en ejecuciones autónomas, y un cliente de IA no puede publicar, habilitar ni borrar un agente.
- La guía
agent-authoring, que el cliente de IA lee antes de proponer nada, explica el modelo: instrucciones, tools, skills, roles, versiones y los errores que puede encontrar.
Elegirlo al conectar
- Pantalla de consentimiento: los usuarios del tenant que ven la pantalla de consentimiento OAuth al conectar obtienen un desplegable AI agent con los AI agents del tenant, más "None". Elegir uno lo fija para esa conexión.
select_agent: cualquier cliente puede llamar aselect_agentcon el nombre exacto del agente, o con"none"para quitar el que ya estaba seleccionado, en cualquier momento de la conversación.- Cabecera
X-Plure-Agent: los clientes sin estado que envían una cabecera en cada petición pueden enviarX-Plure-Agentcon el nombre del agente en cada llamada; enviarX-Plure-Agent: nonelo quita.
Dos tools de solo lectura ayudan a un cliente a descubrir qué hay disponible:
plure_list_agents (los AI agents del tenant, nombre y descripción) y
plure_current_agent (el seleccionado para esta conexión, si lo hay).
Qué cambia
- Las instrucciones elegidas en la pantalla de consentimiento o mediante la cabecera
X-Plure-Agentse inyectan eninitialize, así que el asistente de IA las ve desde el primer mensaje. - Las instrucciones elegidas a mitad de conversación con
select_agentvuelven en el resultado de esa tool — un cliente solo las ve al llamarla — y están disponibles después desde el recurso MCPplure-bc://agent(Business Central) oplure-crm://agent(Dynamics 365 CRM).
La lista de tools sigue al agente activo
En los servidores de Business Central (/bc) y Dynamics 365 CRM (/crm), la lista de
tools que ve el cliente de IA sigue al AI agent activo: las tools que el agente (o
cualquier ancestro) no permite no aparecen en la lista.
- Cuando seleccionas un agente, pasas a un subagente o vuelves a su padre, el servidor envía
al cliente un mensaje
notifications/tools/list_changed, de modo que un cliente que lo admita actualiza la lista sin reconectar. - Si el AI agent activo deja de estar disponible (por ejemplo, se desactivó), solo se
listan
select_agent,plure_list_agents,plure_current_agentyselect_tenant, para que el cliente de IA pueda elegir otro. plure_delegateyplure_delegation_resultse ocultan mientras el runner de agentes del servidor está apagado.- La lista es una comodidad. La restricción real se aplica en cada llamada: una tool que no está permitida se rechaza aunque un cliente la siga mostrando.
La granularidad de Business Central es la sección
Un AI agent acota el acceso a Business Central al nivel de sección — las mismas 16
secciones (bc_wms_receipts, bc_sales, …) a las que se mapean las áreas de los
roles MCP — no al nivel de un método individual dentro de una sección.
Subagentes y delegación
Un AI agent puede tener subagentes: AI agents más pequeños, cada uno centrado en un área, a los que un AI agent padre encarga trabajo. El asistente de IA habla con el padre; el padre delega cada petición en el subagente que la gestiona y resume la respuesta.
Un árbol de agentes
Un AI agent puede tener un padre, y el árbol puede llegar a 3 niveles por debajo de la raíz. Por ejemplo, un árbol de operaciones móviles para Business Central:
Mobile
├── Sales
├── Purchases
├── Payments
└── WMS
├── WMS Basic
└── WMS AdvancedLos árboles existen dentro de un tenant. Los AI agents de plataforma de Plur-e no tienen subagentes, y las tools de delegación y de traspaso de más abajo no están disponibles en el endpoint de plataforma.
Un subagente solo puede acotar
Un subagente nunca obtiene más que su padre. Su acceso efectivo es el acceso del usuario intersectado con cada nivel de su cadena, tanto para roles como para skills y tools:
| Capa | Decide |
|---|---|
| Usuario | Los roles, skills y tools que la persona ya tiene |
| Cada ancestro | Cuáles de ellos permiten el padre, el abuelo y así sucesivamente |
| Subagente | Cuáles de los que quedan permite para sí mismo |
- Una lista vacía en un nivel significa que ese nivel hereda lo que permite el nivel superior.
- Desactivar un AI agent desactiva también a sus subagentes.
- Seleccionar un subagente directamente (pantalla de consentimiento,
select_agentoX-Plure-Agent) y delegar en él desde su padre dan exactamente el mismo límite. - Un cambio hecho en un ancestro puede tardar hasta 1 minuto en aplicarse a sus subagentes.
Crear el árbol
En el Admin Center, entra en Developers → AI & MCP → AI agents:
- Elige un Parent agent al crear un AI agent, o más tarde en su pestaña General. Déjalo vacío para un AI agent raíz.
- La pestaña Sub-agents de un AI agent lista sus hijos directos y permite añadir uno.
- En las pestañas Roles, Skills y Tools de un subagente, todo lo que su padre no permite aparece deshabilitado con Not allowed by parent.
- Un AI agent que tiene subagentes no se puede borrar hasta que sus subagentes se muevan o se borren.
- Al clonar un AI agent desde el área de plataforma puedes incluir sus subagentes.
Plur-e ofrece por sí misma la jerarquía Mobile anterior, como AI agents de sistema: ves los 7 en Developers → AI & MCP → AI agents y los personalizas sin copiarlos (consulta Agentes de sistema y personalización). Cada uno ya trae las secciones de Business Central que necesita:
| Rama | Secciones de Business Central |
|---|---|
| Mobile | Sin restricción (coordina y delega) |
| Mobile · Sales | bc_sales, bc_sales_order_shipment, bc_items_tracking, bc_item_journals |
| Mobile · Purchases | bc_purchase_orders, bc_transfer_orders |
| Mobile · Payments | bc_payments |
| Mobile · WMS | Las secciones de almacén de sus dos hijos, más pedidos de compra, pedidos de transferencia, envíos de pedidos de venta, clasificación de artículos, hojas de horas, seguimiento de artículos y diarios de artículos; delega en Basic o Advanced según la configuración de la ubicación |
| Mobile · WMS Basic | bc_purchase_orders, bc_transfer_orders, bc_sales_order_shipment, bc_item_classification, bc_time_sheets, bc_wms_bins_movements, bc_wms_inventory_counts, bc_items_tracking, bc_item_journals |
| Mobile · WMS Advanced | bc_wms_receipts, bc_wms_put_away, bc_wms_picks_shipments, bc_wms_license_plates, bc_wms_bins_movements, bc_wms_inventory_counts, bc_items_tracking, bc_item_journals |
Subagentes: traspaso frente a delegación
Hay dos formas de usar un subagente desde un cliente de IA. Elige según quién hace el trabajo:
| Traspaso | Delegación | |
|---|---|---|
| Tools | plure_handoff_to_agent, plure_return_to_parent_agent | plure_delegate, plure_delegation_result |
| Quién trabaja | Tu asistente de IA, en el mismo chat, como el subagente | El subagente, solo, en el servidor de Plur-e |
| Qué usa | Las instrucciones, skills y tools del subagente | Las instrucciones, skills y tools del subagente, con el modelo de IA configurado para él |
| Modelo de IA del servidor | No se usa | Se usa (cuenta contra el presupuesto) |
| Contexto | Toda la conversación | Solo el texto de la tarea |
| Resultado | Sigues hablando con el subagente hasta que vuelve | Un informe, tratado como dato no confiable |
Usa un traspaso para una tarea concreta que quieres seguir y dirigir en la conversación. Usa la delegación solo cuando el subagente deba trabajar por su cuenta en el servidor.
plure_handoff_to_agent(agent, task)
plure_return_to_parent_agent(summary)plure_handoff_to_agentpasa la conversación a un hijo directo del AI agent activo. Desde ese momento se aplican las instrucciones, skills y tools del subagente, y el límite es exactamente el mismo que si lo seleccionaras directamente.plure_return_to_parent_agentvuelve al padre con un resumen breve de lo hecho. El traspaso termina cuando vuelves al AI agent en el que empezó.select_agent(con cualquier valor, incluido"none") yselect_tenanttambién terminan el traspaso.- Los traspasos no están disponibles cuando el AI agent viene fijado por la cabecera
X-Plure-Agento por el token de una ejecución autónoma, ni para clientes que no mantienen sesión. Solo se ofrecen en los servidores de Business Central y Dynamics 365 CRM. - El estado del traspaso vive en la sesión MCP. Si la sesión se reinicia o caduca, se pierde y el cliente de IA tiene que volver a seleccionar el AI agent.
Delegar desde tu cliente de IA
Con un AI agent seleccionado que tenga subagentes habilitados, plure_list_agents los
muestra y el asistente de IA puede llamar a:
plure_delegate(agent, task, allowWrites?, waitSeconds?)- El subagente trabaja en el servidor de Plur-e con el modelo de IA configurado para él. Ve solo el texto de la tarea, no la conversación, así que la tarea debe llevar todos los detalles que necesita. Responde con un informe.
- Solo puedes delegar en hijos directos del AI agent seleccionado que estén habilitados. El informe se trata como dato no confiable, nunca como instrucciones.
plure_delegateespera hasta unos 150 segundos. Si el subagente no ha terminado, la respuesta incluye unrunId: llama aplure_delegation_result(runId)para obtener el informe.- Si el cliente se desconecta, el subagente sigue trabajando y puedes obtener el resultado
más tarde con
plure_delegation_result. allowWritesesfalsepor defecto: el subagente puede leer pero no modificar datos. Ponlo entruesolo en una sesión interactiva cuando la tarea deba escribir; el cliente MCP te pide confirmación.- Cada usuario puede tener como máximo 3 delegaciones en curso a la vez.
En ejecuciones autónomas
Una ejecución autónoma también puede delegar en subagentes:
- Los subagentes de una ejecución autónoma nunca escriben, sea cual sea lo que la propia ejecución tenga permitido.
- Lo que gastan los subagentes cuenta contra el mismo presupuesto que la ejecución del AI agent raíz.
- Cancelar una ejecución cancela también las de sus subagentes.
Envío de correo
Un AI agent puede enviar un correo con plure_send_email, desde el buzón de Plur-e, a
personas de tus propios dominios. Está apagado hasta que un administrador del tenant lo
configura:
- Permite dominios de destinatarios. En Developers → AI & MCP → Settings, rellena Allowed
recipient domains (AI agents): hasta 20 dominios separados por comas, por ejemplo
contoso.com, fabrikam.com. Un dominio coincide exactamente — los subdominios no están incluidos. Vacío significa que los AI agents no pueden enviar correo. - Concede la tool. Selecciona
plure_send_emailexplícitamente en la pestaña Tools del AI agent. Heredar todas las tools no la incluye. En un subagente, un ancestro que restrinja sus tools también debe listarla.
Límites y comportamiento:
| Elemento | Regla |
|---|---|
| Destinatarios | Hasta 25 direcciones distintas entre to y cc, todas en un dominio permitido |
| Asunto | Hasta 200 caracteres |
| Cuerpo | Texto plano (por defecto) o HTML sencillo: párrafos, listas, tablas, enlaces y estilos básicos; todo lo demás se elimina |
| Excel | excelFileName adjunta las tablas de un cuerpo HTML como archivo de Excel (una hoja por tabla), de hasta 2,5 MB |
| Firma | Se añade automáticamente: Sent by the AI agent <nombre> from Plur-e |
| Reply-To | El usuario que usa el cliente de IA |
| Auditoría | Registra cuántos destinatarios hay, sus dominios y el asunto, nunca las direcciones ni el cuerpo |
- Un destinatario fuera de los dominios permitidos rechaza todo el correo; el mensaje lista los dominios, no las direcciones.
- El servidor de Plur-e puede tener el correo apagado; la tool responde entonces que el correo está desactivado en el servidor.
Ejecuciones autónomas. Un trigger tiene la casilla Send emails without approval.
Con ella activada no hay cola de aprobación: plure_send_email se envía enseguida en las
ejecuciones de ese trigger, incluso cuando el ajuste Writes del trigger es Deny. Solo afecta a
plure_send_email: cualquier otra escritura sigue el ajuste Writes. Los subagentes,
las delegaciones interactivas y las pruebas no se ven afectados.
Modelos de IA
Las ejecuciones autónomas y las delegaciones usan los modelos de IA que Plur-e pone a disposición de los AI agents (Available to AI agents). Plur-e configura cada modelo con el Provider que lo sirve.
- Algunos proveedores admiten un ajuste Effort, que fija cuánto trabajo dedica el modelo a cada respuesta: Model default, Low, Medium, High, Extra high o Max. Los proveedores que no lo admiten lo ignoran.
- Los modelos que solo están disponibles para AI agents no los usa el chat de entrenamiento.
Desactivación por Plur-e
Plur-e puede desactivar un AI agent para todos los usuarios de un tenant desde el
servidor /super o el área de plataforma del Admin Center, sea cual sea la
configuración del tenant. Un AI agent desactivado no se puede seleccionar en la pantalla
de consentimiento, con select_agent ni con la cabecera X-Plure-Agent hasta que Plur-e
lo reactive.
Para personalizar los AI agents de sistema de Plur-e sin copiarlos, observar tus AI agents en vivo, revisar sus ejecuciones, pausarlos y revisar versiones, consulta el Agent studio.
Relacionado: Roles MCP · Conecta tu cliente de IA · Flujos móviles de Business Central
Last updated on
Edit on GitHubRoles MCP
Cómo los roles MCP controlan lo que tu asistente de IA puede hacer en los servidores de Business Central y Dynamics 365 CRM de Plur-e — entidades, acciones, el rol por defecto y los mensajes exactos de denegación.
Agent studio
Personaliza los AI agents de sistema de Plur-e sin copiarlos, observa tus AI agents en vivo, revisa sus ejecuciones, aprueba sus escrituras, páusalos y conserva un historial versionado.