Pular para o conteúdo principal

Rastreando agentes de esmola

Smolagents é uma estrutura de agente leve que enfatiza o minimalismo e a capacidade de composição.

MLflow Tracing integra-se com o Smolagents para capturar rastros simplificados do fluxo de trabalho de agentes leves. Ative-o com mlflow.smolagents.autolog.

nota

O rastreamento automático do MLflow só é compatível com chamadas síncronas. Os métodos assíncronos API e de transmissão não são rastreados.

Pré-requisitos​

Para usar o MLflow Tracing com o Smolagents, o senhor precisa instalar o MLflow e o pacote Smolagents relevante.

Para ambientes de desenvolvimento, instale o pacote completo do MLflow com extras do Databricks e Smolagents:

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

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

nota

O MLflow 3 é recomendado para obter a melhor experiência de rastreamento.

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

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

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

Para usuários do Databricks Notebook : Essas credenciais são definidas automaticamente para o senhor.

ChaveAPI : Certifique-se de que a chave API do seu provedor LLM esteja configurada. Para ambientes de produção, utilize segredosAI 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​

nota

Em serverless compute clusters, o autologging para estruturas de rastreamento genAI não é ativado automaticamente. Você deve habilitar explicitamente o registro automático chamando a função mlflow.<library>.autolog() apropriada para as integrações específicas que você deseja rastrear.

Python
import mlflow

mlflow.smolagents.autolog()

from smolagents import CodeAgent, LiteLLMModel
import mlflow

# Turn on auto tracing for Smolagents by calling mlflow.smolagents.autolog()
mlflow.smolagents.autolog()

model = LiteLLMModel(model_id="openai/gpt-4o-mini", api_key=API_KEY)
agent = CodeAgent(tools=[], model=model, add_base_tools=True)

result = agent.run(
"Could you give me the 118th number in the Fibonacci sequence?",
)

execução de seu fluxo de trabalho Smolagents como de costume. Os traços aparecerão na interface do usuário do experimento.

tokens acompanhamento uso​

MLflow logs uso de tokens para cada chamada do agente ao atributo mlflow.chat.tokenUsage. O uso total de tokens em todo o rastreamento está disponível no campo token_usage do objeto de informações de rastreamento.

Python
import json
import mlflow

mlflow.smolagents.autolog()

model = LiteLLMModel(model_id="openai/gpt-4o-mini", api_key=API_KEY)
agent = CodeAgent(tools=[], model=model, add_base_tools=True)

result = agent.run(
"Could you give me the 118th number in the Fibonacci sequence?",
)

# Get the trace object just created
last_trace_id = mlflow.get_last_active_trace_id()
trace = mlflow.get_trace(trace_id=last_trace_id)

# Print the token usage
total_usage = trace.info.token_usage
print("== Total token usage: ==")
print(f" Input tokens: {total_usage['input_tokens']}")
print(f" Output tokens: {total_usage['output_tokens']}")
print(f" Total tokens: {total_usage['total_tokens']}")

# Print the token usage for each LLM call
print("\n== Detailed usage for each LLM call: ==")
for span in trace.data.spans:
if usage := span.get_attribute("mlflow.chat.tokenUsage"):
print(f"{span.name}:")
print(f" Input tokens: {usage['input_tokens']}")
print(f" Output tokens: {usage['output_tokens']}")
print(f" Total tokens: {usage['total_tokens']}")

Desativar o rastreamento automático​

Desative com mlflow.smolagents.autolog(disable=True) ou globalmente com mlflow.autolog(disable=True).