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.
Esta referencia trata los decoradores integrados disponibles en TypeSpec para Microsoft 365 Copilot, organizados por su caso de uso principal.
Nota:
Esta referencia de decorador se centra específicamente en los @microsoft/typespec-m365-copilot decoradores, pero puede usar todos los decoradores definidos en TypeSpec, incluidos los decoradores integrados y los decoradores OpenAPI.
| Decorador | Target | Description |
|---|---|---|
| @agent | Agente | Defina un agente con el nombre, la descripción y el identificador opcional. |
| @behaviorOverrides | Agente | Modifique la configuración del comportamiento de orquestación del agente. |
| @conversationStarter | Agente | Defina las solicitudes de inicio de conversación para los usuarios. |
| @customExtension | Agente | Agregue pares clave-valor personalizados para la extensibilidad. |
| @disclaimer | Agente | Mostrar declinaciones de responsabilidades legales o de cumplimiento a los usuarios. |
| @instructions | Agente | Defina instrucciones y directrices de comportamiento para el agente. |
| @actions | Complemento | Defina metadatos de acción, incluidos nombres, descripciones y direcciones URL. |
| @authReferenceId | Complemento | Especifique el identificador de referencia de autenticación para el acceso a la API. |
| @capabilities | Complemento | Configure funcionalidades de función como confirmaciones y formato de respuesta. |
| @card | Complemento | Defina plantillas de tarjeta adaptable para las respuestas de función. |
| @reasoning | Complemento | Proporcione instrucciones de razonamiento para la invocación de funciones. |
| @responding | Complemento | Defina instrucciones de formato de respuesta para las funciones. |
Decoradores de agente declarativo
Estos decoradores se usan al compilar agentes declarativos para definir el comportamiento del agente, el flujo de conversación y la experiencia del usuario.
@agent
Indica que un espacio de nombres representa un agente.
@agent(name: valueof string, description: valueof string, id?: valueof string)
Target
Namespace
Parameters
| Nombre | Tipo | Description |
|---|---|---|
description |
valueof string |
Localizable. Descripción del agente declarativo. DEBE contener al menos un carácter nowhitespace y DEBE tener 1000 caracteres o menos. |
id |
valueof string |
Opcional. Identificador único del agente. |
name |
valueof string |
Localizable. Nombre del agente declarativo. DEBE contener al menos un carácter nowhitespace y DEBE tener 100 caracteres o menos. |
Ejemplos
// Basic agent definition with simple name and description
@agent("IT Support Assistant", "An AI agent that helps with technical support and troubleshooting")
// Project management agent with more detailed description
@agent("Project Manager", "A helpful assistant for project management tasks and coordination")
// Agent with explicit ID for tracking and versioning
@agent("Data Analytics Helper", "An agent specialized in data analysis and reporting tasks", "data-analytics-v1")
@behaviorOverrides
Defina la configuración que modifique el comportamiento de la orquestación del agente.
@behaviorOverrides(behaviorOverrides: valueof BehaviorOverrides)
Target
Namespace
Parameters
| Nombre | Tipo | Description |
|---|---|---|
behaviorOverrides |
valueof BehaviorOverrides | Defina la configuración que modifique el comportamiento de la orquestación del agente. |
Modelos
BehaviorOverrides
Definición de la configuración que modifica el comportamiento de la orquestación del agente
| Nombre | Tipo | Description |
|---|---|---|
discourageModelKnowledge |
boolean |
Valor booleano que indica si se debe impedir que el agente declarativo use el conocimiento del modelo al generar respuestas. |
disableSuggestions |
boolean |
Valor booleano que indica si la característica de sugerencias está deshabilitada. |
Ejemplos
// Conservative settings: discourage model knowledge but allow suggestions
@behaviorOverrides(#{
discourageModelKnowledge: true,
disableSuggestions: false
})
// Minimal interaction: disable suggestions to reduce prompting
@behaviorOverrides(#{
disableSuggestions: true
})
// Default behavior: allow both model knowledge and suggestions
@behaviorOverrides(#{
discourageModelKnowledge: false,
disableSuggestions: false
})
@conversationStarter
Indica que un espacio de nombres contiene un inicio de conversación.
@conversationStarter(conversationStarter: valueof ConversationStarter)
Target
Namespace
Parameters
| Nombre | Tipo | Description |
|---|---|---|
conversationStarter |
valueof ConversationStarter | La información de inicio de la conversación. |
Modelos
ConversationStarter
Objeto de configuración que define un inicio de conversación para los usuarios.
| Nombre | Tipo | Description |
|---|---|---|
text |
string |
Localizable. Sugerencia que el usuario puede usar para obtener el resultado deseado del controlador de dominio. DEBE contener al menos un carácter nowhitespace. |
title |
string |
Localizable. Un título único para el inicio de la conversación. DEBE contener al menos un carácter nowhitespace. |
Ejemplos
// Generic welcome prompt for new users
@conversationStarter(#{
title: "Get Started",
text: "How can I help you today?"
})
// Status check prompt for tracking ongoing work
@conversationStarter(#{
title: "Check Status",
text: "What's the status of my recent requests?"
})
// Issue reporting prompt for technical support scenarios
@conversationStarter(#{
text: "I need to report a technical problem"
})
@customExtension
Indica que un espacio de nombres contiene una extensión personalizada con un par clave-valor para extensibilidad.
@customExtension(key: valueof string, value: valueof unknown)
Target
Namespace
Parameters
| Nombre | Tipo | Description |
|---|---|---|
key |
valueof string |
Clave de la extensión personalizada. |
value |
valueof unknown |
Valor de la extensión personalizada. Puede ser cualquier valor typespec válido. |
Ejemplos
// Adding a custom feature flag to an agent
@customExtension("featureFlag", "experimentalMode")
// Adding custom metadata with a structured value
@customExtension("metadata", #{
version: "1.0",
environment: "production"
})
// Adding a custom configuration setting
@customExtension("customConfig", #{
maxRetries: 3,
timeout: 30000
})
@disclaimer
Objeto opcional que contiene un mensaje de declinación de responsabilidades que, si se proporciona, se muestra a los usuarios al principio de una conversación para satisfacer los requisitos legales o de cumplimiento.
@disclaimer(disclaimer: valueof Disclaimer)
Target
Namespace
Parameters
| Nombre | Tipo | Description |
|---|---|---|
disclaimer |
valueof Declinación de responsabilidades | Información de declinación de responsabilidades que se muestra a los usuarios. |
Modelos
Aviso de declinación de responsabilidades
Información de declinación de responsabilidades que se muestra a los usuarios.
| Nombre | Tipo | Description |
|---|---|---|
text |
string |
Cadena que contiene el mensaje de declinación de responsabilidades. DEBE contener al menos un carácter nowhitespace. Los caracteres posteriores a 500 PUEDEN omitirse. |
Ejemplos
// General disclaimer for informational agents
@disclaimer(#{
text: "This agent provides general information only and should not be considered professional advice."
})
// Financial advice disclaimer with professional consultation reminder
@disclaimer(#{
text: "All financial information provided is for educational purposes. Please consult with a qualified financial advisor before making investment decisions."
})
// Technical support disclaimer for critical systems
@disclaimer(#{
text: "This technical support agent provides general guidance. For critical systems, please contact your IT department directly."
})
@instructions
Define las instrucciones que definen el comportamiento de un agente.
@instructions(instructions: valueof string)
Target
Namespace
Parameters
| Nombre | Tipo | Description |
|---|---|---|
instructions |
valueof string |
No localizable. 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. |
Ejemplos
// Simple, concise instructions for positive interaction
@instructions("Always respond with a positive energy.")
// Detailed instructions for technical support with specific behaviors
@instructions("""
You are a customer support agent specializing in technical troubleshooting.
Always provide step-by-step solutions and ask clarifying questions when needed.
""")
// Comprehensive instructions with disclaimers and behavioral constraints
@instructions("""
You are a financial advisor assistant. Provide general financial information
but always remind users to consult with qualified professionals for specific advice.
Never provide specific investment recommendations.
""")
Decoradores de complementos de API
Estos decoradores se usan al compilar complementos de API para definir operaciones de API, autenticación y control de respuestas.
@actions
Define la acción que se puede definir en un objeto info en una especificación de OpenAPI.
@actions(data: valueof ActionMetadata)
Target
Namespace
Parameters
| Nombre | Tipo | Description |
|---|---|---|
data |
valueof ActionMetadata | Metadatos de acción, incluidos nombres legibles, descripciones y direcciones URL. |
Modelos
ActionMetadata
Metadatos de acción, incluidos nombres legibles, descripciones y direcciones URL.
| Nombre | Tipo | Descripción |
|---|---|---|
descriptionForHuman |
string |
Obligatorio. Descripción legible del complemento. Los caracteres posteriores a 100 PUEDEN omitirse. Esta propiedad es localizable. |
nameForHuman |
string |
Obligatorio. Un nombre corto y legible para el complemento. DEBE contener al menos un carácter nowhitespace. Los caracteres posteriores a 20 PUEDEN omitirse. Esta propiedad es localizable. |
contactEmail |
string |
Opcional. Dirección de correo electrónico de un contacto para seguridad/moderación, soporte técnico y desactivación. |
descriptionForModel |
string |
Opcional. Descripción del complemento que se proporciona al modelo. Esta descripción debe describir para qué es el complemento y, en qué circunstancias, sus funciones son pertinentes. Los caracteres posteriores a 2048 PUEDEN omitirse. Esta propiedad es localizable. |
legalInfoUrl |
string |
Opcional. Dirección URL absoluta que busca un documento que contiene los términos de servicio del complemento. Esta propiedad es localizable. |
logoUrl |
string |
Opcional. Dirección URL usada para capturar un logotipo que puede usar el orquestador. Las implementaciones PUEDEN proporcionar métodos alternativos para proporcionar logotipos que cumplan sus requisitos visuales. Esta propiedad es localizable. |
privacyPolicyUrl |
string |
Opcional. Dirección URL absoluta que busca un documento que contiene la directiva de privacidad del complemento. Esta propiedad es localizable. |
Ejemplos
// Complete action metadata with all contact and legal information
@actions(#{
nameForHuman: "Customer Support API",
descriptionForModel: "Provides customer support ticket management",
descriptionForHuman: "Manage and track customer support requests",
privacyPolicyUrl: "https://company.com/privacy",
legalInfoUrl: "https://company.com/legal",
contactEmail: "support@company.com"
})
// Enhanced action metadata with branding and comprehensive descriptions
@actions(#{
nameForHuman: "Project Management Suite",
descriptionForModel: "Comprehensive project management tools",
privacyPolicyUrl: "https://company.com/privacy",
legalInfoUrl: "https://company.com/terms",
contactEmail: "pm-support@company.com",
logoUrl: "https://company.com/logo.png",
descriptionForHuman: "A complete project management solution for teams"
})
// Minimal action metadata focusing on analytics functionality
@actions(#{
nameForHuman: "Analytics Dashboard",
descriptionForHuman: "Real-time analytics and reporting platform",
descriptionForModel: "Generate reports and analyze business data"
})
@authReferenceId
Define el identificador de referencia de autenticación para el tipo de autenticación.
@authReferenceId(value: valueof string)
Target
Model
Parameters
| Nombre | Tipo | Description |
|---|---|---|
value |
valueof string |
Identificador de referencia del almacén para el tipo de autenticación. |
Ejemplos
// Reference to the Developer Portal OAuth client registration ID (https://dev.teams.cloud.microsoft/oauth-configuration)
@authReferenceId("NzFmOTg4YmYtODZmMS00MWFmLTkxYWItMmQ3Y2QwMTFkYjQ3IyM5NzQ5Njc3Yi04NDk2LTRlODYtOTdmZS1kNDUzODllZjUxYjM=")
// Reference to the Developer Portal API key registration ID (https://dev.teams.cloud.microsoft/api-key-registration)
@authReferenceId("5f701b3e-bf18-40fb-badd-9ad0b60b31c0")
@capabilities
Admite el objeto de funcionalidades de una función de acción tal como se define en el objeto de manifiesto del complemento de API . Puede usar este decorador para definir tarjetas adaptables sencillas con definiciones pequeñas como confirmation. Para tarjetas adaptables más complejas, puede usar el @card decorador.
@capabilities(capabilities: valueof FunctionCapabilitiesMetadata)
Target
Operation
Parameters
| Nombre | Tipo | Description |
|---|---|---|
capabilities |
valueof FunctionCapabilitiesMetadata | Contiene una colección de datos que se usan para configurar funcionalidades opcionales del orquestador al invocar la función. |
Modelos
Funcionalidades de funciónMetadata
Contiene una colección de datos que se usan para configurar funcionalidades opcionales del orquestador al invocar la función.
| Nombre | Tipo | Description |
|---|---|---|
confirmation |
Confirmación | Opcional. Describe un cuadro de diálogo de confirmación que DEBE presentarse al usuario antes de invocar la función. |
responseSemantics |
ResponseSemantics | Opcional. Describe cómo el orquestador puede interpretar la carga de respuesta y proporcionar una representación visual. |
securityInfo |
SecurityInfo | Opcional. Contiene atestaciones sobre el comportamiento del complemento con el fin de evaluar los riesgos de llamar a la función. Si se omite esta propiedad, la función no puede interactuar con otros complementos o funcionalidades del agente contenedor. |
Confirmación
Describe cómo el orquestador pide al usuario que confirme antes de llamar a una función.
| Nombre | Tipo | Description |
|---|---|---|
body |
string |
Opcional. Texto del cuadro de diálogo de confirmación. Esta propiedad es localizable. |
title |
string |
Opcional. Título del cuadro de diálogo de confirmación. Esta propiedad es localizable. |
type |
string |
Opcional. Especifica el tipo de confirmación. Los valores posibles son: None, AdaptiveCard. |
ResponseSemantics
Contiene información para identificar la semántica de la carga de respuesta y habilitar la representación de esa información en una experiencia visual enriquecida mediante tarjetas adaptables.
| Nombre | Tipo | Descripción |
|---|---|---|
dataPath |
string |
Obligatorio. Una consulta JSONPath RFC9535 que identifica un conjunto de elementos de la respuesta de función que se va a representar mediante la plantilla especificada en cada elemento. |
oauthCardPath |
string |
Opcional. |
properties |
ResponseSemanticsProperties | Opcional. Permite la asignación de consultas JSONPath a elementos de datos conocidos. Cada consulta JSONPath es relativa a un valor de resultado. |
staticTemplate |
Record<unknown> |
Opcional. Objeto JSON que se ajusta al esquema de tarjeta adaptable y al lenguaje de plantillas. Esta instancia de tarjeta adaptable se usa para representar un resultado de la respuesta del complemento. Este valor se usa si templateSelector no está presente o no se resuelve en una tarjeta adaptable. |
ResponseSemanticsProperties
Permite la asignación de consultas JSONPath a elementos de datos conocidos. Cada consulta JSONPath es relativa a un valor de resultado.
| Nombre | Tipo | Description |
|---|---|---|
informationProtectionLabel |
string |
Opcional. Indicador de confidencialidad de datos del contenido del resultado. |
subTitle |
string |
Opcional. Subtítulo de una cita para el resultado. |
templateSelector |
string |
Opcional. Expresión JSONPath en una instancia de tarjeta adaptable que se va a usar para representar el resultado. |
title |
string |
Opcional. Título de una cita para el resultado. |
thumbnailUrl |
string |
Opcional. Dirección URL de una imagen en miniatura para el resultado. |
url |
string |
Opcional. Dirección URL de una cita para el resultado. |
SecurityInfo
Contiene información que se usa para determinar el riesgo relativo de invocar la función.
| Nombre | Tipo | Descripción |
|---|---|---|
dataHandling |
string[] |
Obligatorio. Matriz de cadenas que describen el comportamiento de control de datos de la función. Los valores válidos son GetPublicData, GetPrivateData, DataTransform, DataExporty ResourceStateUpdate. |
Ejemplos
// Simple confirmation dialog for destructive operations
@capabilities(#{
confirmation: #{
type: "AdaptiveCard",
title: "Delete Ticket",
body: "Are you sure you want to delete this support ticket? This action cannot be undone."
}
})
// Comprehensive capabilities with confirmation and response formatting
@capabilities(#{
confirmation: #{
type: "modal",
title: "Create Project",
body: """
Creating a new project with the following details:
* **Title**: {{ function.parameters.name }}
* **Description**: {{ function.parameters.description }}
* **Team Lead**: {{ function.parameters.teamLead }}
"""
},
responseSemantics: #{
dataPath: "$.projects",
properties: #{
title: "$.name",
subTitle: "$.description",
url: "$.projectUrl",
thumbnailUrl: "$.teamLogo"
},
staticTemplate: #{file: "adaptiveCards/dish.json"}
}
})
@card
Define la referencia de tarjeta adaptable para una función.
@card(cardPath: valueof CardMetadata)
Target
Operation
Parameters
| Nombre | Tipo | Description |
|---|---|---|
cardPath |
valueof CardMetadata | Define la referencia de tarjeta adaptable para una función. Versión simplificada de responseSemantics. |
Modelos
CardMetadata
Respuesta simplificadaSemantics centrados en la tarjeta adaptable.
| Nombre | Tipo | Descripción |
|---|---|---|
dataPath |
string |
Obligatorio. Una consulta JSONPath RFC9535 que identifica un conjunto de elementos de la respuesta de función que se va a representar mediante la plantilla especificada en cada elemento. |
file |
string |
Obligatorio. Ruta de acceso a la plantilla de tarjeta adaptable. En relación con el directorio appPackage. |
properties |
CardResponseSemanticProperties | Opcional. Permite la asignación de consultas JSONPath a elementos de datos conocidos. Cada consulta JSONPath es relativa a un valor de resultado. |
CardResponseSemanticProperties
Permite la asignación de consultas JSONPath a elementos de datos conocidos para la representación de tarjetas. Cada consulta JSONPath es relativa a un valor de resultado.
| Nombre | Tipo | Description |
|---|---|---|
informationProtectionLabel |
string |
Opcional. Indicador de confidencialidad de datos del contenido del resultado. |
subTitle |
string |
Opcional. Subtítulo de una cita para el resultado. |
thumbnailUrl |
string |
Opcional. Dirección URL de una imagen en miniatura para el resultado. |
title |
string |
Opcional. Título de una cita para el resultado. |
url |
string |
Opcional. Dirección URL de una cita para el resultado. |
Ejemplos
// Basic card configuration with data binding
@card(#{
dataPath: "$.tickets",
file: "cards/ticketCard.json"
})
// Card with property mappings for citations and metadata
@card(#{
dataPath: "$.projects",
file: "cards/project.json",
properties: #{
title: "$.name",
url: "$.projectUrl",
subTitle: "$.description",
thumbnailUrl: "$.teamLogo"
}
})
@reasoning
Define las instrucciones de razonamiento de una función dentro de una acción.
@reasoning(value: valueof string)
Target
Operation
Parameters
| Nombre | Tipo | Description |
|---|---|---|
value |
valueof string |
Instrucciones de razonamiento para la operación. |
Ejemplos
// Prioritization logic for ticket search operations
@reasoning("""
When searching for tickets, prioritize by severity level and creation date.
Always include ticket ID and status in the response.
""")
// Role-based access control reasoning for project operations
@reasoning("""
For project queries, consider the user's role and project permissions.
Filter results based on team membership and access levels.
""")
// Data validation reasoning for analytics requests
@reasoning("""
When processing analytics requests, validate date ranges and ensure
the requested metrics are available for the specified time period.
""")
@responding
Define las instrucciones de respuesta de una función dentro de una acción.
@responding(value: valueof string)
Target
Operation
Parameters
| Nombre | Tipo | Description |
|---|---|---|
value |
valueof string |
Instrucciones de respuesta para la operación. |
Ejemplos
// Structured table format for support ticket responses
@responding("""
Present support tickets in a clear table format with columns: ID, Title, Priority, Status, Created Date.
Include summary statistics at the end showing total tickets by status.
""")
// Bullet point format for project information display
@responding("""
Display project information using bullet points for easy reading.
Always include project timeline and current phase information.
""")