Esquema de agente declarativo para Microsoft 365 Copilot
En este artículo se describe una especificación que establece el manifiesto del agente declarativo. El manifiesto es un documento legible por máquina que proporciona un modelo de lenguaje grande (LLM) con las instrucciones, conocimientos y acciones necesarios para especializarse en solucionar un conjunto selecto de problemas de usuario.
Los agentes declarativos son valiosos para comprender y generar texto similar a humano, lo que los hace versátiles para tareas como escribir y responder preguntas. Esta especificación se centra en el manifiesto del agente declarativo que actúa como un marco estructurado para especializar y mejorar las funcionalidades que necesita un usuario específico.
Esquema JSON
El esquema descrito en este documento se puede encontrar en formato de esquema JSONaquí.
Convenios
Referencias relativas en direcciones URL
A menos que se especifique lo contrario, todas las propiedades que son direcciones URL PUEDEN ser referencias relativas. Las referencias relativas en el documento de manifiesto son relativas a la ubicación del documento de manifiesto.
Longitud de cadena
A menos que se especifique lo contrario, todas las propiedades de cadena DEBEN estar limitadas a 4 000 caracteres. Esta longitud de cadena no confiere ningún tamaño aceptable para todo el documento. Las implementaciones pueden imponer sus propios límites prácticos sobre la longitud del manifiesto.
Propiedades no reconocidas
Los objetos JSON definidos en este documento solo admiten las propiedades descritas. Las propiedades no reconocidas o extrañas en cualquier objeto JSON DEBEN hacer que todo el documento no sea válido.
Localización de cadenas
Las cadenas localizables pueden usar una clave de localización en lugar de un valor literal. La sintaxis es [[key_name]]
, donde key_name
es el nombre clave de la localizationKeys
propiedad de los archivos de localización. Para obtener más información sobre la localización, consulte Localización del agente.
Objeto de manifiesto del agente declarativo
La raíz del documento de manifiesto es un objeto JSON que cubre los campos, funcionalidades, inicios de conversación y acciones necesarios.
El objeto de manifiesto del agente declarativo contiene las siguientes propiedades.
Propiedad | Tipo | Descripción |
---|---|---|
id |
Cadena | Opcional. |
name |
Cadena | Obligatorio. Localizable. Nombre del agente declarativo. DEBE contener al menos un carácter nowhitespace y DEBE tener 100 caracteres o menos. |
description |
Cadena | Obligatorio. Localizable. Descripción del agente declarativo. DEBE contener al menos un carácter nowhitespace y DEBE tener 1000 caracteres o menos. |
instructions |
Cadena | Obligatorio. Instrucciones detalladas o instrucciones sobre cómo debe comportarse el agente declarativo, sus funciones y cualquier comportamiento que se evite. DEBE contener al menos un carácter nowhitespace y DEBE tener 8000 caracteres o menos. |
capabilities |
Matriz del objeto Capabilities | Opcional. Contiene una matriz de objetos que definen las funcionalidades del agente declarativo. NO DEBE haber más de uno de cada tipo derivado de objeto Capabilities en la matriz. |
conversation_starters |
Matriz del objeto de inicio de conversación | Opcional. Título y texto son localizables. Una lista de ejemplos de preguntas que el agente declarativo puede responder. NO DEBE haber más de seis objetos en la matriz. |
actions |
Matriz del objeto Action | Opcional. Lista de objetos que identifican complementos de API que proporcionan acciones accesibles para el agente declarativo. |
Ejemplo de objeto de manifiesto de agente declarativo
El siguiente JSON es un ejemplo de campos obligatorios dentro de un manifiesto de agente declarativo.
{
"name" : "Repairs agent",
"description": "This declarative agent is meant to help track any tickets and repairs",
"instructions": "This declarative agent needs to look at my Service Now and Jira tickets/instances to help me keep track of open items"
}
Objeto Capabilities
El objeto capabilities es el tipo base de objetos de la capabilities
propiedad en el objeto de manifiesto del agente declarativo. Los posibles tipos de objeto son:
Ejemplo de funcionalidades
{
"capabilities": [
{
"name": "WebSearch"
},
{
"name": "OneDriveAndSharePoint",
"items_by_sharepoint_ids": [
{
"site_id": "bc54a8cc-8c2e-4e62-99cf-660b3594bbfd",
"web_id": "a5377427-f041-49b5-a2e9-0d58f4343939",
"list_id": "78A4158C-D2E0-4708-A07D-EE751111E462",
"unique_id": "304fcfdf-8842-434d-a56f-44a1e54fbed2"
}
],
"items_by_url": [
{
"url": "https://contoso.sharepoint.com/teams/admins/Documents/Folders1"
}
]
},
{
"name": "GraphConnectors",
"connections": [
{
"connection_id": "jiraTickets"
}
]
}
]
}
Objeto de búsqueda web
Indica que el agente declarativo puede buscar información de conexión a tierra en la web.
El objeto de búsqueda web contiene las siguientes propiedades.
Propiedad | Tipo | Descripción |
---|---|---|
name |
Cadena | Obligatorio. Se debe establecer en WebSearch . |
OneDrive y el objeto de SharePoint
Indica que el agente declarativo puede buscar información de base en SharePoint y OneDrive de un usuario.
El objeto OneDrive y SharePoint contiene las siguientes propiedades.
Propiedad | Tipo | Descripción |
---|---|---|
name |
Cadena | Obligatorio. Se debe establecer en OneDriveAndSharePoint . |
items_by_sharepoint_ids |
Matriz de elementos por objeto de identificadores de SharePoint | Opcional. Matriz de objetos que identifican orígenes de SharePoint o OneDrive mediante identificadores. Si se omiten las items_by_sharepoint_ids items_by_url propiedades y , todos los orígenes de OneDrive y SharePoint de la organización están disponibles para el agente declarativo. |
items_by_url |
Matriz de elementos por objeto URL | Opcional. Matriz de objetos que identifican orígenes de SharePoint o OneDrive por dirección URL. Si se omiten las items_by_sharepoint_ids items_by_url propiedades y , todos los orígenes de OneDrive y SharePoint de la organización están disponibles para el agente declarativo. |
Objeto Items by SharePoint IDs (Elementos por identificadores de SharePoint)
El objeto Items by SharePoint IDs contiene las siguientes propiedades.
Propiedad | Tipo | Descripción |
---|---|---|
site_id |
Cadena | Opcional. Identificador GUID único para un sitio de SharePoint o OneDrive. |
web_id |
Cadena | Opcional. Identificador GUID único para una web específica dentro de un sitio de SharePoint o OneDrive. |
list_id |
Cadena | Opcional. Identificador GUID único para una lista dentro de un sitio de SharePoint o OneDrive. |
unique_id |
Cadena | Opcional. Identificador GUID único que se usa para representar una entidad o recurso específico. |
Sugerencia
Para obtener instrucciones sobre cómo obtener los identificadores únicos de un recurso de SharePoint o OneDrive, consulte Recuperación de identificadores de funcionalidades para el manifiesto de agente declarativo.
Elementos por objeto URL
El objeto Items by URL contiene las siguientes propiedades.
Propiedad | Tipo | Descripción |
---|---|---|
url |
Cadena | Opcional. Dirección URL absoluta a un recurso de SharePoint o OneDrive. |
Objeto de conectores de Microsoft Graph
Indica que el agente declarativo puede buscar información de puesta a tierra en los conectores de Microsoft Graph seleccionados.
El objeto conectores de Microsoft Graph contiene las siguientes propiedades.
Propiedad | Tipo | Descripción |
---|---|---|
name |
Cadena | Obligatorio. Se debe establecer en GraphConnectors . |
connections |
Matriz del objeto Connection | Opcional. Matriz de objetos que identifican los conectores de Microsoft Graph disponibles para el agente declarativo. Si se omite esta propiedad, todos los conectores de Microsoft Graph de la organización están disponibles para el agente declarativo. |
Connection (objeto)
Identifica un conector de Microsoft Graph.
El objeto de conexión contiene las siguientes propiedades.
Propiedad | Tipo | Descripción |
---|---|---|
connection_id |
Cadena | Obligatorio. Identificador único del conector de Microsoft Graph. |
Sugerencia
Para obtener instrucciones sobre cómo obtener el identificador único de un conector de Microsoft Graph, consulte Recuperación de identificadores de funcionalidades para el manifiesto del agente declarativo.
Objeto Conversation Starters
El objeto starters de conversación es opcional en el manifiesto. Contiene sugerencias que se muestran al usuario para demostrar cómo pueden empezar a usar el agente declarativo.
El objeto de inicio de conversación contiene las siguientes propiedades:
Propiedad | Tipo | Descripción |
---|---|---|
text |
Cadena | Obligatorio. Localizable. Sugerencia que el usuario puede usar para obtener el resultado deseado del agente declarativo. DEBE contener al menos un carácter nowhitespace. |
title |
Cadena | Opcional. Localizable. Un título único para el inicio de la conversación. DEBE contener al menos un carácter nowhitespace. |
Ejemplo de objeto conversation starters
{
"conversation_starters": [
{
"title": "My Open Repairs",
"text": "What open repairs are assigned to me?"
}
]
}
Actions (objeto)
Las acciones son un objeto JSON opcional en el manifiesto. Actúa como una entrada del desarrollador y se puede considerar como complementos.
El objeto action contiene las siguientes propiedades.
Propiedad | Tipo | Descripción |
---|---|---|
id |
Cadena | Obligatorio. Identificador único de la acción. PUEDE ser un GUID. |
file |
Cadena | Obligatorio. Ruta de acceso al manifiesto del complemento de API para esta acción. |
Ejemplo de objeto Actions
{
"actions": [
{
"id": "repairsPlugin",
"file": "plugin.json"
}
]
}
Ejemplo de manifiesto de agente declarativo
Este es un ejemplo de un archivo de manifiesto de agente declarativo que usa la mayoría de las propiedades de manifiesto descritas en este artículo.
{
"$schema": "https://developer.microsoft.com/json-schemas/copilot/declarative-agent/v1.0/schema.json",
"name": "Teams Toolkit declarative copilot",
"description": "Declarative copilot created with Teams Toolkit",
"instructions": "You are a repairs expert copilot. With the response from the listRepairs function, you **must** create a poem out of the repairs listed and always include their title and the assigned person. The poem **must** not use the quote markdown and use regular text. If the user is asking to create a new repair, use the createRepair function and do not add poems.",
"conversation_starters": [
{
"title": "Getting Started",
"text": "How can I get started with Teams Toolkit?"
},
{
"title": "Getting Help",
"text": "How can I get help with Teams Toolkit?"
}
],
"actions": [
{
"id": "repairsPlugin",
"file": "repairs-hub-api-plugin.json"
}
],
"capabilities": [
{
"name": "WebSearch"
},
{
"name": "OneDriveAndSharePoint",
"items_by_url": [
{
"url": "https://contoso.sharepoint.com/sites/ProductSupport"
}
]
},
{
"name": "GraphConnectors",
"connections": [
{
"connection_id": "foodStore"
}
]
}
]
}