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.
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.
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.
- Development
- Production
Para ambientes de desenvolvimento, instale o pacote completo MLflow com os extras Databricks e o pacote Strands:
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.
Para implantações em produção, instale mlflow-tracing e o pacote Strands:
pip install --upgrade mlflow-tracing strands strands-tools
O pacote mlflow-tracing está otimizado para uso em produção.
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 :
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 .
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.
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)
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.
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).