Passer au contenu principal
CrewAI vous permet de construire des systèmes multi-agents autonomes où des agents IA spécialisés collaborent sur des tâches complexes. Venice AI fonctionne comme un fournisseur LLM clé en main grâce à la compatibilité OpenAI.

Installation

pip install crewai crewai-tools

Configuration de base

Configurez Venice comme fournisseur LLM pour CrewAI via l’interface compatible OpenAI :
import os

os.environ["OPENAI_API_KEY"] = "your-venice-api-key"
os.environ["OPENAI_API_BASE"] = "https://api.venice.ai/api/v1"
os.environ["OPENAI_MODEL_NAME"] = "venice-uncensored"
Ou configurez agent par agent avec l’objet LLM :
from crewai import LLM

venice_llm = LLM(
    model="openai/venice-uncensored",
    api_key="your-venice-api-key",
    base_url="https://api.venice.ai/api/v1",
    temperature=0.7,
)

# Pour les tâches de raisonnement complexes
venice_flagship = LLM(
    model="openai/zai-org-glm-5-1",
    api_key="your-venice-api-key",
    base_url="https://api.venice.ai/api/v1",
    temperature=0.3,
)

Votre première crew

Créez une équipe de recherche simple avec deux agents :
from crewai import Agent, Task, Crew

# Agent 1 : Chercheur
researcher = Agent(
    role="Senior Research Analyst",
    goal="Find comprehensive, accurate information on the given topic",
    backstory="You are an expert researcher with a keen eye for detail. "
              "You excel at finding and synthesizing information from multiple sources.",
    llm=venice_flagship,
    verbose=True,
)

# Agent 2 : Rédacteur
writer = Agent(
    role="Content Strategist",
    goal="Create engaging, well-structured content from research findings",
    backstory="You are a skilled writer who transforms complex research "
              "into clear, compelling content that readers love.",
    llm=venice_llm,
    verbose=True,
)

# Tâche 1 : Recherche
research_task = Task(
    description="Research the topic: {topic}. "
                "Find key facts, recent developments, and expert opinions. "
                "Provide a structured summary with sources.",
    expected_output="A detailed research summary with key findings, "
                    "organized by subtopic, with at least 5 key points.",
    agent=researcher,
)

# Tâche 2 : Rédaction de l'article
write_task = Task(
    description="Using the research provided, write a compelling blog post "
                "about {topic}. Include an introduction, main sections, and conclusion.",
    expected_output="A well-written blog post of 500-800 words with clear sections.",
    agent=writer,
    context=[research_task],  # Utilise la sortie de research_task
)

# Création et exécution de la crew
crew = Crew(
    agents=[researcher, writer],
    tasks=[research_task, write_task],
    verbose=True,
)

result = crew.kickoff(inputs={"topic": "The future of privacy-preserving AI"})
print(result)

Crew d’analyse produit multi-agents

Un exemple plus complexe avec des agents spécialisés :
from crewai import Agent, Task, Crew, Process

# Différents modèles pour différentes capacités d'agents
fast_llm = LLM(model="openai/qwen3-5-9b", api_key="your-key", base_url="https://api.venice.ai/api/v1")
smart_llm = LLM(model="openai/zai-org-glm-5-1", api_key="your-key", base_url="https://api.venice.ai/api/v1")
uncensored_llm = LLM(model="openai/venice-uncensored-1-2", api_key="your-key", base_url="https://api.venice.ai/api/v1")

# Analyste de marché — a besoin d'intelligence
market_analyst = Agent(
    role="Market Research Analyst",
    goal="Analyze market trends and competitive landscape",
    backstory="You are a veteran market analyst with 15 years of experience "
              "in tech markets. You provide unbiased, data-driven insights.",
    llm=smart_llm,
    verbose=True,
)

# Red team — bénéficie d'une réflexion non censurée
red_team = Agent(
    role="Red Team Critic",
    goal="Find weaknesses, risks, and potential failures in business strategies",
    backstory="You are a brutally honest critic who stress-tests ideas. "
              "You find every possible flaw and risk, no matter how uncomfortable.",
    llm=uncensored_llm,  # Non censuré pour une critique honnête
    verbose=True,
)

# Stratège — a besoin de raisonnement
strategist = Agent(
    role="Business Strategist",
    goal="Synthesize analysis into actionable strategy recommendations",
    backstory="You are a McKinsey-trained strategist who creates clear, "
              "actionable plans from complex analyses.",
    llm=smart_llm,
    verbose=True,
)

# Tâches
market_task = Task(
    description="Analyze the market opportunity for: {product_idea}. "
                "Cover market size, competitors, trends, and target audience.",
    expected_output="Structured market analysis with TAM/SAM/SOM estimates, "
                    "top 5 competitors, and 3 key market trends.",
    agent=market_analyst,
)

critique_task = Task(
    description="Critically evaluate this product idea and market analysis. "
                "Find every weakness, risk, and potential failure mode. Be brutally honest.",
    expected_output="A list of at least 5 critical risks, 3 potential failure modes, "
                    "and honest assessment of whether this idea will succeed.",
    agent=red_team,
    context=[market_task],
)

strategy_task = Task(
    description="Based on the market analysis and red team critique, "
                "create a go-to-market strategy that addresses the identified risks.",
    expected_output="A clear go-to-market strategy with: positioning statement, "
                    "3 key differentiators, launch timeline, and risk mitigations.",
    agent=strategist,
    context=[market_task, critique_task],
)

crew = Crew(
    agents=[market_analyst, red_team, strategist],
    tasks=[market_task, critique_task, strategy_task],
    process=Process.sequential,
    verbose=True,
)

result = crew.kickoff(inputs={
    "product_idea": "A privacy-first AI coding assistant that runs on Venice API"
})
print(result)

Utilisation d’outils

Étoffez les agents avec la recherche web et d’autres outils :
SerperDevTool nécessite une variable d’environnement SERPER_API_KEY provenant de serper.dev. En alternative, vous pouvez utiliser la recherche web intégrée de Venice en passant venice_parameters: {"enable_web_search": "auto"} via model_kwargs — aucune clé API supplémentaire requise. Voir l’intégration de recherche web du guide LangChain pour un exemple.
from crewai_tools import SerperDevTool, WebsiteSearchTool
from crewai import Agent, Task, Crew

# Outil de recherche web (nécessite la variable d'environnement SERPER_API_KEY)
search_tool = SerperDevTool()

researcher = Agent(
    role="Web Researcher",
    goal="Find the latest information on any topic",
    backstory="You are an expert web researcher.",
    llm=venice_flagship,
    tools=[search_tool],
    verbose=True,
)

task = Task(
    description="Research the latest developments in {topic} from the past week.",
    expected_output="A summary of 5 recent developments with dates and sources.",
    agent=researcher,
)

crew = Crew(agents=[researcher], tasks=[task], verbose=True)
result = crew.kickoff(inputs={"topic": "decentralized AI"})

Guide de sélection de modèles pour CrewAI

Choisissez le bon modèle Venice pour chaque rôle d’agent :
Rôle d’agentModèle recommandéPourquoi
Raisonnement complexe / Stratégiezai-org-glm-5-1Meilleur modèle de raisonnement privé
Analyse non censurée / Red teamvenice-uncensored-1-2Pas de filtrage de contenu
Tâches à fort volume / rapidesqwen3-5-9bLe moins cher à 0,10 $/1 M tokens d’entrée et 0,15 $/1 M tokens de sortie
Agents de génération de codeqwen3-coder-480b-a35b-instructOptimisé pour le code
Tâches vision/multimodalqwen3-vl-235b-a22bCompréhension visuelle avancée
Équipes soucieuses du budgetqwen3-5-9b (rapide) + venice-uncensored-1-2 (principal)Combinaison à faible coût

Conseils d’optimisation des coûts

  1. Utilisez des modèles moins chers pour les agents plus simples : tous les agents n’ont pas besoin d’un modèle phare. Utilisez qwen3-4b pour le formatage, le résumé ou l’extraction simple.
  2. Utilisez venice-uncensored pour les rôles créatifs/critiques : il est rapide, économique et ne refusera pas les analyses inconfortables.
  3. Réservez les modèles phares au raisonnement : utilisez zai-org-glm-5-1 uniquement pour les agents qui ont besoin d’un raisonnement complexe ou d’un appel de fonctions fiable.
  4. Limitez le nombre maximal d’itérations : définissez max_iter sur les agents pour éviter une consommation incontrôlée de tokens :
    agent = Agent(role="...", goal="...", backstory="...", llm=venice_llm, max_iter=5)
    

Avantage en matière de confidentialité

Les garanties de confidentialité de Venice rendent l’API idéale pour les cas d’usage CrewAI impliquant :
  • Stratégie d’entreprise confidentielle — La rétention de données zéro signifie que votre analyse concurrentielle reste privée
  • Traitement de données sensibles — Les modèles privés ne journalisent ni ne stockent jamais vos données
  • Exercices de red team — Les modèles non censurés donnent des retours honnêtes sans filtrage de contenu

Docs CrewAI

Documentation officielle de CrewAI

Modèles Venice

Parcourir tous les modèles Venice