Rastreando o AutoGen

O AutoGen é uma estrutura de código aberto para a criação de sistemas de agentes AI orientados por eventos, distribuídos, dimensionáveis e resilientes.
O MLflow Tracing oferece recursos de rastreamento automático para o AutoGen, uma estrutura de código aberto para múltiplos agentes. Ao ativar o rastreamento automático
para AutoGen, chamando a função mlflow.autogen.autolog , o MLflow irá capturar rastreamentos aninhados e log -los para o MLflow Experiment ativo após a execução dos agentes.
import mlflow
mlflow.autogen.autolog()
MLflow captura as seguintes informações sobre a execução de vários agentes:
- Qual agente é chamado em turnos diferentes
 - Mensagens passadas entre agentes
 - Chamadas de LLM e ferramentas feitas por cada agente, organizadas por agente e turno
 - Latências
 - Qualquer exceção, se levantada
 
Em serverless compute clusters, o autologging não é ativado automaticamente. Você deve chamar explicitamente mlflow.autogen.autolog() para ativar o rastreamento automático para essa integração.
Pré-requisitos
Para usar o MLflow Tracing com o AutoGen, o senhor precisa instalar o MLflow e a biblioteca pyautogen.
- Development
 - Production
 
Para ambientes de desenvolvimento, instale o pacote completo do MLflow com os extras do Databricks e pyautogen:
pip install --upgrade "mlflow[databricks]>=3.1" pyautogen
O pacote completo do mlflow[databricks] inclui todos os recursos para desenvolvimento local e experimentação no Databricks.
Para implantações de produção, instale mlflow-tracing e pyautogen:
pip install --upgrade mlflow-tracing pyautogen
O pacote mlflow-tracing é otimizado para uso na produção.
O MLflow 3 é altamente recomendado para obter a melhor experiência de rastreamento com o AutoGen.
Antes de executar os exemplos, você precisará configurar seu ambiente:
Para usuários fora do Databricks Notebook : Defina seu Databricks variável de ambiente:
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.
OpenAI API key : Certifique-se de que seu API key esteja configurado. Para uso em produção, recomendamos o uso de Mosaic AI Gateway ou Databricks secrets em vez de variável de ambiente:
export OPENAI_API_KEY="your-openai-api-key"
Exemplo básico
import os
from typing import Annotated, Literal
from autogen import ConversableAgent
import mlflow
# Ensure your OPENAI_API_KEY (or other LLM provider keys) is set in your environment
# os.environ["OPENAI_API_KEY"] = "your-openai-api-key" # Uncomment and set if not globally configured
# Turn on auto tracing for AutoGen
mlflow.autogen.autolog()
# Set up MLflow tracking on Databricks
mlflow.set_tracking_uri("databricks")
mlflow.set_experiment("/Shared/autogen-tracing-demo")
# Define a simple multi-agent workflow using AutoGen
config_list = [
    {
        "model": "gpt-4o-mini",
        # Please set your OpenAI API Key to the OPENAI_API_KEY env var before running this example
        "api_key": os.environ.get("OPENAI_API_KEY"),
    }
]
Operator = Literal["+", "-", "*", "/"]
def calculator(a: int, b: int, operator: Annotated[Operator, "operator"]) -> int:
    if operator == "+":
        return a + b
    elif operator == "-":
        return a - b
    elif operator == "*":
        return a * b
    elif operator == "/":
        return int(a / b)
    else:
        raise ValueError("Invalid operator")
# First define the assistant agent that suggests tool calls.
assistant = ConversableAgent(
    name="Assistant",
    system_message="You are a helpful AI assistant. "
    "You can help with simple calculations. "
    "Return 'TERMINATE' when the task is done.",
    llm_config={"config_list": config_list},
)
# The user proxy agent is used for interacting with the assistant agent
# and executes tool calls.
user_proxy = ConversableAgent(
    name="Tool Agent",
    llm_config=False,
    is_termination_msg=lambda msg: msg.get("content") is not None
    and "TERMINATE" in msg["content"],
    human_input_mode="NEVER",
)
# Register the tool signature with the assistant agent.
assistant.register_for_llm(name="calculator", description="A simple calculator")(
    calculator
)
user_proxy.register_for_execution(name="calculator")(calculator)
response = user_proxy.initiate_chat(
    assistant, message="What is (44231 + 13312 / (230 - 20)) * 4?"
)
Para ambientes de produção, sempre use os segredos do Mosaic AI Gateway ou do Databricks em vez de valores codificados.
Desativar o rastreamento automático
O rastreamento automático do AutoGen pode ser desativado globalmente chamando mlflow.autogen.autolog(disable=True) ou mlflow.autolog(disable=True).