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.

API chave : Verifique se o provedor LLM API key está configurado. Para ambientes de produção, use segredosMosaic AI Gateway ou Databricks em vez de valores codificados para um gerenciamento seguro API key .

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

Exemplo de uso

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).