En este documento, se describe cómo instrumentar un agente de IA creado con el framework del Kit de desarrollo de agentes (ADK). Esta instrumentación, que aprovecha OpenTelemetry, te permite recopilar prompts del usuario, respuestas del agente y opciones del agente.
El marco de trabajo del ADK se instrumenta con OpenTelemetry, que captura la telemetría de los pasos clave en la ejecución de tu agente. Esto proporciona una valiosa observabilidad de la aplicación lista para usar. Sin embargo, es posible que esta observabilidad no sea suficiente para el caso de uso de tu aplicación. Puedes agregar bibliotecas de instrumentación adicionales con OpenTelemetry para capturar la telemetría de otras partes de tu app o tu propia instrumentación personalizada para capturar datos específicos de la aplicación y obtener una observabilidad más detallada.
Por ejemplo, en tu aplicación, podrías escribir código de instrumentación para hacer lo siguiente:
- Realizar un seguimiento del consumo de recursos de las herramientas invocadas por el agente
- Realiza un seguimiento de los errores de validación específicos de la aplicación, los incumplimientos de reglas comerciales o los mecanismos personalizados de recuperación de errores.
- Realiza un seguimiento de las puntuaciones de calidad de las respuestas de los agentes según tus criterios específicos del dominio.
Instrumenta tu aplicación de IA generativa para recopilar telemetría
Para instrumentar tu agente de IA y recopilar datos de registros, métricas y seguimiento, haz lo siguiente:
- Instala los paquetes de OpenTelemetry
- Configura OpenTelemetry para recopilar y enviar telemetría
- Escribe un punto de entrada personalizado para insertar OpenTelemetry configurado
En el resto de esta sección, se describen los pasos anteriores.
Instala los paquetes de OpenTelemetry
Agrega los siguientes paquetes de instrumentación y exportación de OpenTelemetry:
pip install 'opentelemetry-instrumentation-google-genai' \
'opentelemetry-instrumentation-sqlite3' \
'opentelemetry-exporter-gcp-logging' \
'opentelemetry-exporter-gcp-monitoring' \
'opentelemetry-exporter-otlp-proto-grpc' \
'opentelemetry-instrumentation-vertexai>=2.0b0'
Los datos de registros y métricas se envían a tu proyecto Google Cloud a través de la API de Cloud Logging o la API de Cloud Monitoring. Las bibliotecas opentelemetry-exporter-gcp-logging
y opentelemetry-exporter-gcp-monitoring
invocan extremos en esas APIs.
Los datos de seguimiento se envían a Google Cloud con la API de Telemetry (OTLP), que implementa el protocolo OTLP de OpenTelemetry.
La biblioteca opentelemetry-exporter-otlp-proto-grpc
invoca el extremo de API de Telemetry (OTLP).
Tus datos de seguimiento se almacenan en un formato que suele ser coherente con los archivos .proto definidos por el protocolo OTLP de OpenTelemetry. Sin embargo, es posible que los campos se conviertan de un tipo de datos específico de OpenTelemetry a un tipo de datos JSON antes del almacenamiento. Para obtener más información sobre el formato de almacenamiento, consulta Esquema de los datos de seguimiento.
Configura OpenTelemetry para recopilar y enviar telemetría
En el código de inicialización de tu agente del ADK, agrega código para configurar OpenTelemetry de modo que capture y envíe telemetría a tu proyecto de Google Cloud :
Para ver la muestra completa, haz clic en more_vert Más y, luego, selecciona Ver en GitHub.
Escribe un punto de entrada personalizado para usar OpenTelemetry configurado
Para usar OpenTelemetry en la instrumentación, crea un punto de entrada personalizado para tu aplicación del ADK. El punto de entrada personalizado debe configurar OpenTelemetry antes de iniciar el agente del ADK.
En la aplicación de ejemplo, el método main
actúa como un punto de entrada personalizado que inicializa OpenTelemetry y, luego, inicia el servidor FastAPI
, que te permite interactuar con el agente.
Para ver la muestra completa, haz clic en more_vert Más y, luego, selecciona Ver en GitHub.
Descarga y ejecuta la aplicación de muestra
En este código de muestra, se implementa un agente de IA generativa creado con el ADK. El agente está instrumentado con OpenTelemetry y configurado para enviar métricas, registros y seguimientos a tu proyecto Google Cloud . La telemetría que se envía a tu proyecto incluye instrucciones y respuestas de la IA generativa.
Arquetipo de agente de ADK
El agente de IA generativa se define como un experto en SQL que tiene acceso completo a una base de datos SQLite efímera. El agente se compila con el Kit de desarrollo de agentes y accede a una base de datos con el SQLDatabaseToolkit. Inicialmente, la base de datos está vacía.
Antes de comenzar
- Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
-
Install the Google Cloud CLI.
-
Si usas un proveedor de identidad externo (IdP), primero debes acceder a gcloud CLI con tu identidad federada.
-
Para inicializar gcloud CLI, ejecuta el siguiente comando:
gcloud init
-
Create or select a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator
(
roles/resourcemanager.projectCreator
), which contains theresourcemanager.projects.create
permission. Learn how to grant roles.
-
Create a Google Cloud project:
gcloud projects create PROJECT_ID
Replace
PROJECT_ID
with a name for the Google Cloud project you are creating. -
Select the Google Cloud project that you created:
gcloud config set project PROJECT_ID
Replace
PROJECT_ID
with your Google Cloud project name.
-
Verify that billing is enabled for your Google Cloud project.
-
Enable the Vertex AI, Telemetry, Cloud Logging, Cloud Monitoring, and Cloud Trace APIs:
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin
), which contains theserviceusage.services.enable
permission. Learn how to grant roles.gcloud services enable aiplatform.googleapis.com
telemetry.googleapis.com logging.googleapis.com monitoring.googleapis.com cloudtrace.googleapis.com -
Install the Google Cloud CLI.
-
Si usas un proveedor de identidad externo (IdP), primero debes acceder a gcloud CLI con tu identidad federada.
-
Para inicializar gcloud CLI, ejecuta el siguiente comando:
gcloud init
-
Create or select a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator
(
roles/resourcemanager.projectCreator
), which contains theresourcemanager.projects.create
permission. Learn how to grant roles.
-
Create a Google Cloud project:
gcloud projects create PROJECT_ID
Replace
PROJECT_ID
with a name for the Google Cloud project you are creating. -
Select the Google Cloud project that you created:
gcloud config set project PROJECT_ID
Replace
PROJECT_ID
with your Google Cloud project name.
-
Verify that billing is enabled for your Google Cloud project.
-
Enable the Vertex AI, Telemetry, Cloud Logging, Cloud Monitoring, and Cloud Trace APIs:
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin
), which contains theserviceusage.services.enable
permission. Learn how to grant roles.gcloud services enable aiplatform.googleapis.com
telemetry.googleapis.com logging.googleapis.com monitoring.googleapis.com cloudtrace.googleapis.com Si ejecutas la muestra en Cloud Shell, en recursos de Google Cloudo en un entorno de desarrollo local, los permisos que se indican en esta sección son suficientes. En el caso de las aplicaciones de producción, por lo general, una cuenta de servicio proporciona las credenciales para escribir datos de registros, métricas y seguimientos.
Para obtener los permisos que necesitas para que la aplicación de ejemplo escriba datos de registros, métricas y seguimiento, pídele a tu administrador que te otorgue los siguientes roles de IAM en tu proyecto:
-
Escritor de registros de telemetría de Cloud (
roles/telemetry.tracesWriter
) -
Escritor de registros (
roles/logging.logWriter
) -
Escritor de métricas de Monitoring (
roles/monitoring.metricWriter
) -
Usuario de Vertex AI (
roles/aiplatform.user
)
-
Escritor de registros de telemetría de Cloud (
En Cloud Shell, ejecuta el siguiente comando:
git clone https://github.com/GoogleCloudPlatform/opentelemetry-operations-python.git
Ve al directorio de muestra:
cd opentelemetry-operations-python/samples/adk-sql-agent
Crea un entorno virtual y ejecuta la muestra:
python -m venv venv/ source venv/bin/activate pip install -r requirements.txt env $(cat opentelemetry.env | xargs) python main.py
La aplicación muestra un mensaje similar al siguiente:
Appplication startup complete Uvicorn running on http://0.0.0.0:8080
Para interactuar con el agente, abre un navegador en la dirección que se indica en el paso anterior.
Expande Selecciona un agente y selecciona
sql_agent
de la lista de agentes.-
Visor de registros (
roles/logging.viewer
) -
Visualizador de Monitoring (
roles/monitoring.viewer
) -
Usuario de Cloud Trace (
roles/cloudtrace.user
) -
En la consola de Google Cloud , ve a la página Explorador de seguimiento:
Ve al Explorador de seguimiento
También puedes usar la barra de búsqueda para encontrar esta página.
En la barra de herramientas, selecciona Agregar filtro, luego Nombre del tramo y, por último,
call_llm
.En la siguiente ilustración, se muestra la página del Explorador de seguimiento después de filtrar los datos:
Si nunca usaste Cloud Trace, Google Cloud Observability debe crear una base de datos para almacenar tus datos de seguimiento. La creación de la base de datos puede tardar unos minutos y, durante ese período, no habrá datos de seguimiento disponibles para ver.
Para explorar tus datos de registros y de intervalos, selecciona un intervalo en la tabla Intervalos.
Se abrirá la página Detalles. En esta página, se muestran el registro asociado y sus intervalos. En la tabla de la página, se muestra información detallada sobre el intervalo que seleccionaste. Esta información incluye lo siguiente:
En la pestaña GenAI, se muestran los eventos de los agentes de IA generativa. Para obtener más información sobre estos eventos, consulta Cómo ver eventos de IA generativa.
En la siguiente captura de pantalla, se ilustra un registro, en el que un intervalo tiene el nombre
call_llm
. Ese tramo invoca el LLM (modelo de lenguaje grande) que potencia este agente. En este ejemplo, es Gemini. El intervalo de Gemini incluye eventos de IA generativa:En la pestaña Registros y eventos, se enumeran las entradas de registro y los eventos asociados con el intervalo. Si deseas ver los datos de registro en el Explorador de registros, selecciona Ver registros en la barra de herramientas de esta pestaña.
Los datos de registro incluyen la respuesta de
sql_agent
. Por ejemplo, para la ejecución de muestra, la carga útil de JSON incluye el siguiente contenido:{ "logName": "projects/my-project/logs/otel_python_inprocess_log_name_temp", "jsonPayload": { "content": { "role": "model", "parts": [ { "executable_code": null, "inline_data": null, "thought": null, "video_metadata": null, "code_execution_result": null, "function_response": null, "thought_signature": null, "text": "Okay, I will create a table named `weather` with columns `id`, `city`, `temperature`, and `date`. Then I will insert some sample rows into the table and display all the data in the table.\n", "file_data": null, "function_call": null } ] } }, ... }
Inicia la aplicación
Para iniciar la aplicación de ejemplo, haz lo siguiente:
Interactúa con el agente
Para interactuar con el agente, hazle una pregunta o dale un comando. Por ejemplo, podrías hacer la siguiente pregunta:
What can you do for me ?
Del mismo modo, dado que sql_agent
tiene la personalidad de un experto en SQL, puedes pedirle que cree tablas para tus aplicaciones y escriba consultas para operar en las tablas creadas. El agente solo puede crear una base de datos efímera respaldada por un archivo .db
que se crea en la máquina que ejecuta la aplicación.
A continuación, se ilustra una interacción de ejemplo entre sql_agent
y el usuario:
Create a table for me to store weather data and also insert sample data in
the table. At the end show all data in the table you created.
Las acciones que realizan los agentes de IA generativa no son determinísticas, por lo que es posible que veas una respuesta diferente para la misma instrucción.
Salir de la aplicación
Para salir de la aplicación, ingresa Ctrl-C
en el shell que se usó para iniciarla.
Visualiza los registros, las métricas y los seguimientos
En esta sección, se describe cómo puedes ver los eventos de IA generativa.
Antes de comenzar
Para obtener los permisos que necesitas para ver tus datos de registros, métricas y seguimientos, pídele a tu administrador que te otorgue los siguientes roles de IAM en tu proyecto:
Para obtener más información sobre cómo otorgar roles, consulta Administra el acceso a proyectos, carpetas y organizaciones.
También puedes obtener los permisos necesarios a través de roles personalizados o cualquier otro rol predefinido.
Ver telemetría
Para ver los eventos de IA generativa creados por la aplicación, usa la página Explorador de registros:
La muestra está instrumentada para enviar datos de métricas a tu proyecto de Google Cloud , pero no genera ninguna métrica.