O Botpress Autonomous Node permite-lhe criar agentes de IA funcionais - não chatbots, mas agentes autónomos que tomam decisões com base no contexto disponível.
Ao fornecer instruções claras e integrar ferramentas, os criadores de bots podem utilizar os nós autónomos para delinear o comportamento de um chatbot.
O Node foi concebido para lidar com a tomada de decisões e a execução, compreendendo as entradas do utilizador, respondendo com os dados certos e tirando partido das suas ferramentas.
Se está interessado em utilizar um Nó Autónomo, está no sítio certo. Neste artigo, apresentarei as bases para usar o recurso de potência agêntica da nossa plataforma.
Principais caraterísticas do Nó Autónomo
1. LLM Orientado para a decisão
Um Nó Autónomo utiliza as capacidades de um LLM para tomar decisões inteligentes.
2. Comportamento autónomo
Um nó autónomo pode executar acções sem intervenção manual, com base em instruções e na entrada do utilizador.
3. Ferramentas
O Nó Autónomo compreende e utiliza ferramentas específicas - por exemplo, pode consultar bases de conhecimento, efetuar pesquisas na Web e executar transições de fluxo de trabalho.
4. Personalização
Ao configurar um Nó Autónomo com uma persona adequada e instruções detalhadas, pode garantir que este se comporta de acordo com a marca e dentro do âmbito durante as conversas.
5. Escrever e executar código
O Nó Autónomo pode gerar e executar código personalizado para realizar tarefas.
6. Auto-correção
Se o Nó Autónomo se encontrar num caminho errado, tem a capacidade de se auto-corrigir e recuperar dos erros.
Definições de configuração
Cada Nó Autónomo requer uma configuração cuidadosa para alinhar o seu comportamento com as necessidades do negócio.
A parte mais importante da configuração de um Nó Autónomo é escrever o aviso e as instruções corretas. O aviso ajuda o agente a compreender a sua persona e orienta a tomada de decisões.
Caixa de instruções
Na caixa Instruções, forneça diretrizes claras. Quanto mais específicas forem as instruções, melhor será a tomada de decisão do agente.
Exemplo: "O utilizador é um assistente prestável que responde sempre a perguntas utilizando a ferramenta 'knowledgeAgent.knowledgequery'. Se o utilizador disser 'pesquisar', utiliza a ferramenta 'browser.webSearch'".
Permitir a conversação
A opção Allow Conversation (Permitir conversação) permite que o Nó Autónomo comunique diretamente com os utilizadores. Se estiver desativado, o Nó apenas processa comandos e executa a sua lógica interna sem enviar mensagens aos utilizadores.
Compreender as ferramentas
Com base nas instruções que lhe são dadas, um Nó Autónomo está equipado com várias ferramentas que pode chamar.
Cada ferramenta executa uma ação específica - compreender quando e como utilizar estas ferramentas é fundamental para orientar as decisões do Nó.
7 ferramentas mais comuns
- global.think: Permite que o motor LLMz reflicta antes de prosseguir.
- browser.webSearch: Permite que o agente pesquise respostas na Web.
- knowledgeAgent.knowledgequery: Consulta uma base de conhecimentos interna para obter informações relevantes.
- clock.setReminder: Define um lembrete para tarefas ou respostas futuras.
- workflow.transition: Executa uma transição de fluxo de trabalho, passando de uma parte da conversa para outra com base na entrada do utilizador.
- chat.sendText: Envia uma mensagem de texto para o utilizador como resposta.
- chat.waitForUserInput: Faz uma pausa na execução e espera por mais informações do utilizador.
Ao especificar a ferramenta a utilizar em resposta às acções do utilizador, pode controlar o fluxo e os resultados da conversa.
Por exemplo, pode dar instruções ao LLM para executar sempre determinadas acções quando se verificam condições específicas: "Quando o utilizador disser '1', utilize a ferramenta 'workflow.transition' para passar ao passo seguinte."
Ou: "Se o utilizador fizer uma pergunta, tente primeiro responder-lhe utilizando a ferramenta 'knowledgeAgent.knowledgequery'".
Exemplo de fluxo de trabalho
Segue-se um exemplo passo a passo de como o Nó Autónomo pode ser configurado e funcionar durante uma conversa:
1. Entrada do utilizador
O utilizador escreve uma pergunta sobre o produto da empresa.
2. Execução de instruções
O Nó Autónomo segue o aviso e utiliza a ferramenta knowledgeAgent.knowledgequery para pesquisar a base de conhecimentos interna.
3. LLM Decisão
Se a base de conhecimentos não tiver uma resposta satisfatória, o nó pode utilizar a ferramenta browser.webSearch para procurar informações adicionais na Web.
4. Enviar mensagem
Quando a resposta estiver pronta, o nó utiliza chat.sendText para responder ao utilizador com a informação relevante.
5. Aguardar a entrada
Depois de responder, o nó utiliza chat.waitForUserInput para aguardar outras consultas ou interações do utilizador.
Como escrever instruções
Como mostrado no exemplo, instruções claras são vitais para garantir que o Nó Autónomo se comporta corretamente.
A capacidade de tomada de decisões do LLMé fortemente influenciada pela forma como as instruções estão estruturadas.
Aqui estão 3 práticas recomendadas para escrever instruções para o seu Nó Autónomo:
1. Ser específico
Em vez de comandos vagos, utilize uma linguagem explícita que oriente claramente o agente.
Exemplo: "Se o utilizador disser 'ajuda', envie-lhe uma lista predefinida de opções de apoio utilizando 'chat.sendText'."
2. Definir a utilização da ferramenta
Indicar explicitamente que ferramenta deve ser utilizada em que circunstâncias.
Exemplo: "Utilize sempre 'knowledgeAgent.knowledgequery' para responder a perguntas relacionadas com produtos."
3. Orientar o fluxo
Utilize transições e passos claros para garantir que a conversa flui na direção certa.
Exemplo: "Se a base de conhecimentos não puder responder, faça a transição para uma consulta de pesquisa utilizando 'browser.webSearch'."
Para mais informações, consultar as seguintes ligações:
- Melhores práticas para engenharia rápida com a API OpenAI
- Criar sistemas com a API ChatGPT
- ChatGPT Engenharia rápida para programadores
Utilizar a sintaxe Markdown
Antes de começar, é importante falar sobre a importância da utilização da sintaxe Markdown.
Para criar um prompt estruturado e visualmente claro, é essencial utilizar a sintaxe markdown, como cabeçalhos, marcadores e texto a negrito.
Esta sintaxe ajuda o LLM a reconhecer e a respeitar a hierarquia das instruções, orientando-o para a diferenciação entre secções principais, sub-instruções e exemplos.
Se lhe for difícil utilizar a sintaxe Markdown, utilize qualquer estrutura que lhe seja fácil - desde que se mantenha clara e hierárquica.
Mais sobre Sintaxe básica do Markdown
Sugestões úteis
Esta secção contém uma lista dos exemplos e padrões mais comuns que podem ser utilizados para controlar o comportamento do Nó Autónomo.
Estes exemplos são retirados da experiência prática e mostram como lidar com diferentes cenários, utilizando instruções e ferramentas específicas.
Foco no conhecimento interno
Para garantir que o nó distingue entre perguntas de apoio e outros tipos de inquéritos (como preços ou caraterísticas), pode orientá-lo da seguinte forma:
**Processo geral importante**
- A ferramenta knowledgeAgent.knowledgequery deve ser utilizada apenas para questões relacionadas com o suporte e NÃO para questões gerais relacionadas com caraterísticas ou preços.
- A ferramenta browser.websearch deve ser utilizada APENAS para questões de suporte e NÃO deve ser utilizada para caraterísticas gerais ou questões relacionadas com o preço.
Este aviso garante que o LLM se limitará a utilizar ferramentas específicas apenas no contexto de consultas relacionadas com o apoio, mantendo o controlo sobre o tipo de informação que obtém.
Nó de transição para um subfluxo
Por vezes, pretende-se que o bot saia do Nó Autónomo para um sub-fluxo.
Digamos que pretende que o seu bot recolha o e-mail de um utilizador e, em seguida, procure mais informações sobre esse e-mail noutros sistemas para enriquecer as informações de contacto.
Nesse caso, poderá ser necessário que o bot saia do ciclo do Nó Autónomo e entre num subfluxo que contenha muitos passos/sistemas para enriquecer esse contacto:
Quando o utilizador pretende obter mais informações sobre uma mensagem de correio eletrónico, vai à ferramenta de transição.
Esta instrução diz ao nó para invocar a ferramenta workflow.transition sempre que o utilizador pedir mais detalhes sobre os emails, direcionando o fluxo de conversação em conformidade.
Preenchimento de uma variável e execução de uma ação
Para cenários em que se pretende que o nó capte a entrada e desencadeie uma ação em simultâneo, é possível avisá-lo como tal:
Quando o utilizador quiser obter mais informações sobre um e-mail, vá para a ferramenta de transição e preencha a variável "e-mail" com o e-mail sobre o qual o utilizador está a perguntar.
Aqui, orienta o Node não só para acionar a transição, mas também para extrair e armazenar o e-mail do utilizador numa variável, permitindo um comportamento dinâmico mais tarde na conversa.
Manipulando a resposta com base em uma condição
Por vezes, pretende que o nó execute uma lógica adicional com base nas condições. Aqui está um exemplo de prompt relacionado com o fornecimento de ligações de vídeo:
Se o utilizador selecionar "1", diga algo como "obrigado" e, em seguida, utilize a ferramenta de transição.
Este aviso ajuda o nó a compreender a estrutura esperada de uma ligação de vídeo e como modificá-la quando o utilizador pede para se referir a um ponto específico do vídeo.
Exemplo de utilização de um modelo para ligações de vídeo
Pode clarificar ainda mais o pedido fornecendo um exemplo real de como o sistema se deve comportar quando responde a um pedido de um utilizador para ligações de vídeo:
**Video Link Example:**
If the user is asking for a video link, the link to the video is provided below. To direct them to a specific second, append the "t" parameter with the time you want to reference. For example, to link to the 15-second mark, it should look like this: "t=15":
"""{{workflow.contentLinks}}"""
Isto dá ao nó uma orientação clara sobre como gerar dinamicamente ligações de vídeo com marcas de tempo específicas, garantindo respostas consistentes e fáceis de utilizar.
Resolução de problemas e diagnóstico
Ao testar o comportamento do Nó Autónomo no emulador, é importante diagnosticar o que está a acontecer nos bastidores. Como o Nó está tomando decisões?
Eis como pode solucionar problemas e inspecionar o processo de pensamento e o desempenho do Nó.
Três maneiras de solucionar problemas
1. Inspecionar a mente do nó
Ao clicar em Inspecionar, pode espreitar o estado interno do Nó Autónomo e compreender o que o LLM está a processar. Ao inspecionar, é possível ver:
- A que instruções o nó está a dar prioridade
- Como interpreta o seu pedido
- Quer se trate de respeitar as restrições e instruções fornecidas pelo utilizador
Se reparar que o nó não está a responder corretamente ou parece ignorar certas instruções, a inspeção revelará se não compreendeu a mensagem ou se não conseguiu executar uma ferramenta específica.
2. Verificar o separador Ferramentas
A secção Ferramentas apresenta todas as ferramentas disponíveis que o Nó Autónomo pode utilizar. Sempre que adicionar uma nova placa ou fizer uma alteração na configuração do nó, a lista Ferramentas é actualizada.
- Certifique-se de que as ferramentas listadas correspondem ao que espera que esteja disponível no processo de tomada de decisão do nó.
- Certifique-se de que os nomes das ferramentas estão escritos corretamente no seu prompt para garantir que o nó pode executar corretamente a ação especificada.
3. Verificar o separador Iterações
Normalmente, o Nó Autónomo tenta executar todas as instruções em uma ou duas iterações. O número de iterações depende da complexidade do pedido e da forma como o nó o analisa.
Para tarefas mais complexas, o nó pode necessitar de várias iterações para recolher dados, tomar decisões ou obter informações externas.
Ao rever o separador Iterações (ou o separador Todas), pode compreender:
- Quantas iterações foram necessárias para que o nó chegasse à sua decisão final.
- O que fez com que o nó tivesse de efetuar várias etapas (por exemplo, obter dados adicionais de ferramentas como knowledgeAgent.knowledgequery ou browser.webSearch).
- Porque é que um determinado resultado foi alcançado.
Problemas comuns de resolução de problemas
Tamanho do modelo
O Nó Autónomo pode não estar a seguir a sua solicitação, executando parte da solicitação em vez de toda ela, ou chamando o "workflowQueue" sem chamar as ferramentas "workflowExecuteAll".
Faz sentido mudar sempre o tamanho do Nó Autónomo LLM para um modelo mais pequeno - porque é mais barato - mas isso tem um custo.
Um LLM menor pode resultar em partes do prompt sendo truncadas, especificamente a definição que o Botpress adiciona para garantir que o LLM entenda como as cartas funcionam, quais parâmetros são necessários, etc. Sem isto, o bot não saberia como atuar corretamente.
Versão LLMz
Certifique-se sempre de que está a utilizar a última versão estável do LLMz. É o motor autónomo que orienta o funcionamento do nó autónomo.
Contém também correcções de erros, tornando os prompts mais agnósticos em relação a LLMs.
Exemplo: Diagnóstico da criação de códigos
Digamos que um Nó Autónomo está a gerar código, mas não está a seguir o prompt corretamente. Veja como você pode solucionar o problema:
- Inspecionar: Verificar as instruções que o nó está a seguir. Está a compreender corretamente o pedido de geração de código?
- Ferramentas: Verificar se o nó tem acesso às ferramentas necessárias (por exemplo, ferramentas de geração de código ou ferramentas de consulta à base de conhecimento). Certifique-se de que o prompt faz referência explícita a essas ferramentas.
- Iterações: Consulte o separador iterações para ver como o nó chegou ao ponto de gerar o código. Ele executou uma ou várias etapas? Ele consultou uma base de conhecimento primeiro ou tentou gerar código imediatamente?
Solução: Se o bot não estiver a conseguir gerar o código corretamente:
- Certifique-se de que a ferramenta utilizada para a geração de código está corretamente referenciada no prompt.
- Ajustar as instruções para que o nó seja orientado para utilizar passos específicos, como por exemplo, recuperar primeiro o conhecimento relevante antes de tentar gerar o código.
Exemplo de prompt completo
**IMPORTANT: Query Knowledge Base is to be used only for support questions related explicitly to student courses, and NOT for general features or pricing inquiries.
**Role Description:
You are an AI-powered troubleshooting chatbot named XYZ Assistant’, focused on providing support related to professional courses offered by XYZ LMS. Your primary goal is to handle student inquiries efficiently by retrieving accurate information from the knowledge base and answering questions clearly.
**Tone and Language:
• Maintain a courteous, professional, and helpful demeanor at all times.
• Use language that is clear, concise, and appropriate for students and professionals in finance and investment.
• Ensure user data is handled securely and confidentially, adhering to all relevant data protection policies.
• Utilize information solely from **LMS Knowledge Base**.
• Personalize interactions to enhance user engagement and satisfaction.
• Reflect **XYZ branding** throughout the conversation, ensuring clarity and professionalism.
• Avoid providing answers outside the knowledge base or surfing the internet for information.
• If the user expresses frustration, acknowledge their concern and reassure them that you are here to help.
**Interaction Flow and Instructions
1. Greeting and Initial Query
• Start with a friendly and professional greeting.
• Encourage users to ask questions about course content, support materials, or other course-related concerns.
2. Information Retrieval and Issue Resolution
• Utilize the ‘Query Knowledge Base’ tool to find accurate answers to student inquiries.
• Provide clear, concise, and helpful responses to resolve the user's question.
• If the inquiry involves linking to a video, use the provided video link structure. To link to a specific moment in the video, append the "t" parameter for the desired time (e.g., for the 15-second mark, use "t=15").
3. Conclusion
Once the issue is resolved, politely conclude the interaction and ask if there's anything else you can assist with.
**Extra Instructions
*Video Link Example
-If the user is asking for a video link, the link to the video is provided below. To direct them to a specific second, append the "t" parameter with the time you want to reference. For example, to link to the 15-second mark, it should look like this: "t=15":
"""{{workflow.contentLinks}}"""
*Handling Edge Cases
If the user asks a general or unclear question, prompt them to provide more details so that you can offer a better solution.
Repartição de prompts
Na mensagem completa acima, o utilizador criou um assistente de IA que responde a perguntas de estudantes sobre cursos de formação.
O exemplo acima é uma orientação que pode ser alterada de acordo com as suas necessidades, mas este esquema é o que considero ser a estrutura mais eficaz até à data.
Vamos explicar porque é que o prompt está organizado desta forma:
1. Aviso importante
**IMPORTANTE: A Base de conhecimentos de consulta deve ser utilizada apenas para questões de apoio relacionadas explicitamente com os cursos dos alunos e NÃO para questões gerais sobre funcionalidades ou preços.
Objetivo: Definir limites sobre quando e como a ferramenta Base de conhecimentos de consulta deve ser utilizada. Salienta que se destina estritamente a apoio relacionado com o curso e não a questões gerais sobre funcionalidades ou preços.
Importância: Ajuda a restringir o âmbito do bot, concentrando as suas respostas e melhorando a relevância para os utilizadores, particularmente assegurando que as respostas estão alinhadas com o conteúdo educacional.
2. Descrição da função
É um chatbot de resolução de problemas alimentado por IA chamado "Assistente XYZ", cujo objetivo é prestar apoio relacionado com os cursos profissionais oferecidos pelo LMS XYZ. O seu principal objetivo é tratar as questões dos alunos de forma eficiente, recuperando informações precisas da base de conhecimentos e respondendo às perguntas de forma clara.
Objetivo: Define o papel da IA como um assistente orientado para o apoio, descrevendo claramente o seu objetivo principal de resolver questões relacionadas com a disciplina.
Importância: Assegura que as respostas do assistente estão alinhadas com o objetivo pretendido, gerindo as expectativas do utilizador e mantendo-se relevante para o seu domínio (que, neste caso, é o XYZ LMS).
3. Tom e linguagem
- Manter um comportamento cortês, profissional e prestável em todas as ocasiões.
- Utilizar uma linguagem clara, concisa e adequada a estudantes e profissionais do sector financeiro e do investimento.
- Assegurar que os dados dos utilizadores são tratados de forma segura e confidencial, respeitando todas as políticas de proteção de dados relevantes.
-Utilizar informações exclusivamente da **base de conhecimentos LMS**. Personalizar as interações para aumentar o envolvimento e a satisfação do utilizador.
-Refletir a marca **XYZ** durante toda a conversa, garantindo clareza e profissionalismo.
- Evitar fornecer respostas fora da base de conhecimentos ou navegar na Internet para obter informações.
- Se o utilizador manifestar frustração, reconheça a sua preocupação e assegure-lhe que está aqui para o ajudar.
Objetivo: Fornecer orientações sobre a atitude, o tom e o profissionalismo do assistente, mantendo simultaneamente interações seguras e protegidas em termos de dados.
Importância: Define um tom amigável e seguro, em conformidade com a marca e as expectativas dos utilizadores relativamente a um assistente profissional e de apoio.
4. Fluxo de Interação e Instruções
Saudação e consulta inicial
- Comece com uma saudação amigável e profissional.
- Incentive os utilizadores a colocarem questões sobre o conteúdo da disciplina, materiais de apoio ou outras questões relacionadas com a disciplina.
Objetivo: Esta diretiva dá instruções ao assistente para começar com uma saudação calorosa e profissional e encorajar os utilizadores a fazerem perguntas específicas sobre o seu curso.
Importância: Estabelece um ponto de entrada convidativo que aumenta o envolvimento do utilizador e ajuda o bot a recolher detalhes para uma melhor resposta.
Recuperação de informações e resolução de problemas
- Utilizar a ferramenta "Consultar a base de conhecimentos" para encontrar respostas exactas às perguntas dos alunos.
- Forneça respostas claras, concisas e úteis para resolver a questão do utilizador.
- Se a pergunta envolver a ligação a um vídeo, utilize a estrutura de ligação de vídeo fornecida. Para ligar a um momento específico do vídeo, acrescente o parâmetro "t" para o tempo pretendido (por exemplo, para a marca de 15 segundos, utilize "t=15").
Objetivo: Instruir o assistente a utilizar a base de conhecimentos para obter respostas relevantes e claras. Além disso, inclui uma abordagem estruturada para a partilha de recursos de vídeo com ligações baseadas no tempo.
Importância: Permite respostas eficientes e precisas e uma forma estruturada de abordar consultas específicas de conteúdos, como vídeos, promovendo uma experiência de utilizador perfeita.
Conclusão
Quando o problema estiver resolvido, termine educadamente a interação e pergunte se há mais alguma coisa em que possa ajudar.
Objetivo: Orienta o bot sobre como terminar as interações de forma educada, perguntando se é necessária mais ajuda.
Importância: Mantém um tom profissional e de apoio durante toda a interação e permite que os utilizadores continuem a interagir, se necessário.
5. Instruções suplementares
If the user is asking for a video link, the link to the video is provided below. To direct them to a specific second, append the "t" parameter with the time you want to reference. For example, to link to the 15-second mark, it should look like this: "t=15":
"""{{workflow.contentLinks}}"""
Objetivo: Demonstra o formato de ligação a partes específicas de um vídeo para ajudar os alunos a localizar informações precisas.
Importância: Esclarece a partilha de recursos de vídeo, especialmente no que se refere a conteúdos de instrução específicos.
*Tratamento de casos extremos
Se o utilizador fizer uma pergunta geral ou pouco clara, peça-lhe que forneça mais detalhes para que possa oferecer uma solução melhor.
Objetivo: Prepara o assistente para lidar com questões vagas ou gerais, solicitando mais detalhes aos utilizadores.
Importância: Ajuda a evitar confusões e assegura que o assistente pode responder às perguntas dos utilizadores com a maior especificidade possível.
Criar um agente de IA hoje
Botpress é uma plataforma de agentes de IA totalmente extensível para empresas.
A nossa Plataforma como Serviço (PaaS) de IA de conversação tudo-em-um permite às empresas criar, implementar e monitorizar soluções alimentadas por LLM.
Aplicados em todos os sectores, casos de utilização e processos empresariais, os projectos Botpress são sempre escaláveis, seguros e de acordo com a marca.
Com mais de 500.000 utilizadores e milhões de bots implementados em todo o mundo, Botpress é a plataforma de eleição para empresas e programadores. A nossa segurança de alto nível e o serviço dedicado de sucesso do cliente garantem que as empresas estão totalmente equipadas para implementar agentes de IA de nível empresarial.
Ao configurar eficazmente os nós autónomos com avisos e definições de ferramentas adequados, as organizações podem criar agentes inteligentes que tratam das interações dos utilizadores de forma autónoma.
Comece a construir hoje. É grátis.
Índice
Mantenha-se atualizado com as últimas novidades sobre agentes de IA
Partilhar isto em: