Pular para o conteúdo principal

SDK de Agentes do Tracing Strands

O Strands Agents SDK é um SDK de código aberto da AWS para a criação de agentes AI autônomos que podem interagir com ferramentas e APIs externas.

O MLflow Tracing oferece funcionalidade de rastreamento automático para o SDK de Agentes Strands. Ao habilitar o rastreamento automático para Strands chamando a função mlflow.strands.autolog , MLflow capturará os rastreamentos e os log no Experimento MLflow ativo após a invocação dos agentes.

Python
import mlflow

mlflow.strands.autolog()

O rastreamento MLflow captura automaticamente as seguintes informações sobre as chamadas do agente Strands:

  • Instruções e respostas
  • Latências
  • Metadados do agente
  • utilização e custo dos tokens
  • Informações sobre acertos de cache
  • Qualquer exceção, se lançada.
nota

Em clusters compute serverless , o registro automático de logs não é ativado automaticamente. Você deve chamar explicitamente mlflow.strands.autolog() para habilitar o rastreamento automático para esta integração.

Pré-requisitos

Para usar MLflow Tracing com SDK de agentes do Strands, você precisa instalar MLflow, o SDK do Strands e as dependências necessárias.

Para ambientes de desenvolvimento, instale o pacote completo MLflow com os extras Databricks e o pacote Strands:

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

O pacote completo mlflow[databricks] inclui todos os recursos para desenvolvimento local e experimentação no Databricks.

nota

Recomenda-se vivamente o MLflow 3 para uma melhor experiência de rastreamento com o SDK Strands Agents.

Antes de executar os exemplos, você precisará configurar seu ambiente:

Para usuários fora Databricks Notebook : Defina sua variável de ambiente Databricks :

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

Para usuários dentro Databricks Notebook : Essas credenciais são definidas automaticamente para você.

ChaveAPI : Certifique-se de que a chave API do seu provedor LLM esteja configurada. Para ambientes de produção, utilize segredosMosaic AI Gateway ou Databricks em vez de valores fixos para um gerenciamento seguro key API .

Bash
export OPENAI_API_KEY="your-openai-api-key"
# Add other provider keys as needed

Exemplo de uso

O exemplo a seguir demonstra como usar o SDK Strands Agents com o rastreamento do MLflow. O agente utiliza o modelo OpenAI e tem acesso a uma ferramenta de calculadora para realizar operações aritméticas.

Python
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)
atenção

Para ambientes de produção, utilize segredosMosaic AI Gateway ou Databricks em vez de valores fixos para um gerenciamento seguro key API .

Uso de tokens

O MLflow rastreia automaticamente o uso de tokens para agentes Strands ao usar a versão 3.4.0 do MLflow. ou mais tarde. As informações sobre o uso de tokens incluem tokens de entrada, tokens de saída e o total tokens consumidos durante a execução do agente.

Python
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}")

Os detalhes de utilização dos tokens são exibidos na interface de rastreamento do MLflow, permitindo que você monitore e otimize o desempenho e os custos do seu agente.

Desativar rastreamento automático

O rastreamento automático para o SDK Strands Agents pode ser desativado globalmente chamando mlflow.strands.autolog(disable=True) ou mlflow.autolog(disable=True).