Colaboração
Visão Geral
Seção intitulada “Visão Geral”A colaboração no CrewAI permite que agentes trabalhem juntos como uma equipe, delegando tarefas e fazendo perguntas para aproveitar a expertise uns dos outros. Quando allow_delegation=True, os agentes automaticamente têm acesso a poderosas ferramentas de colaboração.
Guia Rápido: Habilite a Colaboração
Seção intitulada “Guia Rápido: Habilite a Colaboração”from crewai import Agent, Crew, Task
# Enable collaboration for agentsresearcher = Agent( role="Especialista em Pesquisa", goal="Realizar pesquisas aprofundadas sobre qualquer tema", backstory="Pesquisador especialista com acesso a diversas fontes", allow_delegation=True, # 🔑 Configuração chave para colaboração verbose=True)
writer = Agent( role="Redator de Conteúdo", goal="Criar conteúdo envolvente com base em pesquisas", backstory="Redator habilidoso que transforma pesquisas em conteúdo atraente", allow_delegation=True, # 🔑 Permite fazer perguntas a outros agentes verbose=True)
# Agents can now collaborate automaticallycrew = Crew( agents=[researcher, writer], tasks=[...], verbose=True)Como Funciona a Colaboração entre Agentes
Seção intitulada “Como Funciona a Colaboração entre Agentes”Quando allow_delegation=True, o CrewAI automaticamente fornece aos agentes duas ferramentas poderosas:
1. Ferramenta de Delegação de Trabalho
Seção intitulada “1. Ferramenta de Delegação de Trabalho”Permite que agentes designem tarefas para colegas com expertise específica.
# Agent automatically gets this tool:# Delegate work to coworker(task: str, context: str, coworker: str)2. Ferramenta de Fazer Pergunta
Seção intitulada “2. Ferramenta de Fazer Pergunta”Permite que agentes façam perguntas específicas para obter informações de colegas.
# Agent automatically gets this tool:# Ask question to coworker(question: str, context: str, coworker: str)Colaboração em Ação
Seção intitulada “Colaboração em Ação”Veja um exemplo completo onde agentes colaboram em uma tarefa de criação de conteúdo:
from crewai import Agent, Crew, Task, Process
# Create collaborative agentsresearcher = Agent( role="Especialista em Pesquisa", goal="Realizar pesquisas aprofundadas sobre qualquer tema", backstory="Pesquisador especialista com acesso a diversas fontes", allow_delegation=True, verbose=True)
writer = Agent( role="Redator de Conteúdo", goal="Criar conteúdo envolvente com base em pesquisas", backstory="Redator habilidoso que transforma pesquisas em conteúdo atraente", allow_delegation=True, verbose=True)
editor = Agent( role="Content Editor", goal="Ensure content quality and consistency", backstory="""You're an experienced editor with an eye for detail, ensuring content meets high standards for clarity and accuracy.""", allow_delegation=True, verbose=True)
# Create a task that encourages collaborationarticle_task = Task( description="""Escreva um artigo abrangente de 1000 palavras sobre 'O Futuro da IA na Saúde'.
O artigo deve incluir:- Aplicações atuais de IA na saúde- Tendências e tecnologias emergentes- Desafios potenciais e considerações éticas- Previsões de especialistas para os próximos 5 anos
Colabore com seus colegas para garantir precisão e qualidade.""", expected_output="Um artigo bem pesquisado, envolvente, com 1000 palavras, estrutura adequada e citações", agent=writer # O redator lidera, mas pode delegar pesquisa ao pesquisador)
# Create collaborative crewcrew = Crew( agents=[researcher, writer, editor], tasks=[article_task], process=Process.sequential, verbose=True)
result = crew.kickoff()Padrões de Colaboração
Seção intitulada “Padrões de Colaboração”Padrão 1: Pesquisa → Redação → Edição
Seção intitulada “Padrão 1: Pesquisa → Redação → Edição”research_task = Task( description="Pesquise os últimos avanços em computação quântica", expected_output="Resumo abrangente da pesquisa com principais descobertas e fontes", agent=researcher)
writing_task = Task( description="Escreva um artigo com base nos achados da pesquisa", expected_output="Artigo envolvente de 800 palavras sobre computação quântica", agent=writer, context=[research_task] # Recebe a saída da pesquisa como contexto)
editing_task = Task( description="Edite e revise o artigo para publicação", expected_output="Artigo pronto para publicação, com clareza e fluidez aprimoradas", agent=editor, context=[writing_task] # Recebe o rascunho do artigo como contexto)Padrão 2: Tarefa Única Colaborativa
Seção intitulada “Padrão 2: Tarefa Única Colaborativa”collaborative_task = Task( description="""Crie uma estratégia de marketing para um novo produto de IA.
Redator: Foque em mensagens e estratégia de conteúdoPesquisador: Forneça análise de mercado e insights de concorrentes
Trabalhem juntos para criar uma estratégia abrangente.""", expected_output="Estratégia de marketing completa com embasamento em pesquisa", agent=writer # Agente líder, mas pode delegar ao pesquisador)Colaboração Hierárquica
Seção intitulada “Colaboração Hierárquica”Para projetos complexos, utilize um processo hierárquico com um agente gerente:
from crewai import Agent, Crew, Task, Process
# Manager agent coordinates the teammanager = Agent( role="Gerente de Projetos", goal="Coordenar esforços da equipe e garantir o sucesso do projeto", backstory="Gerente de projetos experiente, habilidoso em delegação e controle de qualidade", allow_delegation=True, verbose=True)
# Specialist agentsresearcher = Agent( role="Pesquisador", goal="Fornecer pesquisa e análise precisas", backstory="Pesquisador especialista com habilidades analíticas profundas", allow_delegation=False, # Especialistas focam em sua expertise verbose=True)
writer = Agent( role="Redator", goal="Criar conteúdo envolvente", backstory="Redator habilidoso que cria conteúdo atraente", allow_delegation=False, verbose=True)
# Manager-led taskproject_task = Task( description="Crie um relatório de análise de mercado completo com recomendações", expected_output="Resumo executivo, análise detalhada e recomendações estratégicas", agent=manager # O gerente delega para especialistas)
# Hierarchical crewcrew = Crew( agents=[manager, researcher, writer], tasks=[project_task], process=Process.hierarchical, # Manager coordinates everything manager_llm="gpt-4o", # Specify LLM for manager verbose=True)Melhores Práticas para Colaboração
Seção intitulada “Melhores Práticas para Colaboração”1. Definição Clara de Papéis
Seção intitulada “1. Definição Clara de Papéis”# ✅ Bom: papéis específicos e complementaresresearcher = Agent(role="Market Research Analyst", ...)writer = Agent(role="Technical Content Writer", ...)
# ❌ Evite: Papéis sobrepostos ou vagosagent1 = Agent(role="General Assistant", ...)agent2 = Agent(role="Helper", ...)2. Delegação Estratégica Habilitada
Seção intitulada “2. Delegação Estratégica Habilitada”# ✅ Habilite delegação para coordenadores e generalistaslead_agent = Agent( role="Content Lead", allow_delegation=True, # Can delegate to specialists ...)
# ✅ Desative para especialistas focados (opcional)specialist_agent = Agent( role="Data Analyst", allow_delegation=False, # Focuses on core expertise ...)3. Compartilhamento de Contexto
Seção intitulada “3. Compartilhamento de Contexto”# ✅ Use o parâmetro context para dependências entre tarefaswriting_task = Task( description="Write article based on research", agent=writer, context=[research_task], # Shares research results ...)4. Descrições Claras de Tarefas
Seção intitulada “4. Descrições Claras de Tarefas”# ✅ Descrições específicas e acionáveisTask( description="""Research competitors in the AI chatbot space. Focus on: pricing models, key features, target markets. Provide data in a structured format.""", ...)
# ❌ Descrições vagas que não orientam a colaboraçãoTask(description="Do some research about chatbots", ...)Solução de Problemas em Colaboração
Seção intitulada “Solução de Problemas em Colaboração”Problema: Agentes Não Colaboram
Seção intitulada “Problema: Agentes Não Colaboram”Sintomas: Agentes trabalham isoladamente, sem ocorrer delegação
# ✅ Solução: Certifique-se que a delegação está habilitadaagent = Agent( role="...", allow_delegation=True, # This is required! ...)Problema: Troca Excessiva de Perguntas
Seção intitulada “Problema: Troca Excessiva de Perguntas”Sintomas: Agentes fazem perguntas em excesso, progresso lento
# ✅ Solução: Forneça melhor contexto e papéis específicosTask( description="""Write a technical blog post about machine learning.
Context: Target audience is software developers with basic ML knowledge. Length: 1200 words Include: code examples, practical applications, best practices
If you need specific technical details, delegate research to the researcher.""", ...)Problema: Loops de Delegação
Seção intitulada “Problema: Loops de Delegação”Sintomas: Agentes delegam tarefas repetidamente uns para os outros indefinidamente
# ✅ Solução: Hierarquia e responsabilidades bem definidasmanager = Agent(role="Manager", allow_delegation=True)specialist1 = Agent(role="Specialist A", allow_delegation=False) # No re-delegationspecialist2 = Agent(role="Specialist B", allow_delegation=False)Recursos Avançados de Colaboração
Seção intitulada “Recursos Avançados de Colaboração”Regras Personalizadas de Colaboração
Seção intitulada “Regras Personalizadas de Colaboração”# Set specific collaboration guidelines in agent backstoryagent = Agent( role="Senior Developer", backstory="""You lead development projects and coordinate with team members.
Collaboration guidelines: - Delegate research tasks to the Research Analyst - Ask the Designer for UI/UX guidance - Consult the QA Engineer for testing strategies - Only escalate blocking issues to the Project Manager""", allow_delegation=True)Monitoramento da Colaboração
Seção intitulada “Monitoramento da Colaboração”def track_collaboration(output): """Track collaboration patterns""" if "Delegate work to coworker" in output.raw: print("🤝 Delegation occurred") if "Ask question to coworker" in output.raw: print("❓ Question asked")
crew = Crew( agents=[...], tasks=[...], step_callback=track_collaboration, # Monitor collaboration verbose=True)Memória e Aprendizado
Seção intitulada “Memória e Aprendizado”Permita que agentes se lembrem de colaborações passadas:
agent = Agent( role="Content Lead", memory=True, # Remembers past interactions allow_delegation=True, verbose=True)Com a memória ativada, os agentes aprendem com colaborações anteriores e aprimoram suas decisões de delegação ao longo do tempo.
Próximos Passos
Seção intitulada “Próximos Passos”- Teste os exemplos: Comece pelo exemplo básico de colaboração
- Experimente diferentes papéis: Teste combinações variadas de papéis de agentes
- Monitore as interações: Use
verbose=Truepara ver a colaboração em ação - Otimize descrições de tarefas: Tarefas claras geram melhor colaboração
- Escale: Experimente processos hierárquicos para projetos complexos
A colaboração transforma agentes de IA individuais em equipes poderosas capazes de enfrentar desafios complexos e multifacetados juntos.