A colaboração entre múltiplos agentes evoluiu além de arquiteturas hierárquicas tradicionais. O padrão Swarm representa uma mudança fundamental: agentes operam como pares em uma rede distribuída, sem um controlador central rígido, permitindo dinâmica de tarefa, processamento paralelo e tolerância a falhas.
Hierárquico vs. Swarm: Diferenças Fundamentais
No modelo hierárquico (Agent as Tools), um agente central coordena subordinados de forma sequencial, criando um ponto único de falha. No padrão Swarm peer-to-peer, embora exista um coordenador de orquestração, a rede opera de forma distribuída com handoffs dinâmicos e iteração colaborativa entre os membros.
Configuração Base
import boto3
from datetime import datetime
from typing import Dict, List
from strands import Agent, tool
from strands_tools import swarm
REGIAO_AWS = "us-east-1"
IDENTIFICADOR_MODELO = "us.anthropic.claude-3-7-sonnet-20250219-v1:0"
O módulo swarm importado de strands_tools é a peça central que habilita a colaboração peer-to-peer. O Claude 3.7 Sonnet foi escolhido como modelo base do coordenador por equilibrar custo e capacidade de raciocínio, compreendendo instruções complexas e gerenciando interações entre múltiplos agentes.
Construindo o Coordenador de Swarm
def montar_coordenador_swarm(area_especialidade: str, diretrizes_colaboracao: str):
"""Instancia um coordenador de swarm especializado por domínio."""
return Agent(
model=IDENTIFICADOR_MODELO,
tools=[swarm],
system_prompt=f"""Você é um coordenador de colaboração que facilita
swarms peer-to-peer para {area_especialidade}.
Utilize a ferramenta swarm para criar redes de agentes que trabalhem
colaborativamente em tarefas conjuntas.
Princípios fundamentais:
{diretrizes_colaboracao}
"""
)
coordenador_swarm_conteudo = Agent(
model=IDENTIFICADOR_MODELO,
tools=[swarm],
system_prompt="""Você é um coordenador de colaboração que facilita swarms peer-to-peer para criação de conteúdo.
Utilize a ferramenta swarm para criar redes de agentes que trabalhem colaborativamente em tarefas de criação de conteúdo.
Princípios fundamentais:
- Garanta que cada agente possua um papel especializado e bem definido
- Facilite melhorias iterativas através de múltiplas rodadas de colaboração
- Incentive feedback e refinamento entre pares
- Busque um resultado final de alta qualidade, bem pesquisado e envolvente
"""
)
O sistema de prompt define três aspectos cruciais do coordenador: identidade e escopo de atuação, instruções de uso da ferramenta swarm, e os princípios norteadores — especialização de papéis, iteração contínua, feedback entre pares e padrão de qualidade esperado.
Caso de Uso: Swarm para Criação de Conteúdo
Um swarm de três agantes especializados — redator, editor e verificador de fatos — trabalha em conjunto para produzir conteúdo de alta qualidade.
def gerar_conteudo_colaborativo(tema: str, publico_alvo: str = "público geral"):
"""Produz conteúdo colaborativamente através de um swarm de agentes especialistas."""
requisicao_swarm = f"""
Crie um swarm de três agentes para desenvolver conteúdo de alta qualidade sobre: {tema}
Público-alvo: {publico_alvo}
O swarm deve incluir:
1. Um redator criativo que:
- Produz conteúdo envolvente e informativo
- Emprega técnicas narrativas persuasivas
- Adapta tom e estilo ao público-alvo
- Prioriza clareza e legibilidade
2. Um editor experiente que:
- Corrige gramática e sintaxe
- Aprimora clareza e fluidez
- Melhora estrutura e organização
- Sugere melhores escolhas de palavras e frases
3. Um verificador de fatos meticuloso que:
- Identifica potenciais erros factuais
- Verifica afirmações e estatísticas
- Sugere fontes críveis adicionais
- Garante precisão e confiabilidade
Processo de colaboração:
- Redator cria o rascunho inicial
- Editor revisa e aprimora o rascunho
- Verificador confirma precisão e sugere melhorias
- Todos os agentes colaboram por 2 rodadas de refinamento
- Redator incorpora feedback para a versão final
O artigo final deve ter:
- Estrutura clara com seções bem definidas
- Conteúdo envolvente e informativo
- Precisão factual verificada
- Entre 800 e 1200 palavras
"""
resultado = coordenador_swarm_conteudo(requisicao_swarm)
return resultado
# Execução de exemplo
tema_exemplo = "O Futuro dos Agentes de IA na Automação Empresarial"
publico_exemplo = "executivos e líderes de tecnologia"
resultado_final = gerar_conteudo_colaborativo(tema_exemplo, publico_exemplo)
print(resultado_final)
Ao executar com o tema sobre o futuro de agentes de IA na automação empresarial, o swarm produz um artigo de aproximadamente 1.200 palavras com sumário executivo, aplicações setoriais, estratégias de implementação e visão futura, com tom apropriado para público C-level.
Caso Avançado: Swarm para Desenvolvimento de Produto
Para cenários mais complexos, aplicamos os mesmos princípios a um swarm de desenvolvimento de produto com designer UX/UI, desenvolvedor sênior e tester de QA.
coordenador_swarm_produto = Agent(
model=IDENTIFICADOR_MODELO,
tools=[swarm],
system_prompt="""Você é um coordenador de desenvolvimento de produto que facilita
o desenvolvimento colaborativo de produtos usando swarms de agentes.
Foque em:
- Princípios de design centrado no usuário
- Viabilidade técnica e melhores práticas
- Garantia de qualidade e testes
- Melhoria e refinamento iterativos
- Colaboração cross-funcional
"""
)
def desenvolver_produto_colaborativo(ideia_produto: str, usuarios_alvo: str, plataforma: str = "aplicação web") -> str:
"""Desenvolve um conceito de produto colaborativamente através de um swarm de especialistas."""
requisicao = f"""
Crie um swarm de três especialistas em desenvolvimento de produto para colaborar no desenvolvimento de: {ideia_produto}
Usuários-alvo: {usuarios_alvo}
Plataforma: {plataforma}
A equipe de desenvolvimento deve incluir:
1. Um Designer de Produto UX/UI que:
- Analisa necessidades e dores dos usuários
- Cria personas e mapas de jornada
- Projeta interfaces intuitivas
- Foca em acessibilidade e usabilidade
- Considera sistemas de design e consistência
2. Um Desenvolvedor de Software Sênior que:
- Avalia viabilidade técnica
- Projeta arquitetura de sistema
- Identifica tecnologias e frameworks necessários
- Considera escalabilidade e performance
- Estima esforço e cronograma de desenvolvimento
3. Um Tester de Garantia de Qualidade que:
- Identifica potenciais problemas de experiência do usuário
- Planeja estratégias e cenários de teste
- Considera casos extremos e tratamento de erros
- Avalia preocupações de segurança e privacidade
- Sugere métricas de qualidade e critérios de sucesso
Processo de colaboração:
- Designer cria pesquisa de usuário e conceitos de design iniciais
- Desenvolvedor revisa viabilidade e sugere abordagens técnicas
- Tester identifica problemas potenciais e requisitos de teste
- Todos os membros colaboram por 2 rodadas de refinamento
- É criado um plano integrado de desenvolvimento de produto
Entregáveis devem incluir:
- Pesquisa de usuário e personas
- Especificações de funcionalidades
- Visão geral de arquitetura técnica
- Cronograma e marcos de desenvolvimento
- Estratégia de teste e métricas de qualidade
- Avaliação de riscos e planos de mitigação
"""
resultado = coordenador_swarm_produto(requisicao)
return resultado
A estrutura da função aceita ideia_produto, usuarios_alvo e plataforma como parâmetros, fornecendo contexto necessário. A requisição do swarm define escopo, cinco responsabilidades específicas por agente, um fluxo de trabalho com duas rodadas de refinamento e seis entregáveis concretos.
Testando com uma ideia de app de gerenciamento de tarefas com IA para profistionais ocupados, o swarm gera uma arquitetura técnica de referência que inclui decisões como React Native para cross-platform, microsserviços para escalabilidade independente, combinação de inferência on-device com treinamento em nuvem, MongoDB para armazenamento flexível de dados e Redis para cache de alta performence.
Quando Utilizar o Padrão Swarm
O modelo swarm se destaca em cenários que demandam expertise diversificada: projetos cross-funcionais complexos, desenvolvimento de produtos, planejamento estratégico e design de sistemas. A variedade de perspectivas especializadas produz resultados superiores, e a validação cruzada entre pares melhora significativamente a qualidade final. Em contraste, tarefas lineares e bem definidas podem ser mais adequadas ao modelo hierárquico tradicional.