Formato Legado de Habilidades
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ção | Propriedade | Descrição |
|---|---|---|
search | — | Pesquisa na web ou em um conjunto de dados com uma frase específica. |
| tipo | A pesquisa a ser executada na web. Os valores válidos são web, notícias, imagens e vídeos. | |
| datasetId | O ID do conjunto de dados a ser pesquisado. | |
fetch | — | Busca 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. |
| timeout | Um 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. | |
| format | Especifica o formato de saída das ações. As opções disponíveis são texto, markdown e json. | |
| jsonpath | O 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. | |
| jmespath | O 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. | |
email | — | Envia um e-mail. |
| to | O endereço de e-mail para o qual enviar a mensagem. | |
| replyTo | O endereço de e-mail a ser usado no campo de e-mail de resposta. | |
| subject | O assunto do e-mail. Se não for fornecido, um assunto padrão será usado. | |
view | — | Use 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. |
text | — | Gera texto usando texto de entrada como prompt. |
| model | Qualquer um dos modelos de linguagem suportados pode ser usado como modelo base para o texto: gpt-3.5-turbo, gpt4, mistral-large, etc. | |
image | — | Gera uma imagem usando texto de entrada como prompt. |
| model | Qualquer um dos modelos de imagem suportados: gpt-image-1, gpt-image-1-mini, gpt-image-1.5, stablediffusion, dalle2 ou dalle3. | |
| size | Qualquer um dos tamanhos suportados: 256x256, 512x512 ou 1024x1024. | |
mcp/install | — | Conecta 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:
| Exemplo | Descriçã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.