Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
Esta referência abrange os decoradores incorporados disponíveis no TypeSpec para Microsoft 365 Copilot, organizados pelo seu caso de utilização principal.
Observação
Esta referência de decorador centra-se especificamente nos @microsoft/typespec-m365-copilot decoradores, mas pode utilizar todos os decoradores definidos no TypeSpec, incluindo decoradores incorporados e decoradores OpenAPI.
| Decorador | Target | Descrição |
|---|---|---|
| @agent | Agente | Defina um agente com o nome, a descrição e o ID opcional. |
| @behaviorOverrides | Agente | Modificar as definições de comportamento da orquestração do agente. |
| @conversationStarter | Agente | Defina pedidos de iniciação de conversação para os utilizadores. |
| @customExtension | Agente | Adicione pares chave-valor personalizados para extensibilidade. |
| @disclaimer | Agente | Apresentar exclusões de responsabilidade legais ou de conformidade aos utilizadores. |
| @instructions | Agente | Defina instruções comportamentais e diretrizes para o agente. |
| @actions | Plug-in | Definir metadados de ação, incluindo nomes, descrições e URLs. |
| @authReferenceId | Plug-in | Especifique o ID de referência de autenticação para acesso à API. |
| @capabilities | Plug-in | Configure capacidades de função, como confirmações e formatação de resposta. |
| @card | Plug-in | Defina modelos de Cartão Ajustável para respostas de funções. |
| @reasoning | Plug-in | Forneça instruções de raciocínio para invocação de funções. |
| @responding | Plug-in | Definir instruções de formatação de resposta para funções. |
Decoradores de agentes declarativos
Estes decoradores são utilizados ao criar agentes declarativos para definir o comportamento do agente, o fluxo de conversação e a experiência do utilizador.
@agent
Indica que um espaço de nomes representa um agente.
@agent(name: valueof string, description: valueof string, id?: valueof string)
Target
Namespace
Parâmetros
| Nome | Tipo | Descrição |
|---|---|---|
description |
valueof string |
Localizável. A descrição do agente declarativo. Tem de conter, pelo menos, um caráter não branco e TEM de ter 1000 carateres ou menos. |
id |
valueof string |
Opcional. O identificador exclusivo do agente. |
name |
valueof string |
Localizável. O nome do agente declarativo. Tem de conter, pelo menos, um caráter não branco e TEM de ter 100 carateres ou menos. |
Exemplos
// 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
Definir definições que modificam o comportamento da orquestração do agente.
@behaviorOverrides(behaviorOverrides: valueof BehaviorOverrides)
Target
Namespace
Parâmetros
| Nome | Tipo | Descrição |
|---|---|---|
behaviorOverrides |
valueof BehaviorOverrides | Definir definições que modificam o comportamento da orquestração do agente. |
Modelos
BehaviorOverrides
Definir definições que modificam o comportamento da orquestração do agente
| Nome | Tipo | Descrição |
|---|---|---|
discourageModelKnowledge |
boolean |
Um valor booleano que indica se o agente declarativo deve ser desencorajado de utilizar conhecimentos de modelo ao gerar respostas. |
disableSuggestions |
boolean |
Um valor booleano que indica se a funcionalidade de sugestões está desativada. |
Exemplos
// 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 um espaço de nomes contém um iniciador de conversação.
@conversationStarter(conversationStarter: valueof ConversationStarter)
Target
Namespace
Parâmetros
| Nome | Tipo | Descrição |
|---|---|---|
conversationStarter |
valueof ConversationStarter | As informações de arranque da conversação. |
Modelos
ConversationStarter
Objeto de configuração que define um iniciador de conversação para os utilizadores.
| Nome | Tipo | Descrição |
|---|---|---|
text |
string |
Localizável. Uma sugestão que o utilizador pode utilizar para obter o resultado pretendido a partir do DC. Tem de conter, pelo menos, um caráter não branco. |
title |
string |
Localizável. Um título exclusivo para o arranque da conversação. Tem de conter, pelo menos, um caráter não branco. |
Exemplos
// 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 um espaço de nomes contém uma extensão personalizada com um par chave-valor para extensibilidade.
@customExtension(key: valueof string, value: valueof unknown)
Target
Namespace
Parâmetros
| Nome | Tipo | Descrição |
|---|---|---|
key |
valueof string |
A chave da extensão personalizada. |
value |
valueof unknown |
O valor da extensão personalizada. Pode ser qualquer valor TypeSpec válido. |
Exemplos
// 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
Um objeto opcional que contém uma mensagem de exclusão de responsabilidade que, se for fornecida, é apresentado aos utilizadores no início de uma conversação para satisfazer os requisitos legais ou de conformidade.
@disclaimer(disclaimer: valueof Disclaimer)
Target
Namespace
Parâmetros
| Nome | Tipo | Descrição |
|---|---|---|
disclaimer |
valueof Disclaimer | As informações de exclusão de responsabilidade que são apresentadas aos utilizadores. |
Modelos
Aviso de isenção
As informações de exclusão de responsabilidade que são apresentadas aos utilizadores.
| Nome | Tipo | Descrição |
|---|---|---|
text |
string |
Uma cadeia que contém a mensagem de exclusão de responsabilidade. Tem de conter, pelo menos, um caráter não branco. Os carateres para além de 500 PODEM ser ignorados. |
Exemplos
// 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 as instruções que definem o comportamento de um agente.
@instructions(instructions: valueof string)
Target
Namespace
Parâmetros
| Nome | Tipo | Descrição |
|---|---|---|
instructions |
valueof string |
Não localizável. As instruções detalhadas ou diretrizes sobre o comportamento do agente declarativo, as suas funções e quaisquer comportamentos a evitar. TEM de conter, pelo menos, um caráter não branco e TEM de ter 8000 carateres ou menos. |
Exemplos
// 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 plug-ins de API
Estes decoradores são utilizados ao criar plug-ins de API para definir operações de API, autenticação e processamento de respostas.
@actions
Define a ação que pode ser definida num objeto de informações numa especificação OpenAPI.
@actions(data: valueof ActionMetadata)
Target
Namespace
Parâmetros
| Nome | Tipo | Descrição |
|---|---|---|
data |
valueof ActionMetadata | Os metadados de ação, incluindo nomes legíveis por humanos, descrições e URLs. |
Modelos
ActionMetadata
Os metadados de ação, incluindo nomes legíveis por humanos, descrições e URLs.
| Nome | Tipo | Descrição |
|---|---|---|
descriptionForHuman |
string |
Obrigatório. Uma descrição legível por humanos do plug-in. Os carateres para além de 100 PODEM ser ignorados. Esta propriedade é localizável. |
nameForHuman |
string |
Obrigatório. Um nome curto e legível por humanos para o plug-in. Tem de conter, pelo menos, um caráter não branco. Os carateres para além de 20 PODEM ser ignorados. Esta propriedade é localizável. |
contactEmail |
string |
Opcional. Um endereço de e-mail de um contacto para segurança/moderação, suporte e desativação. |
descriptionForModel |
string |
Opcional. A descrição do plug-in fornecido ao modelo. Esta descrição deve descrever para que serve o plug-in e em que circunstâncias as suas funções são relevantes. Os carateres para além de 2048 PODEM ser ignorados. Esta propriedade é localizável. |
legalInfoUrl |
string |
Opcional. Um URL absoluto que localiza um documento que contém os termos de serviço do plug-in. Esta propriedade é localizável. |
logoUrl |
string |
Opcional. Um URL utilizado para obter um logótipo que pode ser utilizado pelo orquestrador. As implementações PODEM fornecer métodos alternativos para fornecer logótipos que cumpram os seus requisitos visuais. Esta propriedade é localizável. |
privacyPolicyUrl |
string |
Opcional. Um URL absoluto que localiza um documento que contém a política de privacidade do plug-in. Esta propriedade é localizável. |
Exemplos
// 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 o ID de referência de autenticação para o tipo de autenticação.
@authReferenceId(value: valueof string)
Target
Model
Parâmetros
| Nome | Tipo | Descrição |
|---|---|---|
value |
valueof string |
O ID de referência do cofre para o tipo de autenticação. |
Exemplos
// 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
Suporte o objeto de capacidades de uma função de ação, conforme definido no objeto de manifesto do plug-in da API . Pode utilizar este decorador para definir cartões adaptáveis simples com pequenas definições como confirmation. Para cartões ajustáveis mais complexos, pode utilizar o @card decorador.
@capabilities(capabilities: valueof FunctionCapabilitiesMetadata)
Target
Operation
Parâmetros
| Nome | Tipo | Descrição |
|---|---|---|
capabilities |
valueof FunctionCapabilitiesMetadata | Contém uma coleção de dados utilizados para configurar capacidades opcionais do orquestrador ao invocar a função. |
Modelos
FunctionCapabilitiesMetadata
Contém uma coleção de dados utilizados para configurar capacidades opcionais do orquestrador ao invocar a função.
| Nome | Tipo | Descrição |
|---|---|---|
confirmation |
Confirmação | Opcional. Descreve uma caixa de diálogo de confirmação que DEVE ser apresentada ao utilizador antes de invocar a função. |
responseSemantics |
ResponseSemantics | Opcional. Descreve como o orquestrador pode interpretar o payload de resposta e fornecer uma composição visual. |
securityInfo |
SecurityInfo | Opcional. Contém atestados sobre o comportamento do plug-in para avaliar os riscos de chamar a função. Se esta propriedade for omitida, a função não conseguirá interagir com outros plug-ins ou capacidades do agente que contém. |
Confirmação
Descreve como o orquestrador pede ao utilizador para confirmar antes de chamar uma função.
| Nome | Tipo | Descrição |
|---|---|---|
body |
string |
Opcional. O texto da caixa de diálogo de confirmação. Esta propriedade é localizável. |
title |
string |
Opcional. O título da caixa de diálogo de confirmação. Esta propriedade é localizável. |
type |
string |
Opcional. Especifica o tipo de confirmação. Os valores possíveis são: Nenhum, AdaptiveCard. |
ResponseSemantics
Contém informações para identificar a semântica do payload de resposta e ativar a composição dessa informação numa experiência visual avançada com Cartões Ajustáveis.
| Nome | Tipo | Descrição |
|---|---|---|
dataPath |
string |
Obrigatório. Uma consulta JSONPath RFC9535 que identifica um conjunto de elementos da resposta da função a ser composto com o modelo especificado em cada item. |
oauthCardPath |
string |
Opcional. |
properties |
ResponseSemanticsProperties | Opcional. Permite o mapeamento de consultas JSONPath para elementos de dados conhecidos. Cada consulta JSONPath é relativa a um valor de resultado. |
staticTemplate |
Record<unknown> |
Opcional. Um objeto JSON que está em conformidade com o esquema do Cartão Ajustável e a linguagem templating. Esta instância do Cartão Ajustável é utilizada para compor um resultado da resposta do plug-in. Este valor é utilizado se o templateSelector não estiver presente ou não conseguir resolve a uma card adaptável. |
ResponseSemanticsProperties
Permite o mapeamento de consultas JSONPath para elementos de dados conhecidos. Cada consulta JSONPath é relativa a um valor de resultado.
| Nome | Tipo | Descrição |
|---|---|---|
informationProtectionLabel |
string |
Opcional. Indicador de confidencialidade dos dados dos conteúdos dos resultados. |
subTitle |
string |
Opcional. Subtítulo de uma citação para o resultado. |
templateSelector |
string |
Opcional. Uma expressão JSONPath para uma instância de Cartão Ajustável a ser utilizada para compor o resultado. |
title |
string |
Opcional. Título de uma citação para o resultado. |
thumbnailUrl |
string |
Opcional. URL de uma imagem em miniatura para o resultado. |
url |
string |
Opcional. URL de uma citação para o resultado. |
SecurityInfo
Contém informações utilizadas para determinar o risco relativo de invocar a função.
| Nome | Tipo | Descrição |
|---|---|---|
dataHandling |
string[] |
Obrigatório. Uma matriz de cadeias que descrevem o comportamento de processamento de dados da função. Os valores válidos são GetPublicData, GetPrivateData, DataTransform, DataExporte ResourceStateUpdate. |
Exemplos
// 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 a referência de card adaptável para uma função.
@card(cardPath: valueof CardMetadata)
Target
Operation
Parâmetros
| Nome | Tipo | Descrição |
|---|---|---|
cardPath |
valueof CardMetadata | Define a referência de card adaptável para uma função. Versão simplificada do responseSemantics. |
Modelos
CardMetadata
Resposta simplificadaSemantics focada na card adaptável.
| Nome | Tipo | Descrição |
|---|---|---|
dataPath |
string |
Obrigatório. Uma consulta JSONPath RFC9535 que identifica um conjunto de elementos da resposta da função a ser composto com o modelo especificado em cada item. |
file |
string |
Obrigatório. Caminho para o modelo de card adaptável. Relativamente ao diretório appPackage. |
properties |
CardResponseSemanticProperties | Opcional. Permite o mapeamento de consultas JSONPath para elementos de dados conhecidos. Cada consulta JSONPath é relativa a um valor de resultado. |
CardResponseSemanticProperties
Permite o mapeamento de consultas JSONPath para elementos de dados conhecidos para composição de card. Cada consulta JSONPath é relativa a um valor de resultado.
| Nome | Tipo | Descrição |
|---|---|---|
informationProtectionLabel |
string |
Opcional. Indicador de confidencialidade dos dados dos conteúdos dos resultados. |
subTitle |
string |
Opcional. Subtítulo de uma citação para o resultado. |
thumbnailUrl |
string |
Opcional. URL de uma imagem em miniatura para o resultado. |
title |
string |
Opcional. Título de uma citação para o resultado. |
url |
string |
Opcional. URL de uma citação para o resultado. |
Exemplos
// 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 as instruções de raciocínio de uma função numa ação.
@reasoning(value: valueof string)
Target
Operation
Parâmetros
| Nome | Tipo | Descrição |
|---|---|---|
value |
valueof string |
As instruções de raciocínio para a operação. |
Exemplos
// 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 as instruções de resposta de uma função numa ação.
@responding(value: valueof string)
Target
Operation
Parâmetros
| Nome | Tipo | Descrição |
|---|---|---|
value |
valueof string |
As instruções de resposta para a operação. |
Exemplos
// 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.
""")