Este documento descreve as etapas para instrumentar um LangGraph ReAct Agent com o OpenTelemetry, permitindo a coleta de telemetria do agente. As solicitações do usuário e as respostas e escolhas do agente são incluídas na telemetria como atributos anexados a spans. As respostas do agente também são incluídas nas entradas de registro que estão relacionadas a spans que contêm eventos de IA generativa. As instruções neste documento se aplicam quando o agente usa o ChatVertexAI do Langchain para chamar um modelo do Gemini.
Instrumentar o aplicativo de IA generativa para coletar telemetria
Para instrumentar o aplicativo de IA generativa para coletar dados de registro, métrica e rastreamento, faça o seguinte:
- Instalar pacotes do OpenTelemetry
- Configurar o OpenTelemetry para coletar e enviar telemetria
- Rastrear a invocação do agente de IA generativa
Instalar pacotes do OpenTelemetry
Adicione os seguintes pacotes de instrumentação e exportador do OpenTelemetry:
pip install 'opentelemetry-instrumentation-vertexai>=2.0b0' \
'opentelemetry-instrumentation-sqlite' \
'opentelemetry-exporter-gcp-logging' \
'opentelemetry-exporter-gcp-monitoring' \
'opentelemetry-exporter-otlp-proto-grpc'
Os dados de registro e métrica são enviados ao projeto Google Cloud usando a
API Cloud Logging ou a API Cloud Monitoring. As bibliotecas
opentelemetry-exporter-gcp-logging
e
opentelemetry-exporter-gcp-monitoring
invocam
endpoints nessas APIs.
Os dados de trace são enviados para Google Cloud usando a
API Telemetry (OTLP), que oferece suporte ao formato OTLP.
Os dados recebidos por esse endpoint também são armazenados no formato OTLP.
A biblioteca opentelemetry-exporter-otlp-proto-grpc
invoca o endpoint de API de telemetria (OTLP).
Configurar o OpenTelemetry para coletar e enviar telemetria
No código de inicialização do agente do LangGraph, configure o OpenTelemetry para capturar e enviar a telemetria ao projeto Google Cloud :
Para ver o exemplo completo, clique em more_vert Mais e selecione Ver no GitHub.
Rastrear a invocação do agente de IA generativa
Para rastrear a execução da invocação do agente do LangGraph, crie um período personalizado em torno da invocação do agente:
Para ver o exemplo completo, clique em more_vert Mais e selecione Ver no GitHub.
Talvez seja necessário incluir o código anterior em lugares importantes do código do aplicativo.
Para saber mais sobre como adicionar spans e métricas personalizadas, consulte Adicionar rastros e métricas personalizados ao seu app.
Executar a amostra
Este exemplo é um agente do LangGraph instrumentado com o OpenTelemetry para enviar rastros e registros com comandos e respostas de IA generativa e métricas para o projetoGoogle Cloud .
Perfil do agente do LangGraph
O agente LangGraph é definido como um especialista em SQL que tem acesso total a um banco de dados SQLite temporário. O agente é implementado com o LangGraph prebuilt ReAct Agent e acessa o banco de dados, que está inicialmente vazio, usando o SQLDatabaseToolkit.
Antes de começar
-
In the Google Cloud console, activate Cloud Shell.
At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.
-
Enable the Vertex AI, Telemetry, Cloud Logging, Cloud Monitoring, and Cloud Trace APIs:
gcloud services enable aiplatform.googleapis.com
telemetry.googleapis.com logging.googleapis.com monitoring.googleapis.com cloudtrace.googleapis.com -
Para receber as permissões necessárias para que os aplicativos de exemplo gravem dados de registro, métricas e rastreamento, peça ao administrador para conceder a você os seguintes papéis do IAM no projeto:
-
Gravador de traces de telemetria do Cloud (
roles/telemetry.tracesWriter
) -
Gravador de registros (
roles/logging.logWriter
) -
Gravador de métricas do Monitoring (
roles/monitoring.metricWriter
) -
Usuário da Vertex AI (
roles/aiplatform.user
)
-
Gravador de traces de telemetria do Cloud (
Executar amostra
Para executar a amostra:
-
In the Google Cloud console, activate Cloud Shell.
At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.
Clone o repositório:
git clone https://github.com/GoogleCloudPlatform/opentelemetry-operations-python.git
Acesse o diretório da amostra:
cd opentelemetry-operations-python/samples/langgraph-sql-agent
Configure as variáveis de 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
Crie um ambiente virtual e execute o exemplo:
python -m venv venv/ source venv/bin/activate pip install -r requirements.txt python main.py
O aplicativo mostra uma mensagem semelhante a esta:
Starting agent using ephemeral SQLite DB.
Para criar um banco de dados, insira um valor no comando Fale com o agente do SQL >> e pressione Enter.
As ações realizadas pelo agente são exibidas no Cloud Shell.
O exemplo a seguir ilustra interações entre um usuário e o aplicativo:
Talk to the SQL agent >> Create a new table to hold weather data. 👤 User: Create a new table to hold weather data. 🤖 Agent: I need to know what columns the table should have. What information about the weather do you want to store? For example, I could include columns for date, location, temperature, humidity, and precipitation. Talk to the SQL agent >> Create a new table to hold weather data. Include date, location, temperature, humidity, and precipitation. 👤 User: Create a new table to hold weather data. Include date, location, temperature, humidity, and precipitation. 🤖 Agent CREATE TABLE weather ( date DATE, location VARCHAR(255), temperature REAL, humidity REAL, precipitation REAL );
Para sair, insira
Ctrl-C
.
As ações realizadas por agentes de IA generativa não são determinísticas. Portanto, você pode receber uma resposta diferente para o mesmo comando.
Visualizar os traces, as métricas e os registros
Esta seção descreve como visualizar eventos de IA generativa.
Antes de começar
Para ter as permissões necessárias para visualizar seus dados de registro, métrica e rastreamento, peça ao administrador para conceder a você os seguintes papéis do IAM no projeto:
-
Visualizador de registros (
roles/logging.viewer
) -
Leitor do Monitoring (
roles/monitoring.viewer
) -
Usuário do Cloud Trace (
roles/cloudtrace.user
)
Para mais informações sobre a concessão de papéis, consulte Gerenciar o acesso a projetos, pastas e organizações.
Também é possível conseguir as permissões necessárias por meio de papéis personalizados ou de outros papéis predefinidos.
Conferir a telemetria
Para conferir os eventos de IA generativa, use a página Trace Explorer:
-
No console Google Cloud , acesse a página Explorador de traces:
Acessar o Explorador de traces
Também é possível encontrar essa página usando a barra de pesquisa.
Na barra de ferramentas, selecione Adicionar filtro, Nome do span e
invoke agent
.A seção Run sample incluiu uma execução de exemplo em que duas solicitações são enviadas ao aplicativo. A ilustração a seguir mostra a página Trace Explorer após a filtragem dos dados:
Se você nunca usou o Cloud Trace, a Observabilidade do Google Cloud precisa criar um banco de dados para armazenar os dados de trace. A criação do banco de dados pode levar alguns minutos. Durante esse período, nenhum dado de rastreamento está disponível para visualização.
Para analisar os dados de período e registro, selecione um período na tabela Períodos.
A página Detalhes é aberta. Essa página mostra o rastro associado e os intervalos dele. A tabela na página mostra informações detalhadas sobre o período selecionado. Essas informações incluem:
A guia GenAI mostra eventos para agentes de IA generativa. Para saber mais sobre esses eventos, consulte Conferir eventos de IA generativa.
A captura de tela a seguir ilustra um trace em que um período tem o nome
invoke_agent
. Esse período invoca o Gemini. O período do Gemini inclui eventos de IA generativa:A guia Logs e eventos lista as entradas de registro e os eventos associados ao período. Se você quiser conferir os dados de registro no Análise de registros, selecione Visualizar registros na barra de ferramentas dessa guia.
Os dados de registro incluem a resposta do agente do LangGraph. Por exemplo, para a execução de exemplo, o payload JSON inclui o seguinte conteúdo:
{ logName: "projects/my-project/logs/otel_python_inprocess_log_name_temp" jsonPayload: { finish_reason: "stop" message: { role: "model" content: [ 0: { text: "I need to know what columns the table should have. What information about the weather do you want to store? For example, I could include columns for date, location, temperature, humidity, and precipitation." } ] } index: 0 } ... }
O exemplo atual é instrumentado para enviar dados de métricas ao projeto Google Cloud , mas não gera nenhuma métrica.