Como construir um agente composto no Jitterbit Harmony
Introdução
Este guia mostra como construir um agente composto no Jitterbit Harmony usando o Studio. Um agente composto fornece uma única interface para interagir com vários agentes especializados dentro da sua organização. O agente recebe consultas dos usuários, determina qual agente especializado pode lidar melhor com cada consulta e encaminha a solicitação para esse agente.
Este guia utiliza o Azure OpenAI como provedor de Modelo de Linguagem Grande (LLM) e o Slack como um exemplo de interface de chat, mas você pode adaptar essas etapas para outros provedores de LLM, como Google Gemini ou AWS Bedrock, e outras plataformas de chat, como Microsoft Teams, aplicativos web personalizados ou qualquer sistema que possa enviar solicitações HTTP.
Dica
Para fins de aprendizado, consulte o Agente Composto fornecido através do Jitterbit Marketplace para uma implementação deste guia.
Construir um agente composto
Neste guia, os seguintes conectores são utilizados:
- HTTP v2: Para chamadas de API ao seu provedor de LLM e agentes especializados.
- Cloud Datastore: Para armazenar o histórico de chat e sessões de usuários.
- Um conector de interface de chat, como Slack ou Microsoft Teams.
Nota
Embora este guia utilize Azure OpenAI, Slack e Jitterbit Cloud Datastore, você pode adaptá-lo para funcionar com outros modelos de linguagem grande (LLMs), plataformas de chat e soluções de banco de dados.
Uma implementação completa geralmente inclui 4 fluxos de trabalho com operações, scripts e transformações. O número exato varia com base em seus requisitos específicos, o LLM escolhido e a complexidade de suas integrações de dados.
-
Crie um novo projeto no Studio:
- Faça login no portal Harmony e selecione Studio > Projetos.
- Clique em Novo Projeto. A caixa de diálogo Criar Novo Projeto é aberta.
- Na caixa de diálogo, insira um Nome do projeto como
AI Agent - Composite, selecione um ambiente existente e clique em Começar a Projetar. O designer de projetos é aberto.
-
Crie um fluxo de trabalho de manipulador de solicitações de API para receber consultas de usuários da sua interface de chat:
-
No designer de projetos, clique duas vezes no nome do fluxo de trabalho padrão e insira um nome descritivo, como
Manipulador de Solicitações de APIouManipulador de Solicitações de API do Slack. -
Na aba Endpoints e conectores do projeto, arraste o tipo de atividade Solicitação para a zona de drop no canvas de design.
-
Clique duas vezes na atividade Solicitação de API e defina um esquema JSON apropriado para o formato de solicitação da sua interface de chat. Por exemplo, uma solicitação do Slack inclui os seguintes campos:
- ID do usuário
- ID do canal
- Texto da mensagem
- Timestamp
-
Adicione transformações e scripts que realizem as seguintes tarefas:
-
Lidar com quaisquer solicitações de verificação específicas da interface, como a verificação de URL do Slack.
-
Analisar os dados da mensagem recebida.
-
Extrair informações do usuário.
-
Chamar o fluxo de trabalho de lógica de IA usando a função
RunOperation. -
Formatar e retornar a resposta para sua interface de chat.
-
Nota
O número de operações neste fluxo de trabalho depende dos requisitos da sua interface de chat.
-
-
Crie o fluxo de trabalho de lógica de IA para analisar consultas e direcioná-las a agentes especializados:
-
Clique em Adicionar Novo Fluxo de Trabalho para criar um novo fluxo de trabalho.
-
Renomeie o fluxo de trabalho para um nome descritivo, como
Lógica de IA. -
Na aba Endpoints e conectores do projeto, configure um endpoint de conector HTTP v2 para seu provedor de LLM.
-
Arraste uma atividade HTTP v2 POST do endpoint do provedor LLM para a área de descarte para criar a operação principal de chamada LLM.
-
Crie um script para construir a solicitação LLM. Este script deve incluir os seguintes elementos:
-
A consulta do usuário do manipulador de solicitações da API.
-
Seu prompt de sistema que define o comportamento de roteamento.
-
A lista de agentes especializados disponíveis com suas descrições de função.
Por exemplo, você pode nomear este script Construir Solicitação de Ferramentas de Roteamento.
-
-
Adicione uma transformação após a atividade HTTP v2 POST para analisar a resposta LLM e determinar qual agente especializado chamar.
-
Adicione operações de lógica condicional para rotear a consulta para o manipulador apropriado. Por exemplo, você pode adicionar os seguintes manipuladores:
-
Um manipulador para consultas de
Agente 1. -
Um manipulador para consultas de
Agente 2. -
Um manipulador para perguntas de conhecimento geral (respondidas diretamente sem roteamento).
-
Um manipulador para consultas pouco claras que precisam de esclarecimento.
-
-
Para adicionar ou remover agentes especializados para roteamento, modifique este fluxo de trabalho completando as seguintes tarefas:
-
Edite seu script de solicitação de ferramentas de roteamento para adicionar ou remover chamadas de função.
-
Use Ferramentas de Decisão para ajustar a lógica condicional que lida com a adição ou remoção de ferramentas.
-
Crie ou atualize scripts de manipulador para cada agente.
-
-
-
Crie um fluxo de trabalho de chamada de API de agente especializado:
-
Clique em Adicionar Novo Fluxo de Trabalho para criar um novo fluxo de trabalho.
-
Renomeie o fluxo de trabalho para um nome descritivo, como
Chamada de API de Agente Especializado. -
Na aba Endpoints e conectores do Projeto, configure um endpoint de conector HTTP v2 para seus agentes especializados (por exemplo, Endpoint HTTP v2 do Agente).
-
Arraste uma atividade HTTP v2 POST do endpoint do agente especializado para a área de descarte.
-
Adicione uma transformação para formatar a consulta de acordo com os requisitos da API do seu agente especializado. Esta transformação constrói a solicitação usando a URL do agente e as variáveis de autenticação que você define nas variáveis do projeto.
-
Adicione uma transformação após a atividade HTTP v2 POST para mapear a resposta do agente especializado em um formato que o agente de IA possa retornar ao usuário.
-
-
Crie um fluxo de trabalho utilitário para armazenar o histórico de chat:
Nota
Este guia utiliza o Jitterbit Cloud Datastore, mas você pode adaptar o projeto para funcionar com outras soluções de banco de dados.
-
Clique em Adicionar Novo Fluxo de Trabalho para criar um novo fluxo de trabalho.
-
Renomeie o fluxo de trabalho para um nome descritivo, como
Utilitário - Histórico de Chat. -
Configure uma conexão com o Jitterbit Cloud Datastore com operações que realizem as seguintes tarefas:
-
Criar ou atualizar sessões de usuário.
-
Recuperar o histórico de chat para o contexto da conversa.
-
Excluir dados de conversas antigas.
-
Armazenar pares de perguntas e respostas.
-
-
Defina armazenamentos-chave para sessões de usuário e histórico de conversas com base em seus requisitos. Este fluxo de trabalho armazena o histórico de chat para fornecer contexto de conversa para o LLM.
Dica
Armazenar o histórico de chat permite que o agente de IA mantenha o contexto em várias interações com o usuário, melhorando a qualidade das respostas.
-
-
Configure os recursos do seu provedor de LLM. Complete um dos seguintes procedimentos:
-
Para Azure OpenAI, complete os seguintes passos:
-
Crie um recurso Azure OpenAI e implante um modelo
gpt-4oougpt-4.1através do portal Azure AI Foundry. -
Salve os seguintes valores para configurar variáveis do projeto:
- Nome da implantação
- URL do endpoint Azure OpenAI
- Chave da API
-
-
Para outros provedores de LLM, siga a documentação do seu provedor para configurar os recursos necessários e obter as credenciais requeridas (chaves de API, URLs de endpoint, identificadores de modelo).
Dica
A maioria dos provedores de LLM requer configuração semelhante: um endpoint de API, credenciais de autenticação e um identificador de modelo. Adapte a configuração do conector HTTP v2 para corresponder às especificações da API do seu provedor.
-
-
Configure o Jitterbit Cloud Datastore (se estiver usando o histórico de chat):
-
Crie dois armazenamentos de chave no Jitterbit Cloud Datastore:
-
Um para manter informações da sessão do usuário.
-
Um para armazenar o histórico de chat.
-
-
Adicione os campos personalizados necessários a cada armazenamento de chave de acordo com os requisitos dos seus dados. Para especificações de campo, consulte a documentação do Composite Agent.
-
-
Teste as conexões de endpoint:
-
Na aba Endpoints e conectores do projeto , passe o mouse sobre cada endpoint.
-
Clique em Testar para verificar a conectividade usando os valores de variáveis de projeto definidos.
-
-
Implemente o projeto clicando no menu de ações do projeto e selecionando Implantar Projeto.
-
Crie uma API personalizada do Jitterbit para expor o manipulador de solicitações:
-
Volte para o fluxo de trabalho do seu manipulador de solicitações da API (por exemplo,
Main Entry - API Request Handler). -
Clique no menu de ações da operação e selecione Publicar como uma API.
-
Configure a API com as seguintes configurações:
- Método:
POST - Tipo de Resposta:
Variável do Sistema
- Método:
-
Salve a URL do serviço da API para configurar sua interface de chat.
-
-
Configure sua interface de chat. Complete um dos seguintes procedimentos:
-
Para Slack, complete os seguintes passos:
-
Crie um aplicativo Slack usando um arquivo de manifesto ou crie-o do zero.
-
Configure o aplicativo Slack para enviar solicitações para a URL do seu serviço de API personalizada do Jitterbit.
-
Após instalar o aplicativo Slack, obtenha seu token de bot.
-
Atualize a variável de projeto do seu token de bot com o valor do token de bot.
-
Teste a conexão do Slack e reimplante o projeto.
-
-
Para Microsoft Teams ou outras plataformas de chat, siga a documentação da sua plataforma para configurar webhooks ou integrações de bot que enviem mensagens de usuários para a URL do seu serviço de API personalizada do Jitterbit.
-
-
Teste o agente de IA:
-
Envie uma mensagem direta para o aplicativo Slack. Isso aciona o fluxo de trabalho
Main - Slack API Request Handler. -
Verifique se o agente de IA roteia corretamente as consultas para agentes especializados e retorna as respostas.
Dica
Para solução de problemas, revise os logs da API e os logs de operação.
-
