Aula 01 – Inteligência Coletiva: Agentes e Enxames na Prática

🤖 Aula 01 – Inteligência Coletiva: Agentes e Enxames na Prática

Agentes

Agentes

Voltar para página principal do blog

Todas as aulas desse curso

Aula 02

 

Redes Sociais do Código Fluente:

facebook

 

 


Scarlett Finch

Scarlett Finch é uma influenciadora virtual criada com IA.

Ela é 🎤 cantora e 🎶compositora pop britânica.

Siga a Scarlett Finch no Instagram:

facebook

 


Conecte-se comigo!

LinkedIn: Fique à vontade para me adicionar no LinkedIn.

Ao conectar-se comigo, você terá acesso a atualizações regulares sobre desenvolvimento web, insights profissionais e oportunidades de networking no setor de tecnologia.

GitHub: Siga-me no GitHub para ficar por dentro dos meus projetos mais recentes, colaborar em código aberto ou simplesmente explorar os repositórios que eu contribuo, o que pode ajudar você a aprender mais sobre programação e desenvolvimento de software.

Recursos e Afiliados

Explorando os recursos abaixo, você ajuda a apoiar nosso site.

Somos parceiros afiliados das seguintes plataformas:

  • https://heygen.com/ – Eleve a produção de seus vídeos com HeyGen! Com esta plataforma inovadora, você pode criar vídeos envolventes utilizando avatares personalizados, ideal para quem busca impactar e conectar com audiências em todo o mundo. HeyGen transforma a maneira como você cria conteúdo, oferecendo ferramentas fáceis de usar para produzir vídeos educativos, demonstrações de produtos e muito mais. Descubra o poder de comunicar através de avatares interativos e traga uma nova dimensão para seus projetos. Experimente HeyGen agora e revolucione sua forma de criar vídeos!
  • letsrecast.ai – Redefina a maneira como você consome artigos com Recast. Esta plataforma transforma artigos longos em diálogos de áudio que são informativos, divertidos e fáceis de entender. Ideal para quem está sempre em movimento ou busca uma forma mais conveniente de se manter informado. Experimente Recast agora.
  • dupdub.com – Explore o universo do marketing digital com DupDub. Esta plataforma oferece ferramentas inovadoras e soluções personalizadas para elevar a sua estratégia de marketing online. Ideal para empresas que buscam aumentar sua visibilidade e eficiência em campanhas digitais. Descubra mais sobre DupDub.
  • DeepBrain AI Studios – Revolucione a criação de conteúdo com a tecnologia de inteligência artificial da DeepBrain AI Studios. Esta plataforma avançada permite que você crie vídeos interativos e apresentações utilizando avatares digitais gerados por IA, que podem simular conversas reais e interações humanas. Perfeito para educadores, criadores de conteúdo e empresas que querem inovar em suas comunicações digitais. Explore DeepBrain AI Studios.
  • Audyo.ai – Transforme a maneira como você interage com conteúdo auditivo com Audyo.ai. Esta plataforma inovadora utiliza inteligência artificial para criar experiências de áudio personalizadas, melhorando a acessibilidade e a compreensão de informações através de podcasts, transcrições automáticas e síntese de voz avançada. Ideal para profissionais de mídia, educadores e qualquer pessoa que deseje acessar informações auditivas de maneira mais eficiente e envolvente. Descubra Audyo.ai e suas possibilidades.
  • Acoust.io – Transforme sua produção de áudio com Acoust.io. Esta plataforma inovadora fornece uma suite completa de ferramentas para criação, edição e distribuição de áudio, ideal para artistas, produtores e empresas de mídia em busca de excelência e inovação sonora. Acoust.io simplifica o processo de levar suas ideias à realidade, oferecendo soluções de alta qualidade que elevam seus projetos de áudio. Experimente Acoust.io agora e descubra um novo patamar de possibilidades para seu conteúdo sonoro.
  • Hostinger – Hospedagem web acessível e confiável. Ideal para quem busca soluções de hospedagem de sites com excelente custo-benefício e suporte ao cliente robusto. Saiba mais sobre a Hostinger.
  • Digital Ocean – Infraestrutura de nuvem para desenvolvedores. Oferece uma plataforma de nuvem confiável e escalável projetada especificamente para desenvolvedores que precisam de servidores virtuais, armazenamento e networking. Explore a Digital Ocean.
  • One.com – Soluções simples e poderosas para o seu site. Uma escolha ideal para quem busca registrar domínios, hospedar sites ou criar presença online com facilidade e eficiência. Visite One.com.

Educação e Networking

Amplie suas habilidades e sua rede participando de cursos gratuitos e comunidades de desenvolvedores:

Canais do Youtube

Explore nossos canais no YouTube para uma variedade de conteúdos educativos e de entretenimento, cada um com um foco único para enriquecer sua experiência de aprendizado e lazer.

Toti

Toti: Meu canal pessoal, onde posto clips artesanais de músicas que curto tocar, dicas de teoria musical, entre outras coisas.

Scarlett Finch

Scarlett Finch: Cantora e influenciadora criada com IA.

Lofi Music Zone Beats

Lofi Music Zone Beats: O melhor da música Lofi para estudo, trabalho e relaxamento, criando o ambiente perfeito para sua concentração.

Backing Track / Play-Along

Backing Track / Play-Along: Acompanhe faixas instrumentais para prática musical, ideal para músicos que desejam aprimorar suas habilidades.

Código Fluente

Código Fluente: Aulas gratuitas de programação, devops, IA, entre outras coisas.

Putz!

Putz!: Canal da banda Putz!, uma banda virtual, criada durante a pandemia com mais 3 amigos, Fábio, Tatá e Lula.

PIX para doações

PIX Nubank

PIX Nubank


 

🤖 Aula 01 -Inteligência Coletiva – Agentes e Enxames na Prática

Código da aula: Github

Introdução

Bem-vindos à primeira aula do Tutorial sobre Agentes e Enxames de Agentes.

Nesta aula, vamos explorar os fundamentos da inteligência coletiva, com foco em agentes e sistemas multi-agentes, e como as novas ferramentas e tecnologias estão moldando o futuro da automação empresarial.

Nos últimos anos, vimos o surgimento de sistemas que utilizam agentes de IA para desempenhar tarefas complexas e dinâmicas.

Empresas, futuramente, poderão contratar agências de IA compostas inteiramente por agentes que gerenciam fluxos de trabalho, tomam decisões e até mesmo realizam tarefas criativas, como a geração de textos e imagens.

Um exemplo disso é o desenvolvimento de Devin, um software de IA capaz de se auto-treinar e realizar tarefas que antes só eram possíveis para desenvolvedores humanos.

Ferramentas como essa mostram que estamos apenas começando a explorar o verdadeiro potencial da IA.

Vamos também discutir como a introdução de ferramentas modernas como: n8n, Notion, make.com, zapier, etc. Estão impulsionando essa revolução no mercado.

Contextualização Histórica

A história da Inteligência Artificial (IA) é marcada por ondas de entusiasmo e períodos de desencanto, conhecidos como “invernos da IA”. No entanto, o lançamento do ChatGPT 3.0 em 30 de novembro de 2022 marcou o início de uma nova era de interesse e aplicação prática da IA.

Linha do Tempo:

  1. Anos 1950: Nascimento da IA como campo de estudo
  2. Anos 1980-1990: Surgimento dos conceitos de agentes e sistemas multi-agentes
  3. Anos 2000: Avanços em aprendizado de máquina e big data
  4. 2022: Lançamento do ChatGPT, impulsionando o interesse em IA generativa
  5. Presente: Aplicação prática de agentes e sistemas multi-agentes em diversos setores

Conceitos Fundamentais

Definição de Agentes

Um agente é uma entidade computacional que:

  1. Percebe seu ambiente através de sensores
  2. Processa as informações recebidas
  3. Age sobre o ambiente através de atuadores
  4. Busca atingir objetivos específicos

Exemplo Prático: Agente de Atendimento ao Cliente

Imagine um chatbot de atendimento ao cliente:

  • Sensores: interface de chat para receber mensagens dos clientes
  • Processamento: análise de linguagem natural para entender a intenção do cliente
  • Atuadores: geração de respostas e ações (como abrir um ticket de suporte)
  • Objetivo: resolver as dúvidas e problemas dos clientes de forma eficiente

Sistemas Multi-Agentes (MAS)

Um sistema multi-agente é composto por vários agentes que interagem entre si e com o ambiente.

Características importantes:

  1. Autonomia: cada agente opera independentemente
  2. Interação: os agentes se comunicam e colaboram
  3. Adaptabilidade: o sistema pode se ajustar a mudanças no ambiente

Exemplo Prático: Sistema de Reservas de Hotel

Imagine um sistema de reservas com diferentes tipos de agentes:

  • Agente de Busca: procura quartos disponíveis
  • Agente de Preços: calcula e ajusta preços dinamicamente
  • Agente de Reserva: gerencia o processo de reserva
  • Agente de Recomendação: sugere opções com base no perfil do cliente

Estes agentes trabalham juntos para oferecer uma experiência de reserva eficiente e personalizada.

O Foco Dessa Aula Será Agentes Reativos

Tipos de Agentes

1. Agentes Reativos

  • Comportamento baseado em regras simples
  • Reagem diretamente aos estímulos do ambiente
  • Não mantêm estado interno ou modelo do mundo

2. Agentes Deliberativos

    • Mantêm um modelo interno do mundo
    • Planejam suas ações com base em objetivos
    • Usam raciocínio lógico para tomar decisões

3. Agentes Híbridos

  • Combinam características reativas e deliberativas
  • Equilibram resposta rápida com planejamento de longo prazo

Outra forma de classificar os Agents

Agentes Personalizados (Custom Agents):
Esses agentes costumam se alinhar mais com o conceito de agentes deliberativos ou híbridos. Isso porque eles são projetados para tomar decisões complexas e adaptativas, considerando regras, dados específicos e a necessidade de planejar ações futuras. Como são ajustados para processos específicos de um negócio, eles precisam ser deliberativos ao considerar várias opções e cenários antes de agir, e podem combinar elementos reativos ao responder rapidamente a mudanças no ambiente.

Agentes Especialistas (Specialist Agents):
Os agentes especialistas, por outro lado, têm uma semelhança maior com os agentes reativos ou, dependendo de sua complexidade, podem ser vistos como uma forma simplificada de agente deliberativo. Eles são treinados em processos gerais e reagem a eventos ou dados conforme foram programados, sem a necessidade de muita personalização ou adaptação. Isso os torna reativos na maioria dos casos, respondendo diretamente a estímulos de acordo com um conjunto de regras predefinidas. No entanto, se incorporarem alguma tomada de decisão baseada em dados ou condições gerais, também podem exibir características deliberativas.

Exemplo de Agente Reativo – Robô Aspirador


import random

class RoboAspirador:
    def __init__(self):
        self.posicao = [0, 0]
    
    def detectar_sujeira(self):
        # Simula a detecção de sujeira
        return random.choice([True, False])
    
    def mover(self):
        # Move aleatoriamente
        direcao = random.choice(['cima', 'baixo', 'esquerda', 'direita'])
        if direcao == 'cima':
            self.posicao[1] += 1
        elif direcao == 'baixo':
            self.posicao[1] -= 1
        elif direcao == 'esquerda':
            self.posicao[0] -= 1
        elif direcao == 'direita':
            self.posicao[0] += 1
    
    def limpar(self):
        print(f"Limpando na posição {self.posicao}")
    
    def agir(self):
        if self.detectar_sujeira():
            self.limpar()
        else:
            self.mover()

# Teste do Robô Aspirador
aspirador = RoboAspirador()

for _ in range(10):  # Executa 10 ações do robô
    aspirador.agir()
    print(f"Posição atual do robô: {aspirador.posicao}")

Explicação do Código

Classe RoboAspirador

    • __init__: O método inicializador (__init__) define o estado inicial do robô aspirador.
      
      def __init__(self):
          self.posicao = [0, 0]
    • detectar_sujeira: Esse método simula a detecção de sujeira no local onde o robô está. Ele utiliza a função random.choice([True, False]) para decidir aleatoriamente se há sujeira na posição atual do robô.
      
      def detectar_sujeira(self):
          return random.choice([True, False])
      
      
    • mover: Se não houver sujeira na posição atual, o robô se move aleatoriamente em uma das quatro direções possíveis: cima, baixo, esquerda, ou direita. A direção é escolhida aleatoriamente com random.choice, e o robô ajusta sua posição de acordo.
      
      def mover(self):
          direcao = random.choice(['cima', 'baixo', 'esquerda', 'direita'])
          if direcao == 'cima':
              self.posicao[1] += 1
          elif direcao == 'baixo':
              self.posicao[1] -= 1
          elif direcao == 'esquerda':
              self.posicao[0] -= 1
          elif direcao == 'direita':
              self.posicao[0] += 1
      
      
    • limpar: Se o método detectar_sujeira retornar True, o robô executa o método limpar, que simplesmente imprime uma mensagem indicando que o robô está limpando na posição atual.
      
      def limpar(self):
          print(f"Limpando na posição {self.posicao}")
      
    • agir: Esse é o método principal que coordena as ações do robô. Ele chama detectar_sujeira para verificar se há sujeira na posição atual. Se houver, o robô limpa; se não houver, ele se move para uma nova posição.
      
      def agir(self):
          if self.detectar_sujeira():
              self.limpar()
          else:
              self.mover()
      
      

Teste do Robô Aspirador

No bloco de teste, criamos uma instância do robô aspirador e fazemos com que ele execute uma sequência de 10 ações. A cada ação, o robô decide se deve limpar ou se mover, e o programa imprime a posição atual do robô após cada ação.


aspirador = RoboAspirador()

for _ in range(10):  # Executa 10 ações do robô
    aspirador.agir()
    print(f"Posição atual do robô: {aspirador.posicao}")

Análise do Funcionamento

    • Detecção de Sujeira: Como a detecção de sujeira é aleatória, o comportamento do robô será diferente a cada execução. Isso simula um ambiente dinâmico onde a sujeira pode ou não estar presente em uma determinada posição.
    • Movimento: O movimento do robô é igualmente aleatório, o que significa que ele pode se mover em qualquer direção, independentemente de onde já tenha estado. Em uma implementação mais complexa, você poderia melhorar isso para garantir que o robô cobrirá toda a área sem repetir muito as mesmas posições.

Testando

python robot-vacuum-cleaner.py

Veja que aparentemente foram 17 ações na saída, mas não, é só a aparência mesmo, foram dez chamadas à função agir().

Isso porque o robô executa uma ação de limpeza (limpar) ou uma ação de movimento (mover) a cada vez que o método agir é chamado.

Considere cada par de “Limpando” e “Posição atual” como uma única ação realizada pelo robô.

Exemplo de Saída:

Limpando na posição [0, 0]
Posição atual do robô: [0, 0]
Limpando na posição [0, 0]
Posição atual do robô: [0, 0]
Limpando na posição [0, 0]
Posição atual do robô: [0, 0]
Posição atual do robô: [-1, 0]
Posição atual do robô: [-1, 1]
Limpando na posição [-1, 1]
Posição atual do robô: [-1, 1]
Limpando na posição [-1, 1]
Posição atual do robô: [-1, 1]
Limpando na posição [-1, 1]
Posição atual do robô: [-1, 1]
Posição atual do robô: [0, 1]
Limpando na posição [0, 1]
Posição atual do robô: [0, 1]

Saída do Robô

Saída do Robô

Visualização do caminho percorrido pelo robô aspirador:

  • Linhas Azuis: Representam o caminho que o robô seguiu durante as 10 ações.
  • X Verde: Indica a posição inicial do robô.
  • X Vermelho: Indica a posição final do robô.
  • Letra ‘L’: Marcadores indicam as posições onde o robô limpou durante as suas ações.

Essa visualização ajuda a entender melhor o movimento do robô e as ações de limpeza realizadas em cada posição. ​

Extensões e Melhorias

  • Limites de Movimento: Você pode adicionar limites para que o robô não se mova fora dos limites do grid (por exemplo, um espaço de 5×5).
  • Memória: Uma melhoria seria adicionar um “estado interno” ao robô, onde ele se lembra das posições já limpas, otimizando seu caminho e evitando áreas limpas.
  • Ambiente Mais Complexo: Em vez de um espaço vazio, você poderia criar um ambiente com obstáculos (por exemplo, móveis) e fazer o robô desviar deles enquanto limpa.

Explorando Ferramentas Modernas de Automação e Agentes

Nos últimos anos, ferramentas de automação como: n8n, Notion, make.com, zapier, entre outras, têm se tornado extremamente populares devido à sua capacidade de simplificar e automatizar processos complexos.

Essas plataformas permitem que empresas e desenvolvedores criem sistemas automatizados que não apenas respondem a eventos, mas também tomam decisões informadas e até mesmo planejam ações futuras com base em dados—comportamentos muito semelhantes aos agentes reativos, deliberativos e híbridos que discutimos hoje.

Por exemplo, com o n8n, você pode criar fluxos de trabalho que reagem automaticamente a novos dados, semelhante ao funcionamento de um agente reativo.

Ao incorporar múltiplas etapas e decisões condicionais nesses fluxos, você está, na verdade, construindo um agente deliberativo, capaz de planejar e executar ações baseadas em regras e informações pré-estabelecidas.

À medida que avançamos neste curso, exploraremos como essas ferramentas modernas podem ser aplicadas para desenvolver soluções de automação poderosas e personalizadas.

Veremos como os conceitos teóricos dos agentes que estudamos podem ser materializados na criação de sistemas automatizados que, de fato, funcionam como agentes digitais.

Conclusão

Nessa aula, vimos como um agente reativo, como o robô aspirador, pode funcionar.

No entanto, podemos notar que esse robô é, de certa forma, ‘burro’.

Ele se move aleatoriamente, sem qualquer noção de onde já esteve ou para onde deve ir, e sua detecção de sujeira é basicamente uma questão de sorte.

Este tipo de agente é eficiente apenas em ambientes muito simples ou previsíveis.

Na próxima aula, vamos dar um passo à frente e explorar um tipo de agente mais elaborado.

Não perca!

Fique atento, porque o que vem pela frente vai transformar a maneira como você pensa automação e inteligência artificial coletiva!

Nos vemos na próxima aula!

Bons estudos!

 

About The Author
-

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>