- Solicitud HTTP
- Parámetros de ruta
- Cuerpo de la solicitud
- Cuerpo de la respuesta
- Permisos de autorización
- Permisos de IAM
- AgentTrajectory
- Span
- SpanKind
- Evento
Escribe la trayectoria de ejecución de un solo turno del agente para el registro interno de observabilidad. Los clientes de agentes propios (por ejemplo, el agente de Cowork de escritorio de Gemini Enterprise) usan este método. El registro se limita a la ObservabilityConfig del motor; los atributos que contienen contenido se ocultan, a menos que se habilite el registro de contenido sensible, y la trayectoria se escribe como un objeto JSON en un bucket de GCS interno fijo de Google para la depuración (nunca en un proyecto del cliente). NO se persiste en el almacén de eventos del usuario ni en el de recomendaciones.
Solicitud HTTP
POST https://discoveryengine.googleapis.com/v1beta/{parent=projects/*/locations/*/collections/*/engines/*}/agentTrajectories:write Las URL usan la sintaxis de transcodificación gRPC.
Parámetros de ruta de acceso
| Parámetros | |
|---|---|
parent |
Obligatorio. Es el |
Cuerpo de la solicitud
El cuerpo de la solicitud contiene datos con la siguiente estructura:
| Representación JSON |
|---|
{
"agentTrajectory": {
object ( |
| Campos | |
|---|---|
agentTrajectory |
Obligatorio. Es la trayectoria del agente que se registrará. |
Cuerpo de la respuesta
Mensaje de respuesta para el método UserEventService.WriteAgentTrajectory.
Si se ejecuta correctamente, el cuerpo de la respuesta contiene datos con la siguiente estructura:
| Representación JSON |
|---|
{ "acceptedSpanCount": integer } |
| Campos | |
|---|---|
acceptedSpanCount |
Es la cantidad de intervalos que se aceptaron para el registro de observabilidad. |
Permisos de autorización
Se necesita uno de los siguientes permisos de OAuth:
https://www.googleapis.com/auth/cloud-platformhttps://www.googleapis.com/auth/discoveryengine.assist.readwritehttps://www.googleapis.com/auth/discoveryengine.readwritehttps://www.googleapis.com/auth/discoveryengine.serving.readwrite
Para obtener más información, consulta Authentication Overview.
Permisos de IAM
Se requiere el siguiente permiso de IAM en el recurso parent:
discoveryengine.engines.createEngineUserData
Para obtener más información, consulta la documentación de IAM.
AgentTrajectory
AgentTrajectory captura el registro de ejecución de un solo turno del agente, modelado según las convenciones semánticas de OpenTelemetry GenAI. Los clientes de origen (p.ej., el agente de Cowork de Gemini Enterprise para computadoras) lo registran solo para el registro interno de observabilidad; no se conserva en el almacén de recomendaciones o eventos del usuario.
El servidor limita el registro en ObservabilityConfig del motor, oculta los atributos que contienen contenido, a menos que se habilite el registro de contenido sensible, y escribe la trayectoria como un objeto JSON en un bucket de GCS interno fijo de Google para la depuración (nunca en un proyecto del cliente).
| Representación JSON |
|---|
{
"spans": [
{
object ( |
| Campos | |
|---|---|
spans[] |
Obligatorio. Son los tramos que componen este turno del agente. Todos los tramos DEBEN compartir el mismo |
sessionId |
Es opcional. Es un identificador único de la sesión del agente a la que pertenece este turno. |
resourceAttributes |
Es opcional. Son atributos a nivel del recurso que comparten todos los intervalos y que siguen las convenciones semánticas de recursos de OpenTelemetry (p.ej., |
Intervalo
Es un solo intervalo dentro de la trayectoria del agente, alineado con el modelo de datos de intervalo de OpenTelemetry.
| Representación JSON |
|---|
{ "traceId": string, "spanId": string, "parentSpanId": string, "displayName": string, "spanKind": enum ( |
| Campos | |
|---|---|
traceId |
Obligatorio. Es un ID de seguimiento de 32 caracteres hexadecimales (16 bytes) que comparten todos los intervalos del turno. |
spanId |
Obligatorio. Es un ID de intervalo de 16 caracteres hexadecimales (8 bytes) que identifica de forma única este intervalo dentro del registro. |
parentSpanId |
Es opcional. ID del intervalo principal de este intervalo, si existe. Está vacío para el intervalo raíz. |
displayName |
Obligatorio. Nombre legible por humanos del intervalo (p.ej., |
spanKind |
Es opcional. Es el tipo de intervalo. |
startTime |
Obligatorio. Es la hora de inicio del período. Usa el formato RFC 3339, en el que el resultado generado siempre usará la normalización Z y los dígitos fraccionarios 0, 3, 6 o 9. También se aceptan otras compensaciones que no sean “Z”. Ejemplos: |
endTime |
Obligatorio. Es la hora de finalización del período. Usa el formato RFC 3339, en el que el resultado generado siempre usará la normalización Z y los dígitos fraccionarios 0, 3, 6 o 9. También se aceptan otras compensaciones que no sean “Z”. Ejemplos: |
attributes |
Es opcional. Son atributos de tramo que no son de contenido y que siguen las convenciones semánticas de OpenTelemetry GenAI (p.ej., |
contentAttributes |
Es opcional. Atributos que contienen contenido (p. ej., instrucciones, respuestas, argumentos y resultados de herramientas) De forma predeterminada, estos registros están INHABILITADOS para el registro de observabilidad y solo se registran cuando el cliente habilitó el registro de contenido sensible. |
status |
Es opcional. Es el estado del intervalo. |
events[] |
Es opcional. Son los eventos cronometrados que ocurrieron durante el intervalo. |
SpanKind
Es el tipo de intervalo, alineado con SpanKind de OpenTelemetry.
| Enums | |
|---|---|
SPAN_KIND_UNSPECIFIED |
Sin especificar. Se trata como INTERNAL. |
INTERNAL |
Es una operación interna dentro del agente (p.ej., invoke_agent). |
SERVER |
Es un controlador de solicitudes entrantes síncronas. |
CLIENT |
Es una solicitud saliente síncrona (p.ej., una llamada a un modelo o una herramienta). |
PRODUCER |
Es un productor asíncrono de un mensaje. |
CONSUMER |
Es un consumidor asíncrono de un mensaje. |
Evento
Es un evento cronometrado que ocurrió durante el intervalo (p.ej., un fragmento transmitido).
| Representación JSON |
|---|
{ "displayName": string, "eventTime": string, "attributes": { string: string, ... } } |
| Campos | |
|---|---|
displayName |
Obligatorio. Es un nombre legible por humanos para el evento. |
eventTime |
Obligatorio. Es la hora del reloj de pared en la que ocurrió el evento. Usa el formato RFC 3339, en el que el resultado generado siempre usará la normalización Z y los dígitos fraccionarios 0, 3, 6 o 9. También se aceptan otras compensaciones que no sean “Z”. Ejemplos: |
attributes |
Es opcional. Son atributos que no son de contenido y que describen el evento. |