Aller au contenu principal

SDK CrewAI Multi-Agents

Dans une architecture multi-agents CrewAI, plusieurs agents autonomes s'échangent des données et exécutent des tâches coordonnées. Le décorateur @secure_crew_tool permet d'isoler chaque agent et de filtrer les flux d'actions.


Le décorateur @secure_crew_tool

from boundry.sensor import secure_crew_tool

@secure_crew_tool(
agent_id="marketing-researcher",
tool_name="search_competitor_data",
dlp_filter=True,
rate_limit_per_minute=30
)
def search_competitor_data(company: str) -> str:
"""Recherche des informations publiques sur les concurrents."""
# Code d'exécution du tool
return "Données analysées..."

Exemple d'équipe Crew complète

from crewai import Agent, Task, Crew, Process
from boundry.sensor import secure_crew_tool

# 1. Définition des outils sécurisés par agent
@secure_crew_tool(agent_id="analyst-bot", dlp_filter=True)
def query_financial_database(query: str) -> str:
return "Résultats financiers anonymisés..."

@secure_crew_tool(agent_id="writer-bot", rate_limit_per_minute=10)
def publish_to_cms(article: str) -> str:
return "Article mis en ligne."

# 2. Définition des agents
analyst = Agent(
role="Analyste Financier",
goal="Extraire et analyser les chiffres de clôture.",
tools=[query_financial_database],
verbose=True
)

writer = Agent(
role="Rédacteur de Synthèse",
goal="Rédiger le communiqué de presse officiel.",
tools=[publish_to_cms],
verbose=True
)

# 3. Assemblage de l'équipe
crew = Crew(
agents=[analyst, writer],
tasks=[
Task(description="Analyser le T3", expected_output="Rapport chiffré", agent=analyst),
Task(description="Publier la synthèse", expected_output="Confirmation", agent=writer)
],
process=Process.sequential
)

# Exécution avec télémétrie distincte par agent
result = crew.kickoff()

Avantages du cloisonnement par agent

  1. Attribution claire des actions : Chaque log dans la console indique quel agent a initié l'appel.
  2. Politiques de sécurité asymétriques : L'analyste peut interroger la base SQL, mais le rédacteur n'en a pas le droit.
  3. Prévention des fuites transversales : Le filtre DLP empêche un agent de transmettre des identifiants confidentiels à un autre agent non habilité.