Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Os plug-ins de API permitem que o Microsoft 365 Copilot interaja com APIs REST descritas por uma descrição de OpenAPI. A descrição do OpenAPI em um plug-in de API descreve as APIs REST com as quais o Copilot pode interagir. Além disso, um plug-in de API inclui um arquivo de manifesto de plug-in que fornece metadados sobre o plug-in, como nome, descrição e versão do plug-in. O manifesto do plug-in também inclui informações sobre os recursos do plug-in, como as APIs que ele suporta e as operações que ele pode executar.
O artigo a seguir descreve o esquema 2.2 usado pelos arquivos de manifesto do plugin de API. Para obter mais informações sobre plug-ins de API, consulte Plug-ins do Microsoft 365 Copilot.
Importante
A versão mais recente do esquema de manifesto do plug-in é a versão 2.4. Recomendamos que novos plug-ins usem a versão mais recente do esquema.
Alterações da versão anterior
Esta versão do esquema introduz as seguintes alterações da versão 2.1.
- Adicionou a
security_infopropriedade ao objeto de recursos da função. Essa propriedade permite atestar o comportamento do plug-in para avaliar os riscos de chamar a função. - Removida a propriedade preterida
localizationdo objeto de recursos do plug-in. Os manifestos gerados com o Microsoft 365 Agents Toolkit usando o esquema 2.1 incluíam a propriedade preteridalocalization. Os manifestos que usam o esquema 2.2 falharão na validação se essa propriedade estiver incluída.
Esquema JSON
O esquema descrito neste documento pode ser encontrado no formato JSON Schemaaqui.
Convenções
Referências relativas em URLs
A menos que especificado de outra forma, todas as propriedades que são URLs PODEM ser referências relativas. As referências relativas no documento de manifesto são relativas ao local do documento de manifesto.
Comprimento da cadeia de caracteres
A menos que especificado de outra forma, todas as propriedades da cadeia de caracteres DEVEM ser limitadas a caracteres 4K. Esse comprimento de cadeia de caracteres não confere nenhum tamanho aceitável para todo o documento. As implementações são livres para impor seus próprios limites práticos sobre o comprimento do manifesto.
Propriedades não reconhecidas
Os objetos JSON definidos neste documento dão suporte apenas às propriedades descritas. Propriedades não reconhecidas em qualquer objeto JSON DEVEM tornar todo o documento inválido.
Localização de cadeia de caracteres
Cadeias de caracteres localizáveis podem usar uma chave de localização em vez de um valor literal. A sintaxe é [[key_name]], onde key_name está o nome da localizationKeys chave na propriedade em seus arquivos de localização. Para obter detalhes sobre localização, consulte Localizar seu agente.
Exemplo de cadeia de caracteres localizada
{
"schema_version": "v2.2",
"name_for_human": "[[plugin_name]]",
"description_for_human": "[[plugin_description]]"
}
Objeto de manifesto do plug-in
A raiz do documento de manifesto do plug-in é um objeto JSON que contém propriedades que descrevem o plug-in.
O objeto de manifesto do plug-in contém as propriedades a seguir.
| Propriedade | Tipo | Descrição |
|---|---|---|
schema_version |
Cadeia de caracteres | Obrigatório. A versão do esquema. As versões anteriores são v1 e v2. Deve ser definida como v2.2. |
name_for_human |
Cadeia de caracteres | Obrigatório. Um nome curto e legível para o plug-in. Ele DEVE conter pelo menos um caractere que não seja espaço em branco. Caracteres além de 20 PODEM ser ignorados. Esta propriedade é localizável. |
namespace |
Cadeia de caracteres | Obrigatório. Contém um identificador usado para evitar conflitos de nome entre nomes de função de diferentes plug-ins. O valor DEVE corresponder ao regex ^[A-Za-z0-9]+. |
description_for_model |
String | Opcional. A descrição do plug-in fornecido ao modelo. Essa descrição deve descrever para que serve o plug-in e em quais circunstâncias suas funções são relevantes. Caracteres além de 2048 PODEM ser ignorados. Esta propriedade é localizável. |
description_for_human |
Cadeia de caracteres | Obrigatório. Uma descrição legível do plug-in. Caracteres acima de 100 PODEM ser ignorados. Esta propriedade é localizável. |
logo_url |
String | Opcional. Uma URL usada para buscar um logotipo que PODE ser usado pelo orquestrador. As implementações PODEM fornecer métodos alternativos para fornecer logotipos que atendam aos seus requisitos visuais. Esta propriedade é localizável. |
contact_email |
String | Opcional. Um endereço de email de um contato para segurança/moderação, suporte e desativação. |
legal_info_url |
String | Opcional. Uma URL absoluta que localiza um documento contendo os termos de serviço do plug-in. Esta propriedade é localizável. |
privacy_policy_url |
String | Opcional. Uma URL absoluta que localiza um documento que contém a política de privacidade do plug-in. Esta propriedade é localizável. |
functions |
Matriz de objeto de função | Opcional. Um conjunto de objetos de função que descrevem as funções disponíveis para o plug-in. Cada nome de objeto de função DEVE ser exclusivo dentro da matriz. A ordem da matriz não é significativa. Se a functions propriedade não estiver presente e houver um runtime de OpenAPI, as funções serão inferidas das operações de OpenAPI. |
runtimes |
Matriz de objeto de tempo de execução OpenAPI | Opcional. Um conjunto de objetos de tempo de execução que descrevem os tempos de execução usados pelo plug-in. |
capabilities |
Objeto de recursos do plug-in | Opcional. Descreve os recursos do plug-in. |
Objeto de função
Informações relacionadas a como o modelo deve interagir com uma função.
O objeto de função contém as propriedades a seguir.
| Propriedade | Tipo | Descrição |
|---|---|---|
id |
String | Opcional. |
name |
Cadeia de caracteres | Obrigatório. Uma cadeia de caracteres que identifica exclusivamente esta função. Os objetos de tempo de execução PODEM fazer referência a esse identificador para associar o tempo de execução à função. Quando a função é associada a um runtime OpenAPI, o valor deve corresponder a um operationId valor na descrição OpenAPI. O valor deve corresponder à ^[A-Za-z0-9_]+$ expressão regular. |
description |
String | Opcional. Uma descrição mais adaptada ao modelo, como considerações de comprimento de contexto de token ou uso de palavra-chave para prompting de plug-in aprimorado. |
parameters |
Objeto de parâmetros de função | Opcional. Um objeto que contém propriedades que descrevem os parâmetros de uma função de maneira independente do tempo de execução. Ele espelha a forma do json-schema , mas suporta apenas um pequeno subconjunto dos recursos do esquema JSON. Se a propriedade não estiver presente, as parameters funções descritas por um objeto de tempo de execução do tipo OpenApi usarão a descrição do OpenAPI para determinar os parâmetros. Cada membro no objeto JSON é um objeto de parâmetro de função que descreve a semântica do parâmetro. |
returns |
Objeto de retorno OU Objeto de retorno avançado | Opcional. Descreve a semântica do valor retornado da função. |
states |
Objeto de estados de função | Opcional. Define objetos de estado para estados do orquestrador. |
capabilities |
Objeto de recursos da função | Opcional. Contém uma coleção de dados usados para configurar recursos opcionais do orquestrador ao invocar a função. |
Exemplo de objeto de função
{
"functions": [
{
"name": "add_todo",
"description": "Adds a new Todo",
"parameters": {
"type": "object",
"properties": {
"description": {
"type": "string"
}
},
"required": [
"description"
]
},
"returns": {
"type": "string"
}
}
]
}
Objeto de parâmetros de função
Um objeto usado para identificar o conjunto de parâmetros que podem ser passados para a função. Esse objeto é estruturado para espelho a forma de um objeto de esquema JSON, mas suporta apenas um subconjunto de palavras-chave de esquema JSON.
O objeto parâmetros de função contém as propriedades a seguir.
| Propriedade | Tipo | Descrição |
|---|---|---|
type |
String | Opcional. O tipo de esquema JSON. Tem que ser definida como object. |
properties |
Objeto de propriedades de parâmetros de função | Obrigatório. Um objeto que mapeia nomes de parâmetros para suas definições. |
required |
Matriz de cadeias de caracteres | Opcional. Os nomes das propriedades que são parâmetros obrigatórios. Ao contrário do esquema JSON, os valores nesta matriz DEVEM corresponder aos nomes listados na properties propriedade. |
Exemplo de objeto de parâmetros de função
{
"type": "object",
"properties": {
"param1": {
"type": "string"
},
"param2": {
"type": "number"
}
},
"required": [
"param1"
]
}
Objeto de propriedades de parâmetros de função
Um objeto que mapeia nomes de parâmetros para suas definições.
O objeto de propriedades de parâmetros de função contém as propriedades a seguir.
| Propriedade | Tipo | Descrição |
|---|---|---|
Correspondência de nomes ^[A-Za-z0-9_]+$ |
Objeto de parâmetro de função | Opcional. A definição de parâmetro que corresponde ao parâmetro que corresponde ao nome da propriedade. |
Objeto de parâmetro de função
Um objeto que descreve a semântica de um parâmetro de função.
O objeto de parâmetro de função contém as propriedades a seguir.
| Propriedade | Tipo | Descrição |
|---|---|---|
type |
Cadeia de caracteres | Obrigatório. Especifica o tipo do parâmetro. Os valores possíveis são: string, array, boolean, integer, number. |
items |
Objeto de parâmetro de função | Opcional. Um objeto de parâmetro de função que descreve um único elemento em uma matriz. DEVE estar presente apenas quando type estiver array. |
enum |
Matriz de cadeias de caracteres | Opcional. Uma matriz de valores válidos para esse parâmetro. DEVE estar presente apenas quando type estiver string. |
description |
String | Opcional. Uma descrição do parâmetro. |
default |
Matriz, Booleano, Cadeia de caracteres, Número, Inteiro | Opcional. Um valor do tipo especificado pela type propriedade que indica o valor que a API usa quando um valor para um parâmetro opcional não é fornecido. |
Exemplo de parâmetro de função
{
"type": "string",
"description": "The color of the item",
"enum": [
"green",
"blue",
"orange"
]
}
Objeto de retorno
Contém a semântica do valor retornado da função.
O objeto de retorno contém as propriedades a seguir.
| Propriedade | Tipo | Descrição |
|---|---|---|
type |
Cadeia de caracteres | Obrigatório. Especifica o tipo do valor retornado pela API. Os valores possíveis são: string. |
description |
String | Opcional. Uma descrição do valor retornado pela API. |
Objeto de retorno avançado
Indica que a função retorna uma resposta compatível com o protocolo de Rich Responses.
O objeto de retorno avançado contém as propriedades a seguir.
| Propriedade | Tipo | Descrição |
|---|---|---|
$ref |
Cadeia de caracteres | Obrigatório. Tem que ser definida como https://copilot.microsoft.com/schemas/rich-response-v1.0.json. |
Objeto de estados de função
Define objetos de estado para estados do orquestrador.
O objeto de estados de função contém as propriedades a seguir.
| Propriedade | Tipo | Descrição |
|---|---|---|
reasoning |
Objeto de estado | Opcional. O estado no qual o modelo pode chamar funções e fazer cálculos. |
responding |
Objeto de estado | Opcional. O estado no qual o modelo pode gerar texto que é mostrado para o usuário. O modelo não pode invocar funções no estado de resposta. |
disengaging |
Objeto de estado | Opcional. |
Objeto de estado
Contém instruções específicas para quando uma função é invocada em um estado de orquestrador específico.
O objeto state contém as propriedades a seguir.
| Propriedade | Tipo | Descrição |
|---|---|---|
description |
String | Opcional. Descreve a finalidade de uma função quando usada em um estado de orquestrador específico. |
instructions |
Matriz, Cadeia de Caracteres | Opcional. Uma cadeia de caracteres ou uma matriz de cadeias de caracteres que são usadas para fornecer instruções ao orquestrador sobre como usar esta função enquanto estiver em um estado específico do orquestrador. Fornecer uma única cadeia de caracteres indica a intenção de fornecer um conjunto completo de instruções que substituiria quaisquer prompts de função internos. Fornecer uma matriz de cadeias de caracteres indica a intenção de aumentar o mecanismo interno de solicitação de função. |
examples |
Matriz, Cadeia de Caracteres | Opcional. Uma cadeia de caracteres ou uma matriz de cadeias de caracteres que são usadas para fornecer exemplos ao orquestrador sobre como essa função pode ser invocada. |
Exemplo de objeto de estado
{
"functions": [
{
"name": "searchEmails",
"description": "search for Emails from using 3S search Service",
"states": {
"responding": {
"description": "",
"instructions": [
"Examine the output of searchEmails",
"Do not include any information that is not present in the JSON results.",
"Exclude any irrelevant data from the JSON results",
"Determine if the response contains an error field.",
"If an error is present, provide the error code and error message extracted from the response JSON.",
"If there is no error, extract and include as much relevant information as possible from the JSON result to meet the user's needs."
],
"examples": []
}
}
}
]
}
Objeto de recursos da função
Contém uma coleção de dados usados para configurar recursos opcionais do orquestrador ao invocar a função.
O objeto de recursos da função contém as propriedades a seguir.
| Propriedade | Tipo | Descrição |
|---|---|---|
confirmation |
Objeto de confirmação | Opcional. Descreve uma caixa de diálogo de confirmação que DEVE ser apresentada ao usuário antes de invocar a função. |
response_semantics |
Objeto de semântica de resposta | Opcional. Descreve como o orquestrador pode interpretar o conteúdo de resposta e fornecer uma renderização visual. |
security_info |
Objeto de informações de segurança | Opcional. Contém atestados sobre o comportamento do plug-in para avaliar os riscos de chamar a função. Se essa propriedade for omitida, a função não poderá interagir com outros plug-ins ou recursos do agente recipiente. |
Objeto de confirmação
Descreve como o orchestrator solicita que o usuário confirme antes de chamar uma função.
O objeto de confirmação contém as propriedades a seguir.
| Propriedade | Tipo | Descrição |
|---|---|---|
type |
String | Opcional. Especifica o tipo de confirmação. Os valores possíveis são: None e AdaptiveCard. |
title |
String | Opcional. O título da caixa de diálogo de confirmação. Esta propriedade é localizável. |
body |
String | Opcional. O texto da caixa de diálogo de confirmação. Esta propriedade é localizável. |
Objeto de semântica de resposta
Contém informações para identificar a semântica do conteúdo de resposta e habilitar a renderização dessas informações em uma experiência visual avançada usando Cartões Adaptáveis.
O objeto de semântica de resposta contém as propriedades a seguir.
| Propriedade | Tipo | Descrição |
|---|---|---|
data_path |
Cadeia de caracteres | Obrigatório. Uma consulta JSONPath RFC9535 que identifica um conjunto de elementos da resposta da função a ser renderizada usando o modelo especificado em cada item. |
properties |
Objeto de propriedades de semântica de resposta | Opcional. Permite o mapeamento de consultas JSONPath para elementos de dados conhecidos. Cada consulta JSONPath é relativa a um valor de resultado. |
static_template |
Objeto | Opcional. Um objeto JSON que está em conformidade com o esquema do Cartão Adaptável e a linguagem de modelos. Essa instância do Cartão Adaptável é usada para renderizar um resultado da resposta do plug-in. Esse valor será usado se o template_selector não estiver presente ou não for resolvido para um adaptive card. |
oauth_card_path |
String | Opcional. |
Exemplo de modelo estático
{
"functions": {
"capabilities": {
"response_semantics": {
"data_path": "$.resources",
"properties": {
"title": "$.name",
"subtitle": "$.location",
"url": "$.href",
"information_protection_label": "$.ipLabel"
},
"static_template": {
"$schema": "http://adaptivecards.io/schemas/adaptive-card.json",
"type": "AdaptiveCard",
"version": "1.5",
"body": [
{
"type": "TextBlock",
"text": "${name}",
"weight": "Bolder"
},
{
"type": "TextBlock",
"text": "${description}"
}
],
"action": [
{
"type": "Action.OpenUrl",
"title": "View",
"text": "${href}"
}
]
}
}
}
}
}
Exemplo de modelo dinâmico
{
"functions": {
"capabilities": {
"response_semantics": {
"data_path": "$.attachments",
"properties": {
"title": "$.title",
"subtitle": "$.subtitle",
"url": "$.url",
"thumbnail_url": "$.thumbnailUrl",
"template_selector": "$.template"
}
}
}
}
}
Objeto de propriedades de semântica de resposta
Permite o mapeamento de consultas JSONPath para elementos de dados conhecidos. Cada consulta JSONPath é relativa a um valor de resultado.
O objeto de propriedades de semântica de resposta contém as propriedades a seguir.
| Propriedade | Tipo | Descrição |
|---|---|---|
title |
String | Opcional. Título de uma citação para o resultado. |
subtitle |
String | Opcional. Legenda de uma citação para o resultado. |
url |
String | Opcional. URL de uma citação para o resultado. |
thumbnail_url |
String | Opcional. URL de uma imagem em miniatura para o resultado. |
information_protection_label |
String | Opcional. Indicador de confidencialidade de dados do conteúdo do resultado. |
template_selector |
String | Opcional. Uma expressão JSONPath para uma instância de Cartão Adaptável a ser usada para renderizar o resultado. |
Objeto de informações de segurança
Contém informações usadas para determinar o risco relativo de invocar a função.
O objeto de informações de segurança contém as propriedades a seguir.
| Propriedade | Tipo | Descrição |
|---|---|---|
data_handling |
Array of String | Obrigatório. Uma matriz de cadeias de caracteres que descreve o comportamento de manipulação de dados da função. Os valores válidos são GetPublicData, GetPrivateData, DataTransform, DataExporte ResourceStateUpdate. |
Valores de tratamento de dados
| Valor | Descrição | Exemplo |
|---|---|---|
GetPublicData |
Indica que a função recupera dados de uma fonte externa que não requer autenticação. | Uma função que faz uma chamada de serviço para recuperar dados de um site público. |
GetPrivateData |
Indica que a função recupera dados de uma fonte externa que requer autenticação ou do aplicativo atual do usuário. | Uma função que obtém dados de um banco de dados privado ou do documento aberto no momento pelo usuário. |
DataTransform |
Indica que a função retorna apenas uma saída com base na entrada, sem introduzir novos dados ou causar uma atualização de recursos. | Uma função que converte um número em uma palavra ou formata uma data. |
DataExport |
Indica que a função envia ou grava dados em um local fora da própria função. | Uma função que salva dados em um arquivo local ou na nuvem. |
ResourceStateUpdate |
Indica que a função afeta um recurso iniciando uma transação, alterando um processo no mundo real, concedendo ou negando permissões ou executando qualquer outra ação que exija confirmação explícita do usuário. | Uma função que reserva um quarto de hotel ou altera o estado de um item de trabalho de active para resolved. |
Objeto de tempo de execução de OpenAPI
Descreve como o plug-in invoca funções OpenAPI.
O objeto de tempo de execução OpenAPI contém as propriedades a seguir.
| Propriedade | Tipo | Descrição |
|---|---|---|
type |
Cadeia de caracteres | Obrigatório. Identifica esse tempo de execução como um tempo de execução OpenAPI. Tem que ser definida como OpenApi. |
auth |
Objeto de autenticação de runtime | Obrigatório. Informações de autenticação necessárias para invocar o tempo de execução. |
run_for_functions |
Matriz de cadeias de caracteres | Opcional. Os nomes das funções que estão disponíveis neste tempo de execução. Se essa propriedade for omitida, todas as funções descritas pelo runtime estarão disponíveis. Os valores de cadeia de caracteres fornecidos podem conter curingas. Mais de um runtime NÃO DEVE declarar suporte para a mesma função implícita ou explicitamente. |
spec |
Objeto de especificação de OpenAPI | Obrigatório. Contém as informações de OpenAPI necessárias para invocar o tempo de execução. |
Objeto de especificação de OpenAPI
Contém as informações de OpenAPI necessárias para invocar o tempo de execução.
O objeto de especificação OpenAPI contém as propriedades a seguir.
| Propriedade | Tipo | Descrição |
|---|---|---|
url |
String | Opcional. A URL para buscar a especificação OpenAPI, chamada com uma solicitação GET. Este membro é necessário, a menos que api_description esteja presente. |
api_description |
String | Opcional. Uma cadeia de caracteres que contém uma descrição de OpenAPI. Se esse membro estiver presente, url não é necessário e será ignorado se estiver presente. |
progress_style |
String | Opcional. O estilo de progresso usado para exibir o progresso da função. Os valores possíveis são: None, ShowUsage, ShowUsageWithInput, ShowUsageWithInputAndOutput. |
Exemplo de objeto de especificação de OpenAPI
{
"runtimes":
[
{
"type": "OpenApi",
"auth": {
"type": "None"
},
"spec": {
"url": "https://example.org/api/openapi.yaml",
}
}
]
}
Objeto de autenticação de runtime
Contém informações usadas pelo plug-in para autenticar o tempo de execução.
O objeto de autenticação de tempo de execução contém as propriedades a seguir.
| Propriedade | Tipo | Descrição |
|---|---|---|
type |
Cadeia de caracteres | Obrigatório. Especifica o tipo de autenticação necessário para invocar uma função. Os valores possíveis são: None, OAuthPluginVault, ApiKeyPluginVault. |
reference_id |
String | Opcional. Um valor usado quando type é OAuthPluginVault ou ApiKeyPluginVault. O reference_id valor é adquirido independentemente ao fornecer os valores de configuração de autenticação necessários. Esse mecanismo existe para evitar a necessidade de armazenar valores secretos no manifesto do plug-in. |
Exemplo de objeto de autenticação de runtime
{
"type": "OAuthPluginVault",
"reference_id": "0123456-abcdef"
}
Objeto de recursos do plug-in
Descreve os recursos do plug-in.
O objeto de recursos do plug-in contém as propriedades a seguir.
| Propriedade | Tipo | Descrição |
|---|---|---|
conversation_starters |
Matriz de objeto inicial de conversa | Opcional. Iniciadores de conversa que podem ser exibidos ao usuário para sugestões sobre como invocar o plug-in. |
Objeto de início de conversa
Um exemplo de uma pergunta que o plug-in pode responder.
O objeto inicial de conversa contém as seguintes propriedades.
| Propriedade | Tipo | Descrição |
|---|---|---|
text |
Cadeia de caracteres | Obrigatório. O texto do início da conversa. Esta propriedade é localizável. |
title |
String | Opcional. O título do iniciador de conversa. Esta propriedade é localizável. |
Exemplo de objeto inicial de conversa
{
"conversation_starters": [
{
"title": "Developer tasks",
"text": "What issues are assigned to me?"
}
]
}
Exemplo de manifesto
Aqui está um exemplo de um arquivo de manifesto de plug-in que usa a maioria das propriedades de manifesto e de objeto descritas no artigo:
{
"schema_version": "v2.2",
"name_for_human": "Contoso Real Estate",
"description_for_human": "Find up-to-date, detailed real estate properties for sale on the market",
"description_for_model": "Plugin for finding properties for sale. Use it whenever a user asks about real estate properties for sale on the market. This plugin can be used to search for properties in a particular city, and with a given number of bedrooms, bathrooms, and amenities.",
"capabilities": {
"conversation_starters": [
{
"title": "Available listings",
"text": "What listings are available in my area?"
}
]
},
"functions": [
{
"name": "getListings",
"description": "Get a list of properties matching the specified criteria",
"parameters": {
"type": "object",
"properties": {
"city": {
"type": "string",
"description": "The city to search properties in"
},
"bedrooms": {
"type": "number",
"description": "The number of bedrooms the property should have"
},
"bathrooms": {
"type": "number",
"description": "The number of bathrooms the property should have"
},
"amenities": {
"type": "array",
"description": "The list of amenities the property should have",
"items": {
"type": "string",
"description": "One amenity the property should have",
"enum": [
"air conditioning",
"balcony",
"dishwasher",
"elevator",
"fireplace",
"furniture",
"garden",
"gym",
"heating",
"jacuzzi",
"laundry room",
"microwave",
"no furniture",
"parking",
"patio",
"sauna",
"swimming pool",
"terrace",
"wi-fi"
]
}
}
}
},
"returns": {
"type": "string",
"description": "A list of properties"
},
"states": {
"reasoning": {
"description": "`getListings` returns a list of real estate properties for sale based on the specified criteria.",
"instructions": [
"If the user mentions a city in their question, only search in that city by using the city parameter.",
"If the user asks for properties with things like parking space, heating, jacuzzi, or similar amenities, use the amenities parameter to filter the results.",
"Only use the list of amenities provided in the amenities parameter enum. If the user asked for an amenity that is not in the list, find the closest match from the list, or ignore it if no match can be found."
]
},
"responding": {
"description": "`getListings` returns a list of real estate properties for sale based on the specified criteria.",
"instructions": [
"Determine if the response contains an error field.",
"If an error is present, provide the error code and error message from the JSON response to the user.",
"If there is no error, extract and include as much relevant information as possible from the JSON response to meet the users needs."
]
}
},
"capabilities": {
"security_info": {
"data_handling": [
"GetPublicData",
"GetPrivateData"
]
}
}
},
{
"name": "saveSearch",
"description": "Save a search for properties for sale",
"parameters": {
"type": "object",
"properties": {
"city": {
"type": "string",
"description": "The city to search in"
},
"bedrooms": {
"type": "number",
"description": "The number of bedrooms"
}
},
"required": [
"city"
]
},
"returns": {
"type": "string",
"description": "The unique ID for the saved search"
},
"states": {
"responding": {
"description": "`saveSearch` returns a unique ID that identifies the newly saved search.",
"instructions": [
"Examine the output of the `saveSearch` function.",
"Extract the unique ID integer from the output and include it in your response to the user."
]
}
},
"capabilities": {
"security_info": {
"data_handling": [
"ResourceStateUpdate"
]
}
}
},
{
"name": "deleteSavedSearch",
"description": "Delete a previously saved search",
"parameters": {
"type": "object",
"properties": {
"id": {
"type": "integer",
"description": "The unique ID of the saved search"
}
},
"required": [
"id"
]
},
"returns": {
"type": "string",
"description": "True if the saved search was deleted, false otherwise"
},
"capabilities": {
"security_info": {
"data_handling": [
"ResourceStateUpdate"
]
}
}
}
],
"runtimes": [
{
"type": "OpenApi",
"auth": {
"type": "none"
},
"run_for_functions": [
"getListings",
"saveSearch",
"deleteSavedSearch"
],
"spec": {
"url": "http://contoso.com/openapi.yaml"
}
}
],
"logo_url": "http://contoso.com/logo.png",
"contact_email": "contact@contoso.com",
"legal_info_url": "https://contoso.com/legal/"
}