Neste documento, descrevemos as etapas para instrumentar um agente LangGraph ReAct com o OpenTelemetry, permitindo a coleta de telemetria do agente. Os comandos do usuário e as respostas e opções do agente são incluídos na telemetria como atributos anexados a intervalos. As respostas do agente também são incluídas nas entradas de registro correlacionadas com intervalos 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 seu aplicativo de IA generativa para coletar telemetria
Para instrumentar seu aplicativo de IA generativa e 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 exportação do OpenTelemetry:
pip install 'opentelemetry-instrumentation-vertexai>=2.0b0' \
'opentelemetry-instrumentation-sqlite3' \
'opentelemetry-exporter-gcp-logging' \
'opentelemetry-exporter-gcp-monitoring' \
'opentelemetry-exporter-otlp-proto-grpc'
Os dados de registros e métricas são enviados ao seu 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 rastreamento são enviados para Google Cloud usando a
API Telemetry (OTLP), que é compatível com o 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 Telemetry (OTLP).
Configurar o OpenTelemetry para coletar e enviar telemetria
No código de inicialização do seu agente LangGraph, configure o OpenTelemetry para capturar e enviar telemetria ao seu 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 LangGraph, crie um intervalo personalizado em torno da invocação do agente:
Para ver o exemplo completo, clique em more_vert Mais e selecione Ver no GitHub.
Talvez você queira incluir o código anterior em lugares importantes do código do aplicativo.
Para saber mais sobre como adicionar intervalos e métricas personalizados, consulte Adicionar rastreamentos e métricas personalizados ao seu app.
Executar a amostra
Esta amostra é um agente do LangGraph instrumentado com o OpenTelemetry para enviar traces e registros com comandos e respostas de IA generativa, além de métricas para seu projetoGoogle Cloud .
Perfil do agente LangGraph
O agente LangGraph é definido como um especialista em SQL com acesso total a um banco de dados SQLite efêmero. O agente é implementado com o agente ReAct pré-criado do LangGraph 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.
-
Para ter as permissões necessárias para que os aplicativos de exemplo gravem dados de registros, métricas e rastreamentos, 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 (
-
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 a amostra:
python -m venv venv/ source venv/bin/activate pip install -r requirements.txt python main.py
O aplicativo vai mostrar 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 de SQL >> e pressione Enter.
As ações realizadas pelo agente são exibidas no Cloud Shell.
A seguir, ilustramos exemplos de 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
.-
Visualizador de registros (
roles/logging.viewer
) -
Leitor do Monitoring (
roles/monitoring.viewer
) -
Usuário do Cloud Trace (
roles/cloudtrace.user
) -
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 intervalo e
invoke agent
.A seção Executar exemplo incluiu uma execução de exemplo em que dois comandos são enviados ao aplicativo. A imagem a seguir ilustra a página do Trace Explorer após a filtragem dos dados:
Se você nunca usou o Cloud Trace, o Google Cloud Observability precisa criar um banco de dados para armazenar seus dados de rastreamento. A criação do banco de dados pode levar alguns minutos. Durante esse período, nenhum dado de rastreamento fica disponível para visualização.
Para analisar os dados de período e de registro, selecione um período na tabela Períodos.
A página Detalhes é aberta. Essa página mostra o rastreamento associado e seus intervalos. A tabela na página mostra informações detalhadas sobre o intervalo selecionado. Essas informações incluem o seguinte:
A guia GenAI mostra eventos de agentes de IA generativa. Para saber mais sobre esses eventos, consulte Ver eventos de IA generativa.
A captura de tela a seguir ilustra um rastreamento em que um período tem o nome
invoke_agent
. Esse intervalo invoca o Gemini. O período do Gemini inclui eventos de IA generativa:A guia Registros e eventos lista as entradas de registro e os eventos associados ao período. Se quiser ver os dados de registro no Explorador de registros, selecione Ver registros na barra de ferramentas dessa guia.
Os dados de registro incluem a resposta do agente do LangGraph. Por exemplo, na execução de amostra, 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 } ... }
Executar amostra
Para executar a amostra:
As ações realizadas por agentes de IA generativa não são deterministas, então você pode receber uma resposta diferente para o mesmo comando.
Ver os traces, métricas e registros
Nesta seção, descrevemos como visualizar eventos de IA generativa.
Antes de começar
Para ter as permissões necessárias para visualizar seus dados de registros, métricas e rastreamentos, peça ao administrador para conceder a você os seguintes papéis do IAM no projeto:
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.
Ver telemetria
Para conferir os eventos de IA generativa, use a página Explorador de traces:
A amostra é instrumentada para enviar dados de métricas ao seu projeto Google Cloud , mas não gera nenhuma métrica.