Aller au contenu principal

Compatibilite avec l'OpenAI SDK

Utiliser le multi-agent via l’OpenAI SDK

Si vous utilisez deja l’OpenAI SDK dans vos projets, vous pouvez acceder au multi-agent de Grok sans changer de SDK. xAI expose une API compatible avec le format Responses de OpenAI, ce qui permet d’utiliser le client OpenAI en pointant vers l’API xAI.

Configuration du client

Le principe est simple : vous initialisez le client OpenAI avec l’URL de base de xAI et votre cle API xAI :

from openai import OpenAI

client = OpenAI(
    api_key=os.getenv("XAI_API_KEY"),
    base_url="https://api.x.ai/v1",
)

A partir de la, vous utilisez la Responses API normalement, avec grok-4.20-multi-agent comme modele.

Controle du nombre d’agents via reasoning.effort

Contrairement au xAI SDK qui expose agent_count, l’OpenAI SDK utilise le parametre reasoning.effort pour determiner le nombre d’agents :

# 4 agents (effort low)
response = client.responses.create(
    model="grok-4.20-multi-agent",
    reasoning={"effort": "low"},
    input=[{"role": "user", "content": "Quels sont les derniers modeles open source de 2026 ?"}],
)
print(response.output_text)
# 16 agents (effort high)
response = client.responses.create(
    model="grok-4.20-multi-agent",
    reasoning={"effort": "high"},
    input=[{"role": "user", "content": "Compare les strategies IA de l'UE et des USA en 2026"}],
)
print(response.output_text)

Le mapping effort → agents

Le mapping est le suivant :

  • "low" → 4 agents
  • "medium" → 4 agents
  • "high" → 16 agents
  • "xhigh" → 16 agents

La difference entre low et medium (ou entre high et xhigh) n’affecte pas le nombre d’agents. Ces niveaux intermediaires peuvent influencer d’autres aspects du comportement, mais le nombre d’agents reste identique au sein de chaque paire.

Chat Completions NON supporte

Un point essentiel : l’API Chat Completions n’est pas supportee pour le multi-agent. Vous devez utiliser la Responses API (client.responses.create), pas client.chat.completions.create.

Si vous tentez d’utiliser Chat Completions avec le modele multi-agent, vous obtiendrez une erreur. C’est une contrainte importante si votre code existant repose sur cette API.

# NE FONCTIONNE PAS
response = client.chat.completions.create(
    model="grok-4.20-multi-agent",
    messages=[{"role": "user", "content": "..."}],
)

Streaming avec l’OpenAI SDK

Le streaming fonctionne via la Responses API :

stream = client.responses.create(
    model="grok-4.20-multi-agent",
    reasoning={"effort": "low"},
    input=[{"role": "user", "content": "Resume les annonces tech de cette semaine"}],
    stream=True,
)

for event in stream:
    if hasattr(event, 'delta') and event.delta:
        print(event.delta, end="", flush=True)

Avantages et limites de cette approche

Avantages :

  • Pas besoin d’installer un SDK supplementaire si vous utilisez deja OpenAI
  • Syntaxe familiere pour les developpeurs habitues a l’ecosysteme OpenAI
  • Facile de basculer entre modeles xAI et OpenAI dans le meme code

Limites :

  • Pas d’acces a agent_count (controle indirect via reasoning.effort)
  • Pas de verbose_streaming ni d’use_encrypted_content
  • Le mapping effort → agents pourrait evoluer (API beta)

Points cles a retenir

  • L’OpenAI SDK fonctionne avec le multi-agent via base_url="https://api.x.ai/v1"
  • Le nombre d’agents se controle via reasoning.effort (low/medium = 4, high/xhigh = 16)
  • Chat Completions n’est PAS supporte — utilisez la Responses API uniquement
  • Certains parametres exclusifs du xAI SDK (agent_count, verbose_streaming) ne sont pas accessibles