SDK Tracing Strands Agents
Le Strands Agents SDK est un SDK open source d'AWS pour la création d'agents autonomes qui peuvent interagir avec des outils et des APIs externes.
MLflow Tracing fournit une capacité de traçage automatique pour le SDK Strands Agents. En activant le traçage automatique pour les Strands en appelant la fonction mlflow.strands.autolog, MLflow capturera les traces et les enregistrera dans l'Expérimentation MLflow active lors de l'invocation des agents.
import mlflow
mlflow.strands.autolog()
La trace MLflow capture automatiquement les informations suivantes concernant les appels d’agents Strands :
- Prompts et réponses
- Latences
- Métadonnées de l'agent
- Utilisation et coût des jetons
- Informations sur les accès au cache
- Toute exception si levée
Sur les clusters de compute serverless, l'autologging n'est pas activé automatiquement. Vous devez appeler explicitement mlflow.strands.autolog() pour activer le traçage automatique de cette intégration.
Prérequis
Pour utiliser MLflow Tracing avec Strands Agents SDK, vous devez installer MLflow, le Strands SDK et les dépendances requises.
- Development
- Production
Pour les environnements de développement, installez le package MLflow complet avec les extras Databricks et les packages Strands :
pip install --upgrade "mlflow[databricks]>=3.1" strands strands-tools
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 de production, installez mlflow-tracing et les packages Strands :
pip install --upgrade mlflow-tracing strands strands-tools
Le mlflow-tracing package est optimisé pour une utilisation en production.
MLflow 3 est fortement recommandé pour une meilleure expérience de traçage avec le SDK Strands Agents.
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 de Notebooks Databricks : ces identifiants sont automatiquement définis pour vous.
Clés API : Assurez-vous que les clés API de votre fournisseur LLM sont configurées. Pour les environnements de production, utilisez AI Gateway ou les secrets Databricks au lieu de valeurs codées en dur pour une gestion sécurisée des clés API.
export OPENAI_API_KEY="your-openai-api-key"
# Add other provider keys as needed
Exemple d'utilisation
L'exemple suivant montre comment utiliser le SDK Strands Agents avec le traçage MLflow. L'agent utilise le modèle OpenAI et a accès à un outil de calcul pour effectuer des opérations arithmétiques.
import mlflow
import os
# Ensure your OPENAI_API_KEY is set in your environment
# os.environ["OPENAI_API_KEY"] = "your-openai-api-key" # Uncomment and set if not globally configured
# Enable auto tracing for Strands Agents SDK
mlflow.strands.autolog()
# Set up MLflow tracking to Databricks
mlflow.set_tracking_uri("databricks")
mlflow.set_experiment("/Shared/strands-agent-demo")
from strands import Agent
from strands.models.openai import OpenAIModel
from strands_tools import calculator
# Configure the OpenAI model
model = OpenAIModel(
client_args={"api_key": os.environ.get("OPENAI_API_KEY")},
model_id="gpt-4o",
params={
"max_tokens": 2000,
"temperature": 0.7,
},
)
# Create an agent with the calculator tool
agent = Agent(model=model, tools=[calculator])
# Run the agent
response = agent("What is 2+2?")
print(response)
Pour les environnements de production, utilisez AI Gateway ou les secrets Databricks au lieu de valeurs codées en dur pour la gestion sécurisée des clés API.
Suivi de l'utilisation des jetons
MLflow suit automatiquement l'utilisation des jetons pour les agents Strands lors de l'utilisation de la version 3.4.0 de MLflow. ou ultérieure. Les information sur l'utilisation des jetons comprennent les jetons d'entrée, les jetons de sortie et le nombre total de jetons consommés pendant l'exécution de l'agent.
import mlflow
mlflow.strands.autolog()
from strands import Agent
from strands.models.openai import OpenAIModel
from strands_tools import calculator
model = OpenAIModel(
client_args={"api_key": os.environ.get("OPENAI_API_KEY")},
model_id="gpt-4o",
params={
"max_tokens": 2000,
"temperature": 0.7,
},
)
agent = Agent(model=model, tools=[calculator])
# Run the agent and retrieve trace information
with mlflow.start_span(name="strands_agent_run") as span:
response = agent("Calculate the sum of 15 and 27")
print(response)
# Token usage is automatically logged and visible in the MLflow UI
trace_info = mlflow.get_last_active_trace()
print(f"Trace ID: {trace_info.request_id}")
Les détails d'utilisation des jetons sont affichés dans l'interface utilisateur de traçage MLflow, ce qui vous permet de surveiller et d'optimiser les performances et les coûts de votre agent.
Désactiver le suivi automatique
Le traçage automatique pour le SDK Strands Agents peut être désactivé globalement en appelant mlflow.strands.autolog(disable=True) ou mlflow.autolog(disable=True).