Passer au contenu principal
Weave for Agents est en préversion publique. Les fonctionnalités, les API et l’interface utilisateur de la vue Agents peuvent encore évoluer avant la disponibilité générale.
Le SDK OpenAI Agents est un framework léger qui permet de créer des agents et des flux de travail multi-agent à partir de l’API d’OpenAI. Weave trace automatiquement les agents créés avec le SDK OpenAI Agents, y compris chaque appel d’agent, transfert vers un sous-agent, appel de modèle et appel d’outil. Weave affiche les données capturées dans la vue Agents de votre project.
Le SDK TypeScript de Weave ne prend pas en charge le patching automatique pour le SDK OpenAI Agents.

Tracer des agents du SDK OpenAI Agents avec Weave

Le SDK Weave effectue un patching automatique avec le SDK OpenAI Agents, ce qui vous permet de capturer les traces de vos agents avec une configuration minimale. Ce guide explique comment initialiser Weave, puis exécuter un agent de recherche multitour créé avec le SDK OpenAI Agents afin que Weave capture chaque appel d’agent, chaque appel de modèle et chaque appel d’outil pendant toute la session.

Prérequis

Avant de commencer, assurez-vous de disposer des éléments suivants :
  • Un compte W&B et une clé API configurée comme variable d’environnement WANDB_API_KEY.
  • Une clé API OpenAI.
  • Python 3.10+.

Installer les packages

Installez les packages suivants dans votre environnement de développement afin que Weave et le SDK OpenAI Agents soient disponibles pour votre script :
pip install weave openai-agents requests

Initialisez Weave dans votre code

Ajoutez weave.init à votre projet, avec les noms de votre équipe W&B et de votre projet, puis créez votre agent comme d’habitude. Le code suivant définit une fonction-outil wikipedia_search et un agent Research assistant, puis exécute trois questions via le Runner du SDK OpenAI Agents, tandis que Weave capture la trace.
import asyncio
import requests
import weave
from agents import Agent, Runner, function_tool

weave.init("<your-team>/<your-project-name>")

@function_tool
def wikipedia_search(query: str) -> str:
    """Search Wikipedia for a topic and return its title and intro paragraph."""
    r = requests.get(
        "https://en.wikipedia.org/w/api.php",
        params={
            "action": "query", "generator": "search", "gsrsearch": query, "gsrlimit": 1,
            "prop": "extracts", "exintro": True, "explaintext": True, "format": "json",
        },
        headers={"User-Agent": "weave-demo"},
    ).json()
    page = next(iter(r["query"]["pages"].values()))
    return f"{page['title']}: {page['extract']}"

agent = Agent(
    name="Research assistant",
    instructions=(
        "You are a research assistant. Use the wikipedia_search tool to look up "
        "topics when needed, and cite the article titles you used."
    ),
    tools=[wikipedia_search],
)

async def main():
    history = []
    for question in [
        "Who founded Anthropic?",
        "What is Claude (the AI assistant)?",
        "Summarize what we discussed in one sentence.",
    ]:
        history.append({"role": "user", "content": question})
        print(f"USER: {question}")
        result = await Runner.run(agent, input=history)
        print(f"AGENT: {result.final_output}\n")
        history = result.to_input_list()

asyncio.run(main())
L’exemple exécute trois tours de conversation au sein d’une même conversation. Les deux premiers tours de conversation déclenchent des consultations sur Wikipédia, et le troisième utilise le contexte de la conversation précédente pour produire une synthèse sans appel à un outil. Chaque appel à Runner.run poursuit la conversation en repassant la liste d’entrées du résultat précédent comme requête suivante.

Voir les traces de votre agent dans la vue Agents

Une fois le script exécuté, vous pouvez consulter l’activité capturée dans Weave. weave.init() affiche un lien vers votre projet lors de son exécution. Ouvrez la vue Agents pour examiner :
  • Une ligne dans l’onglet Agents pour Research assistant.
  • Une session contenant trois tours de conversation.
  • Chaque tour de conversation affiché sous la forme d’un span invoke_agent avec des appels au modèle et des appels d’outil imbriqués.
  • L’entrée complète, le modèle, la sortie, l’utilisation des jetons et les résultats Wikipédia à chaque étape.
Pour en savoir plus sur la consultation des données Agents dans Weave, voir Voir l’activité des agents.