Traçage AutoGen

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.
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
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.
- Development
- Production
Pour les environnements de développement, installez le package MLflow complet avec les extras Databricks et pyautogen:
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.
Pour les déploiements en production, installez mlflow-tracing et pyautogen:
pip install --upgrade mlflow-tracing pyautogen
Le mlflow-tracing package est optimisé pour une utilisation en production.
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 :
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 :
export OPENAI_API_KEY="your-openai-api-key"
Exemple de base
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?"
)
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).