Agentforce Guia para alcançar um comportamento confiável do agente
Uma estrutura para 5 níveis de determinismo
Uma estrutura para 5 níveis de determinismo
Olfa Kharrat, diretora de gerenciamento de produto - Agentforce
Reinier van Leuken, diretor sênior de gerenciamento de produto - Agentforce
A confiança tem sido o valor nº 1 da Salesforce desde a sua fundação, em 1999, quando foi pioneira em um novo modelo tecnológico de cloud computing e SaaS. As empresas confiam na Salesforce ao armazenar dados corporativos valiosos na nuvem, com a certeza de que esses dados estão seguros e regidos pelos controles de acesso adequados. Isso continua sendo essencial, mas, na era da IA de agentes, a definição de confiança é ainda mais ampla. À medida que as empresas passam a depender cada vez mais de agentes autônomos para executar funções de negócios críticas, esses agentes precisam se tornar parceiros de negócios confiáveis, cujo trabalho seja preciso, relevante e, acima de tudo, confiável.
Então, como criar um agente confiável? Confiabilidade normalmente significa gerar o mesmo resultado para a mesma entrada. No entanto, os agentes nem sempre funcionam assim, pois são movidos por grandes modelos de linguagem (LLMs), que são, por natureza, não determinísticos. Isso dá aos agentes a flexibilidade de desenvolver soluções criativas adaptadas a circunstâncias específicas, sem a necessidade de programar explicitamente cada condição ou situação que enfrentam. Ainda assim, os agentes precisam de governança para atender aos requisitos de negócios e seguir as diretrizes operacionais. Ao executar processos de negócios, eles devem demonstrar confiabilidade e entregar resultados alinhados a restrições determinísticas. O determinismo impõe uma rigidez e uma disciplina que entram em choque com a autonomia e a flexibilidade que os agentes proporcionam. Portanto, a chave para criar agentes bem-sucedidos é encontrar o equilíbrio certo entre fluidez criativa e controle corporativo.
Este documento apresenta as principais considerações para o desenvolvimento de agentes confiáveis. Ele define cinco níveis de controle de agentes e fornece práticas recomendadas para conquistar e manter o controle sobre o comportamento dos agentes em cada um desses níveis. A orientação aborda as formas como o motor de raciocínio do Agentforce funciona. À medida que o Agentforce evolui, este documento será atualizado para refletir as práticas recomendadas mais recentes.
Este documento pressupõe familiaridade básica com o design e a criação de agentes no Agentforce. Para uma introdução ao Agentforce, recomendamos o seguinte:
Para entender melhor o comportamento dos agentes, vamos primeiro compará-los com seus equivalentes mais rígidos: os chatbots.
Chatbots: Seguem regras com rigidez
Os chatbots seguem árvores de decisão predefinidas que estruturam os diálogos em que podem participar. A navegação por essas árvores de decisão é determinada pelas respostas fornecidas pelo usuário. Essa resposta pode ser escolhida a partir de um conjunto predefinido de opções ou pode ser um texto livre. No caso de uma resposta em texto livre, utiliza-se um modelo preditivo para classificação de intenção. Essas árvores mapeiam todos os caminhos possíveis da conversação e determinam as respostas do chatbot em cada etapa. O comportamento do chatbot é rigidamente definido por regras pré-estabelecidas. Se a entrada do usuário não corresponder a um caminho reconhecido, ou se o modelo preditivo não tiver sido treinado para reconhecer uma determinada intenção, o chatbot não conseguirá responder adequadamente.
Agentes: Adaptáveis e intuitivos
Em contraste, os agentes utilizam o poder dos LLMs e seus recursos avançados em processamento de linguagem natural (NLP). Os LLMs permitem que os agentes compreendam a intenção por trás da entrada do usuário, mesmo que ela seja expressa de forma inesperada. Com base nessa compreensão da intenção, o agente pode selecionar a ação mais adequada entre várias possibilidades. Um agente pode até mesmo formular respostas totalmente novas. Essa flexibilidade e adaptabilidade diferenciam os agentes de seus equivalentes em chatbots.
Uma analogia culinária
A diferença entre chatbots e agentes pode ser comparada ao contraste entre um cozinheiro iniciante e um chef experiente.
Em resumo, a diferença fundamental entre agentes e chatbots está em sua adaptabilidade e na capacidade de lidar com entradas inesperadas.
Uma característica distinta da inteligência de um agente está em sua capacidade de orquestrar e acionar as ações mais adequadas no momento certo. Essa flexibilidade elimina a necessidade de programar detalhadamente cada possível interação do usuário.
No Agentforce, criar um agente envolve tópicos, ações e instruções e descrições em linguagem natural.
Os tópicos são os "trabalhos a serem realizados" pelo agente. Eles têm atributos como descrição de classificação, escopo e instruções que definem cada trabalho e como deve ser executado. Os tópicos contêm ações que o agente pode executar, juntamente com instruções que determinam como essas ações são realizadas.
As ações são as tarefas predefinidas que o agente pode executar para realizar seu trabalho. Existem cinco tipos de ações:
A definição de um agente contém instruções em linguagem natural que descrevem os ativos do agente e definem as diretrizes dentro das quais ele deve operar. As instruções são aplicadas tanto às ações quanto aos tópicos.
Esses vários elementos básicos, quando configurados corretamente, ajudam um agente a cumprir sua finalidade enquanto opera dentro dos limites apropriados.
O motor de raciocínio do Agentforce orquestra esses elementos básicos para gerar o comportamento de agentes correto. Ele utiliza as instruções e descrições em linguagem natural definidas em tópicos e ações. É baseado no ReAct, um novo paradigma de raciocínio para LLMs introduzido em 2022 por Yao et al.. Esse paradigma imita o gerenciamento de tarefas humanas ao raciocinar sobre um problema, executar uma ação, observar os resultados e repetir o ciclo até a conclusão da tarefa.
Os agentes da Salesforce seguem esse paradigma:
O motor de raciocínio usa LLMs em todas as etapas de Reason e Observe. Dependendo do tipo de ação, ele também pode usar LLMs na etapa Act.
Esta seção descreve uma abordagem em camadas para aprimorar o determinismo dos agentes. Cada nível se baseia no anterior, com maior complexidade e recursos que estabelecem mais controle sobre o comportamento do agente.
O primeiro nível se concentra em permitir que os agentes identifiquem tópicos relevantes de forma autônoma e, em seguida, selecionem as ações apropriadas com base em metas em vez de instruções explícitas. O mecanismo principal envolve o uso de uma compreensão contextual para responder às entradas do usuário. Embora tecnicamente qualquer tipo de ação possa ser adicionado, nesse nível presumimos que as ações sejam ações de prompt. Tópicos sem instruções com ações de prompt oferecem uma forma rápida e eficiente de lidar com consultas comuns.
Nesse nível, a ênfase está em estabelecer uma base de capacidade de resposta e autonomia dos agentes por meio de uma compreensão dinâmica.
Com base na seleção de ações sem instruções, esse nível introduz instruções explícitas para orientar o comportamento do agente. Adicionar instruções precisas aumenta o controle sobre como os agentes respondem a diferentes situações. As instruções aos agentes podem ser expressas como regras, diretrizes, proteções e exemplos. Essas instruções fornecem ao agente uma orientação específica sobre como lidar com diversos tópicos, executar ações e processar seus resultados. O objetivo desse nível é fornecer uma orientação clara ao agente para aumentar a consistência e melhorar a conformidade com as diretrizes e processos da empresa.
A fundamentação envolve conectar a compreensão e as respostas do agente a fontes externas de conhecimento. Ela ajuda a garantir que as informações fornecidas pelo agente sejam mais precisas, atualizadas e relevantes. Esse nível integra o acesso a bancos de dados, bases de conhecimento e outros repositórios de informações. Basear as respostas do agente em dados verificados aumenta sua confiabilidade e credibilidade.
Esse nível adiciona a capacidade de os agentes trabalharem com variáveis. As variáveis permitem que os agentes personalizem interações, mantenham o contexto em várias interações e ajustem dinamicamente seu comportamento com base em pontos de dados específicos mantidos durante a sessão do agente. Por exemplo, um agente pode capturar as preferências do usuário, detalhes do pedido e outras informações relevantes e, em seguida, usar esses dados para personalizar a interação. Com variáveis, os agentes conseguem lidar melhor com interações mais complexas, predefinidas e personalizadas.
A etapa final integra o agente às funcionalidades principais da Salesforce: Apex, APIs e fluxo. A integração permite que o agente execute ações complexas no ecossistema da Salesforce, como acessar e manipular dados, acionar fluxos de trabalho e interagir com outros sistemas.
Esse nível transforma o agente em uma ferramenta poderosa, capaz de executar tarefas sofisticadas e contribuir diretamente para os resultados de negócios.
Começando com uma linha de base de capacidade de resposta e autonomia do agente, considere um agente que consiste apenas em tópicos e ações, com suas descrições correspondentes. Podemos usar esse agente de exemplo para apresentar as diferentes etapas do motor de raciocínio e mostrar como ele utiliza essas descrições para selecionar os tópicos corretos e, em seguida, as ações a serem executadas. Ao omitir as instruções de tópicos deste exemplo, podemos observar que os agentes nesse primeiro nível têm o maior grau de liberdade quando comparados com agentes de níveis superiores. No nível um, o agente tem total liberdade para selecionar a ação que considera apropriada, com base exclusivamente na conversa em andamento.
Atividade | Etapas | Descrição |
---|---|---|
Invocação de agentes | 1 | O agente é invocado. |
Classificação de tópicos | 2-3 | O motor de raciocínio analisa a mensagem do cliente e a combina com o tópico mais apropriado com base no nome do tópico e na descrição da classificação. |
Montagem de contexto | 4-5 | Depois que um tópico é selecionado, o motor reúne o escopo, as instruções e as ações disponíveis do tópico junto com o histórico da conversa. (Nota: As instruções são abordadas no nível dois, controle de agentes.) |
Tomada de decisão |
Usando todas essas informações, o motor determina se deve: • Executar uma ação para recuperar ou atualizar informações • Solicitar mais detalhes ao cliente • Responder diretamente com uma resposta |
|
Execução da ação | 6-8 | Se uma ação for necessária, o motor de raciocínio a executa e coleta os resultados. |
Ciclo de ação | O motor avalia as novas informações e decide novamente o que fazer em seguida: executar outra ação, solicitar mais informações ou responder. | |
Verificação de fundamentação | Antes de enviar uma resposta final, o motor verifica se a resposta: • Está baseada em informações precisas de ações ou instruções • Segue as diretrizes fornecidas nas instruções do tópico • Permanece dentro dos limites definidos pelo escopo do tópico |
|
Enviar resposta | A resposta fundamentada é enviada ao cliente. |
Analise as seguintes considerações para o motor de raciocínio:
O processo de raciocínio envolve quatro etapas principais:
Os tópicos são projetados para melhorar a precisão com que os agentes classificam a ação ou a sequência de ações correta. Cada tópico deve consistir em ações semanticamente distintas, todas pertencentes a uma descrição concisa do tópico e, portanto, relacionadas a uma função de agente semelhante.
O tópico correto é selecionado pelo LLM do motor de raciocínio (etapa 2-3 do diagrama). Ele seleciona o tópico cuja descrição de classificação mais se aproxima do último enunciado, usando um prompt de tópico. Esse prompt de tópico contém as descrições de classificação de todos os tópicos e o histórico da conversa. Além de enunciados e respostas dos agentes, o histórico da conversa inclui as ações executadas e seus resultados. Além disso, o prompt incorpora instruções cruciais que exigem análise dentro do contexto do histórico da conversa e obrigam o LLM a compartilhar seu processo de raciocínio.
Considerações adicionais:
O objetivo dos tópicos é duplo:
Ao organizar cuidadosamente as capacidades do agente em tópicos claramente definidos, compostos por ações relacionadas, o agente opera de forma mais eficaz e previsível, além de ser mais fácil de atualizar e expandir. Há duas abordagens possíveis para o design de tópicos: de cima para baixo e de baixo para cima.
Ambas as abordagens levam a bons resultados quando aplicadas corretamente.
Comece listando todas as ações específicas que o agente deve ser capaz de executar. Nesse estágio, é melhor ser muito específico do que excessivamente geral. Evite tentar agrupar ou simplificar ações prematuramente. O objetivo é criar uma visão abrangente e detalhada do que o agente pode fazer.
Por exemplo, no caso de um agente de atendimento ao cliente, a lista inicial pode incluir:
Observe que uma ação como "Resolver reclamações de clientes" é ampla demais neste ponto. As ações devem representar o menor nível de granularidade no comportamento do agente. As reclamações podem ser de vários tipos, e diferentes ações já as abrangem:
Marque ações de natureza semelhante, pois elas podem confundir o motor de raciocínio. Suas descrições podem não ser suficientemente diferentes do ponto de vista semântico e, portanto, o motor de raciocínio não saberá qual ação selecionar na etapa 5.
Por exemplo, "Solucionar problemas técnicos" e "Responder perguntas com conhecimento" têm descrições semelhantes, mas suas funcionalidades podem ser significativamente diferentes. Marcar essas sobreposições semânticas ajudará a identificar quais ações separar em vários tópicos.
Quando as ações estiverem claramente definidas e suas sobreposições semânticas identificadas, elas poderão ser agrupadas em tópicos preliminares. Um tópico é uma categoria lógica de funcionalidade: um agrupamento de ações que, juntas, representam uma capacidade ou habilidade coerente do agente.
Ao criar esses agrupamentos:
Aqui está um exemplo de agrupamento inicial para um agente de atendimento ao cliente:
Tópico 1:
Tópico 2:
Depois de obter o agrupamento inicial, escreva descrições de classificação para cada tópico.
Após o refinamento, temos:
Para recapitular, primeiro crie uma lista abrangente de todas as ações possíveis e marque a sobreposição semântica entre essas ações. Em seguida, crie um conjunto de tópicos que, no mínimo, resolva toda a sobreposição semântica (para que o motor de raciocínio não fique confuso dentro dos limites de um tópico). Depois, escreva a descrição de classificação de cada tópico. Se os tópicos forem muito amplos, divida-os em tópicos mais granulares. Ao implementar essas orientações, você pode criar um agente que não apenas tenha um bom desempenho, mas também seja fácil de manter e ampliar.
Essa estrutura oferece suporte a um melhor raciocínio, uma execução mais precisa e limites de decisão mais claros dentro do comportamento do agente. Também depende da colaboração entre designers, engenheiros e especialistas no assunto para tornar os recursos do agente mais transparentes e modulares.
Outras considerações para a criação eficaz de tópicos
Imagine que um agente de serviço receba uma solicitação de política de garantia para um relógio. O problema de garantia não parece estar relacionado à troca ou ao suporte do produto. O gerenciamento de pedidos parece ser o tópico mais apropriado para atender a essa solicitação. Por isso, o último tópico é escolhido pelo motor de raciocínio como o mais provável para atender ao pedido.
Após a seleção do tópico, o motor de raciocínio seleciona as ações certas a serem executadas no tópico selecionado. Novamente, o LLM do motor de raciocínio é responsável por isso, usando outro prompt chamado prompt de observação. O objetivo do prompt de observação é obter a próxima etapa do processo de raciocínio. A próxima etapa pode ser qualquer uma das seguintes opções:
A entrada no prompt de observação é formada por todas as descrições de todas as ações do tópico, bem como do histórico da conversa.
As ações são as tarefas predefinidas que o agente pode executar para realizar seu trabalho. As ações são as definições mais detalhadas de trabalho. Há cinco tipos diferentes de ações do agente: (1) executar código Apex, (2) chamar uma API, (3) executar um fluxo, (4) obter uma resposta de LLM a um modelo de prompt e (5) chamar um modelo preditivo. A maioria dessas ações pode ser determinística. Uma exceção é obter uma resposta a um modelo de prompts (desde que a ação externa do sistema, do Flow ou do Apex não contenha elementos probabilísticos, como invocações de prompt). Abordaremos essas questões no quinto nível de controle de agentes.
Vamos continuar com o exemplo anterior em que um agente de serviço recebeu uma pergunta sobre a política de garantia de um relógio. Depois de selecionar o tópico Gerenciamento de pedidos, a ação mais provável é escolhida. Como esse é o tópico de gerenciamento de pedidos, a primeira etapa lógica é pesquisar o pedido (caso contrário, para que recuperar as informações de garantia?) iniciando a ação de pesquisa de pedido.
Um enunciado do usuário pode acionar a execução de várias ações antes que uma resposta seja enviada de volta ao usuário. Isso se deve aos ciclos agentes, que continua selecionando e executando a próxima ação mais adequada até que uma das seguintes condições seja atendida:
As ações não estão sujeitas a um tempo limite específico. Isso serve para evitar interrupções quando os tempos de execução da ação variam de acordo com sua complexidade. Algumas ações são simplesmente mais complexas de executar do que outras.
Depois de iniciar uma pesquisa de pedido, o motor de raciocínio avalia a resposta gerada até o momento e decide que precisa realizar mais etapas antes que uma resposta possa ser enviada de volta ao usuário. Ele está prestes a consultar a política de garantia, agora que o pedido está presente no histórico da conversa.
No entanto, ao fazer isso, o agente percebe que o cliente realmente comprou dois relógios, conforme retornado pela ação "pesquisa de pedidos". Portanto, nos ciclos agentes, o motor de raciocínio agora decide pedir ao cliente que especifique para qual relógio específico precisa de informações de garantia.
A confiabilidade do agente é aprimorada por uma distribuição cuidadosa das ações entre tópicos, bem como por ações e tópicos bem descritos. No entanto, esses métodos não permitem a expressão de regras de negócios, políticas e proteções dentro do motor de raciocínio. As instruções fornecem uma camada adicional importante de controle de agentes. As instruções oferecem orientação adicional ao motor de raciocínio ao usar várias ações em conjunto. Isso permite uma abordagem mais refinada e orientada por políticas para o comportamento dos agentes. Com instruções, os criadores de agentes podem garantir que eles não apenas funcionem de forma confiável, mas também sigam regras de negócios estabelecidas e práticas recomendadas.
As instruções escritas no nível do tópico passam a fazer parte do prompt de observação. As instruções do tópico orientam o motor de raciocínio na escolha das ações apropriadas. Elas podem fornecer orientação sobre quando selecionar cada ação e podem ser usadas para definir a dependência entre ações. Em determinadas circunstâncias, elas também podem impor o controle sequencial. No entanto, existem alternativas para isso e as instruções devem ser usadas com cautela para esse requisito. As instruções do tópico são adicionadas uma a uma e aparecem em caixas separadas na interface do usuário. No entanto, elas sempre são enviadas juntas para o prompt de observação. Adicionar instruções em caixas separadas aumenta a legibilidade e a facilidade de manutenção do tópico, mas isso não afeta o motor de raciocínio.
Às vezes, as instruções se aplicam globalmente ao agente e não estão relacionadas a um tópico individual. A funcionalidade para manter instruções globais está atualmente no roteiro do produto. As práticas recomendadas para redação de instruções de tópicos podem ser encontradas no AgentforceGuia de tópicos, instruções e ações. Vamos analisar algumas diretrizes adicionais.
Evite criar roteiros excessivos sobre como os agentes devem conversar com os usuários. O excesso de roteirização pode limitar a capacidade de um agente de criar afinidade, compreender as necessidades específicas do usuário e responder de forma eficaz, em tempo real, a circunstâncias dinâmicas. Além disso, instruções muito longas podem tornar o agente mais lento para responder e confundir o motor de raciocínio. Forçar o determinismo por meio de instruções não é a abordagem preferida.
Por exemplo, não é necessário instruir um agente a evitar referências a concorrentes em respostas de atendimento. Isso pode levar a um comportamento indesejado, pois o agente também pode se recusar a responder perguntas referentes à integração com um provedor que também seja concorrente. Em vez disso, a instrução pode ser algo como "ao discutir concorrentes, responda tendo em mente o melhor interesse da empresa". Isso evita instruções restritivas e condicionais, como "mencione apenas o concorrente xyz no caso de...", e, em vez disso, aproveita os recursos de raciocínio do LLM. Este exemplo mostra como as instruções podem ser dadas em um nível mais alto e abstrato, semelhante à forma como um colaborador de atendimento humano seria treinado após ingressar na empresa.
Vamos dar uma olhada em mais alguns exemplos do que não fazer. Estas são algumas instruções inadequadas dadas a um agente de serviço que lida com perfis de candidatos em um site de recrutamento. Essas instruções tentam antecipar todas as possíveis declarações do cliente e, portanto, devem ser evitadas:
Instrução 1:
O agente recebe o seguinte enunciado: "Posso adicionar uma foto ao meu perfil?" Em seguida, pergunte imediatamente ao cliente: "Qual é o seu tipo de perfil?"
Instrução 2:
Se o cliente indicar um perfil premium, responda "deixe-me verificar os detalhes do seu contrato". Em seguida, pesquise os detalhes do contrato e verifique se foi acordado que ele pode atualizar a foto do perfil.
Se foi acordado que o candidato pode fazer isso, responda "sim, é possível que eu atualize para você. Você pode fornecer sua nova imagem?" Depois que a foto for recebida, atualize o perfil do candidato de acordo. Se o contrato não incluir alterações na foto do perfil, diga "desculpe, isso não é possível. Vou encaminhar você para um agente humano"
Instrução 3:
Perfil não premium: Se o cliente indicar um perfil não premium, responda com: "Você não pode atualizar sua foto. Se você quiser fazer isso, por favor me avise e eu transferirei você para um agente humano."
Instrução 4:
Se o tipo de perfil não estiver claro, responda com "não consegui entender seu tipo de perfil".
Em vez desse tipo de microgerenciamento, use uma abordagem mais flexível que instrua o comportamento e a conduta do agente. Considere as seguintes práticas recomendadas:
"Somente candidatos com um perfil premium cujo contrato permita alterações de imagem podem atualizar sua foto
."Com base nessas práticas recomendadas, um conjunto melhor de instruções pode ser assim:
Instrução 1
: "Use ações de conhecimento para verificar políticas em caso de solicitações de alterações de conta."
Instrução 2
: "Não responda a perguntas para as quais nenhuma política aplicável possa ser encontrada."
A aplicação das diretrizes acima pode melhorar os resultados do agente. Agora, se o cliente solicitar ao agente uma mudança de perfil, ele entenderá que precisa recuperar a política necessária da base de conhecimento, interpretar as regras recuperadas, aplicar essas regras ao contexto e, por fim, responder ao cliente. Em contraste com o excesso de roteirização, essa abordagem comportamental é muito mais genérica e amplamente aplicável. Sem precisar escrever cada conversa possível, o agente agora pode responder de forma flexível com o comportamento desejado a uma variedade mais ampla de tópicos de conversa.
Vamos continuar com o exemplo de agentes de sites de recrutamento. O agente deve ser capaz de lidar com o planejamento de entrevistas com o entrevistador apropriado. Para isso, o agente deve primeiro verificar a disponibilidade dos recrutadores e, em seguida, propor três horários possíveis ao candidato.
Neste caso, para manter a ordem de execução, as instruções não devem estar em caixas separadas:
Verifique a disponibilidade dos entrevistadores.
Em seguida, proponha horários apropriados para o candidato.
Essas instruções não funcionam porque o motor de raciocínio não sabe a que a instrução "em seguida" na instrução 2 se refere. Isso ocorre porque as instruções são enviadas ao motor de raciocínio como um grupo, e não em uma ordem específica.
Em vez disso, as instruções que definem a sequência devem ser combinadas em uma única declaração e escritas assim:
Verifique a disponibilidade dos entrevistadores. Em seguida, proponha horários apropriados para o candidato.
No entanto, quando a expectativa é que apenas uma ação de prompt tenha sido executada, uma instrução pode ser implementada para orientar o agente a nunca alterar a saída dessa ação. Isso garante um comportamento dos agentes mais previsível e confiável.
Aplicar essa adesão estrita em modelos de prompts aprovados torna-se crucial em determinados cenários, especialmente quando consistência, conformidade e mensagens predefinidas são importantes. Estes são dois exemplos:
Essa instrução limita a liberdade do agente de alterar a saída das ações. Certifique-se de que a instrução faça referência à saída do modelo de prompts (como "promptResponse"), conforme mostrado neste Rastreador de planos.
Portanto, a instrução neste caso pode ser:
"
Não altere a saída promptResponse, independentemente do canal do agente.
"
Limitações na imposição de adesão estrita:
Quando uma interação exige várias ações distintas dos agentes, impor a adesão estrita a um único modelo não é viável. Na verdade, nesse cenário, o motor de raciocínio precisa consolidar essas ações em uma única resposta e, portanto, alterar a saída de cada ação.
Com base nas características gerais do LLM, o número alvo de instruções varia entre 5 e 10, dependendo da complexidade da instrução e da interação da instrução. Essas características de instrução influenciam o número de instruções que o motor de raciocínio pode seguir:
Se for muito importante seguir explicitamente uma instrução, adicione termos que reflitam sua importância:
Basear respostas em dados melhora significativamente a confiabilidade e a credibilidade dos agentes. As respostas fundamentadas são baseadas em informações factuais, em vez de especulações ou conhecimentos desatualizados. A geração aumentada por recuperação (RAG) é uma técnica amplamente adotada que permite que um agente acesse e use uma base de conhecimento para formular respostas mais precisas e contextualmente relevantes. Com base na consulta de um usuário, um agente usa a RAG para recuperar informações relevantes das fontes de dados aplicáveis e, em seguida, aumenta o prompt com essas informações antes de enviá-las ao LLM. Um agente que usa RAG tem maior qualidade, precisão e utilidade geral das interações com agentes, o que aumenta a confiança e a satisfação do usuário. As práticas recomendadas para RAG são amplamente descritas em um white paper disponível publicamente chamado Agentforce RAG: práticas recomendadas para melhores agentes .
Diferenciar conhecimento e instruções é importante ao encontrar o equilíbrio certo entre orientação e flexibilidade, pois elas atendem a diferentes propósitos:
A geração aumentada por recuperação (RAG) atua como uma camada de dados inteligente para o conhecimento. Ela oferece aos agentes acesso a informações em vários formatos e fornece fragmentos de texto relevantes para responder perguntas. Com a RAG, os agentes podem obter respostas de LLM mais precisas sem sobrecarregar o prompt do LLM com conteúdo desnecessário ou exceder sua janela de contexto.
No tempo de execução, a RAG executa três etapas:
No Agentforce, a RAG pode ser usada com ou sem um modelo de prompts:
O método recomendado é a opção 1. Ele reduz o número de tarefas que o motor de raciocínio deve realizar e, assim, melhora a qualidade da resposta. A próxima seção explora uma exceção a essa regra, na qual o conteúdo é preservado durante toda a conversa e, portanto, fornecido explicitamente a uma ação.
Armazenando a saída da RAG em uma variável: Quando o número de limites de interação puder ser alcançado, armazene a saída da RAG em uma variável. Isso mantém as informações acessíveis para orientar as interações dos agentes além do limite padrão. Um exemplo disso será fornecido na próxima seção.
Certos processos de negócios exigem uma execução ainda mais previsível, como impor uma sequência específica de ações ou condições para acionar ações ou tópicos.
Para alcançar esse comportamento determinístico, podem ser usadas variáveis. As variáveis funcionam como uma forma estruturada de memória de agente de curto prazo que pode servir como entradas ou saídas de ações. Além disso, o estado de uma variável pode controlar o acionamento de tópicos e ações específicos.
Os tipos de variáveis oferecem suporte aos seguintes recursos:
Variáveis de contexto | Variáveis personalizadas | |
---|---|---|
Pode ser instanciado pelo usuário | X | ✓ |
Pode ser entrada de ações | ✓ | ✓ |
Pode ser saída de ações | X | ✓ |
O pode ser atualizado por ações |
X | ✓ |
Pode ser usado em filtros de ações e tópicos | ✓ | ✓ |
Vamos nos aprofundar nas variáveis com um exemplo de caso de uso: um agente de solução de problemas voltado para o cliente. Neste exemplo, as variáveis são usadas para todas as três finalidades: fundamentação dinâmica persistente, entradas/saídas de ação e filtragem.
Neste exemplo, o agente ajuda um cliente a solucionar um problema técnico de dispositivo. A solução de problemas geralmente envolve passar por várias etapas. O agente deve oferecer uma experiência de atendimento que imite o trabalho de um agente de serviço humano. Para fazer isso, o agente não deve fornecer todas as etapas de solução de problemas de uma vez ao cliente. Em vez disso, ele deve oferecer instruções passo a passo, além da capacidade de navegar entre as etapas (incluindo voltar às etapas abordadas anteriormente), com base em como o cliente responde.
Um desafio disso é a capacidade do agente de reter todas as etapas de solução de problemas durante toda a conversa. Devido à memória limitada do agente, em função do número restrito de interações que ele pode armazenar, essas etapas podem ser excluídas do contexto do motor de raciocínio se a conversa se tornar longa.
A maneira de lidar com esse desafio é usar uma variável para fundamentar dinamicamente o motor de raciocínio nas etapas de solução de problemas. Ao recuperar as informações e armazená-las em uma variável, elas permanecem disponíveis e podem ser atualizadas durante toda a conversa. O motor de raciocínio usa as informações armazenadas nessa variável para fundamentação dinâmica.
Neste exemplo, um tópico inclui duas ações. Essas duas ações são necessárias para manter um fluxo de dados consistente. A primeira ação é usada para preencher a variável que contém todas as etapas de solução de problemas. A segunda ação usa essa variável durante a solução de problemas em si.
A pergunta original do cliente é inserida em ambas as ações. A segunda ação tem outra entrada: o conteúdo da variável "Etapas de resolução". Essa variável foi definida pela primeira ação. A segunda ação não recuperará as etapas de solução de problemas em si, mas as obterá como entrada da primeira ação por meio da variável. O diagrama a seguir mostra o fluxo de dados entre essas duas ações.
A ação "usar no meio da resolução de um problema" sempre se referirá às etapas originais de solução de problemas recuperadas pela ação Etapas de resolução de problemas. Esse fluxo de dados garante que as etapas de solução de problemas sejam mantidas de forma consistente e sempre presentes, independentemente da duração da conversa.
Para executar as ações definidas neste exemplo, instruções específicas são necessárias, como "Sempre execute as 'Preencher etapas de resolução' primeiro." No entanto, dada a natureza não determinística dos LLMs usados pelos agentes, isso pode levar a uma ordem diferente em determinados casos. Para garantir uma ordem determinística de execução, introduzimos filtros condicionais nessas variáveis para impor a sequência de ação adequada. O agente lê o valor da variável "Etapas de resolução" e define dois filtros com base em se essa variável tem ou não um valor.
Esses filtros condicionais agora aplicam deterministicamente a sequência de execução da ação: O "Uso no meio da resolução de um problema" deve esperar até que as Etapas de resolução de problemas concluam seu trabalho, garantindo que a variável "Etapas de resolução" sempre tenha um valor.
Para garantir a execução correta da ação, uma terceira ação é necessária para redefinir a variável "Etapas de resolução" se o problema for totalmente resolvido. Como resultado, o agente é redefinido para o estado necessário para ajudar com um possível problema novo e diferente. Essa terceira ação é chamada de "Esvaziar a variável de resolução". O diagrama de ação completo é ilustrado abaixo.
As variáveis são cruciais para permitir que nosso agente de solução de problemas resolva os problemas dos clientes, permitindo:
Na era da IA generativa, a IA preditiva continua sendo extremamente importante, pois forma a inteligência fundamental que orienta, aprimora e contextualiza os recursos generativos. Embora a IA generativa se concentre na criação de novos conteúdos, como texto, imagens ou vídeos, os modelos preditivos fazem previsões sobre o futuro com base em entradas de dados comerciais em tempo real. Exemplos de resultados comerciais incluem probabilidade de rotatividade do cliente, probabilidade de conversão, probabilidade de encaminhamento de casos, valor da vida útil do cliente e classificação de casos. As previsões podem ajudar a antecipar as necessidades do usuário, personalizar resultados, tomar decisões e otimizar a relevância do conteúdo em tempo real, tudo analisando tendências e números. Por exemplo, em apps como aprendizado personalizado, saúde ou planejamento financeiro, a IA preditiva garante que os resultados generativos se alinhem aos contextos individuais e aos prováveis cenários futuros. Juntas, a IA preditiva e generativa criam uma poderosa sinergia, combinando previsão com criatividade para gerar soluções tecnológicas mais inteligentes, adaptáveis e impactantes.
Para incorporar resultados do modelo preditivo aos fluxos de trabalho dos agentes, basta adicionar ações do modelo preditivo aos ativos do Agentforce. O Model Builder fornece os meios de criar ou registrar modelos preditivos (BYO) e esses modelos são então usados pelo agente para fazer previsões. As previsões resultantes (bem como os preditores) podem ser armazenadas em variáveis personalizadas. Os agentes podem usar esses valores de variáveis como entradas e condicionar a execução de ações e tópicos específicos.
Certos processos de negócios precisam ser executados em uma ordem precisa e não exigem entrada do usuário durante a execução. Nesse caso, um fluxo predeterminado de etapas pode ser aplicado por meio de fluxos, APIs ou Apex. Se você já tem um fluxo confiável na produção, isso é uma boa indicação de que ele pode ser mantido e usado pelo agente para a execução desse processo de negócios. Todos os exemplos a seguir incluem sequências predeterminadas de etapas que o agente pode executar sem a entrada do usuário. O comportamento dos agentes nesse caso consiste em identificar qual processo determinístico executar, como coletar as entradas necessárias e como interpretar e processar as saídas.
Os processos de negócios com muitas etapas sequenciais (mais de três, como regra geral) e muitas dependências de variáveis se tornam muito complexos e complicados para serem aplicados com instruções. Nesse caso, é possível simplesmente codificá-los usando os tipos de ação determinística listados nesta seção. Por fim, observe que essas implementações podem incluir elementos não determinísticos, como chamar LLMs com modelos de prompts resolvidos. Portanto, eles não são necessariamente completamente determinísticos, de ponta a ponta, e ainda podem demonstrar os níveis desejados de fluidez pelos quais os agentes são conhecidos.
A sequência de etapas em uma jornada de marketing é condicionada por regras fixas e não depende de nenhuma entrada conversacional do usuário. Portanto, o fluxo pode ser usado como uma ação do Agentforce. Uma ação invocável pode ser criada para concluir tarefas em segundo plano ou acionadas por eventos a partir de um componente da solução que pode chamar um fluxo ou uma classe Apex. Adicione uma ação invocável a um fluxo ou classe Apex e especifique a tarefa que o agente conclui, bem como as condições que acionam o agente. As ações invocáveis também podem carregar as variáveis de contexto do agente e transmitir informações importantes.
Os fluxos da Salesforce podem ser usados para automatizar tarefas rotineiras, como criar tarefas de acompanhamento, enviar emails de lembrete ou atualizar registros. Os fluxos tornam o trabalho mais eficiente e produtivo. Os agentes também podem executar fluxos usando ações de fluxo. Devido ao seu determinismo, os fluxos são uma ótima maneira de direcionar o comportamento de agentes quando um processo de negócios precisa ser executado em uma sequência específica. Uma boa indicação de que uma ação de fluxo é preferida é quando o tópico conteria instruções como "Primeiro, faça isso, depois faça isso e, finalmente, faça isso". O gerenciamento de sequências com mais de três etapas torna-se complicado por meio de instruções e variáveis.
Os fluxos também podem incluir elementos não determinísticos chamando prompts. Um nó de prompt no fluxo invoca um modelo de prompts e coleta a resposta que pode ser passada para outros elementos no fluxo. Esses elementos adicionais podem novamente ser nós de prompts, por exemplo resumindo a resposta anterior, criando assim uma cadeia de prompts. Isso é particularmente útil quando as regras para encadeamento de prompts são definidas por elementos fixos e não dependem da entrada do usuário. Um exemplo é a RAG de agentes, na qual uma sequência predefinida de recuperadores ou prompts em um fluxo pode acessar fontes de dados específicas em uma ordem específica, como inicialmente recuperar dados do documento de país de um usuário antes de consultar outras fontes, conforme necessário. Esse mecanismo de encadeamento impõe uma extração confiável e ordenada de informações relevantes.
De forma semelhante aos fluxos, as ações do Apex e da API são determinísticas, pois uma sequência predefinida de ações pode ser codificada. Essas ações podem incluir elementos não determinísticos, como invocar modelos de prompts ou chamadas de LLM. No entanto, em sua definição, eles executam essas etapas de forma determinística, o que reduz a variabilidade de agentes ao chamar a ação no momento certo, coletar a entrada necessária e processar a saída. Essas responsabilidades ainda precisam ser governadas por instruções de agentes, por isso são não determinísticas. As ações Apex e API são o equivalente pro-code das ações de fluxo.
Para alcançar um comportamento confiável do agente, é necessário uma abordagem estruturada que equilibre a flexibilidade inerente dos grandes modelos de linguagem (LLMS) com a necessidade de controle e previsibilidade em nível corporativo. Este artigo descreveu uma estratégia em camadas para implementar o "determinismo guiado", permitindo a criação de agentes que não são apenas inteligentes e autônomos, mas também consistentemente precisos e alinhados aos processos de negócios. A chave para criar esses agentes confiáveis está em uma implementação progressiva de mecanismos de controle, cada um adicionando uma nova camada de confiabilidade:
Ao aplicar sistematicamente essas camadas de controle, desde um design inteligente e instruções claras até fundamentação de dados, gerenciamento de estado e automação determinística de processos, os desenvolvedores podem superar com sucesso os desafios de criar agentes confiáveis com resultados comerciais consistentes. Essa abordagem estratégica garante que agentes Agentforce sejam confiáveis para realizar funções comerciais críticas com a precisão e a consistência necessárias no cenário corporativo.
Os cinco níveis de determinismo em IA são: seleção de tópicos e ações sem instruções, instruções de agentes, fundamentação de dados, variáveis de agentes e ações determinísticas usando fluxos, Apex e APIs.
Entender o determinismo em IA é crucial para criar agentes confiáveis que possam realizar funções comerciais críticas com precisão e consistência, alcançando um equilíbrio entre fluidez criativa e controle corporativo.
Na IA, "determinístico" se refere à capacidade de um sistema produzir a mesma saída dada a mesma entrada e condições, impondo uma rigidez e disciplina essenciais para um comportamento confiável do agente.
O não determinismo em sistemas de IA surge principalmente devido ao uso de grandes modelos de linguagem (LLMs), que são não determinísticos por natureza, permitindo que agentes sejam flexíveis e adaptáveis.
Os níveis de determinismo aumentam progressivamente o determinismo de agentes de IA, afetando sua autonomia. À medida que os níveis progridem, agentes se tornam menos autônomos, mas mais confiáveis e alinhados aos processos de negócios.
Os sistemas de IA menos determinísticos apresentam desafios em termos de confiabilidade e conformidade com os requisitos de negócios, pois seu não determinismo inerente pode levar a um comportamento imprevisível.
As empresas gerenciam sistemas de IA com diferentes níveis de determinismo aplicando uma abordagem em camadas que inclui design inteligente, instruções claras, fundamentação de dados, gerenciamento de estado por meio de variáveis e automação determinística de processos usando fluxos, Apex e APIs.
Veja mais detalhadamente como a criação de agentes funciona em nossa biblioteca.
Lance Agentforce com velocidade, confiança e ROI que você pode medir.
Conte-nos sobre as necessidades dos seus negócios, e ajudaremos você a encontrar respostas.