O blog da AWS
A Fábrica de Agentes da Senior Sistemas: Utilizando IA Generativa para aumentar a Eficiência Operacional
Por José Henrique Luckmann, pesquisador e cientista de dados na Senior Sistemas; Diego opes, desenvolvedor do time de Arquitetura da Senior Sistemas; Amanda Machado, coordenadora de inovação e inteligência artificial na Senior Sistemas; Carlos Augusto Sempé Júnior, coordenador de arquitetura na Senior Sistemas e Diego Rocha, arquiteto de soluções na AWS.
Introdução
A Senior Sistemas é uma empresa LATAM de tecnologia que oferece soluções completas de gestão, plataforma e financeiro para diversos segmentos. Com uma trajetória de mais de 35 anos, a empresa se consolidou como uma referência no mercado, liderando os segmentos de construção e recursos humanos, ajudando empresas a otimizar processos e tomar decisões estratégicas de maneira mais eficiente.
Recentemente, a Senior Sistemas decidiu investir fortemente no uso de Inteligência Artificial (IA) em seus produtos, integrando automação inteligente e processamento de dados avançado para aos poucos transformar a jornada de seus produtos para jornadas inteligentes, posicionando-se assim como pioneira na aplicação de novas tecnologias, levando inovação aos seus clientes, aumentando a competitividade e adaptando-se rapidamente às mudanças do mercado.
A aposta na IA generativa começou olhando principalmente para aplicações de chat com interação humano máquina. A característica não determinística da resposta e a dificuldade de escalabilidade da solução são algumas das principais barreiras do uso dessa tecnologia para gerar texto. Dando um passo à frente, considerando agentes que interagem com informações reais, acrescenta-se um desafio ainda maior, de gestão de dados. A solução IA Expert desenvolvida durante esse artigo endereça esses pontos e garante uma experiência fluida e concisa com a utilização do Amazon Bedrock e agentes inteligentes.
2. Arquitetura e Criação de Assistentes
A Senior Sistemas, possui diferentes produtos e segmentos, por conta disso, o primeiro desafio foi: como criar uma solução de IA que atendesse às necessidades de cada produto, considerando que cada um tem suas próprias fontes de dados e regras específicas. Seria necessária uma arquitetura que permitisse não apenas a criação de agentes, mas que cada produto pudesse ter seu próprio agente, com as suas particularidades.
Dessa necessidade surgiu o conceito de assistente. O assistente é responsável por reunir todas as configurações e fontes de dados que serão usadas para criar um agente voltado para resolver problemas de um produto específico. Um dos problemas que precisava ser resolvido era justamente lidar com diferentes tipos de dados, de várias fontes, de forma agnóstica. Por isso, o assistente foi pensado para integrar essas diversas fontes, preparando os dados para que os agentes pudessem trabalhar de maneira eficiente e escalável.
2.1. Estrutura dos Agentes e Regras de Negócio
O conceito de assistente permite que o IAssist Expert seja configurado para atender múltiplos modelos de negócios, integrando diversas fontes e tipos de dados em uma estrutura modular. Para configurar um assistente, foram utilizados os seguintes elementos:
- Nome: Identifica o agente de IA a ser criado.
- Contexto: Define a especialização da solução, responsável por direcionar o agente para um contexto específico.
- DatasetList: Estrutura da base de dados que o agente tem acesso.
- Tipo de conexão: Define a forma de acesso aos dados, como S3, dataset, API, entre outros.
- URL de conexão: Endpoint de conexão do dado;
Com essa estrutura, foi possível adaptar os assistentes para as diferentes realidades e requisitos dos diversos produtos da Senior, garantindo flexibilidade e personalização.
2.1.1 Regras de Negócio
Após a configuração inicial, o próximo passo na arquitetura é aplicar o processo de RAG (Retrieval-Augmented Generation) para buscar os dados que serão usados posteriormente na criação dos agentes. O campo “tipo de conexão” é crucial nesse momento, pois determina a forma como os dados serão acessados. Foi utilizada uma função intermediária, chamada Pattern Strategy, que seleciona a estratégia correta de acordo com o tipo de conexão.
Por exemplo:
- Para conexões do tipo S3, uma classe específica é responsável por buscar os dados armazenados em buckets.
- Para conexões do tipo API, outra classe gerencia a coleta de dados de diferentes sistemas, conforme necessário.
Esse processo garante as informações necessárias para criar os agentes de IA. Após a coleta dos dados, eles são enviados para o processo de criação dos agentes, completando o ciclo de configuração e preparação.
2.2. Ferramentas e Tecnologias Utilizadas
A arquitetura foi implementada em Java 17, explorando ao máximo os recursos da AWS para garantir eficiência no processamento e gestão de dados. A seguir, são destacadas as principais ferramentas e tecnologias utilizadas:
- Amazon EC2 (Elastic Compute Cloud): Utilizado para rodar os serviços dos assistentes, garantindo escalabilidade e controle sobre a infraestrutura computacional. A flexibilidade do EC2 permite ajustar os recursos conforme a demanda cresce, otimizando custos e performance.
- Amazon EKS (Elastic Kubernetes Service): Para a orquestração de containers, foi utilizado o EKS, o que possibilita escalar e gerenciar as instâncias dos assistentes de forma automática e eficiente. O uso do EKS simplifica o gerenciamento dos clusters Kubernetes, o que é essencial para manter a alta disponibilidade dos serviços.
- Kong API Gateway: O Kong foi implementado como gateway da solução para gerenciar e escalar as requisições que os agentes recebem. O Kong garante que as chamadas às APIs sejam roteadas corretamente, além de gerenciar autenticação, controle de tráfego e monitoramento das interações.
- PostgreSQL no Amazon RDS (Relational Database Service): O banco de dados relacional que é utilizado para armazenar os dados dos assistentes e suas respectivas configurações é o PostgreSQL, que roda no Amazon RDS. O RDS oferece a flexibilidade e o gerenciamento de backup e failover necessários para garantir a confiabilidade e segurança dos dados.
- Amazon S3: O S3 foi utilizado para armazenar grandes volumes de dados, como arquivos não estruturados, que são posteriormente processados pelos assistentes e agentes. A integração com S3 é fundamental para a estratégia de armazenamento de dados escalável e seguro.
Essas ferramentas, combinadas, garantem a estabilidade, escalabilidade e segurança de toda a arquitetura, permitindo que os assistentes sejam configurados e operem de maneira eficiente, independentemente do volume de dados ou da complexidade das consultas.
2.3. Integração com APIs e Ferramentas
Um dos pontos críticos da solução é a capacidade de se integrar de forma fluida com diferentes APIs e sistemas externos. Para isso, foi implementado uma estrutura de integração robusta e escalável, que é gerenciada principalmente pelo Kong API Gateway e pelo Elastic Load Balancing (ELB) da AWS
2.3.1 Serviços e Processamento Escalável
Para garantir que os agentes possam processar requisições de maneira eficiente e em tempo real, foi utilizado um conjunto de serviços da AWS que facilita essa escalabilidade:
- Kong API Gateway: O Kong é responsável por gerenciar o tráfego das requisições que chegam aos assistentes, oferecendo recursos como rate limiting, autenticação e roteamento dinâmico. Essa flexibilidade garante que os agentes possam lidar com um grande volume de chamadas sem perda de performance.
- Elastic Load Balancing da AWS: Implementamos o Elastic Load Balancing (ELB) da AWS para distribuir o tráfego de maneira uniforme entre os serviços, evitando sobrecargas e garantindo alta disponibilidade. O ELB é essencial para lidar com picos de requisições e garantir que nossos serviços estejam sempre acessíveis.
- Amazon RDS (PostgreSQL): O banco de dados PostgreSQL, rodando no Amazon RDS, permite que todas as consultas realizadas pelos assistentes sejam tratadas de forma rápida e segura. O RDS cuida do gerenciamento de backups, segurança e failover, garantindo que os dados dos assistentes estejam sempre disponíveis.
2.3.2 Fluxo de Integração com APIs
O processo de integração com APIs segue um fluxo bem definido:
- Chamadas à API são feitas através do Kong Gateway, que gerencia o roteamento e autenticação.
- Dependendo da carga, o ELB distribui as requisições entre diferentes instâncias do serviço, garantindo uma resposta rápida e eficiente.
- O processamento das requisições é feito por serviços que rodam em containers gerenciados pelo EKS, garantindo escalabilidade e resiliência.
- Os dados recuperados de APIs ou de outros sistemas (como S3 ou RDS) são então processados e passados para os agentes, que utilizam essas informações para gerar respostas precisas aos usuários.
3. O Motor dos Agentes: Consulta de Dados
Diante da necessidade de disponibilizar os dados de forma escalável e acessível para agentes de LLM (Large Language Models), surge o desafio de estruturar um ecossistema capaz de lidar com diferentes tipos de dados, sejam eles estruturados ou não. É necessário que os dados estejam organizados de modo eficiente para consulta e que se considerem aspectos de performance e segurança, evitando que o acesso indiscriminado comprometa a integridade e a confidencialidade das informações. Nesse cenário, é imprescindível que as regras de acesso estejam codificadas de forma robusta, e não apenas registradas em prompts, devido à natureza não determinística dos modelos que pode gerar brechas na segurança e na disponibilidade dos dados.
Diante disso, foi desenvolvido um sistema baseado em um API Gateway com dois endpoints principais: um para o envio de dados e outro para o envio de mensagens.
3.1. Estruturação dos Dados
Os dados são previamente processados por uma camada de assistentes, eliminando a necessidade de transformações adicionais nesta etapa. No entanto, é crucial diferenciar entre os tipos de dados para uma estruturação adequada. Foi implementado um sistema de fila utilizando o Amazon SQS (Simple Queue Service), no qual todas as operações de criação ou atualização de agentes são registradas e, posteriormente, processadas por funções Lambda. Essa abordagem garante alta escalabilidade a um custo reduzido.
3.1.1 Dados Tabulares
Dados tabulares são armazenados em uma camada de banco de dados no Amazon RDS (Relational Database Service) para atender a perguntas de natureza analítica, como “Quantos funcionários eu tenho?” ou “Qual foi o meu faturamento no último mês?”. Essas perguntas podem ser resolvidas com consultas SQL, oferecendo um meio eficiente para manipular grandes volumes de dados e extrair respostas com rapidez. A interação entre o LLM e o banco de dados será discutida posteriormente, mas é importante destacar que esse mecanismo facilita o acesso direto a informações estruturadas.
3.1.2 Dados Não Estruturados
No caso de documentos, a estratégia adotada envolve o armazenamento inicial no Amazon S3. Sempre que um documento é alterado ou adicionado, um gatilho ativa uma função Lambda, responsável por executar o processo de embeddings, transformando os dados não estruturados em vetores. Essa conversão é fundamental para métodos de Retrieval-Augmented Generation (RAG), permitindo que o modelo recupere trechos específicos dos documentos com base na similaridade contextual.
3.1.3 Armazenamento de Configurações
Além disso, é mantido um banco de dados relacional dedicado ao armazenamento de configurações de agentes, incluindo contextos específicos, o modelo utilizado e outros parâmetros. Isso possibilita uma personalização granular para cada agente, permitindo variações no tom de resposta e a implementação de regras específicas de segurança.
3.2. O Motor de Consulta
O motor de consulta é executado como um agente dinâmico dentro de uma função Lambda, processando eventos recebidos na fila SQS. Essa arquitetura permite alta escalabilidade e eficiência de custo. Para a construção do agente, foram utilizados modelos disponibilizados pelo Amazon Bedrock, com destaque para aqueles desenvolvidos pela Anthropic. A base técnica do agente é sustentada pela biblioteca Llama Index, da qual a Senior Sistemas se tornou contribuinte oficial devido à sua natureza de código aberto. Isso permitiu incorporar funcionalidades essenciais, como suporte ao português e à estruturação de fluxos específicos.
3.2.1 Metodologia ReAct
A implementação do agente segue a metodologia ReAct, baseada nos seguintes conceitos fundamentais:
- Percepção (Sense/Result): Coleta de informações do ambiente por meio dos dados fornecidos.
- Raciocínio (Reasoning): Utilização das informações recebidas para gerar inferências, realizar deduções, previsões ou desenvolver um plano de ação, empregando modelos lógicos ou algoritmos de aprendizado.
- Ação (Act): Execução de ações no ambiente, como consultas de dados, decisões ou interações com o usuário.
- Feedback/Atualização: Ajuste do comportamento do agente com base no feedback recebido do ambiente ou do usuário, visando melhorias contínuas.
Essa abordagem permite a construção de agentes eficientes e ajustáveis, capazes de lidar com a complexidade de dados estruturados e não estruturados, mantendo a segurança e a consistência das operações.
3.3 Ferramentas e Tecnologias Utilizadas
A infraestrutura dos agentes e assistentes é sustentada por um conjunto robusto de ferramentas e tecnologias da AWS, garantindo eficiência e escalabilidade. As principais são:
- Amazon RDS (Relational Database Service): Utilizado para armazenar dados tabulares e configurações, possibilitando a execução de consultas SQL de maneira rápida e segura.
- Amazon S3: Armazena documentos e outros dados não estruturados que são processados pelos assistentes.
- Amazon Lambda: Responsável pelo processamento escalável de eventos, tanto para dados tabulares quanto para dados não estruturados.
- Amazon Bedrock: Fonte dos modelos utilizados, com destaque para os modelos desenvolvidos pela Anthropic.
Essas tecnologias garantem uma infraestrutura estável e escalável, permitindo que o sistema lide com grande volume de dados e consultas sem comprometer a performance ou a segurança.
4. Resultados
A crescente integração entre tecnologia e gestão de pessoas trouxe novos desafios e oportunidades para organizações brasileiras, conforme revelado pelo Human Capital Management Solutions Brazilian Report. De acordo com o estudo, um dos principais benefícios esperados de soluções de gestão de capital humano (HCM) é a capacidade de fortalecer a visão estratégica e melhorar a tomada de decisões, elementos apontados como essenciais por 67,5% dos gestores entrevistados. Entretanto, o relatório destaca também a dificuldade enfrentada por empresas em incorporar plenamente tecnologias de inteligência artificial (IA) em suas soluções de HCM, com apenas 20% dos participantes reconhecendo a presença dessas tecnologias de forma clara.
Nesse contexto, a solução de agentes inteligentes da Senior Sistemas surge como uma resposta direta a essa lacuna. A necessidade de criar um assistente específico para a área de RH se alinha à percepção dos líderes de que eficiência operacional e automatização de processos são benefícios essenciais, destacando-se como diferenciais competitivos em um ambiente corporativo cada vez mais desafiador. O desenvolvimento de um Assistente de RH, por exemplo, endereça de maneira direta a demanda por uma visão estratégica mais clara e por uma análise de dados mais assertiva, auxiliando na gestão de feedbacks de colaboradores, avaliações de competência e construção de planos de desenvolvimento individual (PDI). Essas funcionalidades, ao centralizarem e integrarem informações, promovem decisões mais fundamentadas e uma cultura de desenvolvimento contínuo.
Além disso, o Human Capital Management Solutions Brazilian Report identificou que o apoio à tomada de decisão e a transparência são fatores críticos para o sucesso de iniciativas de HCM, com a automatização e a análise mais profunda de dados sendo valorizadas por 87,5% dos executivos C-level entrevistados. Nesse sentido, a fábrica de agentes da Senior Sistemas oferece uma estrutura robusta e adaptável, permitindo a criação de assistentes personalizados para diferentes contextos e áreas, como foi exemplificado com os assistentes de logística e de gestão de documentos. Essas soluções proporcionam agilidade na consulta de dados e na extração de insights, atendendo a uma demanda latente por maior eficiência operacional e integração de processos.
Embora o cenário do RH seja um dos primeiros casos de aplicação, a fábrica de agentes está preparada para atender às diversas necessidades dos produtos da Senior Sistemas. Essa arquitetura expansível possibilita a criação de agentes especializados para setores como logística, gestão de documentos e outras áreas, consolidando um ecossistema escalável e eficiente, pronto para lidar com diferentes tipos de dados e regras de negócio. Dessa forma, não apenas atende às demandas imediatas da gestão de pessoas, mas também está preparada para atender às necessidades futuras e aos desafios emergentes em outras áreas, garantindo soluções tecnológicas alinhadas às especificidades de cada produto e segmento da Senior Sistemas.
Assim, essa abordagem cria um diferencial estratégico para as empresas que buscam otimizar a gestão de capital humano e outros processos críticos, proporcionando não apenas ganhos de eficiência, mas também um suporte robusto à tomada de decisões e à inovação contínua.
Sobre os Autores
José Henrique Luckmann é Pesquisador e Cientista de dados na Sênior sistemas. Aficionado por tecnologia e no processo de especialização em machine learning. Gosta de atuar em projetos que exigem diferentes tipos de conhecimento e que entreguem soluções concretas. | |
Diego Lopes é desenvolvedor do time de Arquitetura da Senior. Apaixonado por tecnologias que impactam a vida das pessoas buscando criar soluções inovadoras e eficientes com um olhar atento para a qualidade e a escalabilidade. | |
Amanda Machado é coordenadora de inovação e inteligência artificial na Senior Sistemas. Especialista em desenvolver soluções que transformam operações e geram valor de negócio, Amanda atua com tecnologias de ponta como IA generativa e Agents AI. Além de liderar projetos de inovação, compartilha insights sobre IA, dados e liderança em eventos e conferências de tecnologia. | |
Carlos Augusto Sempé Júnior é coordenador de arquitetura na Senior, apaixonado por tecnologia e pelo desenvolvimento de produtos inovadores. Focado em criar soluções que gerem valor e transformem a forma como os clientes interagem com a tecnologia. | |
Diego Rocha é arquiteto de soluções na AWS ajudando clientes em sua jornada para cloud, com mais de 15 anos de experiência em TI. Possui experiência em projetos de infraestrutura, identidade DevOps e containers.
|
Sobre os Revisores
Cesar Augusto Kuehl é um arquiteto de soluções na AWS com mais de 15 anos de experiência em TI, tendo atuado em diversas funções como DBA, SRE, desenvolvedor Java e arquiteto de software. Além de atender empresas do segmento de ISV, ele faz parte dos times de especialistas em banco de dados, com foco em PostgreSQL e Aurora, e também do time de especialistas em SaaS, combinando conhecimento técnico profundo com uma visão abrangente das soluções de nuvem da AWS. | |
Rodrigo Peres é arquiteto de soluções na AWS, com mais de 20 anos de experiência trabalhando com arquitetura de soluções, desenvolvimento de sistemas e modernização de sistemas legados. |