Herramienta: create_agent
Crea un agente nuevo en la app especificada.
En la siguiente muestra de código, se muestra cómo usar curl para llamar a la herramienta de MCP create_agent.
| Solicitud de cURL |
|---|
curl --location 'https://ces.googleapis.com/mcp' \ --header 'content-type: application/json' \ --header 'accept: application/json, text/event-stream' \ --data '{ "method": "tools/call", "params": { "name": "create_agent", "arguments": { // Provide these details according to the MCP tool specification. } }, "jsonrpc": "2.0", "id": 1 }' |
Esquema de entrada
CreateAgentRequest
| Representación JSON |
|---|
{
"parent": string,
"agentId": string,
"agent": {
object ( |
| Campos | |
|---|---|
parent |
Obligatorio. Es el nombre del recurso de la app en la que se creará un agente. |
agentId |
Es opcional. Es el ID que se usará para el agente, que se convertirá en el componente final del nombre del recurso del agente. Si no se proporciona, se asignará automáticamente un ID único para el agente. |
agent |
Obligatorio. El agente que se creará. |
Agente
| Representación JSON |
|---|
{ "name": string, "displayName": string, "description": string, "modelSettings": { object ( |
| Campos | |
|---|---|
name |
Es el identificador. El identificador único del agente. Formato: |
displayName |
Obligatorio. Es el nombre visible del agente. |
description |
Es opcional. Es una descripción del agente legible por humanos. |
modelSettings |
Es opcional. Es la configuración del modelo de LLM. |
instruction |
Es opcional. Son las instrucciones para el modelo de LLM que guían el comportamiento del agente. |
tools[] |
Es opcional. Es la lista de herramientas disponibles para el agente. Formato: |
childAgents[] |
Es opcional. Es la lista de agentes secundarios en el árbol de agentes. Formato: |
beforeAgentCallbacks[] |
Es opcional. Son las devoluciones de llamada que se ejecutarán antes de que se llame al agente. Las devoluciones de llamada proporcionadas se ejecutan de forma secuencial en el orden exacto en que se proporcionan en la lista. Si una devolución de llamada devuelve una respuesta anulada, la ejecución se detiene y se omiten las devoluciones de llamada restantes. |
afterAgentCallbacks[] |
Es opcional. Son las devoluciones de llamada que se ejecutarán después de que se llame al agente. Las devoluciones de llamada proporcionadas se ejecutan de forma secuencial en el orden exacto en que se proporcionan en la lista. Si una devolución de llamada devuelve una respuesta anulada, la ejecución se detiene y se omiten las devoluciones de llamada restantes. |
beforeModelCallbacks[] |
Es opcional. Son las devoluciones de llamada que se ejecutarán antes de que se llame al modelo. Si hay varias llamadas al modelo, la devolución de llamada se ejecutará varias veces. Las devoluciones de llamada proporcionadas se ejecutan de forma secuencial en el orden exacto en que se proporcionan en la lista. Si una devolución de llamada devuelve una respuesta anulada, la ejecución se detiene y se omiten las devoluciones de llamada restantes. |
afterModelCallbacks[] |
Es opcional. Son las devoluciones de llamada que se ejecutarán después de que se llame al modelo. Si hay varias llamadas al modelo, la devolución de llamada se ejecutará varias veces. Las devoluciones de llamada proporcionadas se ejecutan de forma secuencial en el orden exacto en que se proporcionan en la lista. Si una devolución de llamada devuelve una respuesta anulada, la ejecución se detiene y se omiten las devoluciones de llamada restantes. |
beforeToolCallbacks[] |
Es opcional. Son las devoluciones de llamada que se ejecutarán antes de que se invoque la herramienta. Si hay varias invocaciones de herramientas, la devolución de llamada se ejecutará varias veces. Las devoluciones de llamada proporcionadas se ejecutan de forma secuencial en el orden exacto en que se proporcionan en la lista. Si una devolución de llamada devuelve una respuesta anulada, la ejecución se detiene y se omiten las devoluciones de llamada restantes. |
afterToolCallbacks[] |
Es opcional. Son las devoluciones de llamada que se ejecutarán después de invocar la herramienta. Si hay varias invocaciones de herramientas, la devolución de llamada se ejecutará varias veces. Las devoluciones de llamada proporcionadas se ejecutan de forma secuencial en el orden exacto en que se proporcionan en la lista. Si una devolución de llamada devuelve una respuesta anulada, la ejecución se detiene y se omiten las devoluciones de llamada restantes. |
createTime |
Solo salida. Es la marca de tiempo de cuando se creó el agente. 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: |
updateTime |
Solo salida. Es la marca de tiempo de la última actualización del agente. 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: |
guardrails[] |
Es opcional. Es la lista de medidas de protección del agente. Formato: |
etag |
Es el ETag que se usa para garantizar que el objeto no haya cambiado durante una operación de lectura-modificación-escritura. Si el ETag está vacío, la actualización reemplazará cualquier cambio simultáneo. |
toolsets[] |
Es opcional. Es la lista de conjuntos de herramientas del agente. |
generatedSummary |
Solo salida. Si el agente lo genera el asistente de LLM, este campo contiene un resumen descriptivo de la generación. |
transferRules[] |
Es opcional. Son las reglas de transferencia de agentes. Si coinciden varias reglas, se usará la primera de la lista. |
validationErrors[] |
Solo salida. Errores o parámetros de configuración incorrectos en el agente que pueden afectar su calidad |
Campo de unión agent_type. Es el tipo de agente. agent_type puede ser solo uno de los parámetros siguientes: |
|
llmAgent |
Es opcional. Es el tipo de agente predeterminado. |
remoteDialogflowAgent |
Es opcional. Es el agente remoto de Dialogflow que se usará para la ejecución del agente. Si se configura este campo, se ignorarán todas las demás propiedades a nivel del agente. Nota: Si el agente de Dialogflow está en un proyecto diferente al de la app, debes otorgar |
remoteA2aAgent |
Es opcional. Es el agente A2A remoto que se usará para la ejecución del agente. |
RemoteDialogflowAgent
| Representación JSON |
|---|
{ "agent": string, "flowId": string, "environmentId": string, "inputVariableMapping": { string: string, ... }, "outputVariableMapping": { string: string, ... }, "respectResponseInterruptionSettings": boolean, "languageCodeVariable": string } |
| Campos | |
|---|---|
agent |
Obligatorio. Es el nombre del recurso del agente de Dialogflow. Formato: |
flowId |
Es opcional. Es el ID del flujo en el agente de Dialogflow. |
environmentId |
Es opcional. Es el ID del entorno del agente de Dialogflow que se usará para la ejecución del agente. Si no se especifica, se usará el entorno de borrador. |
inputVariableMapping |
Es opcional. Es la asignación de los nombres de las variables de la app a los nombres de los parámetros de la sesión de Dialogflow que se enviarán al agente de Dialogflow como entrada. Un objeto que contiene una lista de pares |
outputVariableMapping |
Es opcional. Es la asignación de los nombres de los parámetros de la sesión de Dialogflow a los nombres de las variables de la app que se enviarán de vuelta al agente de CES después de que finalice la ejecución del agente de Dialogflow. Un objeto que contiene una lista de pares |
respectResponseInterruptionSettings |
Es opcional. Indica si se debe respetar la configuración de interrupción a nivel del mensaje configurada en el agente de Dialogflow.
|
languageCodeVariable |
Es opcional. Nombre de la variable que contiene el código de idioma que se usará para la sesión de Dialogflow. Si no se especifica, se usará el código de idioma predeterminado del agente de Dialogflow. |
InputVariableMappingEntry
| Representación JSON |
|---|
{ "key": string, "value": string } |
| Campos | |
|---|---|
key |
|
value |
|
OutputVariableMappingEntry
| Representación JSON |
|---|
{ "key": string, "value": string } |
| Campos | |
|---|---|
key |
|
value |
|
RemoteA2aAgent
| Representación JSON |
|---|
{
"a2aConfig": {
object ( |
| Campos | |
|---|---|
a2aConfig |
Obligatorio. Es la configuración de la conexión A2A. |
RemoteA2aConfig
| Representación JSON |
|---|
{ "apiAuthentication": { object ( |
| Campos | |
|---|---|
apiAuthentication |
Es opcional. Es la configuración de autenticación para llamar al agente remoto. Es opcional si la referencia del registro ya controla la autenticación. |
inputVariableMapping |
Es opcional. Es la asignación de los nombres de las variables de entrada del agente remoto a los nombres de las variables de GECX. Un objeto que contiene una lista de pares |
outputVariableMapping |
Es opcional. Es la asignación de los nombres de las variables de salida del agente remoto a los nombres de las variables de GECX. Un objeto que contiene una lista de pares |
streamingEnabled |
Es opcional. Indica si la transmisión está habilitada para el agente remoto. |
contextId |
Es opcional. Si no está vacío, las interacciones con el agente A2A remoto usarán este ID de contexto. Este campo context_id puede hacer referencia a una variable de sesión, como |
Campo de unión agent_spec. Es la especificación del agente remoto. agent_spec puede ser solo uno de los parámetros siguientes: |
|
agentCard |
Es opcional. Es la tarjeta del agente completa definida de forma intercalada. |
agentRegistry |
Es opcional. Es la referencia al agente en Agent Registry. Formato: |
AgentCard
| Representación JSON |
|---|
{ "name": string, "description": string, "supportedInterfaces": [ { object ( |
| Campos | |
|---|---|
name |
Obligatorio. Nombre del agente legible por humanos. |
description |
Obligatorio. Es una descripción del dominio de acción o el espacio de soluciones del agente. |
supportedInterfaces[] |
Obligatorio. Lista ordenada de interfaces compatibles. Se prefiere la primera entrada. |
version |
Obligatorio. Es la versión del agente. |
skills[] |
Obligatorio. Las habilidades representan una unidad de capacidad que un agente puede realizar. Esto puede ser algo abstracto, pero representa un conjunto más enfocado de acciones en las que es muy probable que el agente tenga éxito. |
AgentInterface
| Representación JSON |
|---|
{ "url": string, "protocolBinding": string, "tenant": string, "protocolVersion": string } |
| Campos | |
|---|---|
url |
Obligatorio. Es la URL en la que está disponible esta interfaz. Debe ser una URL HTTPS absoluta válida en producción. Ejemplo: "https://api.example.com/a2a/v1", "https://grpc.example.com/a2a" |
protocolBinding |
Obligatorio. Es la vinculación del protocolo admitida en esta URL. Es una cadena de formulario abierta que se puede extender fácilmente para otras vinculaciones de protocolos. Los principales que se admiten oficialmente son |
tenant |
Es el ID del arrendatario que se usará en la solicitud cuando se llame al agente. |
protocolVersion |
Obligatorio. Es la versión del protocolo A2A que expone esta interfaz. Usa la versión secundaria compatible más reciente por versión principal. Ejemplos: "0.3", "1.0" |
AgentSkill
| Representación JSON |
|---|
{ "id": string, "name": string, "description": string, "tags": [ string ], "examples": [ string ], "inputModes": [ string ], "outputModes": [ string ] } |
| Campos | |
|---|---|
id |
Obligatorio. Es un identificador único para la habilidad del agente. |
name |
Obligatorio. Es un nombre legible para la habilidad. |
description |
Obligatorio. Es una descripción detallada de la habilidad. |
tags[] |
Obligatorio. Es un conjunto de palabras clave que describen las capacidades de la skill. |
examples[] |
Ejemplos de instrucciones o situaciones que esta habilidad puede controlar. |
inputModes[] |
Es el conjunto de tipos de medios de entrada admitidos para esta habilidad, que anula los valores predeterminados del agente. |
outputModes[] |
Es el conjunto de tipos de medios de salida admitidos para esta habilidad, que anula los valores predeterminados del agente. |
ApiAuthentication
| Representación JSON |
|---|
{ // Union field |
| Campos | |
|---|---|
Campo de unión auth_config. Es la configuración de autenticación. auth_config puede ser solo uno de los parámetros siguientes: |
|
apiKeyConfig |
Es opcional. Es la configuración para la autenticación con clave de API. |
oauthConfig |
Es opcional. Es la configuración de OAuth. |
serviceAgentIdTokenAuthConfig |
Es opcional. Es la configuración para la autenticación con token de ID que se genera a partir del agente de servicio de CES. |
serviceAccountAuthConfig |
Es opcional. Es la configuración para la autenticación de la cuenta de servicio. |
bearerTokenConfig |
Es opcional. Es la configuración para la autenticación de token de portador. |
ApiKeyConfig
| Representación JSON |
|---|
{
"keyName": string,
"apiKeySecretVersion": string,
"requestLocation": enum ( |
| Campos | |
|---|---|
keyName |
Obligatorio. Es el nombre del parámetro o del encabezado de la clave de API. P. ej., Si la solicitud a la API es "https://example.com/act?X-Api-Key= |
apiKeySecretVersion |
Obligatorio. Es el nombre del recurso de la versión secreta de Secret Manager que almacena la clave de API. Formato: Nota: Debes otorgar el rol |
requestLocation |
Obligatorio. Es la ubicación de la clave en la solicitud. |
OAuthConfig
| Representación JSON |
|---|
{
"oauthGrantType": enum ( |
| Campos | |
|---|---|
oauthGrantType |
Obligatorio. Tipos de permisos de OAuth |
clientId |
Obligatorio. Es el ID de cliente del proveedor de OAuth. |
clientSecretVersion |
Obligatorio. Nombre del recurso de la versión secreta de Secret Manager que almacena el secreto del cliente. Formato: Nota: Debes otorgar el rol |
tokenEndpoint |
Obligatorio. Es el extremo del token en el proveedor de OAuth para intercambiarlo por un token de acceso. |
scopes[] |
Es opcional. Son los permisos de OAuth que se otorgarán. |
ServiceAccountAuthConfig
| Representación JSON |
|---|
{ "serviceAccount": string, "scopes": [ string ] } |
| Campos | |
|---|---|
serviceAccount |
Obligatorio. Es la dirección de correo electrónico de la cuenta de servicio que se usa para la autenticación. CES usa esta cuenta de servicio para intercambiar un token de acceso, que luego se envía en el encabezado La cuenta de servicio debe tener el rol |
scopes[] |
Es opcional. Son los permisos de OAuth que se otorgarán. Si no se especifica, se usa el alcance predeterminado |
BearerTokenConfig
| Representación JSON |
|---|
{ "token": string } |
| Campos | |
|---|---|
token |
Obligatorio. Es el token del portador. Debe tener el formato |
InputVariableMappingEntry
| Representación JSON |
|---|
{ "key": string, "value": string } |
| Campos | |
|---|---|
key |
|
value |
|
OutputVariableMappingEntry
| Representación JSON |
|---|
{ "key": string, "value": string } |
| Campos | |
|---|---|
key |
|
value |
|
ModelSettings
| Representación JSON |
|---|
{ "model": string, "thinkingLevel": enum ( |
| Campos | |
|---|---|
model |
Es opcional. Es el modelo LLM que debe usar el agente. Si no se configura, el agente heredará el modelo de su agente superior. |
thinkingLevel |
Es opcional. Es el nivel de razonamiento del modelo. |
Campo de unión
|
|
temperature |
Es opcional. Si se configura, esta temperatura se usará para el modelo de LLM. La temperatura controla la aleatoriedad de las respuestas del modelo. Las temperaturas más bajas producen respuestas más predecibles. Las temperaturas más altas producen respuestas más creativas. |
Devolución de llamada
| Representación JSON |
|---|
{ "description": string, "disabled": boolean, "proactiveExecutionEnabled": boolean, // Union field |
| Campos | |
|---|---|
description |
Es opcional. Es una descripción legible del callback. |
disabled |
Es opcional. Indica si la devolución de llamada está inhabilitada. El agente ignora las devoluciones de llamada inhabilitadas. |
proactiveExecutionEnabled |
Es opcional. Si está habilitado, la devolución de llamada también se ejecutará en los resultados intermedios del modelo. Este parámetro de configuración solo afecta a la devolución de llamada After model. Habilítala con precaución. Por lo general, la devolución de llamada after model solo debe ejecutarse después de recibir todas las respuestas del modelo. Habilitar la ejecución proactiva puede tener implicaciones negativas en el costo y la latencia de la ejecución, y solo debe habilitarse en situaciones excepcionales. |
Campo de unión callback. Es la devolución de llamada que se ejecutará. callback puede ser solo uno de los parámetros siguientes: |
|
pythonCode |
Obligatorio. Es el código de Python que se ejecutará para la devolución de llamada. |
Marca de tiempo
| Representación JSON |
|---|
{ "seconds": string, "nanos": integer } |
| Campos | |
|---|---|
seconds |
Representa los segundos del horario UTC desde el tiempo Unix 1970-01-01T00:00:00Z. Debe estar entre -62135596800 y 253402300799 inclusive (lo que corresponde a 0001-01-01T00:00:00Z a 9999-12-31T23:59:59Z). |
nanos |
Fracciones no negativas de un segundo a una resolución de nanosegundos. Este campo es la parte de nanosegundos de la duración, no una alternativa a los segundos. Los valores de segundos negativos con fracciones deben tener valores nanos no negativos que se cuentan hacia adelante en el tiempo. Debe ser un valor entre 0 y 999,999,999, inclusive. |
AgentToolset
| Representación JSON |
|---|
{ "toolset": string, "toolIds": [ string ] } |
| Campos | |
|---|---|
toolset |
Obligatorio. Es el nombre del recurso del conjunto de herramientas. Formato: |
toolIds[] |
Es opcional. Son los IDs de las herramientas para filtrar el conjunto de herramientas. |
TransferRule
| Representación JSON |
|---|
{ "childAgent": string, "direction": enum ( |
| Campos | |
|---|---|
childAgent |
Obligatorio. Es el nombre del recurso del agente secundario al que se aplica la regla. Formato: |
direction |
Obligatorio. Es la dirección de la transferencia. |
Campo de unión rule_type. Es el tipo de regla. rule_type puede ser solo uno de los parámetros siguientes: |
|
deterministicTransfer |
Es opcional. Es una regla que se transfiere de inmediato al agente objetivo cuando se cumple la condición. |
disablePlannerTransfer |
Es opcional. Es una regla que impide que el planificador se transfiera al agente objetivo. |
DeterministicTransfer
| Representación JSON |
|---|
{ // Union field |
| Campos | |
|---|---|
Campo de unión condition_type. Es la condición que se evaluará. condition_type puede ser solo uno de los parámetros siguientes: |
|
expressionCondition |
Es opcional. Es una regla que evalúa una condición de estado de la sesión. Si la condición se evalúa como verdadera, se realiza la transferencia. |
pythonCodeCondition |
Es opcional. Es una regla que usa un bloque de código de Python para evaluar las condiciones. Si la condición se evalúa como verdadera, se realiza la transferencia. |
ExpressionCondition
| Representación JSON |
|---|
{ "expression": string } |
| Campos | |
|---|---|
expression |
Obligatorio. Es la representación de cadena de la condición cloud.api.Expression. |
PythonCodeCondition
| Representación JSON |
|---|
{ "pythonCode": string } |
| Campos | |
|---|---|
pythonCode |
Obligatorio. Es el código de Python que se ejecutará. |
DisablePlannerTransfer
| Representación JSON |
|---|
{
"expressionCondition": {
object ( |
| Campos | |
|---|---|
expressionCondition |
Obligatorio. Si la condición se evalúa como verdadera, no se permitirá que el planificador transfiera la llamada al agente objetivo. |
RequestLocation
Ubicación de la clave de API en la solicitud.
| Enums | |
|---|---|
REQUEST_LOCATION_UNSPECIFIED |
Sin especificar. No se debe usar este valor. |
HEADER |
Representa la clave en el encabezado HTTP. |
QUERY_STRING |
Representa la clave en la cadena de consulta. |
OauthGrantType
Tipos de permisos de OAuth Solo se admite el otorgamiento de credenciales de cliente.
| Enums | |
|---|---|
OAUTH_GRANT_TYPE_UNSPECIFIED |
Sin especificar. El valor predeterminado es CLIENT_CREDENTIAL. |
CLIENT_CREDENTIAL |
Representa el flujo de credenciales de cliente. |
ThinkingLevel
Es la configuración del nivel de razonamiento del modelo.
| Enums | |
|---|---|
THINKING_LEVEL_UNSPECIFIED |
El nivel de pensamiento no está especificado. |
DEFAULT |
Es el nivel de razonamiento predeterminado. |
LOW |
Nivel de razonamiento bajo. |
MEDIUM |
Nivel de razonamiento medio. |
HIGH |
Nivel de razonamiento alto. |
Dirección
Es la dirección de la transferencia.
| Enums | |
|---|---|
DIRECTION_UNSPECIFIED |
Dirección sin especificar. |
PARENT_TO_CHILD |
Transferencia del agente principal al agente secundario. |
CHILD_TO_PARENT |
Transferencia del agente secundario al agente principal. |
Esquema de salida
Un agente actúa como el componente básico fundamental que proporciona instrucciones al modelo de lenguaje grande (LLM) para ejecutar tareas específicas.
Agente
| Representación JSON |
|---|
{ "name": string, "displayName": string, "description": string, "modelSettings": { object ( |
| Campos | |
|---|---|
name |
Es el identificador. El identificador único del agente. Formato: |
displayName |
Obligatorio. Es el nombre visible del agente. |
description |
Es opcional. Es una descripción del agente legible por humanos. |
modelSettings |
Es opcional. Es la configuración del modelo de LLM. |
instruction |
Es opcional. Son las instrucciones para el modelo de LLM que guían el comportamiento del agente. |
tools[] |
Es opcional. Es la lista de herramientas disponibles para el agente. Formato: |
childAgents[] |
Es opcional. Es la lista de agentes secundarios en el árbol de agentes. Formato: |
beforeAgentCallbacks[] |
Es opcional. Son las devoluciones de llamada que se ejecutarán antes de que se llame al agente. Las devoluciones de llamada proporcionadas se ejecutan de forma secuencial en el orden exacto en que se proporcionan en la lista. Si una devolución de llamada devuelve una respuesta anulada, la ejecución se detiene y se omiten las devoluciones de llamada restantes. |
afterAgentCallbacks[] |
Es opcional. Son las devoluciones de llamada que se ejecutarán después de que se llame al agente. Las devoluciones de llamada proporcionadas se ejecutan de forma secuencial en el orden exacto en que se proporcionan en la lista. Si una devolución de llamada devuelve una respuesta anulada, la ejecución se detiene y se omiten las devoluciones de llamada restantes. |
beforeModelCallbacks[] |
Es opcional. Son las devoluciones de llamada que se ejecutarán antes de que se llame al modelo. Si hay varias llamadas al modelo, la devolución de llamada se ejecutará varias veces. Las devoluciones de llamada proporcionadas se ejecutan de forma secuencial en el orden exacto en que se proporcionan en la lista. Si una devolución de llamada devuelve una respuesta anulada, la ejecución se detiene y se omiten las devoluciones de llamada restantes. |
afterModelCallbacks[] |
Es opcional. Son las devoluciones de llamada que se ejecutarán después de que se llame al modelo. Si hay varias llamadas al modelo, la devolución de llamada se ejecutará varias veces. Las devoluciones de llamada proporcionadas se ejecutan de forma secuencial en el orden exacto en que se proporcionan en la lista. Si una devolución de llamada devuelve una respuesta anulada, la ejecución se detiene y se omiten las devoluciones de llamada restantes. |
beforeToolCallbacks[] |
Es opcional. Son las devoluciones de llamada que se ejecutarán antes de que se invoque la herramienta. Si hay varias invocaciones de herramientas, la devolución de llamada se ejecutará varias veces. Las devoluciones de llamada proporcionadas se ejecutan de forma secuencial en el orden exacto en que se proporcionan en la lista. Si una devolución de llamada devuelve una respuesta anulada, la ejecución se detiene y se omiten las devoluciones de llamada restantes. |
afterToolCallbacks[] |
Es opcional. Son las devoluciones de llamada que se ejecutarán después de invocar la herramienta. Si hay varias invocaciones de herramientas, la devolución de llamada se ejecutará varias veces. Las devoluciones de llamada proporcionadas se ejecutan de forma secuencial en el orden exacto en que se proporcionan en la lista. Si una devolución de llamada devuelve una respuesta anulada, la ejecución se detiene y se omiten las devoluciones de llamada restantes. |
createTime |
Solo salida. Es la marca de tiempo de cuando se creó el agente. 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: |
updateTime |
Solo salida. Es la marca de tiempo de la última actualización del agente. 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: |
guardrails[] |
Es opcional. Es la lista de medidas de protección del agente. Formato: |
etag |
Es el ETag que se usa para garantizar que el objeto no haya cambiado durante una operación de lectura-modificación-escritura. Si el ETag está vacío, la actualización reemplazará cualquier cambio simultáneo. |
toolsets[] |
Es opcional. Es la lista de conjuntos de herramientas del agente. |
generatedSummary |
Solo salida. Si el agente lo genera el asistente de LLM, este campo contiene un resumen descriptivo de la generación. |
transferRules[] |
Es opcional. Son las reglas de transferencia de agentes. Si coinciden varias reglas, se usará la primera de la lista. |
validationErrors[] |
Solo salida. Errores o parámetros de configuración incorrectos en el agente que pueden afectar su calidad |
Campo de unión agent_type. Es el tipo de agente. agent_type puede ser solo uno de los parámetros siguientes: |
|
llmAgent |
Es opcional. Es el tipo de agente predeterminado. |
remoteDialogflowAgent |
Es opcional. Es el agente remoto de Dialogflow que se usará para la ejecución del agente. Si se configura este campo, se ignorarán todas las demás propiedades a nivel del agente. Nota: Si el agente de Dialogflow está en un proyecto diferente al de la app, debes otorgar |
remoteA2aAgent |
Es opcional. Es el agente A2A remoto que se usará para la ejecución del agente. |
RemoteDialogflowAgent
| Representación JSON |
|---|
{ "agent": string, "flowId": string, "environmentId": string, "inputVariableMapping": { string: string, ... }, "outputVariableMapping": { string: string, ... }, "respectResponseInterruptionSettings": boolean, "languageCodeVariable": string } |
| Campos | |
|---|---|
agent |
Obligatorio. Es el nombre del recurso del agente de Dialogflow. Formato: |
flowId |
Es opcional. Es el ID del flujo en el agente de Dialogflow. |
environmentId |
Es opcional. Es el ID del entorno del agente de Dialogflow que se usará para la ejecución del agente. Si no se especifica, se usará el entorno de borrador. |
inputVariableMapping |
Es opcional. Es la asignación de los nombres de las variables de la app a los nombres de los parámetros de la sesión de Dialogflow que se enviarán al agente de Dialogflow como entrada. Un objeto que contiene una lista de pares |
outputVariableMapping |
Es opcional. Es la asignación de los nombres de los parámetros de la sesión de Dialogflow a los nombres de las variables de la app que se enviarán de vuelta al agente de CES después de que finalice la ejecución del agente de Dialogflow. Un objeto que contiene una lista de pares |
respectResponseInterruptionSettings |
Es opcional. Indica si se debe respetar la configuración de interrupción a nivel del mensaje configurada en el agente de Dialogflow.
|
languageCodeVariable |
Es opcional. Nombre de la variable que contiene el código de idioma que se usará para la sesión de Dialogflow. Si no se especifica, se usará el código de idioma predeterminado del agente de Dialogflow. |
InputVariableMappingEntry
| Representación JSON |
|---|
{ "key": string, "value": string } |
| Campos | |
|---|---|
key |
|
value |
|
OutputVariableMappingEntry
| Representación JSON |
|---|
{ "key": string, "value": string } |
| Campos | |
|---|---|
key |
|
value |
|
RemoteA2aAgent
| Representación JSON |
|---|
{
"a2aConfig": {
object ( |
| Campos | |
|---|---|
a2aConfig |
Obligatorio. Es la configuración de la conexión A2A. |
RemoteA2aConfig
| Representación JSON |
|---|
{ "apiAuthentication": { object ( |
| Campos | |
|---|---|
apiAuthentication |
Es opcional. Es la configuración de autenticación para llamar al agente remoto. Es opcional si la referencia del registro ya controla la autenticación. |
inputVariableMapping |
Es opcional. Es la asignación de los nombres de las variables de entrada del agente remoto a los nombres de las variables de GECX. Un objeto que contiene una lista de pares |
outputVariableMapping |
Es opcional. Es la asignación de los nombres de las variables de salida del agente remoto a los nombres de las variables de GECX. Un objeto que contiene una lista de pares |
streamingEnabled |
Es opcional. Indica si la transmisión está habilitada para el agente remoto. |
contextId |
Es opcional. Si no está vacío, las interacciones con el agente A2A remoto usarán este ID de contexto. Este campo context_id puede hacer referencia a una variable de sesión, como |
Campo de unión agent_spec. Es la especificación del agente remoto. agent_spec puede ser solo uno de los parámetros siguientes: |
|
agentCard |
Es opcional. Es la tarjeta del agente completa definida de forma intercalada. |
agentRegistry |
Es opcional. Es la referencia al agente en Agent Registry. Formato: |
AgentCard
| Representación JSON |
|---|
{ "name": string, "description": string, "supportedInterfaces": [ { object ( |
| Campos | |
|---|---|
name |
Obligatorio. Nombre del agente legible por humanos. |
description |
Obligatorio. Es una descripción del dominio de acción o el espacio de soluciones del agente. |
supportedInterfaces[] |
Obligatorio. Lista ordenada de interfaces compatibles. Se prefiere la primera entrada. |
version |
Obligatorio. Es la versión del agente. |
skills[] |
Obligatorio. Las habilidades representan una unidad de capacidad que un agente puede realizar. Esto puede ser algo abstracto, pero representa un conjunto más enfocado de acciones en las que es muy probable que el agente tenga éxito. |
AgentInterface
| Representación JSON |
|---|
{ "url": string, "protocolBinding": string, "tenant": string, "protocolVersion": string } |
| Campos | |
|---|---|
url |
Obligatorio. Es la URL en la que está disponible esta interfaz. Debe ser una URL HTTPS absoluta válida en producción. Ejemplo: "https://api.example.com/a2a/v1", "https://grpc.example.com/a2a" |
protocolBinding |
Obligatorio. Es la vinculación del protocolo admitida en esta URL. Es una cadena de formulario abierta que se puede extender fácilmente para otras vinculaciones de protocolos. Los principales que se admiten oficialmente son |
tenant |
Es el ID del arrendatario que se usará en la solicitud cuando se llame al agente. |
protocolVersion |
Obligatorio. Es la versión del protocolo A2A que expone esta interfaz. Usa la versión secundaria compatible más reciente por versión principal. Ejemplos: "0.3", "1.0" |
AgentSkill
| Representación JSON |
|---|
{ "id": string, "name": string, "description": string, "tags": [ string ], "examples": [ string ], "inputModes": [ string ], "outputModes": [ string ] } |
| Campos | |
|---|---|
id |
Obligatorio. Es un identificador único para la habilidad del agente. |
name |
Obligatorio. Es un nombre legible para la habilidad. |
description |
Obligatorio. Es una descripción detallada de la habilidad. |
tags[] |
Obligatorio. Es un conjunto de palabras clave que describen las capacidades de la skill. |
examples[] |
Ejemplos de instrucciones o situaciones que esta habilidad puede controlar. |
inputModes[] |
Es el conjunto de tipos de medios de entrada admitidos para esta habilidad, que anula los valores predeterminados del agente. |
outputModes[] |
Es el conjunto de tipos de medios de salida admitidos para esta habilidad, que anula los valores predeterminados del agente. |
ApiAuthentication
| Representación JSON |
|---|
{ // Union field |
| Campos | |
|---|---|
Campo de unión auth_config. Es la configuración de autenticación. auth_config puede ser solo uno de los parámetros siguientes: |
|
apiKeyConfig |
Es opcional. Es la configuración para la autenticación con clave de API. |
oauthConfig |
Es opcional. Es la configuración de OAuth. |
serviceAgentIdTokenAuthConfig |
Es opcional. Es la configuración para la autenticación con token de ID que se genera a partir del agente de servicio de CES. |
serviceAccountAuthConfig |
Es opcional. Es la configuración para la autenticación de la cuenta de servicio. |
bearerTokenConfig |
Es opcional. Es la configuración para la autenticación de token de portador. |
ApiKeyConfig
| Representación JSON |
|---|
{
"keyName": string,
"apiKeySecretVersion": string,
"requestLocation": enum ( |
| Campos | |
|---|---|
keyName |
Obligatorio. Es el nombre del parámetro o del encabezado de la clave de API. P. ej., Si la solicitud a la API es "https://example.com/act?X-Api-Key= |
apiKeySecretVersion |
Obligatorio. Es el nombre del recurso de la versión secreta de Secret Manager que almacena la clave de API. Formato: Nota: Debes otorgar el rol |
requestLocation |
Obligatorio. Es la ubicación de la clave en la solicitud. |
OAuthConfig
| Representación JSON |
|---|
{
"oauthGrantType": enum ( |
| Campos | |
|---|---|
oauthGrantType |
Obligatorio. Tipos de permisos de OAuth |
clientId |
Obligatorio. Es el ID de cliente del proveedor de OAuth. |
clientSecretVersion |
Obligatorio. Nombre del recurso de la versión secreta de Secret Manager que almacena el secreto del cliente. Formato: Nota: Debes otorgar el rol |
tokenEndpoint |
Obligatorio. Es el extremo del token en el proveedor de OAuth para intercambiarlo por un token de acceso. |
scopes[] |
Es opcional. Son los permisos de OAuth que se otorgarán. |
ServiceAccountAuthConfig
| Representación JSON |
|---|
{ "serviceAccount": string, "scopes": [ string ] } |
| Campos | |
|---|---|
serviceAccount |
Obligatorio. Es la dirección de correo electrónico de la cuenta de servicio que se usa para la autenticación. CES usa esta cuenta de servicio para intercambiar un token de acceso, que luego se envía en el encabezado La cuenta de servicio debe tener el rol |
scopes[] |
Es opcional. Son los permisos de OAuth que se otorgarán. Si no se especifica, se usa el alcance predeterminado |
BearerTokenConfig
| Representación JSON |
|---|
{ "token": string } |
| Campos | |
|---|---|
token |
Obligatorio. Es el token del portador. Debe tener el formato |
InputVariableMappingEntry
| Representación JSON |
|---|
{ "key": string, "value": string } |
| Campos | |
|---|---|
key |
|
value |
|
OutputVariableMappingEntry
| Representación JSON |
|---|
{ "key": string, "value": string } |
| Campos | |
|---|---|
key |
|
value |
|
ModelSettings
| Representación JSON |
|---|
{ "model": string, "thinkingLevel": enum ( |
| Campos | |
|---|---|
model |
Es opcional. Es el modelo LLM que debe usar el agente. Si no se configura, el agente heredará el modelo de su agente superior. |
thinkingLevel |
Es opcional. Es el nivel de razonamiento del modelo. |
Campo de unión
|
|
temperature |
Es opcional. Si se configura, esta temperatura se usará para el modelo de LLM. La temperatura controla la aleatoriedad de las respuestas del modelo. Las temperaturas más bajas producen respuestas más predecibles. Las temperaturas más altas producen respuestas más creativas. |
Devolución de llamada
| Representación JSON |
|---|
{ "description": string, "disabled": boolean, "proactiveExecutionEnabled": boolean, // Union field |
| Campos | |
|---|---|
description |
Es opcional. Es una descripción legible del callback. |
disabled |
Es opcional. Indica si la devolución de llamada está inhabilitada. El agente ignora las devoluciones de llamada inhabilitadas. |
proactiveExecutionEnabled |
Es opcional. Si está habilitado, la devolución de llamada también se ejecutará en los resultados intermedios del modelo. Este parámetro de configuración solo afecta a la devolución de llamada After model. Habilítala con precaución. Por lo general, la devolución de llamada after model solo debe ejecutarse después de recibir todas las respuestas del modelo. Habilitar la ejecución proactiva puede tener implicaciones negativas en el costo y la latencia de la ejecución, y solo debe habilitarse en situaciones excepcionales. |
Campo de unión callback. Es la devolución de llamada que se ejecutará. callback puede ser solo uno de los parámetros siguientes: |
|
pythonCode |
Obligatorio. Es el código de Python que se ejecutará para la devolución de llamada. |
Marca de tiempo
| Representación JSON |
|---|
{ "seconds": string, "nanos": integer } |
| Campos | |
|---|---|
seconds |
Representa los segundos del horario UTC desde el tiempo Unix 1970-01-01T00:00:00Z. Debe estar entre -62135596800 y 253402300799 inclusive (lo que corresponde a 0001-01-01T00:00:00Z a 9999-12-31T23:59:59Z). |
nanos |
Fracciones no negativas de un segundo a una resolución de nanosegundos. Este campo es la parte de nanosegundos de la duración, no una alternativa a los segundos. Los valores de segundos negativos con fracciones deben tener valores nanos no negativos que se cuentan hacia adelante en el tiempo. Debe ser un valor entre 0 y 999,999,999, inclusive. |
AgentToolset
| Representación JSON |
|---|
{ "toolset": string, "toolIds": [ string ] } |
| Campos | |
|---|---|
toolset |
Obligatorio. Es el nombre del recurso del conjunto de herramientas. Formato: |
toolIds[] |
Es opcional. Son los IDs de las herramientas para filtrar el conjunto de herramientas. |
TransferRule
| Representación JSON |
|---|
{ "childAgent": string, "direction": enum ( |
| Campos | |
|---|---|
childAgent |
Obligatorio. Es el nombre del recurso del agente secundario al que se aplica la regla. Formato: |
direction |
Obligatorio. Es la dirección de la transferencia. |
Campo de unión rule_type. Es el tipo de regla. rule_type puede ser solo uno de los parámetros siguientes: |
|
deterministicTransfer |
Es opcional. Es una regla que se transfiere de inmediato al agente objetivo cuando se cumple la condición. |
disablePlannerTransfer |
Es opcional. Es una regla que impide que el planificador se transfiera al agente objetivo. |
DeterministicTransfer
| Representación JSON |
|---|
{ // Union field |
| Campos | |
|---|---|
Campo de unión condition_type. Es la condición que se evaluará. condition_type puede ser solo uno de los parámetros siguientes: |
|
expressionCondition |
Es opcional. Es una regla que evalúa una condición de estado de la sesión. Si la condición se evalúa como verdadera, se realiza la transferencia. |
pythonCodeCondition |
Es opcional. Es una regla que usa un bloque de código de Python para evaluar las condiciones. Si la condición se evalúa como verdadera, se realiza la transferencia. |
ExpressionCondition
| Representación JSON |
|---|
{ "expression": string } |
| Campos | |
|---|---|
expression |
Obligatorio. Es la representación de cadena de la condición cloud.api.Expression. |
PythonCodeCondition
| Representación JSON |
|---|
{ "pythonCode": string } |
| Campos | |
|---|---|
pythonCode |
Obligatorio. Es el código de Python que se ejecutará. |
DisablePlannerTransfer
| Representación JSON |
|---|
{
"expressionCondition": {
object ( |
| Campos | |
|---|---|
expressionCondition |
Obligatorio. Si la condición se evalúa como verdadera, no se permitirá que el planificador transfiera la llamada al agente objetivo. |
RequestLocation
Ubicación de la clave de API en la solicitud.
| Enums | |
|---|---|
REQUEST_LOCATION_UNSPECIFIED |
Sin especificar. No se debe usar este valor. |
HEADER |
Representa la clave en el encabezado HTTP. |
QUERY_STRING |
Representa la clave en la cadena de consulta. |
OauthGrantType
Tipos de permisos de OAuth Solo se admite el otorgamiento de credenciales de cliente.
| Enums | |
|---|---|
OAUTH_GRANT_TYPE_UNSPECIFIED |
Sin especificar. El valor predeterminado es CLIENT_CREDENTIAL. |
CLIENT_CREDENTIAL |
Representa el flujo de credenciales de cliente. |
ThinkingLevel
Es la configuración del nivel de razonamiento del modelo.
| Enums | |
|---|---|
THINKING_LEVEL_UNSPECIFIED |
El nivel de pensamiento no está especificado. |
DEFAULT |
Es el nivel de razonamiento predeterminado. |
LOW |
Nivel de razonamiento bajo. |
MEDIUM |
Nivel de razonamiento medio. |
HIGH |
Nivel de razonamiento alto. |
Dirección
Es la dirección de la transferencia.
| Enums | |
|---|---|
DIRECTION_UNSPECIFIED |
Dirección sin especificar. |
PARENT_TO_CHILD |
Transferencia del agente principal al agente secundario. |
CHILD_TO_PARENT |
Transferencia del agente secundario al agente principal. |
Anotaciones de herramientas
Las anotaciones de herramientas se envían a los clientes de MCP para describir el riesgo básico de una herramienta determinada. La mayoría de los clientes tratan estas sugerencias como no confiables, pero se pueden usar para decidir cuándo se le puede enviar un mensaje de confirmación a un usuario.
Junto con la cadena de título, se definen las siguientes sugerencias booleanas:
readOnlyHint: Si es verdadero, la herramienta no modifica su entorno. Valor predeterminado: false.destructiveHint: Si es verdadero, la herramienta puede realizar acciones destructivas. Si es falso, la herramienta solo puede realizar acciones aditivas. Valor predeterminado: true.idempotentHint: Si es verdadero, llamar a la herramienta varias veces con los mismos argumentos no tendrá ningún efecto adicional en su entorno. Valor predeterminado: false.openWorldHint: Si es verdadero, la herramienta puede interactuar con un "mundo abierto" de entidades externas. Si es falso, la herramienta solo puede interactuar con entidades internas. Por ejemplo, una herramienta de búsqueda web sería de mundo abierto, mientras que una herramienta de memoria no lo sería.
Sugerencia destructiva: ✅ | Sugerencia idempotente: ❌ | Sugerencia de solo lectura: ❌ | Sugerencia de mundo abierto: ❌