Bot de IA - Agents

:bookmark: Este guia explica como configurar e gerenciar Agentes para o Discourse AI - Robô de IA.

:person_raising_hand: Nível de usuário exigido: Administrador

O robô de IA do Discourse inclui um sistema flexível para gerenciar Agentes. Este guia cobre:

  • Métodos de interação para Agentes de IA
  • Opções de configuração
  • Configurações avançadas
  • Ferramentas suportadas
  • Possibilidades de personalização

:link: Saiba mais sobre o robô de IA e como ativá-lo neste guia.

O que são agentes?

Agentes são um recurso poderoso que permite personalizar o comportamento do motor de IA no seu fórum Discourse. Eles atuam como uma ‘mensagem do sistema’ que orienta as respostas e interações da IA, ajudando a criar uma experiência de usuário mais personalizada e envolvente.

Por que usar agentes?

Com os agentes, você pode adaptar o comportamento da IA para melhor se adequar ao contexto e tom do seu fórum. Se você deseja que a IA seja mais formal para um ambiente profissional, mais casual para um fórum comunitário ou até mesmo incorporar um personagem específico para um jogo de RPG, os agentes oferecem a flexibilidade para fazer isso.

Acesso específico do grupo a agentes

Além disso, você pode configurá-lo de forma que determinados grupos de usuários tenham acesso a agentes específicos. Isso significa que você pode ter diferentes comportamentos de IA para diferentes seções do seu fórum, aprimorando ainda mais a diversidade e a riqueza das interações da sua comunidade.

Interagindo com Agentes

Os agentes podem ser acessados de várias maneiras:

  1. Mensagem Privada (MP)
  2. Mensagem Direta (DM) do Chat
  3. Menções em canais do Chat
  4. Menção em um tópico público via @nome_de_usuário_do_bot_exemplo

Administradores podem controlar quais métodos de interação são permitidos para cada agente através de quatro chaves separadas:

  • Permitir mensagens privadas: Permite que os usuários iniciem MPs com este agente (ativado por padrão)
  • Permitir menções em tópicos: Permite menções @ em tópicos para acionar uma resposta
  • Permitir mensagens diretas no chat: Permite DMs no chat com este agente (requer o plugin de chat)
  • Permitir menções em canais do chat: Permite menções @ em canais de chat (requer o plugin de chat)

Configuração

Para configurar Agentes, navegue até discourse.exemplo.com/admin/plugins/discourse-ai/ai-agents.

As principais opções de configuração incluem:

  • Prompt do Sistema: Direciona a conversa
  • Suporte a Visão: Ativar para LLMs com Visão, ou seja, GPT-4 Turbo, Claude 3
  • Modelo Padrão: Necessário para agentes mencionáveis e agentes com LLM padrão forçado ativado
  • Grupos Permitidos: Define permissões usando a segurança de grupos do Discourse
  • Uploads: Indexa arquivos de texto para conhecimento adicional (usando RAG - Geração Aumentada por Recuperação)
  • Ferramentas Habilitadas: Controla o acesso a ferramentas específicas
  • Modo de Execução: Escolha entre o modo “padrão” e “agentico” (o modo agentico permite o uso de ferramentas multi-turn com limites de token e compressão configuráveis)

Aqui está uma visão da tela completa de configuração do agente de IA:

Opções de configuração avançada

O editor de agentes oferece várias opções avançadas:

  • Temperatura e top_p (amostragem de núcleo): Controlam criatividade vs. previsibilidade
  • Postagens máximas de contexto: Limita o número de postagens fornecidas ao LLM para histórico - menos postagens reduzirão custos, mas farão com que a IA “esqueça” o conteúdo mais antigo (não disponível no modo agentico)
  • Modo de execução: “Padrão” para respostas de passagem única, “Agentico” para uso de ferramentas em múltiplas etapas com:
    • Tokens máximos de turno: Orçamento de tokens para execução agentica
    • Limiar de compressão: Limiar percentual para compressão de contexto (20-99%)
  • Mostrar raciocínio: Exibe o processo de raciocínio da IA para os usuários (ativado por padrão)
  • Exigir aprovação: Exige aprovação humana antes que certas ações sejam executadas
  • Forçar LLM padrão: Impede que os usuários troquem de LLM para este agente
  • Formato da Resposta: Configura o formato de saída estruturado
  • Exemplos: Exemplos few-shot para guiar o comportamento da IA (pares de mensagens do usuário/assistente)
  • Opções de Upload:
    • Tokens de Fragmento: Controla a divisão de documentos
    • Tokens de Sobreposição de Fragmento: Define a sobreposição entre fragmentos
    • Fragmentos de Conversa de Pesquisa: Número de fragmentos de documento adicionados às consultas do usuário
    • LLM Consolidador de Perguntas: Escolhe o LLM para determinar as perguntas do usuário
    • Modelo LLM RAG: Escolhe um LLM específico para processamento RAG

Pré-requisitos para suporte a upload

Para usar o suporte a upload:

  1. Ativar a configuração ai_embeddings_enabled
  2. Configurar um modelo de embedding via ai_embeddings_selected_model

O Discourse AI suporta vários modelos de embedding. Clientes hospedados obtêm acesso gratuito ao modelo bge-large-en.

:information_source: Usuários que auto-hospedam ou desejam mais opções podem auto-hospedar um modelo de embedding ou usar modelos da Open AI, Google (Gemini) e outros.

Divisão de texto no Discourse AI

O Discourse usa um Divisor de Texto Recursivo de Caracteres para manter parágrafos, linhas e palavras juntos ao dividir o texto. Você pode controlar a divisão de texto usando o separador [[metadata SEU METADADO AQUI]]:

[[metadata sobre gatos]]
uma longa história sobre gatos
[[metadata sobre cachorros]]
uma longa história sobre cachorros

Este método evita a “contaminação de fragmentos”, garantindo que apenas os dados relevantes sejam incluídos em cada fragmento.

Depurando agentes de IA

Para depurar seu agente:

  1. Adicione usuários ao grupo especificado na configuração ai_bot_debugging_allowed_groups
  2. Usuários neste grupo verão um botão de depuração de IA na parte inferior das postagens de IA
  3. Clique no botão para acessar a modal da interface de depuração

:warning: Lembre-se: Se você fornecer informações vagas ou inúteis a um LLM, ele terá grande dificuldade em convertê-las em informações úteis.

Ferramentas suportadas

O Discourse AI suporta várias ferramentas, incluindo:

Sempre disponíveis

  • Categorias
  • Tempo
  • Pesquisa
  • Ler
  • Esquema do Banco de Dados
  • Configurações de Pesquisa
  • Contexto de Configuração
  • Seletor Aleatório
  • Navegador Web
  • Pesquisar Meta Discourse
  • Avaliador JavaScript
  • Pesquisador
  • Sinalizar Postagem
  • Fechar Tópico
  • Deslistar Tópico
  • Bloquear Postagem
  • Excluir Tópico
  • Editar Postagem
  • Editar Categoria
  • Definir Temporizador de Tópico
  • Definir Modo Lento
  • Mover Postagens
  • Conceder Medalha

Integração com GitHub

  • Conteúdo de Arquivo do GitHub
  • Diff de Pull Request do GitHub
  • Pesquisar Arquivos do GitHub

Essas três ferramentas estão sempre disponíveis. Adicionalmente:

  • Pesquisar Código do GitHub requer que a configuração ai_bot_github_access_token seja preenchida

Ferramentas Condicionais

  • Tags e Editar Tags: Disponíveis quando a marcação está ativada no seu site
  • Geração de Imagem (Imagem, Criar Imagem, Editar Imagem): Requer a configuração de uma ferramenta de geração de imagem personalizada via interface de administração
  • Pesquisa Google: Requer que as configurações ai_google_custom_search_api_key e ai_google_custom_search_cx sejam preenchidas
  • Artefatos (Criar Artefato, Atualizar Artefato, Ler Artefato): Disponível quando ai_artifact_security está definido como lax, hybrid ou strict
  • Atribuir: Disponível quando o plugin Assign está instalado
  • Marcar como Solucionado: Disponível quando o plugin Solved está instalado

Algumas ferramentas requerem configuração adicional ou chaves de API.

Suporte a ferramentas personalizadas

Você pode criar suas próprias ferramentas usando o suporte a ferramentas personalizadas.

Personalizando agentes de sistema

  1. Crie um novo agente
  2. Copie e cole o prompt do sistema do agente que você deseja personalizar
  3. Modifique conforme necessário
  4. Opcionalmente, desative o agente de sistema original para evitar duplicação

Personalizando a pesquisa

Para personalizar a pesquisa para um novo agente:

  1. Crie um novo agente
  2. Adicione a ferramenta “pesquisa”
  3. Configure as opções de pesquisa, incluindo:

Isso permite que você delegue permissões de pesquisa, aumente o número de resultados ou restrinja a pesquisa a seções específicas do seu site.

7 curtidas

Uma postagem foi dividida em um novo tópico: Posso fornecer uma função geradora de imagens para o Discourse AI

O que exatamente a ferramenta Ler faz?

Além disso, as menções em postagens estão atualmente quebradas de acordo com este relatório de bug.

Em resumo, permite que o LLM leia tópicos e postagens no seu fórum.

1 curtida

Basicamente, ele lê um tópico/postagem quando um URL, nome ou ID é fornecido e, caso contrário, ou ainda assim, ele usa embeds e o quê, quando, porquê e como depende do próprio modelo, prompt, etc.?

2 curtidas

Oh, desculpe, estava respondendo a um post diferente :slight_smile:

Ele usa o ID do tópico ou o ID do tópico + número do post para encontrar o markdown bruto de um tópico/post com algumas proteções para o comprimento máximo.

Não depende de incorporação.

5 curtidas

Um pouco fora do tópico, mas como não tenho nada a perguntar e vocês vão limpar esses tópicos de vez em quando, eu não me importo.

Títulos automáticos em Mensagens Privadas com IA agora estão no idioma correto. Não é grande coisa, mas seu valor psicológico é grande. Obrigado!

4 curtidas

Existe alguma maneira de adicionar usuários de Bot a um grupo? Basicamente, quero adicionar um flair de avatar a esses usuários, mas ao adicioná-los a um grupo, eles não aparecem.

Eles não aparecem, mas ainda estão lá. Você pode ter certeza tentando adicionar uma pessoa de IA uma segunda vez. Ou você vê o grupo necessário nas configurações desses pseudo-usuários.

1 curtida

Qual parte do repositório Discourse AI devo verificar se quero saber exatamente como as ferramentas do bot de IA funcionam?

Ferramenta, Playground e Bot são ótimas áreas para começar.

Veja este exemplo: Understanding Tools in Discourse AI System - AI Conversation - Discourse Meta

3 curtidas

Exatamente a resposta que eu estava procurando — obrigado, meu bom senhor! Para quem possa interessar: recomendo ler o código neste repositório para poder direcionar melhor seus prompts para as ferramentas da sua persona.

1 curtida

Uma postagem foi dividida em um novo tópico: Engenharia de uma persona para se apoiar no histórico de chat

Estou tentando buscar todas as postagens de um tópico através da ferramenta “Read”, mas ela fornece apenas um máximo de 100 postagens para o modelo LLM. Já defini “Max posts” para 999 nas configurações de persona, mas o problema persiste.

Pode haver alguma limitação de solicitação de API do lado do servidor causando o problema?

@sam alguma ideia sobre isso, qual poderia ser a causa?

Não verifiquei a base de código, mas suspeito que possa ser um limite rígido definido no próprio código. Posso perguntar o que você está tentando alcançar com isso? Esse é um fator chave aqui.

E talvez seja melhor usar a persona de Pesquisador do Fórum?

Temos a categoria “journal/log” que frequentemente contém várias centenas de posts onde o proprietário do tópico relata o progresso de seu projeto ao longo de 4-5 meses.

Meu objetivo é buscar todos os posts dentro desse tópico, filtrá-los por autor = proprietário do tópico e criar um resumo.

1 curtida

Você tem que usar o pesquisador de fórum para isso, é o caso de uso exato para a persona

2 curtidas

@sam Eu adoraria, mas atualmente não suporta imagens. Isso está no roteiro ou não é uma prioridade no momento?

3 curtidas

Claro que posso adicionar isso, não é uma mudança muito grande

3 curtidas