Exemplos

Cada agente precisa ter um ou mais exemplos. Estes são exemplos de conversas entre um usuário final e o app do agente, incluindo o diálogo e as ações realizadas pelo app do agente. Elas são eficazes exemplos de comandos few-shot para o LLM.

O console oferece uma interface para inserir ações.

Apps de agente multilíngue

Se você quiser que o app do agente processe vários idiomas, seus exemplos devem usar cada uma das linguagens.

Exemplo de resumo de entrada e de saída

Além dos parâmetros de entrada e saída, os agentes aceitam o recebimento de uma resumo de entrada e emissão de um resumo de saída para trocar informações. com outros agentes. Resumos são úteis para transmitir dados contextuais abstratos informações entre agentes, enquanto os parâmetros são mais úteis para transmitir campos estruturados e bem definidos entre os agentes. Os parâmetros são os únicos para trocar dados entre fluxos e agentes.

Adicione resumos de entradas relevantes a exemplos para condicionar o agente a ajustar seu baseadas nos resumos de entrada no ambiente de execução. Adicione resumos de saída, incluindo detalhes relevantes e precisos sobre o exemplo para mostrar ao agente quais detalhes precisam ser resumidos.

Exemplo de estado

Em um determinado ponto da conversa, um agente estará em um dos seguintes estados:

  • OK: o agente atingiu a meta, e o controle será transferido para o agente pai.
  • CANCELLED: o usuário decidiu não prosseguir com a meta atribuída ao agente. O controle será transferido para o agente pai. Se o agente pai for um fluxo de CX, intent da entrada do usuário será detectada antes da execução do fluxo.
  • FAILED: o agente não pode continuar com a meta devido a algum erro (por exemplo, retorna um erro 500). A sessão será encerrada com uma falha de status. Um EndInteraction será adicionada à resposta.
  • ESCALATED: o agente decidiu que não atingirá a meta e precisa encaminhar a situação a uma pessoa. A sessão vai terminar com o status escalado para um supervisor. Uma EndInteraction será adicionada à resposta.
  • PENDING: a conversa continua no agente.

O exemplo de nível superior e as invocações do agente precisam ser indicados com um estado que corresponda ao agente que eles estão referenciando.

Estratégia de seleção

A estratégia de seleção controla se cada exemplo é incluído no comando do agente.

  • DEFAULT: o exemplo poderá ser omitido se a solicitação se aproximar do limite de tokens.
  • STATIC: o exemplo é sempre incluído.
  • NEVER: o exemplo nunca é incluído no comando. O exemplo terá nenhum efeito no desempenho do agente.
.

Adicionar ação

Um exemplo fornecido em um agente consiste em uma série de ações. Essas ações podem variar nas combinações, mas retratam principalmente a interação entre o usuário e o agente, além das ações realizadas entre elas para atender à consulta ou aos requisitos do usuário.

Há duas maneiras de adicionar ações a um exemplo:

  • Para adicionar uma ação manualmente, clique no botão + na parte de baixo do painel direito ou no botão Adicionar ação ao manter o ponteiro sobre as ações atuais. É possível usar essas opções ao criar um novo exemplo clicando na opção + Exemplo ou editar um exemplo existente.

  • Para gerar ações automaticamente com base nas instruções do agente atual, insira uma entrada do usuário no campo Inserir entrada do usuário na parte inferior do painel direito. Use essa opção ao criar ou editar um exemplo. Como alternativa, use essa opção ao testar seu agente no ambiente de execução no painel Agente de visualização à direita. Para salvar ações em um exemplo do painel Agente de visualização, clique em Salvar exemplo após selecionar a invocação do agente na lista de invocação à esquerda do painel Agente de visualização.

Verifique se as ações geradas automaticamente estão corretas e edite-as, se necessário. Isso é especialmente importante para os agentes com poucos ou nenhum exemplo.

O agente aceita os seguintes tipos de ações:

Resposta do agente

A resposta do agente à consulta do usuário.

Entrada do usuário

A consulta do usuário.

Uso da ferramenta

Esta é uma invocação de ferramenta para conseguir as informações adicionais necessárias para atender à consulta do usuário. Essa ação precisa especificar os seguintes detalhes:

  • Ferramenta: nome da ferramenta que deve ser invocada.
  • Ação: nome da operação da ferramenta OpenAPI que será invocada. Nas ferramentas de repositório de dados e na ferramenta de função, o nome da ação é igual ao da ferramenta.
  • Entrada de ferramenta: entradas a serem incluídas na chamada de ferramenta. Elas geralmente são derivadas de conversas anteriores com o usuário.

    Para ferramentas da OpenAPI, o requestBody JSON é obrigatório para os tipos de método POST, PUT e PATCH.

    Exemplo de entrada de requestBody da ferramenta OpenAPI para a ação createPet:

    {
      "id": 1,
      "name": "Luna"
    }
    

    Para a ferramenta repositório de dados, a amostra requestBody em que a consulta é obrigatória e outros campos são opcionais.

    {
      "query": "Where is my nearest store?",
      "filter": "country: ANY(\"United States\")",
      "userMetadata": {
        "userCity": "San Fransisco",
      },
      "fallback": "We don't have any stores in your area."
    }
    
  • Tool output: a resposta da invocação da ferramenta. Esta é uma resposta JSON válida da ferramenta para a entrada fornecida. Em Ferramentas da OpenAPI, também pode ser um erro de string (por exemplo, "404 Não encontrado").

    Exemplo de saída da Open API tool para a ação "listPets":

    {
      "pets": [
        {
          "id": 1,
          "name": "Luna"
        },
        {
          "id": 2,
          "name": "Charlie"
        }]
    }
    

    Exemplo de saída da ferramenta de repositório de dados:

    {
      "answer": "Here's the address to your nearest store ...",
      "snippets": [
        {
          "title": "San Fransisco Downtown",
          "uri": "https://www.example.com/San_Fransisco_Downtown",
          "text": "Address for San Fransisco Downtown .."
        }
      ]
    }
    

Para garantir que o agente seja à prova de falhas, inclua também exemplos de como o agente responderá quando a invocação da ferramenta falhar. A falha de invocação da Open API tool pode ser representada como uma string de erro ("404 não encontrado") na saída da ferramenta. Para ferramentas de armazenamento de dados, a entrada fallback pode ser usada para especificar como responder se não houver uma resposta resumida.

Se você quiser que a ferramenta de armazenamento de dados inclua o URI na resposta do agente, adicione exemplos que contenham o URI usado pelo agente. Se esse URI vier da ferramenta de armazenamento de dados, a saída da ferramenta de armazenamento de dados precisará conter um URI que corresponda ao URI na resposta do agente. fallback não pode ser usado neste cenário porque vai desativar a capacidade do agente LLM de reformular a resposta da ferramenta de armazenamento de dados para incluir URIs na resposta do agente.

Os exemplos que contêm ações de uso da ferramenta podem ser bastante detalhados e contribuir para o aumento do consumo do limite de token de entrada. Para garantir o uso eficiente de tokens, garanta que as saídas da ferramenta sejam concisas e contenham informações relevantes para as metas dos agentes. Para ferramentas de repositório de dados, considere remover snippets dos exemplos, porque eles podem contribuir para um alto consumo de tokens de entrada.

Invocação de agente

Esta ação é usada quando o agente precisa invocar outro agente para atender à consulta do usuário. Essa ação precisa especificar os seguintes detalhes:

  • Agente: nome do agente a ser invocado.
  • Resumo de entrada da invocação de agente: um resumo das partes relevantes da conversa anterior que são úteis para o agente que está sendo invocado.
  • Parâmetros de entrada: parâmetros de entrada a serem transmitidos ao agente
  • Resumo da saída da invocação do agente: um resumo do que o agente precisa gerar ao concluir a meta.
  • Parâmetros de saída: parâmetros de saída gerados pelo agente após a conclusão da meta.