Aller au contenu principal

Traçage AutoGen

Traçage AutoGen à l'aide d'autolog.

AutoGen est un framework open source pour la création de systèmes d'agents IA événementiels, distribués, évolutifs et résilients.

MLflow Tracing fournit une capacité de traçage automatique pour AutoGen, un framework multi-agents open source. En activant le traçage automatique pour AutoGen en appelant la fonction mlflow.autogen.autolog, MLflow capturera les traces imbriquées et les consignera dans l'Experimentation MLflow active lors de l'exécution des agents.

Python
import mlflow

mlflow.autogen.autolog()

MLflow recueille les informations suivantes concernant l'exécution multi-agents :

  • Quel agent est appelé à différentes étapes
  • Messages échangés entre les agents
  • Appels de LLM et d'outils effectués par chaque agent, organisés par agent et par tour
  • Latences
  • Toute exception si levée
remarque

Sur les clusters de compute serverless, l'autologging n'est pas activé automatiquement. Vous devez appeler explicitement mlflow.autogen.autolog() pour activer le traçage automatique de cette intégration.

Prérequis

Pour utiliser MLflow Tracing avec AutoGen, vous devez installer MLflow et la bibliothèque pyautogen.

Pour les environnements de développement, installez le package MLflow complet avec les extras Databricks et pyautogen:

Bash
pip install --upgrade "mlflow[databricks]>=3.1" pyautogen

Le package mlflow[databricks] complet inclut toutes les fonctionnalités pour le développement local et l’expérimentation sur Databricks.

remarque

MLflow 3 est fortement recommandé pour la meilleure expérience de traçage avec AutoGen.

Avant d'exécuter les exemples, vous devrez configurer votre environnement :

Pour les utilisateurs en dehors des notebooks Databricks : Définissez vos variables d'environnement Databricks :

Bash
export DATABRICKS_HOST="https://your-workspace.cloud.databricks.com"
export DATABRICKS_TOKEN="your-personal-access-token"

Pour les utilisateurs dans les Notebooks Databricks : ces identifiants sont définis automatiquement pour vous.

Clé API OpenAI : assurez-vous que votre clé API est configurée. Pour une utilisation en production, nous vous recommandons d’utiliser AI Gateway ou les secrets Databricks plutôt que des variables d’environnement :

Bash
export OPENAI_API_KEY="your-openai-api-key"

Exemple de base

Python
import os
from typing import Annotated, Literal

from autogen import ConversableAgent

import mlflow

# Ensure your OPENAI_API_KEY (or other LLM provider keys) is set in your environment
# os.environ["OPENAI_API_KEY"] = "your-openai-api-key" # Uncomment and set if not globally configured

# Turn on auto tracing for AutoGen
mlflow.autogen.autolog()

# Set up MLflow tracking on Databricks
mlflow.set_tracking_uri("databricks")
mlflow.set_experiment("/Shared/autogen-tracing-demo")


# Define a simple multi-agent workflow using AutoGen
config_list = [
{
"model": "gpt-4o-mini",
# Please set your OpenAI API Key to the OPENAI_API_KEY env var before running this example
"api_key": os.environ.get("OPENAI_API_KEY"),
}
]

Operator = Literal["+", "-", "*", "/"]


def calculator(a: int, b: int, operator: Annotated[Operator, "operator"]) -> int:
if operator == "+":
return a + b
elif operator == "-":
return a - b
elif operator == "*":
return a * b
elif operator == "/":
return int(a / b)
else:
raise ValueError("Invalid operator")


# First define the assistant agent that suggests tool calls.
assistant = ConversableAgent(
name="Assistant",
system_message="You are a helpful AI assistant. "
"You can help with simple calculations. "
"Return 'TERMINATE' when the task is done.",
llm_config={"config_list": config_list},
)

# The user proxy agent is used for interacting with the assistant agent
# and executes tool calls.
user_proxy = ConversableAgent(
name="Tool Agent",
llm_config=False,
is_termination_msg=lambda msg: msg.get("content") is not None
and "TERMINATE" in msg["content"],
human_input_mode="NEVER",
)

# Register the tool signature with the assistant agent.
assistant.register_for_llm(name="calculator", description="A simple calculator")(
calculator
)
user_proxy.register_for_execution(name="calculator")(calculator)
response = user_proxy.initiate_chat(
assistant, message="What is (44231 + 13312 / (230 - 20)) * 4?"
)
attention

Pour les environnements de production, utilisez toujours AI Gateway ou les secrets Databricks au lieu de valeurs codées en dur.

Désactiver le suivi automatique

Le traçage automatique pour AutoGen peut être désactivé globalement en appelant mlflow.autogen.autolog(disable=True) ou mlflow.autolog(disable=True).