Ferramenta: create_agent
Cria um novo agente no app especificado.
O exemplo de código a seguir mostra como usar curl para chamar a ferramenta MCP create_agent.
| Solicitação 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 tool's MCP specification } }, "jsonrpc": "2.0", "id": 1 }' |
Esquema de entrada
Mensagem de solicitação para AgentService.CreateAgent.
CreateAgentRequest
| Representação JSON |
|---|
{
"parent": string,
"agentId": string,
"agent": {
object ( |
| Campos | |
|---|---|
parent |
Obrigatório. O nome do recurso do app em que um agente será criado. |
agentId |
Opcional. O ID a ser usado no agente, que se tornará o componente final do nome do recurso do agente. Se não for fornecido, um ID exclusivo será atribuído automaticamente ao agente. |
agent |
Obrigatório. O agente a ser criado. |
Agente
| Representação JSON |
|---|
{ "name": string, "displayName": string, "description": string, "modelSettings": { object ( |
| Campos | |
|---|---|
name |
Identificador. O identificador exclusivo do agente. Formato: |
displayName |
Obrigatório. Nome de exibição do agente. |
description |
Opcional. Descrição do agente legível por humanos. |
modelSettings |
Opcional. Configurações do modelo de LLM. |
instruction |
Opcional. Instruções para o modelo de LLM orientar o comportamento do agente. |
tools[] |
Opcional. Lista de ferramentas disponíveis para o agente. Formato: |
childAgents[] |
Opcional. Lista de agentes filhos na árvore de agentes. Formato: |
beforeAgentCallbacks[] |
Opcional. Os callbacks a serem executados antes da chamada do agente. Os callbacks fornecidos são executados sequencialmente na ordem exata em que aparecem na lista. Se um callback retornar uma resposta substituída, a execução será interrompida e os callbacks restantes serão ignorados. |
afterAgentCallbacks[] |
Opcional. Os retornos de chamada a serem executados depois que o agente for chamado. Os callbacks fornecidos são executados sequencialmente na ordem exata em que aparecem na lista. Se um callback retornar uma resposta substituída, a execução será interrompida e os callbacks restantes serão ignorados. |
beforeModelCallbacks[] |
Opcional. Os callbacks a serem executados antes de o modelo ser chamado. Se houver várias chamadas para o modelo, o callback será executado várias vezes. Os callbacks fornecidos são executados sequencialmente na ordem exata em que aparecem na lista. Se um callback retornar uma resposta substituída, a execução será interrompida e os callbacks restantes serão ignorados. |
afterModelCallbacks[] |
Opcional. Os callbacks a serem executados depois que o modelo é chamado. Se houver várias chamadas para o modelo, o callback será executado várias vezes. Os callbacks fornecidos são executados sequencialmente na ordem exata em que aparecem na lista. Se um callback retornar uma resposta substituída, a execução será interrompida e os callbacks restantes serão ignorados. |
beforeToolCallbacks[] |
Opcional. Os callbacks a serem executados antes da invocação da ferramenta. Se houver várias invocações de ferramentas, o callback será executado várias vezes. Os callbacks fornecidos são executados sequencialmente na ordem exata em que aparecem na lista. Se um callback retornar uma resposta substituída, a execução será interrompida e os callbacks restantes serão ignorados. |
afterToolCallbacks[] |
Opcional. Os callbacks a serem executados depois que a ferramenta for invocada. Se houver várias invocações de ferramentas, o callback será executado várias vezes. Os callbacks fornecidos são executados sequencialmente na ordem exata em que aparecem na lista. Se um callback retornar uma resposta substituída, a execução será interrompida e os callbacks restantes serão ignorados. |
createTime |
Apenas saída. Carimbo de data/hora em que o agente foi criado. Usa o padrão RFC 3339, em que a saída gerada é sempre convertida em Z e tem 0, 3, 6 ou 9 dígitos fracionários. Além de Z, outros ajustes também são aceitos. Exemplos: |
updateTime |
Apenas saída. Carimbo de data/hora em que o agente foi atualizado pela última vez. Usa o padrão RFC 3339, em que a saída gerada é sempre convertida em Z e tem 0, 3, 6 ou 9 dígitos fracionários. Além de Z, outros ajustes também são aceitos. Exemplos: |
guardrails[] |
Opcional. Lista de proteções do agente. Formato: |
etag |
Etag usada para garantir que o objeto não mudou durante uma operação de leitura-modificação-gravação. Se a ETag estiver vazia, a atualização vai substituir todas as mudanças simultâneas. |
toolsets[] |
Opcional. Lista de conjuntos de ferramentas para o agente. |
generatedSummary |
Apenas saída. Se o agente for gerado pelo assistente de LLM, esse campo vai conter um resumo descritivo da geração. |
transferRules[] |
Opcional. Regras de transferência de agente. Se várias regras forem correspondentes, a primeira da lista será usada. |
validationErrors[] |
Apenas saída. Erros ou configurações incorretas no agente que podem afetar a qualidade dele. |
Campo de união agent_type. O tipo de agente. agent_type pode ser apenas de um dos tipos a seguir: |
|
llmAgent |
Opcional. O tipo de agente padrão. |
remoteDialogflowAgent |
Opcional. O agente remoto do Dialogflow a ser usado para a execução do agente. Se esse campo for definido, todas as outras propriedades no nível do agente serão ignoradas. Observação: se o agente do Dialogflow estiver em um projeto diferente do app, conceda |
RemoteDialogflowAgent
| Representação JSON |
|---|
{ "agent": string, "flowId": string, "environmentId": string, "inputVariableMapping": { string: string, ... }, "outputVariableMapping": { string: string, ... }, "respectResponseInterruptionSettings": boolean, "languageCodeVariable": string } |
| Campos | |
|---|---|
agent |
Obrigatório. O nome do recurso do agente do Dialogflow. Formato: |
flowId |
Opcional. O ID do fluxo no agente do Dialogflow. |
environmentId |
Opcional. O ID do ambiente do agente do Dialogflow que será usado para a execução do agente. Se não for especificado, o ambiente de rascunho será usado. |
inputVariableMapping |
Opcional. O mapeamento dos nomes das variáveis do app para os nomes dos parâmetros da sessão do Dialogflow a serem enviados ao agente do Dialogflow como entrada. Um objeto com uma lista de pares |
outputVariableMapping |
Opcional. O mapeamento dos nomes dos parâmetros da sessão do Dialogflow para os nomes das variáveis do app que serão enviadas de volta ao agente do CES após o término da execução do agente do Dialogflow. Um objeto com uma lista de pares |
respectResponseInterruptionSettings |
Opcional. Indica se as configurações de interrupção no nível da mensagem configuradas no agente do Dialogflow devem ser respeitadas.
|
languageCodeVariable |
Opcional. O nome da variável que contém o código do idioma a ser usado na sessão do Dialogflow. Se não for especificado, o código de idioma padrão do agente do Dialogflow será usado. |
InputVariableMappingEntry
| Representação JSON |
|---|
{ "key": string, "value": string } |
| Campos | |
|---|---|
key |
|
value |
|
OutputVariableMappingEntry
| Representação JSON |
|---|
{ "key": string, "value": string } |
| Campos | |
|---|---|
key |
|
value |
|
ModelSettings
| Representação JSON |
|---|
{ "model": string, // Union field |
| Campos | |
|---|---|
model |
Opcional. O modelo de LLM que o agente deve usar. Se não estiver definido, o agente vai herdar o modelo do agente pai. |
Campo de união
|
|
temperature |
Opcional. Se definido, essa temperatura será usada para o modelo LLM. A temperatura controla a aleatoriedade das respostas do modelo. Temperaturas mais baixas produzem respostas mais previsíveis. Temperaturas mais altas produzem respostas mais criativas. |
Callback
| Representação JSON |
|---|
{ "description": string, "disabled": boolean, "proactiveExecutionEnabled": boolean, // Union field |
| Campos | |
|---|---|
description |
Opcional. Descrição legível do callback. |
disabled |
Opcional. Se o callback está desativado. Os retornos de chamada desativados são ignorados pelo agente. |
proactiveExecutionEnabled |
Opcional. Se ativado, o callback também será executado em saídas intermediárias do modelo. Essa configuração afeta apenas a chamada de retorno "After model". ATIVE COM CUIDADO. Normalmente, o callback do modelo só precisa ser executado depois de receber todas as respostas do modelo. Ativar a execução proativa pode ter implicações negativas no custo e na latência da execução. Portanto, essa opção só deve ser ativada em situações raras. |
Campo de união callback. O callback a ser executado. callback pode ser apenas de um dos tipos a seguir: |
|
pythonCode |
Obrigatório. O código Python a ser executado para o callback. |
Carimbo de data/hora
| Representação JSON |
|---|
{ "seconds": string, "nanos": integer } |
| Campos | |
|---|---|
seconds |
Representa os segundos do horário UTC desde a época Unix 1970-01-01T00:00:00Z. Precisa estar entre -62135596800 e 253402300799 (o que corresponde a 0001-01-01T00:00:00Z a 9999-12-31T23:59:59Z). |
nanos |
Frações não negativas de um segundo com resolução de nanossegundos. Esse campo é a parte de nanossegundos da duração, não uma alternativa aos segundos. Os valores de segundos negativos com frações ainda precisam ter valores em nanossegundos não negativos que representam períodos posteriores. O valor precisa ser de 0 a 999.999.999 (inclusive). |
AgentToolset
| Representação JSON |
|---|
{ "toolset": string, "toolIds": [ string ] } |
| Campos | |
|---|---|
toolset |
Obrigatório. O nome do recurso do conjunto de ferramentas. Formato: |
toolIds[] |
Opcional. Os IDs das ferramentas para filtrar o conjunto de ferramentas. |
TransferRule
| Representação JSON |
|---|
{ "childAgent": string, "direction": enum ( |
| Campos | |
|---|---|
childAgent |
Obrigatório. O nome do recurso do agente filho a que a regra se aplica. Formato: |
direction |
Obrigatório. A direção da transferência. |
Campo de união rule_type. O tipo de regra. rule_type pode ser apenas de um dos tipos a seguir: |
|
deterministicTransfer |
Opcional. Uma regra que transfere imediatamente para o agente de destino quando a condição é atendida. |
disablePlannerTransfer |
Opcional. Regra que impede a transferência do planejador para o agente de destino. |
DeterministicTransfer
| Representação JSON |
|---|
{ // Union field |
| Campos | |
|---|---|
Campo de união condition_type. A condição a ser avaliada. condition_type pode ser apenas de um dos tipos a seguir: |
|
expressionCondition |
Opcional. Uma regra que avalia uma condição de estado da sessão. Se a condição for avaliada como verdadeira, a transferência vai ocorrer. |
pythonCodeCondition |
Opcional. Uma regra que usa um bloco de código Python para avaliar as condições. Se a condição for avaliada como verdadeira, a transferência vai ocorrer. |
ExpressionCondition
| Representação JSON |
|---|
{ "expression": string } |
| Campos | |
|---|---|
expression |
Obrigatório. A representação de string da condição cloud.api.Expression. |
PythonCodeCondition
| Representação JSON |
|---|
{ "pythonCode": string } |
| Campos | |
|---|---|
pythonCode |
Obrigatório. O código Python a ser executado. |
DisablePlannerTransfer
| Representação JSON |
|---|
{
"expressionCondition": {
object ( |
| Campos | |
|---|---|
expressionCondition |
Obrigatório. Se a condição for avaliada como verdadeira, o planejador não poderá transferir para o agente de destino. |
Direção
A direção da transferência.
| Tipos enumerados | |
|---|---|
DIRECTION_UNSPECIFIED |
Direção não especificada. |
PARENT_TO_CHILD |
Transferência do agente principal para o agente secundário. |
CHILD_TO_PARENT |
Transferir do agente secundário para o agente pai. |
Esquema de saída
Um agente atua como o elemento básico que fornece instruções ao modelo de linguagem grande (LLM) para executar tarefas específicas.
Agente
| Representação JSON |
|---|
{ "name": string, "displayName": string, "description": string, "modelSettings": { object ( |
| Campos | |
|---|---|
name |
Identificador. O identificador exclusivo do agente. Formato: |
displayName |
Obrigatório. Nome de exibição do agente. |
description |
Opcional. Descrição do agente legível por humanos. |
modelSettings |
Opcional. Configurações do modelo de LLM. |
instruction |
Opcional. Instruções para o modelo de LLM orientar o comportamento do agente. |
tools[] |
Opcional. Lista de ferramentas disponíveis para o agente. Formato: |
childAgents[] |
Opcional. Lista de agentes filhos na árvore de agentes. Formato: |
beforeAgentCallbacks[] |
Opcional. Os callbacks a serem executados antes da chamada do agente. Os callbacks fornecidos são executados sequencialmente na ordem exata em que aparecem na lista. Se um callback retornar uma resposta substituída, a execução será interrompida e os callbacks restantes serão ignorados. |
afterAgentCallbacks[] |
Opcional. Os retornos de chamada a serem executados depois que o agente for chamado. Os callbacks fornecidos são executados sequencialmente na ordem exata em que aparecem na lista. Se um callback retornar uma resposta substituída, a execução será interrompida e os callbacks restantes serão ignorados. |
beforeModelCallbacks[] |
Opcional. Os callbacks a serem executados antes de o modelo ser chamado. Se houver várias chamadas para o modelo, o callback será executado várias vezes. Os callbacks fornecidos são executados sequencialmente na ordem exata em que aparecem na lista. Se um callback retornar uma resposta substituída, a execução será interrompida e os callbacks restantes serão ignorados. |
afterModelCallbacks[] |
Opcional. Os callbacks a serem executados depois que o modelo é chamado. Se houver várias chamadas para o modelo, o callback será executado várias vezes. Os callbacks fornecidos são executados sequencialmente na ordem exata em que aparecem na lista. Se um callback retornar uma resposta substituída, a execução será interrompida e os callbacks restantes serão ignorados. |
beforeToolCallbacks[] |
Opcional. Os callbacks a serem executados antes da invocação da ferramenta. Se houver várias invocações de ferramentas, o callback será executado várias vezes. Os callbacks fornecidos são executados sequencialmente na ordem exata em que aparecem na lista. Se um callback retornar uma resposta substituída, a execução será interrompida e os callbacks restantes serão ignorados. |
afterToolCallbacks[] |
Opcional. Os callbacks a serem executados depois que a ferramenta for invocada. Se houver várias invocações de ferramentas, o callback será executado várias vezes. Os callbacks fornecidos são executados sequencialmente na ordem exata em que aparecem na lista. Se um callback retornar uma resposta substituída, a execução será interrompida e os callbacks restantes serão ignorados. |
createTime |
Apenas saída. Carimbo de data/hora em que o agente foi criado. Usa o padrão RFC 3339, em que a saída gerada é sempre convertida em Z e tem 0, 3, 6 ou 9 dígitos fracionários. Além de Z, outros ajustes também são aceitos. Exemplos: |
updateTime |
Apenas saída. Carimbo de data/hora em que o agente foi atualizado pela última vez. Usa o padrão RFC 3339, em que a saída gerada é sempre convertida em Z e tem 0, 3, 6 ou 9 dígitos fracionários. Além de Z, outros ajustes também são aceitos. Exemplos: |
guardrails[] |
Opcional. Lista de proteções do agente. Formato: |
etag |
Etag usada para garantir que o objeto não mudou durante uma operação de leitura-modificação-gravação. Se a ETag estiver vazia, a atualização vai substituir todas as mudanças simultâneas. |
toolsets[] |
Opcional. Lista de conjuntos de ferramentas para o agente. |
generatedSummary |
Apenas saída. Se o agente for gerado pelo assistente de LLM, esse campo vai conter um resumo descritivo da geração. |
transferRules[] |
Opcional. Regras de transferência de agente. Se várias regras forem correspondentes, a primeira da lista será usada. |
validationErrors[] |
Apenas saída. Erros ou configurações incorretas no agente que podem afetar a qualidade dele. |
Campo de união agent_type. O tipo de agente. agent_type pode ser apenas de um dos tipos a seguir: |
|
llmAgent |
Opcional. O tipo de agente padrão. |
remoteDialogflowAgent |
Opcional. O agente remoto do Dialogflow a ser usado para a execução do agente. Se esse campo for definido, todas as outras propriedades no nível do agente serão ignoradas. Observação: se o agente do Dialogflow estiver em um projeto diferente do app, conceda |
RemoteDialogflowAgent
| Representação JSON |
|---|
{ "agent": string, "flowId": string, "environmentId": string, "inputVariableMapping": { string: string, ... }, "outputVariableMapping": { string: string, ... }, "respectResponseInterruptionSettings": boolean, "languageCodeVariable": string } |
| Campos | |
|---|---|
agent |
Obrigatório. O nome do recurso do agente do Dialogflow. Formato: |
flowId |
Opcional. O ID do fluxo no agente do Dialogflow. |
environmentId |
Opcional. O ID do ambiente do agente do Dialogflow que será usado para a execução do agente. Se não for especificado, o ambiente de rascunho será usado. |
inputVariableMapping |
Opcional. O mapeamento dos nomes das variáveis do app para os nomes dos parâmetros da sessão do Dialogflow a serem enviados ao agente do Dialogflow como entrada. Um objeto com uma lista de pares |
outputVariableMapping |
Opcional. O mapeamento dos nomes dos parâmetros da sessão do Dialogflow para os nomes das variáveis do app que serão enviadas de volta ao agente do CES após o término da execução do agente do Dialogflow. Um objeto com uma lista de pares |
respectResponseInterruptionSettings |
Opcional. Indica se as configurações de interrupção no nível da mensagem configuradas no agente do Dialogflow devem ser respeitadas.
|
languageCodeVariable |
Opcional. O nome da variável que contém o código do idioma a ser usado na sessão do Dialogflow. Se não for especificado, o código de idioma padrão do agente do Dialogflow será usado. |
InputVariableMappingEntry
| Representação JSON |
|---|
{ "key": string, "value": string } |
| Campos | |
|---|---|
key |
|
value |
|
OutputVariableMappingEntry
| Representação JSON |
|---|
{ "key": string, "value": string } |
| Campos | |
|---|---|
key |
|
value |
|
ModelSettings
| Representação JSON |
|---|
{ "model": string, // Union field |
| Campos | |
|---|---|
model |
Opcional. O modelo de LLM que o agente deve usar. Se não estiver definido, o agente vai herdar o modelo do agente pai. |
Campo de união
|
|
temperature |
Opcional. Se definido, essa temperatura será usada para o modelo LLM. A temperatura controla a aleatoriedade das respostas do modelo. Temperaturas mais baixas produzem respostas mais previsíveis. Temperaturas mais altas produzem respostas mais criativas. |
Callback
| Representação JSON |
|---|
{ "description": string, "disabled": boolean, "proactiveExecutionEnabled": boolean, // Union field |
| Campos | |
|---|---|
description |
Opcional. Descrição legível do callback. |
disabled |
Opcional. Se o callback está desativado. Os retornos de chamada desativados são ignorados pelo agente. |
proactiveExecutionEnabled |
Opcional. Se ativado, o callback também será executado em saídas intermediárias do modelo. Essa configuração afeta apenas a chamada de retorno "After model". ATIVE COM CUIDADO. Normalmente, o callback do modelo só precisa ser executado depois de receber todas as respostas do modelo. Ativar a execução proativa pode ter implicações negativas no custo e na latência da execução. Portanto, essa opção só deve ser ativada em situações raras. |
Campo de união callback. O callback a ser executado. callback pode ser apenas de um dos tipos a seguir: |
|
pythonCode |
Obrigatório. O código Python a ser executado para o callback. |
Carimbo de data/hora
| Representação JSON |
|---|
{ "seconds": string, "nanos": integer } |
| Campos | |
|---|---|
seconds |
Representa os segundos do horário UTC desde a época Unix 1970-01-01T00:00:00Z. Precisa estar entre -62135596800 e 253402300799 (o que corresponde a 0001-01-01T00:00:00Z a 9999-12-31T23:59:59Z). |
nanos |
Frações não negativas de um segundo com resolução de nanossegundos. Esse campo é a parte de nanossegundos da duração, não uma alternativa aos segundos. Os valores de segundos negativos com frações ainda precisam ter valores em nanossegundos não negativos que representam períodos posteriores. O valor precisa ser de 0 a 999.999.999 (inclusive). |
AgentToolset
| Representação JSON |
|---|
{ "toolset": string, "toolIds": [ string ] } |
| Campos | |
|---|---|
toolset |
Obrigatório. O nome do recurso do conjunto de ferramentas. Formato: |
toolIds[] |
Opcional. Os IDs das ferramentas para filtrar o conjunto de ferramentas. |
TransferRule
| Representação JSON |
|---|
{ "childAgent": string, "direction": enum ( |
| Campos | |
|---|---|
childAgent |
Obrigatório. O nome do recurso do agente filho a que a regra se aplica. Formato: |
direction |
Obrigatório. A direção da transferência. |
Campo de união rule_type. O tipo de regra. rule_type pode ser apenas de um dos tipos a seguir: |
|
deterministicTransfer |
Opcional. Uma regra que transfere imediatamente para o agente de destino quando a condição é atendida. |
disablePlannerTransfer |
Opcional. Regra que impede a transferência do planejador para o agente de destino. |
DeterministicTransfer
| Representação JSON |
|---|
{ // Union field |
| Campos | |
|---|---|
Campo de união condition_type. A condição a ser avaliada. condition_type pode ser apenas de um dos tipos a seguir: |
|
expressionCondition |
Opcional. Uma regra que avalia uma condição de estado da sessão. Se a condição for avaliada como verdadeira, a transferência vai ocorrer. |
pythonCodeCondition |
Opcional. Uma regra que usa um bloco de código Python para avaliar as condições. Se a condição for avaliada como verdadeira, a transferência vai ocorrer. |
ExpressionCondition
| Representação JSON |
|---|
{ "expression": string } |
| Campos | |
|---|---|
expression |
Obrigatório. A representação de string da condição cloud.api.Expression. |
PythonCodeCondition
| Representação JSON |
|---|
{ "pythonCode": string } |
| Campos | |
|---|---|
pythonCode |
Obrigatório. O código Python a ser executado. |
DisablePlannerTransfer
| Representação JSON |
|---|
{
"expressionCondition": {
object ( |
| Campos | |
|---|---|
expressionCondition |
Obrigatório. Se a condição for avaliada como verdadeira, o planejador não poderá transferir para o agente de destino. |
Direção
A direção da transferência.
| Tipos enumerados | |
|---|---|
DIRECTION_UNSPECIFIED |
Direção não especificada. |
PARENT_TO_CHILD |
Transferência do agente principal para o agente secundário. |
CHILD_TO_PARENT |
Transferir do agente secundário para o agente pai. |
Anotações de ferramentas
As anotações de ferramentas são enviadas aos clientes do MCP para descrever o risco básico de uma determinada ferramenta. A maioria dos clientes trata essas dicas como não confiáveis, mas elas podem ser usadas para decidir quando um pedido de confirmação pode ser enviado a um usuário.
Além da string de título, as seguintes dicas booleanas são definidas da seguinte maneira:
readOnlyHint: se for "true", a ferramenta não vai modificar o ambiente. Padrão: false.destructiveHint: se for "true", a ferramenta poderá realizar ações destrutivas. Se for "false", a ferramenta só poderá realizar ações de adição. Padrão: verdadeiro.idempotentHint: se for "true", chamar a ferramenta repetidamente com os mesmos argumentos não terá efeito adicional no ambiente dela. Padrão: false.openWorldHint: se for "true", a ferramenta poderá interagir com um "mundo aberto" de entidades externas. Se for "false", a ferramenta só poderá interagir com entidades internas. Por exemplo, uma ferramenta de pesquisa na Web seria de mundo aberto, enquanto uma ferramenta de memória não seria.
Dica destrutiva: ✅ | Dica idempotente: ❌ | Dica somente leitura: ❌ | Dica de mundo aberto: ❌