Questo documento descrive i passaggi per instrumentare un agente LangGraph ReAct con OpenTelemetry, consentendo la raccolta di dati di telemetria dall'agente. I prompt dell'utente e le risposte e le scelte dell'agente sono inclusi nei dati di telemetria come attributi collegati agli intervalli. Le risposte dell'agente sono incluse anche nelle voci di log correlate agli intervalli contenenti eventi di AI generativa. Le istruzioni riportate in questo documento si applicano quando l'agente utilizza ChatVertexAI di Langchain per chiamare un modello Gemini.
Le applicazioni che utilizzano un agente LangGraph ReAct possono anche raccogliere prompt e risposte multimodali. Questo documento descrive come raccogliere prompt e risposte di testo. Se vuoi raccogliere dati multimodali, è necessaria una configurazione aggiuntiva. Per saperne di più, consulta Raccogliere e visualizzare prompt e risposte multimodali.
Instrumentare l'applicazione di AI generativa per raccogliere dati di telemetria
Per instrumentare l'applicazione di AI generativa per raccogliere dati di log, metriche e tracce:
- Installa i pacchetti OpenTelemetry
- Configura OpenTelemetry per raccogliere e inviare dati di telemetria
- Traccia l'invocazione dell'agente AI generativa
Installa i pacchetti OpenTelemetry
Aggiungi i seguenti pacchetti di instrumentazione ed esportazione OpenTelemetry:
uv add 'opentelemetry-instrumentation-vertexai>=2.0b0' \
'opentelemetry-instrumentation-sqlite3' \
'opentelemetry-exporter-gcp-logging' \
'opentelemetry-exporter-otlp-proto-grpc'
I dati di log e metriche vengono inviati al tuo Google Cloud progetto utilizzando l'
API Cloud Logging o l'API Cloud Monitoring. La
opentelemetry-exporter-gcp-logging libreria richiama
gli endpoint di queste API.
I dati di Trace e metriche vengono inviati a Google Cloud utilizzando l'
API Telemetry (OTLP), che implementa il
protocollo OpenTelemetry Line.
La opentelemetry-exporter-otlp-proto-grpc libreria
richiama l'endpoint API Telemetry (OTLP).
I dati di traccia vengono archiviati in un formato generalmente coerente con i file proto definiti dal protocollo OpenTelemetry Line. Tuttavia, i campi potrebbero essere convertiti da un tipo di dati specifico di OpenTelemetry a un tipo di dati JSON prima dell'archiviazione. Per saperne di più sul formato di archiviazione, consulta Schema per i dati di traccia.
Configura OpenTelemetry per raccogliere e inviare dati di telemetria
All'interno del codice di inizializzazione dell'agente LangGraph, configura OpenTelemetry per acquisire e inviare dati di telemetria al tuo Google Cloud progetto:
Per visualizzare l'esempio completo, nella barra degli strumenti dell'esempio seleziona il logo di GitHub.
Trace la chiamata dell'agente AI generativa
Per tracciare l'esecuzione della chiamata dell'agente LangGraph, crea un intervallo personalizzato intorno alla chiamata dell'agente:
Per visualizzare l'esempio completo, nella barra degli strumenti dell'esempio seleziona il logo di GitHub.
Potresti voler includere il codice precedente in posizioni chiave nel codice dell'applicazione.
Per saperne di più sull'aggiunta di intervalli e metriche personalizzati, consulta Aggiungere tracce e metriche personalizzate all'app.
Esegui l'esempio
Questo esempio è un agente LangGraph instrumentato con OpenTelemetry per inviare tracce e log con prompt e risposte di AI generativa e metriche al tuo Google Cloud progetto.
Persona dell'agente LangGraph
L'agente LangGraph è definito come un esperto di SQL che ha accesso completo a un database SQLite temporaneo. L'agente viene implementato con l' agente ReAct predefinito di LangGraph e accede al database, inizialmente vuoto, utilizzando SQLDatabaseToolkit.
Prima di iniziare
- Accedi al tuo Google Cloud account. Se non hai mai utilizzato Google Cloud, crea un account per valutare il rendimento dei nostri prodotti in scenari reali. I nuovi clienti ricevono anche 300 $di crediti senza costi per eseguire, testare e implementare i carichi di lavoro.
-
Installa Google Cloud CLI.
-
Se utilizzi un provider di identità (IdP) esterno, devi prima accedere a gcloud CLI con la tua identità federata.
-
Per inizializzare gcloud CLI, esegui questo comando:
gcloud init -
Crea o seleziona un Google Cloud progetto.
Ruoli richiesti per selezionare o creare un progetto
- Seleziona un progetto: la selezione di un progetto non richiede un ruolo IAM specifico. Puoi selezionare qualsiasi progetto su cui ti è stato concesso un ruolo.
-
Crea un progetto: per creare un progetto, devi disporre del ruolo Autore progetto
(
roles/resourcemanager.projectCreator), che contiene l'resourcemanager.projects.createautorizzazione. Scopri come concedere i ruoli.
-
Crea un Google Cloud progetto:
gcloud projects create PROJECT_ID
Sostituisci
PROJECT_IDcon un nome per il Google Cloud progetto che stai creando. -
Seleziona il Google Cloud progetto che hai creato:
gcloud config set project PROJECT_ID
Sostituisci
PROJECT_IDcon il nome del tuo Google Cloud progetto.
-
Verifica che la fatturazione sia abilitata per il tuo Google Cloud progetto.
Abilita le API Vertex AI, Service Usage, Telemetry, Cloud Logging, Cloud Monitoring e Cloud Trace:
Ruoli richiesti per abilitare le API
Per abilitare le API, devi disporre dell'autorizzazione
serviceusage.services.enable. Se hai creato il progetto, probabilmente hai già questa autorizzazione tramite il ruolo Proprietario (roles/owner). In caso contrario, puoi ottenere questa autorizzazione tramite il ruolo Amministratore Service Usage (roles/serviceusage.serviceUsageAdmin). Scopri come concedere i ruoli.gcloud services enable aiplatform.googleapis.com
serviceusage.googleapis.com telemetry.googleapis.com logging.googleapis.com monitoring.googleapis.com cloudtrace.googleapis.com -
Installa Google Cloud CLI.
-
Se utilizzi un provider di identità (IdP) esterno, devi prima accedere a gcloud CLI con la tua identità federata.
-
Per inizializzare gcloud CLI, esegui questo comando:
gcloud init -
Crea o seleziona un Google Cloud progetto.
Ruoli richiesti per selezionare o creare un progetto
- Seleziona un progetto: la selezione di un progetto non richiede un ruolo IAM specifico. Puoi selezionare qualsiasi progetto su cui ti è stato concesso un ruolo.
-
Crea un progetto: per creare un progetto, devi disporre del ruolo Autore progetto
(
roles/resourcemanager.projectCreator), che contiene l'resourcemanager.projects.createautorizzazione. Scopri come concedere i ruoli.
-
Crea un Google Cloud progetto:
gcloud projects create PROJECT_ID
Sostituisci
PROJECT_IDcon un nome per il Google Cloud progetto che stai creando. -
Seleziona il Google Cloud progetto che hai creato:
gcloud config set project PROJECT_ID
Sostituisci
PROJECT_IDcon il nome del tuo Google Cloud progetto.
-
Verifica che la fatturazione sia abilitata per il tuo Google Cloud progetto.
Abilita le API Vertex AI, Service Usage, Telemetry, Cloud Logging, Cloud Monitoring e Cloud Trace:
Ruoli richiesti per abilitare le API
Per abilitare le API, devi disporre dell'autorizzazione
serviceusage.services.enable. Se hai creato il progetto, probabilmente hai già questa autorizzazione tramite il ruolo Proprietario (roles/owner). In caso contrario, puoi ottenere questa autorizzazione tramite il ruolo Amministratore Service Usage (roles/serviceusage.serviceUsageAdmin). Scopri come concedere i ruoli.gcloud services enable aiplatform.googleapis.com
serviceusage.googleapis.com telemetry.googleapis.com logging.googleapis.com monitoring.googleapis.com cloudtrace.googleapis.com -
Per ottenere le autorizzazioni necessarie per consentire all'applicazione di esempio di scrivere dati di log, metriche e tracce, chiedi all'amministratore di concederti i seguenti ruoli IAM nel tuo progetto:
- Cloud Telemetry Traces Writer (
roles/telemetry.tracesWriter) - Logs Writer (
roles/logging.logWriter) - Monitoring Metric Writer (
roles/monitoring.metricWriter) - Vertex AI User (
roles/aiplatform.user)
Queste autorizzazioni sono sufficienti se esegui l'esempio in Cloud Shell, su Google Cloud risorse o in un ambiente di sviluppo locale.
- Cloud Telemetry Traces Writer (
Assicurati di specificare un progetto di quota. L'API Vertex AI (
aiplatform.googleapis.com) richiede che venga specificato un progetto di quota. Per saperne di più, consulta Impostare il progetto di quota. Ad esempio, il seguente comando può impostare un progetto di quota.gcloud config set billing/quota_project PROJECT_ID
Esegui l'esempio
Per eseguire l'esempio:
In Cloud Shell, clona il repository:
git clone https://github.com/GoogleCloudPlatform/opentelemetry-samples.gitVai alla directory di esempio:
cd opentelemetry-samples/python/langgraph-sql-agentConfigura le variabili di ambiente:
# Capture GenAI prompts and responses export OTEL_INSTRUMENTATION_GENAI_CAPTURE_MESSAGE_CONTENT=true # Capture application logs automatically export OTEL_PYTHON_LOGGING_AUTO_INSTRUMENTATION_ENABLED=true # Set the location to one that supports gemini-3.5-flash export GOOGLE_CLOUD_REGION=globalSe preferisci utilizzare un modello diverso, modifica
main.py. Assicurati che il modello supporti la località specificata. Per informazioni sui modelli, consulta Modelli Google.Crea un ambiente virtuale ed esegui l'esempio:
uv run main.pyL'applicazione visualizza un messaggio simile al seguente:
Starting agent using ephemeral SQLite DB.Per creare un database, inserisci un valore al prompt Talk to the SQL agent >> e premi Invio.
Le azioni intraprese dall'agente vengono quindi visualizzate in Cloud Shell.
Di seguito sono riportate le interazioni di esempio tra un utente e l'applicazione:
Talk to the SQL agent >> Create a new table to hold weather data. 👤 User: Create a new table to hold weather data. 🤖 Agent: Okay, I'll create a table to hold weather data. First, I need to decide on the schema for the table. I'll include columns for date, location, temperature, humidity, and precipitation. CREATE TABLE weather ( date DATE, location VARCHAR(255), temperature REAL, humidity REAL, precipitation REAL ); 🤖 Agent: I have created the weather table. 👤 User: Add altitude to the table. 🤖 Agent ALTER TABLE weather ADD COLUMN altitude REAL;Per uscire, inserisci
Ctrl-C.
Le azioni eseguite dagli agenti di AI generativa non sono deterministiche, quindi potresti visualizzare una risposta diversa per lo stesso prompt.
Visualizza tracce, metriche e log
Questa sezione descrive come visualizzare gli eventi di AI generativa.
Prima di iniziare
Per ottenere le autorizzazioni necessarie per visualizzare i dati di log, metriche e tracce, chiedi all'amministratore di concederti i seguenti ruoli IAM nel tuo progetto:
- Visualizzatore log (
roles/logging.viewer) - Monitoring Viewer (
roles/monitoring.viewer) - Utente Cloud Trace (
roles/cloudtrace.user)
Per saperne di più sulla concessione dei ruoli, consulta Gestisci l'accesso a progetti, cartelle e organizzazioni.
Potresti anche riuscire a ottenere le autorizzazioni richieste tramite i ruoli personalizzati o altri ruoli predefiniti.
Visualizza i dati di telemetria
Per visualizzare gli eventi di AI generativa, utilizza la pagina Esplora tracce:
-
Nella Google Cloud console, vai alla
Esplora tracce pagina:
Puoi trovare questa pagina anche utilizzando la barra di ricerca.
Nella barra degli strumenti, seleziona Aggiungi filtro, seleziona Nome intervallo e poi seleziona
invoke agent.La sezione Esegui l'esempio includeva un'esecuzione di esempio in cui vengono inviati due prompt all'applicazione. Di seguito è illustrata la pagina Esplora tracce dopo aver filtrato i dati:
Se non hai mai utilizzato Cloud Trace, Google Cloud Observability deve creare un database per archiviare i dati di traccia. La creazione del database può richiedere alcuni minuti e, durante questo periodo, non è possibile visualizzare i dati di traccia.
Per esplorare i dati di intervallo e log, seleziona un intervallo nella tabella Intervalli.
Viene visualizzata la pagina Dettagli. Questa pagina mostra la traccia associata e i relativi intervalli. La tabella nella pagina mostra informazioni dettagliate per l'intervallo selezionato. Queste informazioni includono:
La scheda Input/Output mostra gli eventi per gli agenti di AI generativa. Per saperne di più su questi eventi, consulta Visualizzare gli eventi di AI generativa.
Lo screenshot seguente illustra una traccia, in cui un intervallo ha il nome
invoke_agent. Questo intervallo richiama Gemini. L'intervallo Gemini include eventi di AI generativa:
La scheda Log ed eventi elenca le voci di log e gli eventi associati all'intervallo. Se vuoi visualizzare i dati di log in Esplora log, seleziona Visualizza log nella barra degli strumenti di questa scheda.
I dati di log includono la risposta dell'agente LangGraph. Ad esempio, per l'esecuzione di esempio, il payload JSON include i seguenti contenuti:
{ logName: "projects/my-project/logs/otel_python_inprocess_log_name_temp" jsonPayload: { message: { role: "model" content: [ 0: { text: "Okay, I'll create a table to hold weather data. First, I need to decide on the schema for the table. I'll include columns for date, location, temperature, humidity, and precipitation. CREATE TABLE weather ( date DATE, location VARCHAR(255), temperature REAL, humidity REAL, precipitation REAL ); " } ] } index: 0 } ... }
L'esempio è instrumentato per inviare dati di metriche al tuo Google Cloud progetto, ma non genera metriche.