Monitorare un agente

Questa pagina mostra come attivare Cloud Trace sul tuo agente e visualizzare le tracce per analizzare i tempi di risposta alle query e le operazioni eseguite.

Una traccia è una sequenza temporale di richieste mentre l'agente risponde a ogni query. Ad esempio, il seguente grafico di Gantt mostra una traccia di esempio di un LangchainAgent:

Esempio di traccia per una query 

La prima riga del grafico di Gantt è per la traccia. Una traccia è composta da singoli span, che rappresentano una singola unità di lavoro, come una chiamata di funzione o un'interazione con un LLM, con il primo span che rappresenta la richiesta complessiva. Ogni intervallo fornisce dettagli su un'operazione specifica, ad esempio il nome, l'ora di inizio e di fine e gli attributi pertinenti all'interno della richiesta. Ad esempio, il seguente JSON mostra un singolo span che rappresenta una chiamata a un modello linguistico di grandi dimensioni (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": [],
  }

Per maggiori dettagli, consulta la documentazione di Cloud Trace su Tracce e intervalli e Contesto di traccia.

Scrivere tracce per un agente

Per scrivere tracce per un agente:

ADK

Per attivare la tracciabilità per AdkApp, specifica enable_tracing=True quando sviluppi un agente Agent Development Kit. Ad esempio:

  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

Per attivare la tracciabilità per LangchainAgent, specifica enable_tracing=True quando sviluppi un agente LangChain. Ad esempio:

from vertexai.preview.reasoning_engines import LangchainAgent

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

LanggraphAgent

Per attivare la tracciabilità per LanggraphAgent, specifica enable_tracing=True quando sviluppi un agente LangGraph. Ad esempio:

from vertexai.preview.reasoning_engines import LanggraphAgent

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

LlamaIndex

Per attivare la tracciabilità per LlamaIndexQueryPipelineAgent, specifica enable_tracing=True quando sviluppi un agente LlamaIndex. Ad esempio:

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
  )

Personalizzato

Per attivare la tracciabilità per gli agenti personalizzati, visita la pagina Tracciabilità con OpenTelemetry per maggiori dettagli.

In questo modo, le tracce verranno esportate in Cloud Trace nel progetto in Configura il tuo progetto Google Cloud .

Visualizzare le tracce per un agente

Puoi visualizzare le tue tracce utilizzando Esplora tracce:

  1. Per ottenere le autorizzazioni per visualizzare i dati di traccia nella console Google Cloud o selezionare un ambito di traccia, chiedi all'amministratore di concederti il ruolo IAM Utente Cloud Trace (roles/cloudtrace.user) nel progetto.

  2. Vai a Esplora tracce nella console Google Cloud :

    Vai a Trace Explorer

  3. Seleziona il tuo progetto Google Cloud (corrispondente a PROJECT_ID) nella parte superiore della pagina.

Per saperne di più, consulta la documentazione di Cloud Trace.

Quote e limiti

Alcuni valori degli attributi potrebbero essere troncati quando raggiungono i limiti di quota. Per maggiori informazioni, consulta Quota di Cloud Trace.

Prezzi

Cloud Trace ha un livello gratuito. Per maggiori informazioni, consulta la pagina Prezzi di Cloud Trace.