Cómo hacer un seguimiento de un agente

En esta página, se muestra cómo habilitar Cloud Trace en tu agente y ver los seguimientos para analizar los tiempos de respuesta de las consultas y las operaciones ejecutadas.

Un seguimiento es un cronograma de solicitudes a medida que tu agente responde a cada consulta. Por ejemplo, en el siguiente gráfico de Gantt, se muestra un seguimiento de muestra de un LangchainAgent:

Seguimiento de muestra de una consulta 

La primera fila del diagrama de Gantt es para el seguimiento. Un seguimiento se compone de intervalos individuales, que representan una sola unidad de trabajo, como una llamada a función o una interacción con un LLM, y el primer intervalo representa la solicitud general. Cada intervalo proporciona detalles sobre una operación específica, como su nombre, los tiempos de inicio y finalización, y cualquier atributo relevante dentro de la solicitud. Por ejemplo, el siguiente JSON muestra un solo intervalo que representa una llamada a un modelo grande de lenguaje (LLM):

  {
    "name": "llm",
    "context": {
        "trace_id": "ed7b336d-e71a-46f0-a334-5f2e87cb6cfc",
        "span_id": "ad67332a-38bd-428e-9f62-538ba2fa90d4"
    },
    "span_kind": "LLM",
    "parent_id": "f89ebb7c-10f6-4bf8-8a74-57324d2556ef",
    "start_time": "2023-09-07T12:54:47.597121-06:00",
    "end_time": "2023-09-07T12:54:49.321811-06:00",
    "status_code": "OK",
    "status_message": "",
    "attributes": {
        "llm.input_messages": [
            {
                "message.role": "system",
                "message.content": "You are an expert Q&A system that is trusted around the world.\nAlways answer the query using the provided context information, and not prior knowledge.\nSome rules to follow:\n1. Never directly reference the given context in your answer.\n2. Avoid statements like 'Based on the context, ...' or 'The context information ...' or anything along those lines."
            },
            {
                "message.role": "user",
                "message.content": "Hello?"
            }
        ],
        "output.value": "assistant: Yes I am here",
        "output.mime_type": "text/plain"
    },
    "events": [],
  }

Para obtener más información, consulta la documentación de Cloud Trace sobre seguimientos y tramos y contexto de seguimiento.

Cómo escribir registros para un agente

Para escribir registros de un agente, haz lo siguiente:

ADK

Para habilitar el seguimiento de AdkApp, especifica enable_tracing=True cuando desarrolles un agente del kit de desarrollo de agentes. Por ejemplo:

  from vertexai.preview.reasoning_engines import AdkApp
  from google.adk.agents import Agent

  agent = Agent(
      model=model,
      name=agent_name,
      tools=[get_exchange_rate],
  )

  app = AdkApp(
      agent=agent,          # Required.
      enable_tracing=True,  # Optional.
  )

LangchainAgent

Para habilitar el seguimiento de LangchainAgent, especifica enable_tracing=True cuando desarrolles un agente de LangChain. Por ejemplo:

from vertexai.preview.reasoning_engines import LangchainAgent

agent = LangchainAgent(
    model=model,                # Required.
    tools=[get_exchange_rate],  # Optional.
    enable_tracing=True,        # [New] Optional.
)

LanggraphAgent

Para habilitar el seguimiento de LanggraphAgent, especifica enable_tracing=True cuando desarrolles un agente de LangGraph. Por ejemplo:

from vertexai.preview.reasoning_engines import LanggraphAgent

agent = LanggraphAgent(
    model=model,                # Required.
    tools=[get_exchange_rate],  # Optional.
    enable_tracing=True,        # [New] Optional.
)

LlamaIndex

Para habilitar el seguimiento de LlamaIndexQueryPipelineAgent, especifica enable_tracing=True cuando desarrolles un agente de LlamaIndex. Por ejemplo:

from vertexai.preview import reasoning_engines

  def runnable_with_tools_builder(model, runnable_kwargs=None, **kwargs):
      from llama_index.core.query_pipeline import QueryPipeline
      from llama_index.core.tools import FunctionTool
      from llama_index.core.agent import ReActAgent

      llama_index_tools = []
      for tool in runnable_kwargs.get("tools"):
          llama_index_tools.append(FunctionTool.from_defaults(tool))
      agent = ReActAgent.from_tools(llama_index_tools, llm=model, verbose=True)
      return QueryPipeline(modules = {"agent": agent})

  agent = reasoning_engines.LlamaIndexQueryPipelineAgent(
      model="gemini-2.0-flash",
      runnable_kwargs={"tools": [get_exchange_rate]},
      runnable_builder=runnable_with_tools_builder,
      enable_tracing=True,        # Optional
  )

Personalizado

Para habilitar el seguimiento de agentes personalizados, consulta Registros con OpenTelemetry para obtener más información.

Esta acción exportará seguimientos a Cloud Trace en el proyecto en Configura tu proyecto de Google Cloud.

Cómo ver los seguimientos de un agente

Puedes ver tus seguimientos con el Explorador de seguimiento:

  1. Para obtener los permisos para ver los datos de seguimiento en la consola de Google Cloud o seleccionar un alcance de seguimiento, pídele a tu administrador que te otorgue el rol de IAM de Usuario de Cloud Trace (roles/cloudtrace.user) en tu proyecto.

  2. Ve al Explorador de seguimiento en la consola de Google Cloud:

    Ir al Explorador de seguimiento

  3. Selecciona tu Google Cloud proyecto (que corresponde a PROJECT_ID) en la parte superior de la página.

Para obtener más información, consulta la documentación de Cloud Trace.

Cuotas y límites

Algunos valores de atributos pueden truncarse cuando alcancen los límites de cuota. Para obtener más información, consulta Cuota de Cloud Trace.

Precios

Cloud Trace tiene un nivel gratuito. Para obtener más información, consulta Precios de Cloud Trace.