Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Cette référence couvre les éléments décoratifs intégrés disponibles dans TypeSpec pour Microsoft 365 Copilot, organisés selon leur cas d’usage principal.
Remarque
Cette référence sur les éléments décoratifs se concentre spécifiquement sur les @microsoft/typespec-m365-copilot décorateurs, mais vous pouvez utiliser tous les éléments décoratifs définis dans TypeSpec, y compris les décorateurs intégrés et lesdécorateurs OpenAPI.
| Décorateur | Target | Description |
|---|---|---|
| @agent | Agent | Définissez un agent avec un nom, une description et un ID facultatif. |
| @behaviorOverrides | Agent | Modifier les paramètres de comportement de l’orchestration de l’agent. |
| @conversationStarter | Agent | Définir des invites de démarrage de conversation pour les utilisateurs. |
| @customExtension | Agent | Ajoutez des paires clé-valeur personnalisées pour l’extensibilité. |
| @disclaimer | Agent | Afficher des exclusions de responsabilité légales ou de conformité aux utilisateurs. |
| @instructions | Agent | Définissez des instructions et des instructions comportementales pour l’agent. |
| @actions | Plugin | Définissez les métadonnées d’action, notamment les noms, les descriptions et les URL. |
| @authReferenceId | Plugin | Spécifiez l’ID de référence d’authentification pour l’accès à l’API. |
| @capabilities | Plugin | Configurez des fonctionnalités de fonction telles que les confirmations et la mise en forme des réponses. |
| @carte | Plugin | Définissez des modèles de carte adaptative pour les réponses de fonction. |
| @reasoning | Plugin | Fournissez des instructions de raisonnement pour l’appel de fonction. |
| @responding | Plugin | Définir des instructions de mise en forme de réponse pour les fonctions. |
Décorateurs d’agents déclaratifs
Ces éléments décoratifs sont utilisés lors de la création d’agents déclaratifs pour définir le comportement de l’agent, le flux de conversation et l’expérience utilisateur.
@agent
Indique qu’un espace de noms représente un agent.
@agent(name: valueof string, description: valueof string, id?: valueof string)
Target
Namespace
Paramètres
| Nom | Type | Description |
|---|---|---|
description |
valueof string |
Localisables. Description de l’agent déclaratif. Il DOIT contenir au moins un caractère nonwhitespace et doit comporter 1 000 caractères ou moins. |
id |
valueof string |
Facultatif. Identificateur unique de l’agent. |
name |
valueof string |
Localisables. Nom de l’agent déclaratif. Il DOIT contenir au moins un caractère nonwhitespace et doit comporter 100 caractères ou moins. |
Exemples
// 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
Définissez les paramètres qui modifient le comportement de l’orchestration de l’agent.
@behaviorOverrides(behaviorOverrides: valueof BehaviorOverrides)
Target
Namespace
Paramètres
| Nom | Type | Description |
|---|---|---|
behaviorOverrides |
valueof BehaviorOverrides | Définissez les paramètres qui modifient le comportement de l’orchestration de l’agent. |
Modèles
BehaviorOverrides
Définir des paramètres qui modifient le comportement de l’orchestration de l’agent
| Nom | Type | Description |
|---|---|---|
discourageModelKnowledge |
boolean |
Valeur booléenne qui indique si l’agent déclaratif doit être découragé d’utiliser la connaissance du modèle lors de la génération de réponses. |
disableSuggestions |
boolean |
Valeur booléenne qui indique si la fonctionnalité de suggestions est désactivée. |
Exemples
// 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
Indique qu’un espace de noms contient un démarreur de conversation.
@conversationStarter(conversationStarter: valueof ConversationStarter)
Target
Namespace
Paramètres
| Nom | Type | Description |
|---|---|---|
conversationStarter |
valueof ConversationStarter | Informations de démarrage de conversation. |
Modèles
ConversationStarter
Objet de configuration qui définit un démarrage de conversation pour les utilisateurs.
| Nom | Type | Description |
|---|---|---|
text |
string |
Localisables. Suggestion que l’utilisateur peut utiliser pour obtenir le résultat souhaité à partir du contrôleur de domaine. Il DOIT contenir au moins un caractère nonwhitespace. |
title |
string |
Localisables. Titre unique pour le démarrage de conversation. Il DOIT contenir au moins un caractère nonwhitespace. |
Exemples
// 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
Indique qu’un espace de noms contient une extension personnalisée avec une paire clé-valeur pour l’extensibilité.
@customExtension(key: valueof string, value: valueof unknown)
Target
Namespace
Paramètres
| Nom | Type | Description |
|---|---|---|
key |
valueof string |
Clé de l’extension personnalisée. |
value |
valueof unknown |
Valeur de l’extension personnalisée. Peut être n’importe quelle valeur TypeSpec valide. |
Exemples
// 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
Objet facultatif contenant un message d’exclusion de responsabilité qui, s’il est fourni, est affiché aux utilisateurs au début d’une conversation pour répondre aux exigences légales ou de conformité.
@disclaimer(disclaimer: valueof Disclaimer)
Target
Namespace
Paramètres
| Nom | Type | Description |
|---|---|---|
disclaimer |
valueof Disclaimer | Informations d’exclusion de responsabilité affichées aux utilisateurs. |
Modèles
Clause d’exclusion de responsabilité
Informations d’exclusion de responsabilité affichées aux utilisateurs.
| Nom | Type | Description |
|---|---|---|
text |
string |
Chaîne qui contient le message d’exclusion de responsabilité. Il DOIT contenir au moins un caractère nonwhitespace. Les caractères au-delà de 500 PEUVENT être ignorés. |
Exemples
// 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
Définit les instructions qui définissent le comportement d’un agent.
@instructions(instructions: valueof string)
Target
Namespace
Paramètres
| Nom | Type | Description |
|---|---|---|
instructions |
valueof string |
Non localisable. Instructions détaillées ou instructions sur le comportement de l’agent déclaratif, ses fonctions et tous les comportements à éviter. Il DOIT contenir au moins un caractère nonwhitespace et doit contenir au maximum 8 000 caractères. |
Exemples
// 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.
""")
Décorateurs de plug-in d’API
Ces éléments décoratifs sont utilisés lors de la création de plug-ins d’API pour définir les opérations d’API, l’authentification et la gestion des réponses.
@actions
Définit l’action qui peut être définie sur un objet d’informations dans une spécification OpenAPI.
@actions(data: valueof ActionMetadata)
Target
Namespace
Paramètres
| Nom | Type | Description |
|---|---|---|
data |
valueof ActionMetadata | Métadonnées d’action, y compris les noms, les descriptions et les URL lisibles par l’utilisateur. |
Modèles
ActionMetadata
Métadonnées d’action, y compris les noms, les descriptions et les URL lisibles par l’utilisateur.
| Nom | Type | Description |
|---|---|---|
descriptionForHuman |
string |
Obligatoire. Description lisible du plug-in. Les caractères au-delà de 100 PEUVENT être ignorés. Cette propriété est localisable. |
nameForHuman |
string |
Obligatoire. Nom court et lisible par l’utilisateur pour le plug-in. Il DOIT contenir au moins un caractère nonwhitespace. Les caractères au-delà de 20 PEUVENT être ignorés. Cette propriété est localisable. |
contactEmail |
string |
Facultatif. Adresse e-mail d’un contact pour la sécurité/modération, le support et la désactivation. |
descriptionForModel |
string |
Facultatif. Description du plug-in fourni au modèle. Cette description doit décrire à quoi sert le plug-in et dans quelles circonstances ses fonctions sont pertinentes. Les caractères au-delà de 2048 PEUVENT être ignorés. Cette propriété est localisable. |
legalInfoUrl |
string |
Facultatif. URL absolue qui localise un document contenant les conditions d’utilisation du plug-in. Cette propriété est localisable. |
logoUrl |
string |
Facultatif. URL utilisée pour récupérer un logo qui PEUT être utilisé par l’orchestrateur. Les implémentations PEUVENT fournir d’autres méthodes pour fournir des logos qui répondent à leurs besoins visuels. Cette propriété est localisable. |
privacyPolicyUrl |
string |
Facultatif. URL absolue qui localise un document contenant la politique de confidentialité du plug-in. Cette propriété est localisable. |
Exemples
// 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
Définit l’ID de référence d’authentification pour le type d’authentification.
@authReferenceId(value: valueof string)
Target
Model
Paramètres
| Nom | Type | Description |
|---|---|---|
value |
valueof string |
ID de référence du coffre pour le type d’authentification. |
Exemples
// 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
Prend en charge l’objet de fonctionnalités d’une fonction d’action tel que défini dans l’objet manifeste du plug-in d’API . Vous pouvez utiliser cet élément décoratif pour définir des cartes adaptatives simples avec de petites définitions comme confirmation. Pour les cartes adaptatives plus complexes, vous pouvez utiliser l’élément @card décoratif.
@capabilities(capabilities: valueof FunctionCapabilitiesMetadata)
Target
Operation
Paramètres
| Nom | Type | Description |
|---|---|---|
capabilities |
valueof FunctionCapabilitiesMetadata | Contient une collection de données utilisée pour configurer les fonctionnalités facultatives de l’orchestrateur lors de l’appel de la fonction . |
Modèles
FunctionCapabilitiesMetadata
Contient une collection de données utilisée pour configurer les fonctionnalités facultatives de l’orchestrateur lors de l’appel de la fonction .
| Nom | Type | Description |
|---|---|---|
confirmation |
Confirmation | Facultatif. Décrit une boîte de dialogue de confirmation qui DOIT être présentée à l’utilisateur avant d’appeler la fonction. |
responseSemantics |
ResponseSemantics | Facultatif. Décrit comment l’orchestrateur peut interpréter la charge utile de réponse et fournir un rendu visuel. |
securityInfo |
SecurityInfo | Facultatif. Contient des attestations sur le comportement du plug-in afin d’évaluer les risques liés à l’appel de la fonction. Si cette propriété est omise, la fonction ne peut pas interagir avec d’autres plug-ins ou fonctionnalités de l’agent conteneur. |
Confirmation
Décrit comment l’orchestrateur demande à l’utilisateur de confirmer avant d’appeler une fonction.
| Nom | Type | Description |
|---|---|---|
body |
string |
Facultatif. Texte de la boîte de dialogue de confirmation. Cette propriété est localisable. |
title |
string |
Facultatif. Titre de la boîte de dialogue de confirmation. Cette propriété est localisable. |
type |
string |
Facultatif. Spécifie le type de confirmation. Les valeurs possibles sont : None, AdaptiveCard. |
ResponseSemantics
Contient des informations permettant d’identifier la sémantique de la charge utile de réponse et d’activer le rendu de ces informations dans une expérience visuelle enrichie à l’aide de cartes adaptatives.
| Nom | Type | Description |
|---|---|---|
dataPath |
string |
Obligatoire. JsonPath RFC9535 requête qui identifie un ensemble d’éléments de la réponse de fonction à afficher à l’aide du modèle spécifié dans chaque élément. |
oauthCardPath |
string |
Facultatif. |
properties |
ResponseSemanticsProperties | Facultatif. Autorise le mappage des requêtes JSONPath à des éléments de données connus. Chaque requête JSONPath est relative à une valeur de résultat. |
staticTemplate |
Record<unknown> |
Facultatif. Objet JSON conforme au schéma de carte adaptative et au langage de création de modèles. Cette instance de carte adaptative est utilisée pour afficher un résultat à partir de la réponse du plug-in. Cette valeur est utilisée si le templateSelector n’est pas présent ou ne parvient pas à être résolu en carte adaptatif. |
ResponseSemanticsProperties
Autorise le mappage des requêtes JSONPath à des éléments de données connus. Chaque requête JSONPath est relative à une valeur de résultat.
| Nom | Type | Description |
|---|---|---|
informationProtectionLabel |
string |
Facultatif. Indicateur de sensibilité des données du contenu du résultat. |
subTitle |
string |
Facultatif. Sous-titre d’une citation pour le résultat. |
templateSelector |
string |
Facultatif. Une expression JSONPath vers une carte adaptative instance à utiliser pour le rendu du résultat. |
title |
string |
Facultatif. Titre d’une citation pour le résultat. |
thumbnailUrl |
string |
Facultatif. URL d’une image miniature pour le résultat. |
url |
string |
Facultatif. URL d’une citation pour le résultat. |
SecurityInfo
Contient des informations utilisées pour déterminer le risque relatif d’appel de la fonction.
| Nom | Type | Description |
|---|---|---|
dataHandling |
string[] |
Obligatoire. Tableau de chaînes qui décrivent le comportement de gestion des données de la fonction. Les valeurs valides sont GetPublicData, GetPrivateData, DataExportDataTransform, et ResourceStateUpdate. |
Exemples
// 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
Définit la référence carte adaptative pour une fonction.
@card(cardPath: valueof CardMetadata)
Target
Operation
Paramètres
| Nom | Type | Description |
|---|---|---|
cardPath |
valueof CardMetadata | Définit la référence carte adaptative pour une fonction. Version simplifiée de responseSemantics. |
Modèles
CardMetadata
ResponseSemantics simplifiés axés sur la carte adaptative.
| Nom | Type | Description |
|---|---|---|
dataPath |
string |
Obligatoire. JsonPath RFC9535 requête qui identifie un ensemble d’éléments de la réponse de fonction à afficher à l’aide du modèle spécifié dans chaque élément. |
file |
string |
Obligatoire. Chemin d’accès au modèle de carte adaptatif. Par rapport au répertoire appPackage. |
properties |
CardResponseSemanticProperties | Facultatif. Autorise le mappage des requêtes JSONPath à des éléments de données connus. Chaque requête JSONPath est relative à une valeur de résultat. |
CardResponseSemanticProperties
Permet de mapper des requêtes JSONPath à des éléments de données connus pour le rendu carte. Chaque requête JSONPath est relative à une valeur de résultat.
| Nom | Type | Description |
|---|---|---|
informationProtectionLabel |
string |
Facultatif. Indicateur de sensibilité des données du contenu du résultat. |
subTitle |
string |
Facultatif. Sous-titre d’une citation pour le résultat. |
thumbnailUrl |
string |
Facultatif. URL d’une image miniature pour le résultat. |
title |
string |
Facultatif. Titre d’une citation pour le résultat. |
url |
string |
Facultatif. URL d’une citation pour le résultat. |
Exemples
// 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
Définit les instructions de raisonnement d’une fonction dans une action.
@reasoning(value: valueof string)
Target
Operation
Paramètres
| Nom | Type | Description |
|---|---|---|
value |
valueof string |
Instructions de raisonnement pour l’opération. |
Exemples
// 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
Définit les instructions de réponse d’une fonction dans une action.
@responding(value: valueof string)
Target
Operation
Paramètres
| Nom | Type | Description |
|---|---|---|
value |
valueof string |
Instructions de réponse pour l’opération. |
Exemples
// 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.
""")