Pular para o conteúdo principal

Formato Legado de Habilidades

Formato legado

Este conteúdo se aplica apenas a habilidades criadas antes da introdução do novo formulário de criação de habilidades. Novas habilidades utilizam exclusivamente o formulário descrito em Listar Competências; não é possível criar habilidades novas neste formato.

Um componente chave para uma habilidade nesse formato é executar uma ação/instrução, como por exemplo buscar uma página da web. A ação precisa ser especificada em bloco de código no estilo markdown (bloco de código protegido) com notação de crase tripla. Você deve especificar o nome da ação após as três primeiras crases. Isso é semelhante a como você usa blocos de código protegidos com identificadores de idioma. Observe o exemplo a seguir:

url: https://some/url
method: POST
headers:
Content-Type: application/json
body:
param: "value"

A ação pode ser combinada com instruções de texto de formato livre. Estas instruções definem como a ação deve ser aplicada. Recomenda-se ser o mais descritivo possível para garantir que a ação seja aplicada de forma consistente.

Considere a tabela a seguir, que resume a lista de ações e propriedades disponíveis:

AçãoPropriedadeDescrição
searchPesquisa na web ou em um conjunto de dados com uma frase específica.
tipoA pesquisa a ser executada na web. Os valores válidos são web, notícias, imagens e vídeos.
datasetIdO ID do conjunto de dados a ser pesquisado.
fetchBusca um URL. Você também pode usar uma solicitação HTTP completa. A ação possui lógica de tempo limite interno e nova tentativa integrada.
timeoutUm parâmetro que controla o tempo limite máximo em milissegundos. Pela ação de busca padrão, aguarde 10 segundos (10.000 ms) antes de cancelar a solicitação.
formatEspecifica o formato de saída das ações. As opções disponíveis são texto, markdown e json.
jsonpathO uso pode usar um JSONPath para extrair uma seção específica de um documento JSON retornado pela solicitação da web executada pela ação de busca.
jmespathO uso pode usar um JMESPath para extrair uma seção específica de um documento JSON retornado pela solicitação da web executada pela ação de busca.
emailEnvia um e-mail.
toO endereço de e-mail para o qual enviar a mensagem.
replyToO endereço de e-mail a ser usado no campo de e-mail de resposta.
subjectO assunto do e-mail. Se não for fornecido, um assunto padrão será usado.
viewUse o modelo de visão para descrever uma imagem de URL externo. A entrada para a ação deve conter uma string de URL e, opcionalmente, alguma descrição.
textGera texto usando texto de entrada como prompt.
modelQualquer um dos modelos de linguagem suportados pode ser usado como modelo base para o texto: gpt-3.5-turbo, gpt4, mistral-large, etc.
imageGera uma imagem usando texto de entrada como prompt.
modelQualquer um dos modelos de imagem suportados: gpt-image-1, gpt-image-1-mini, gpt-image-1.5, stablediffusion, dalle2 ou dalle3.
sizeQualquer um dos tamanhos suportados: 256x256, 512x512 ou 1024x1024.
mcp/installConecta com um servidor MCP, adquire ferramentas disponibilizadas por ele e utiliza. Para mais detalhes, consulte Criando Ferramentas MCP.

As ações e outras partes da instrução das habilidades podem ser personalizadas com a ajuda de parâmetros. Esse recurso permite que os agentes executem uma ampla gama de ações de forma mais eficaz, desde a busca de dados online até o processamento de solicitações do usuário, entendendo o contexto e as especificidades de cada comando. Oferecemos suporte a uma ampla variedade de sintaxes flexíveis, incluindo ${name} ou {{name}}, com descrições adicionadas como ${name:A long description} ou usando o separador | para formatos alternativos como ${name|Uma descrição mais longa}.

Usando Parâmetros

As ações podem ser parametrizadas usando as seguintes sintaxes: ${name}, {{name}}, $[name] e [[name]]. As sintaxes ${name} e {{name}} podem ser usadas para acessar segredos e informações de conversa durante a execução da ação. Os $[name] e [[name]] podem construir parâmetros de entrada que serão preenchidos pelo usuário (automaticamente através de conversa).

Considere a seguinte tabela como guia:

ExemploDescrição
${SECRET_NAME} ou {{SECRET_NAME}}Use um segredo definido por nome.
${CONVERSATION_ID} ou {{CONVERSATION_ID}}Use o ID da conversa atual.
${CONVERSATION_META_FIELD} ou {{CONVERSATION_META_FIELD}}Acesse um "campo" nas metapropriedades de uma conversa.
$[parâmetro|descrição do parâmetro] ou [[param|descrição]]Parâmetro de entrada preenchido automaticamente pelo usuário via conversa.

Exemplos de Instruções

1. Buscando Páginas

Considere a seguinte instrução de habilidade que permite ao seu chatbot buscar e exibir páginas da web quando solicitado pelo usuário:

When the user asks the bot to read, fetch, or pull a web page, the bot must only output the URL of the root webpage as a markdown code block, with the language specified as "fetch". For example:

URL of the webpage, e.g https://... or HTTP request

Esta instrução diz ao chatbot para interpretar as solicitações do usuário para buscar páginas da web. Quando o chatbot detecta tal solicitação, ele exibirá o URL da página da web solicitada em um bloco de código markdown, usando o identificador especificado como fetch. Caso o usuário faça uma pergunta que não esteja relacionada à busca de uma página web, o chatbot responderá com uma mensagem indicando que não consegue atender à solicitação.

2. Recuperando a Previsão do Tempo

Considere as seguintes habilidades que permitem ao seu chatbot obter a previsão do tempo mais recente em um local:

To get the weather you need to perform the following request:

url: https://wttr.in/{location}?format=4
method: GET
headers:
User-Agent: curl/7.61.1

The {location} parameter could be any city. For example:

url: https://wttr.in/London?format=4
method: GET
headers:
User-Agent: curl/7.61.1

Multiple locations can be requested like this:

url: https://wttr.in/{London,Paris}?format=4
method: GET
headers:
User-Agent: curl/7.61.1

The response is a text document with weather information.

Observe que foram descritos vários exemplos de como buscar o clima com base na entrada fornecida pelo usuário. A previsão do tempo será obtida de acordo com estas instruções.

3. Pesquisando Conjunto de Dados

A habilidade a seguir pode ser usada para pesquisar mais informações em um conjunto de dados específico. Observe o campo datasetId, que aponta para o conjunto de dados específico a ser pesquisado. Também usa-se uma entrada parametrizada chamada consulta, que possui uma descrição para ajudar o modelo subjacente a escolher a frase de pesquisa correta.

search/datasetId=clvmk6ksl0039vsm3k5wve3pp
${query|O termo de pesquisa a ser utilizado.}

4. Enviando E-mail de Suporte

A habilidade a seguir pode ser usada para resumir a conversa atual e enviar um e-mail de suporte. Observe que foi usado o campo replyTo para responder ao usuário:

To email customer support use need to use the following action:

email/[email protected]/replyTo={user email}
[The summary of the conversation]

For example, if the user is asking for help and their email is [email protected] the action will be:

[The summary of the conversation]

5. Gerando Texto

Considere a seguinte instrução da habilidade que permite ao seu chatbot gerar texto com base na entrada do usuário:

To generate a song based on user input, perform the following action:

text/model=gpt-3.5-turbo
The user's input text converted to a prompt suitable for song generation

6. Gerando uma Imagem

Considere a seguinte instrução da habilidade que permite ao seu chatbot gerar uma imagem com base na entrada do usuário:

To generate an image based on user input, perform the following action:

image/model=stablediffusion
The user's input text

7. Usando Parâmetros

Considere a seguinte instrução de habilidade que usa parâmetros para fornecer dicas adicionais sobre qual entrada é esperada para executar a ação de busca:

url: https://httpbin.org/anything/collect/details
method: POST
headers:
Content-Type: application/json
Test: Token ${SECRET_TEST}
body:
name: "${!nome|O nome completo do usuário.}"
email: "${!email|O e-mail do usuário em formato válido.}"

Neste exemplo foi chamada a ação de busca, mas em vez de deixar os parâmetros da solicitação abertos à interpretação, é possível fornecer dicas adicionais. Observe que os campos name e email JSON são claramente especificados com o nome e a descrição do campo correspondente.

Este processo não só melhora o desempenho do modelo, mas também enriquece a experiência do usuário, garantindo interações mais relevantes e precisas.