Listar Competências
Competências são instruções para o seu Agente que são definidas em linguagem natural. Elas permitem que seu agente entenda a intenção do usuário e proponha uma ação adequada com base na conversa.
Para acessar uma lista de competências criadas, você pode clicar em Listar Competências no menu lateral esquerdo, visualizando todas as competências criadas. Você ainda pode cadastrar as habilidades para cada competência, editar a competência ou deleta-la.
Habilidades, Editar e Excluir Competência
Na caixa de cada competência, podem ser visualizados 3 ícones:
- Habilidades — Nesse primeiro ícone, é possível visualizar as habilidades cadastradas para essa competência, criar, editar e excluir habilidades.
- Editar — Com essa funcionalidade, é possível editar as informações relativas à competência em questão. Modifique, ajuste e refina a lógica das competências para garantir que estejam sempre alinhadas com as demandas em evolução do seu projeto.
- Excluir — Nesse ícone, é possível excluir a competência e suas habilidades vinculadas. Quando uma competência já não é mais necessária, você pode excluí-la, garantindo que apenas as competências mais relevantes e eficazes permaneçam disponíveis para seus agentes.
Criar Habilidades
Para criar uma habilidade, você precisa clicar no ícone de "lâmpada" disponível na competência e, posteriormente, clicar na opção "+ Criar Habilidade" no canto superior direito da plataforma. Com apenas alguns cliques, você pode adicionar uma variedade de habilidades, desde linguísticas até especializadas, para melhor atender às necessidades do seu projeto.
Defina também parâmetros fundamentais, como gatilhos, respostas e lógica de resposta condicional, para personalizar cada competência de acordo com suas especificações.
Nome da Habilidade
Crie um nome curto, mas descritivo, para a habilidade.
Descrição
Crie aqui uma breve descrição para a habilidade. Os campos de nome da habilidade e descrição são usados durante a busca por funcionalidades feita pelo Agente durante a conversa, ou seja, quando o seu Agente está tentando descobrir o que precisa fazer para atender o usuário final. O campo de instrução só é usado quando esta habilidade específica é selecionada. A instrução é aplicada tendo em mente a conversa para atender à solicitação do usuário final.
Portanto, é fundamental manter os campos de nome da habilidade e descrição claros e compreensíveis, mas não muito longos, pois serão utilizados em todas as etapas da conversa, consumindo créditos/tokens. Já o campo de instruções pode ser mais longo, pois ele será usado apenas uma vez por solicitação do usuário, mas ainda assim contribuirá para o uso total dos créditos.
Instrução
Um componente chave para uma habilidade é 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 triplo. 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 a documentação sobre 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]]. A sintaxe ${name} e {{name}} pode ser usada para acessar segredos e informações de conversa durante a execução da ação. O $[name] e [[name]] pode 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 descrevemos 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 usamos 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 usamos 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 chamamos a ação de busca como normalmente fazemos, mas há uma pequena diferença. Em vez de deixar os parâmetros da solicitação abertos à interpretação, podemos 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.