MCP Tools Reference: ces.googleapis.com

工具:create_agent

在指定应用中创建新代理。

以下代码示例展示了如何使用 curl 调用 create_agent MCP 工具。

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
}'

输入架构

CreateAgentRequest

JSON 表示法
{
  "parent": string,
  "agentId": string,
  "agent": {
    object (Agent)
  }
}
字段
parent

string

必需。要在其中创建代理的应用的资源名称。

agentId

string

可选。要用于代理的 ID,该 ID 将成为代理资源名称的最后一个组成部分。如果未提供,系统会自动为代理分配一个唯一 ID。

agent

object (Agent)

必需。要创建的代理。

代理

JSON 表示法
{
  "name": string,
  "displayName": string,
  "description": string,
  "modelSettings": {
    object (ModelSettings)
  },
  "instruction": string,
  "tools": [
    string
  ],
  "childAgents": [
    string
  ],
  "beforeAgentCallbacks": [
    {
      object (Callback)
    }
  ],
  "afterAgentCallbacks": [
    {
      object (Callback)
    }
  ],
  "beforeModelCallbacks": [
    {
      object (Callback)
    }
  ],
  "afterModelCallbacks": [
    {
      object (Callback)
    }
  ],
  "beforeToolCallbacks": [
    {
      object (Callback)
    }
  ],
  "afterToolCallbacks": [
    {
      object (Callback)
    }
  ],
  "createTime": string,
  "updateTime": string,
  "guardrails": [
    string
  ],
  "etag": string,
  "toolsets": [
    {
      object (AgentToolset)
    }
  ],
  "generatedSummary": string,
  "transferRules": [
    {
      object (TransferRule)
    }
  ],
  "validationErrors": [
    string
  ],

  // Union field agent_type can be only one of the following:
  "llmAgent": {
    object (LlmAgent)
  },
  "remoteDialogflowAgent": {
    object (RemoteDialogflowAgent)
  },
  "remoteA2aAgent": {
    object (RemoteA2aAgent)
  }
  // End of list of possible types for union field agent_type.
}
字段
name

string

标识符。代理的唯一标识符。格式:projects/{project}/locations/{location}/apps/{app}/agents/{agent}

displayName

string

必需。代理的显示名称。

description

string

可选。代理的人类可读说明。

modelSettings

object (ModelSettings)

可选。LLM 模型的配置。

instruction

string

可选。LLM 模型的指令,用于指导代理的行为。

tools[]

string

可选。代理可用的工具列表。格式:projects/{project}/locations/{location}/apps/{app}/tools/{tool}

childAgents[]

string

可选。代理树中的子代理列表。格式:projects/{project}/locations/{location}/apps/{app}/agents/{agent}

beforeAgentCallbacks[]

object (Callback)

可选。在调用代理之前要执行的回调。所提供的回调会按列表中的顺序依次执行。如果回调返回了替换的响应,则执行会停止,并跳过所有剩余的回调。

afterAgentCallbacks[]

object (Callback)

可选。在调用代理后要执行的回调。所提供的回调会按列表中的顺序依次执行。如果回调返回了替换的响应,则执行会停止,并跳过所有剩余的回调。

beforeModelCallbacks[]

object (Callback)

可选。在调用模型之前要执行的回调。如果多次调用模型,则回调将执行多次。所提供的回调会按列表中的顺序依次执行。如果回调返回了替换的响应,则执行会停止,并跳过所有剩余的回调。

afterModelCallbacks[]

object (Callback)

可选。在调用模型后要执行的回调。如果多次调用模型,则回调将执行多次。所提供的回调会按列表中的顺序依次执行。如果回调返回了替换的响应,则执行会停止,并跳过所有剩余的回调。

beforeToolCallbacks[]

object (Callback)

可选。在调用工具之前要执行的回调。如果存在多次工具调用,则回调将执行多次。所提供的回调会按列表中的顺序依次执行。如果回调返回了替换的响应,则执行会停止,并跳过所有剩余的回调。

afterToolCallbacks[]

object (Callback)

可选。在调用工具后要执行的回调。如果存在多次工具调用,则回调将执行多次。所提供的回调会按列表中的顺序依次执行。如果回调返回了替换的响应,则执行会停止,并跳过所有剩余的回调。

createTime

string (Timestamp format)

仅限输出。创建代理时的时间戳。

采用 RFC 3339 标准,生成的输出将始终进行 Z 规范化(即转换为 UTC 零时区格式并在末尾附加 Z),并使用 0、3、6 或 9 个小数位。不带“Z”的偏差时间也是可以接受的。示例:"2014-10-02T15:01:23Z"、"2014-10-02T15:01:23.045123456Z" 或 "2014-10-02T15:01:23+05:30"。

updateTime

string (Timestamp format)

仅限输出。代理上次更新时的时间戳。

采用 RFC 3339 标准,生成的输出将始终进行 Z 规范化(即转换为 UTC 零时区格式并在末尾附加 Z),并使用 0、3、6 或 9 个小数位。不带“Z”的偏差时间也是可以接受的。示例:"2014-10-02T15:01:23Z"、"2014-10-02T15:01:23.045123456Z" 或 "2014-10-02T15:01:23+05:30"。

guardrails[]

string

可选。代理的护栏列表。格式:projects/{project}/locations/{location}/apps/{app}/guardrails/{guardrail}

etag

string

用于确保对象在读取-修改-写入操作期间未发生更改的 ETag。如果 etag 为空,则更新会覆盖任何并发更改。

toolsets[]

object (AgentToolset)

可选。代理的工具集列表。

generatedSummary

string

仅限输出。如果代理是由 LLM 助理生成的,此字段包含生成内容的描述性摘要。

transferRules[]

object (TransferRule)

可选。客服人员转移规则。如果多个规则匹配,系统将使用列表中的第一个规则。

validationErrors[]

string

仅限输出。代理中的错误配置或错误,可能会影响代理质量。

联合字段 agent_type。代理的类型。agent_type 只能是下列其中一项:
llmAgent

object (LlmAgent)

可选。默认代理类型。

remoteDialogflowAgent

object (RemoteDialogflowAgent)

可选。用于执行代理的远程 Dialogflow 代理。如果设置了此字段,系统将忽略所有其他代理级属性。

注意:如果 Dialogflow 代理与应用位于不同的项目中,您应向 CES 服务代理 service-<PROJECT-NUMBER>@gcp-sa-ces.iam.gserviceaccount.com 授予 roles/dialogflow.client 权限。

remoteA2aAgent

object (RemoteA2aAgent)

可选。用于执行代理的远程 A2A 代理。

RemoteDialogflowAgent

JSON 表示法
{
  "agent": string,
  "flowId": string,
  "environmentId": string,
  "inputVariableMapping": {
    string: string,
    ...
  },
  "outputVariableMapping": {
    string: string,
    ...
  },
  "respectResponseInterruptionSettings": boolean,
  "languageCodeVariable": string
}
字段
agent

string

必需。Dialogflow 代理资源名称。格式:projects/{project}/locations/{location}/agents/{agent}

flowId

string

可选。Dialogflow 代理中相应流程的流程 ID。

environmentId

string

可选。用于代理执行的 Dialogflow 代理的环境 ID。如果未指定,则使用草稿环境。

inputVariableMapping

map (key: string, value: string)

可选。应用变量名称与要作为输入发送给 Dialogflow 代理的 Dialogflow 会话参数名称之间的映射。

包含一系列 "key": value 对的对象。示例:{ "name": "wrench", "mass": "1.3kg", "count": "3" }。

outputVariableMapping

map (key: string, value: string)

可选。Dialogflow 会话参数名称与应用变量名称的映射,用于在 Dialogflow 代理执行结束后发送回 CES 代理。

包含一系列 "key": value 对的对象。示例:{ "name": "wrench", "mass": "1.3kg", "count": "3" }。

respectResponseInterruptionSettings

boolean

可选。指示是否遵循在 Dialogflow 代理中配置的消息级中断设置。

  • 如果为 false:来自 Dialogflow 代理的所有响应消息都遵循应用级抢占设置。
  • 如果为 true:只有将 allow_playback_interruption 设置为 true 的响应消息可以被中断,所有其他消息都遵循应用级抢占设置。
languageCodeVariable

string

可选。包含要用于 Dialogflow 会话的语言代码的变量的名称。如果未指定,系统将使用 Dialogflow 代理的默认语言代码。

InputVariableMappingEntry

JSON 表示法
{
  "key": string,
  "value": string
}
字段
key

string

value

string

OutputVariableMappingEntry

JSON 表示法
{
  "key": string,
  "value": string
}
字段
key

string

value

string

RemoteA2aAgent

JSON 表示法
{
  "a2aConfig": {
    object (RemoteA2aConfig)
  }
}
字段
a2aConfig

object (RemoteA2aConfig)

必需。A2A 连接配置。

RemoteA2aConfig

JSON 表示法
{
  "apiAuthentication": {
    object (ApiAuthentication)
  },
  "inputVariableMapping": {
    string: string,
    ...
  },
  "outputVariableMapping": {
    string: string,
    ...
  },
  "streamingEnabled": boolean,
  "contextId": string,

  // Union field agent_spec can be only one of the following:
  "agentCard": {
    object (AgentCard)
  },
  "agentRegistry": string
  // End of list of possible types for union field agent_spec.
}
字段
apiAuthentication

object (ApiAuthentication)

可选。用于调用远程代理的身份验证配置。如果注册表引用已处理身份验证,则为可选。

inputVariableMapping

map (key: string, value: string)

可选。远程代理的输入变量名称与 GECX 变量名称的映射。

包含一系列 "key": value 对的对象。示例:{ "name": "wrench", "mass": "1.3kg", "count": "3" }。

outputVariableMapping

map (key: string, value: string)

可选。远程代理的输出变量名称与 GECX 变量名称之间的映射。

包含一系列 "key": value 对的对象。示例:{ "name": "wrench", "mass": "1.3kg", "count": "3" }。

streamingEnabled

boolean

可选。远程代理是否已启用流式传输。

contextId

string

可选。如果不为空,与远程 A2A 代理的互动将使用此上下文 ID。此 context_id 字段可以引用会话变量,例如 $context.variables.order_agent_session_id。

联合字段 agent_spec。远程代理的规范。agent_spec 只能是下列其中一项:
agentCard

object (AgentCard)

可选。以内嵌方式定义的完整代理卡片。

agentRegistry

string

可选。对 Agent Registry 中代理的引用。格式:projects/{project}/locations/{location}/agents/{agent}

AgentCard

JSON 表示法
{
  "name": string,
  "description": string,
  "supportedInterfaces": [
    {
      object (AgentInterface)
    }
  ],
  "version": string,
  "skills": [
    {
      object (AgentSkill)
    }
  ]
}
字段
name

string

必需。代理的人类可读名称。

description

string

必需。代理的操作领域/解决方案空间的说明。

supportedInterfaces[]

object (AgentInterface)

必需。支持的接口的有序列表。第一个条目是首选。

version

string

必需。代理的版本。

skills[]

object (AgentSkill)

必需。技能表示智能体可以执行的能力单位。这可能有些抽象,但代表了一组更集中的操作,智能体很可能成功完成这些操作。

AgentInterface

JSON 表示法
{
  "url": string,
  "protocolBinding": string,
  "tenant": string,
  "protocolVersion": string
}
字段
url

string

必需。相应接口可用的网址。在正式版中,必须是有效的绝对 HTTPS 网址。示例:“https://api.example.com/a2a/v1”“https://grpc.example.com/a2a”

protocolBinding

string

必需。相应网址支持的协议绑定。这是一个开放形式的字符串,可轻松扩展以用于其他协议绑定。受官方支持的核心模型包括 JSONRPC、GRPC 和 HTTP+JSON。

tenant

string

在调用代理时要在请求中使用的租户 ID。

protocolVersion

string

必需。相应接口公开的 A2A protocol 版本。使用每个主要版本的最新受支持次要版本。示例:“0.3”“1.0”

AgentSkill

JSON 表示法
{
  "id": string,
  "name": string,
  "description": string,
  "tags": [
    string
  ],
  "examples": [
    string
  ],
  "inputModes": [
    string
  ],
  "outputModes": [
    string
  ]
}
字段
id

string

必需。代理技能的唯一标识符。

name

string

必需。技能的人类可读名称。

description

string

必需。技能的详细说明。

tags[]

string

必需。一组描述技能功能的关键字。

examples[]

string

此技能可处理的提示或场景示例。

inputModes[]

string

此技能支持的输入媒体类型集,用于替换代理的默认设置。

outputModes[]

string

相应技能支持的一组输出媒体类型,用于替换代理的默认设置。

ApiAuthentication

JSON 表示法
{

  // Union field auth_config can be only one of the following:
  "apiKeyConfig": {
    object (ApiKeyConfig)
  },
  "oauthConfig": {
    object (OAuthConfig)
  },
  "serviceAgentIdTokenAuthConfig": {
    object (ServiceAgentIdTokenAuthConfig)
  },
  "serviceAccountAuthConfig": {
    object (ServiceAccountAuthConfig)
  },
  "bearerTokenConfig": {
    object (BearerTokenConfig)
  }
  // End of list of possible types for union field auth_config.
}
字段
联合字段 auth_config。身份验证配置。auth_config 只能是下列其中一项:
apiKeyConfig

object (ApiKeyConfig)

可选。API 密钥身份验证的配置。

oauthConfig

object (OAuthConfig)

可选。OAuth 的配置。

serviceAgentIdTokenAuthConfig

object (ServiceAgentIdTokenAuthConfig)

可选。从 CES 服务代理生成的 ID 令牌身份验证配置。

serviceAccountAuthConfig

object (ServiceAccountAuthConfig)

可选。服务账号身份验证的配置。

bearerTokenConfig

object (BearerTokenConfig)

可选。不记名令牌身份验证的配置。

ApiKeyConfig

JSON 表示法
{
  "keyName": string,
  "apiKeySecretVersion": string,
  "requestLocation": enum (RequestLocation)
}
字段
keyName

string

必需。API 密钥的参数名称或标头名称。例如,如果 API 请求为“https://example.com/act?X-Api-Key=",则“X-Api-Key”为参数名称。

apiKeySecretVersion

string

必需。存储 API 密钥的 SecretManager Secret 版本资源的名称。格式:projects/{project}/secrets/{secret}/versions/{version}

注意:您应向 CES 服务代理 service-<PROJECT-NUMBER>@gcp-sa-ces.iam.gserviceaccount.com 授予 roles/secretmanager.secretAccessor 角色。

requestLocation

enum (RequestLocation)

必需。请求中的密钥位置。

OAuthConfig

JSON 表示法
{
  "oauthGrantType": enum (OauthGrantType),
  "clientId": string,
  "clientSecretVersion": string,
  "tokenEndpoint": string,
  "scopes": [
    string
  ]
}
字段
oauthGrantType

enum (OauthGrantType)

必需。OAuth 授权类型。

clientId

string

必需。OAuth 提供方的客户端 ID。

clientSecretVersion

string

必需。存储客户端密钥的 SecretManager 密钥版本资源的名称。格式:projects/{project}/secrets/{secret}/versions/{version}

注意:您应向 CES 服务代理 service-<PROJECT-NUMBER>@gcp-sa-ces.iam.gserviceaccount.com 授予 roles/secretmanager.secretAccessor 角色。

tokenEndpoint

string

必需。OAuth 提供方中用于换取访问令牌的令牌端点。

scopes[]

string

可选。要授予的 OAuth 范围。

ServiceAccountAuthConfig

JSON 表示法
{
  "serviceAccount": string,
  "scopes": [
    string
  ]
}
字段
serviceAccount

string

必需。用于身份验证的服务账号的电子邮件地址。CES 使用此服务账号来交换访问令牌,然后将该访问令牌发送到请求的 Authorization 标头中。

服务账号必须具有授予 CES 服务代理 service-<PROJECT-NUMBER>@gcp-sa-ces.iam.gserviceaccount.com 的 roles/iam.serviceAccountTokenCreator 角色。

scopes[]

string

可选。要授予的 OAuth 范围。如果未指定,则使用默认范围 https://www.googleapis.com/auth/cloud-platform。

BearerTokenConfig

JSON 表示法
{
  "token": string
}
字段
token

string

必需。不记名令牌。必须采用 $context.variables.<name_of_variable> 格式。

InputVariableMappingEntry

JSON 表示法
{
  "key": string,
  "value": string
}
字段
key

string

value

string

OutputVariableMappingEntry

JSON 表示法
{
  "key": string,
  "value": string
}
字段
key

string

value

string

ModelSettings

JSON 表示法
{
  "model": string,
  "thinkingLevel": enum (ThinkingLevel),

  // Union field _temperature can be only one of the following:
  "temperature": number
  // End of list of possible types for union field _temperature.
}
字段
model

string

可选。智能体应使用的 LLM 模型。如果未设置,代理将从其父智能体继承模型。

thinkingLevel

enum (ThinkingLevel)

可选。模型的思考等级。

联合字段 _temperature。

_temperature 只能是下列其中一项:

temperature

number

可选。如果设置,系统将使用此温度值来运行 LLM 模型。温度可控制模型回答的随机性。温度越低,生成的回答就越可预测。温度越高,生成的回答就越有创意。

回调

JSON 表示法
{
  "description": string,
  "disabled": boolean,
  "proactiveExecutionEnabled": boolean,

  // Union field callback can be only one of the following:
  "pythonCode": string
  // End of list of possible types for union field callback.
}
字段
description

string

可选。回调的人类可读说明。

disabled

boolean

可选。回调是否已停用。代理会忽略已停用的回拨。

proactiveExecutionEnabled

boolean

可选。如果启用,系统还会针对中间模型输出执行回调。此设置仅影响模型后回调。请谨慎启用。通常,模型后回调只需要在收到所有模型回答后执行。启用主动执行可能会对执行费用和延迟时间产生负面影响,因此仅应在极少数情况下启用。

联合字段 callback。要执行的回调。callback 只能是下列其中一项:
pythonCode

string

必需。要为回调执行的 Python 代码。

时间戳

JSON 表示法
{
  "seconds": string,
  "nanos": integer
}
字段
seconds

string (int64 format)

表示世界协调时间 (UTC) 的秒数(从 Unix 纪元 1970-01-01T00:00:00Z 开始算起)。必须介于 -62135596800 和 253402300799 之间(含边界值),对应于 0001-01-01T00:00:00Z 到 9999-12-31T23:59:59Z。

nanos

integer

秒数的非负小数部分(以纳秒为单位)。此字段是时长的纳秒部分,而不是秒的替代项。对于含小数部分的负秒数,仍必须包含按时间递升的非负纳秒值。必须在 0 到 999,999,999 之间(含边界值)。

AgentToolset

JSON 表示法
{
  "toolset": string,
  "toolIds": [
    string
  ]
}
字段
toolset

string

必需。工具集的资源名称。格式:projects/{project}/locations/{location}/apps/{app}/toolsets/{toolset}

toolIds[]

string

可选。用于过滤工具集的工具 ID。

TransferRule

JSON 表示法
{
  "childAgent": string,
  "direction": enum (Direction),

  // Union field rule_type can be only one of the following:
  "deterministicTransfer": {
    object (DeterministicTransfer)
  },
  "disablePlannerTransfer": {
    object (DisablePlannerTransfer)
  }
  // End of list of possible types for union field rule_type.
}
字段
childAgent

string

必需。规则所适用的子代理的资源名称。格式:projects/{project}/locations/{location}/apps/{app}/agents/{agent}

direction

enum (Direction)

必需。转移方向。

联合字段 rule_type。规则类型。rule_type 只能是下列其中一项:
deterministicTransfer

object (DeterministicTransfer)

可选。一种在满足条件时立即转移到目标客服人员的规则。

disablePlannerTransfer

object (DisablePlannerTransfer)

可选。阻止规划器转移到目标代理的规则。

DeterministicTransfer

JSON 表示法
{

  // Union field condition_type can be only one of the following:
  "expressionCondition": {
    object (ExpressionCondition)
  },
  "pythonCodeCondition": {
    object (PythonCodeCondition)
  }
  // End of list of possible types for union field condition_type.
}
字段
联合字段 condition_type。要评估的条件。condition_type 只能是下列其中一项:
expressionCondition

object (ExpressionCondition)

可选。用于评估会话状态条件的规则。如果条件的评估结果为 true,则会发生转移。

pythonCodeCondition

object (PythonCodeCondition)

可选。使用 Python 代码块评估条件的规则。如果条件的评估结果为 true,则会发生转移。

ExpressionCondition

JSON 表示法
{
  "expression": string
}
字段
expression

string

必需。cloud.api.Expression 条件的字符串表示形式。

PythonCodeCondition

JSON 表示法
{
  "pythonCode": string
}
字段
pythonCode

string

必需。要执行的 Python 代码。

DisablePlannerTransfer

JSON 表示法
{
  "expressionCondition": {
    object (ExpressionCondition)
  }
}
字段
expressionCondition

object (ExpressionCondition)

必需。如果条件的评估结果为 true,则规划器将无法转移到目标代理。

RequestLocation

请求中 API 密钥的位置。

枚举
REQUEST_LOCATION_UNSPECIFIED 未指定。不应使用此值。
HEADER 表示 HTTP 标头中的键。
QUERY_STRING 表示查询字符串中的键。

OauthGrantType

OAuth 授权类型。仅支持客户端凭据授权。

枚举
OAUTH_GRANT_TYPE_UNSPECIFIED 未指定。默认值为 CLIENT_CREDENTIAL。
CLIENT_CREDENTIAL 表示客户端凭证流程。

ThinkingLevel

模型的思考水平配置。

枚举
THINKING_LEVEL_UNSPECIFIED 思考等级未指定。
DEFAULT 默认思考等级。
LOW 低思考等级。
MEDIUM 中等思考等级。
HIGH 高思考等级。

方向

转移方向。

枚举
DIRECTION_UNSPECIFIED 未指定方向。
PARENT_TO_CHILD 从父智能体转移到子代理。
CHILD_TO_PARENT 从子智能体转移到父智能体。

输出架构

智能体充当基本构建块,可向大语言模型 (LLM) 提供指令,以执行特定任务。

代理

JSON 表示法
{
  "name": string,
  "displayName": string,
  "description": string,
  "modelSettings": {
    object (ModelSettings)
  },
  "instruction": string,
  "tools": [
    string
  ],
  "childAgents": [
    string
  ],
  "beforeAgentCallbacks": [
    {
      object (Callback)
    }
  ],
  "afterAgentCallbacks": [
    {
      object (Callback)
    }
  ],
  "beforeModelCallbacks": [
    {
      object (Callback)
    }
  ],
  "afterModelCallbacks": [
    {
      object (Callback)
    }
  ],
  "beforeToolCallbacks": [
    {
      object (Callback)
    }
  ],
  "afterToolCallbacks": [
    {
      object (Callback)
    }
  ],
  "createTime": string,
  "updateTime": string,
  "guardrails": [
    string
  ],
  "etag": string,
  "toolsets": [
    {
      object (AgentToolset)
    }
  ],
  "generatedSummary": string,
  "transferRules": [
    {
      object (TransferRule)
    }
  ],
  "validationErrors": [
    string
  ],

  // Union field agent_type can be only one of the following:
  "llmAgent": {
    object (LlmAgent)
  },
  "remoteDialogflowAgent": {
    object (RemoteDialogflowAgent)
  },
  "remoteA2aAgent": {
    object (RemoteA2aAgent)
  }
  // End of list of possible types for union field agent_type.
}
字段
name

string

标识符。代理的唯一标识符。格式:projects/{project}/locations/{location}/apps/{app}/agents/{agent}

displayName

string

必需。代理的显示名称。

description

string

可选。代理的人类可读说明。

modelSettings

object (ModelSettings)

可选。LLM 模型的配置。

instruction

string

可选。LLM 模型的指令,用于指导代理的行为。

tools[]

string

可选。代理可用的工具列表。格式:projects/{project}/locations/{location}/apps/{app}/tools/{tool}

childAgents[]

string

可选。代理树中的子代理列表。格式:projects/{project}/locations/{location}/apps/{app}/agents/{agent}

beforeAgentCallbacks[]

object (Callback)

可选。在调用代理之前要执行的回调。所提供的回调会按列表中的顺序依次执行。如果回调返回了替换的响应,则执行会停止,并跳过所有剩余的回调。

afterAgentCallbacks[]

object (Callback)

可选。在调用代理后要执行的回调。所提供的回调会按列表中的顺序依次执行。如果回调返回了替换的响应,则执行会停止,并跳过所有剩余的回调。

beforeModelCallbacks[]

object (Callback)

可选。在调用模型之前要执行的回调。如果多次调用模型,则回调将执行多次。所提供的回调会按列表中的顺序依次执行。如果回调返回了替换的响应,则执行会停止,并跳过所有剩余的回调。

afterModelCallbacks[]

object (Callback)

可选。在调用模型后要执行的回调。如果多次调用模型,则回调将执行多次。所提供的回调会按列表中的顺序依次执行。如果回调返回了替换的响应,则执行会停止,并跳过所有剩余的回调。

beforeToolCallbacks[]

object (Callback)

可选。在调用工具之前要执行的回调。如果存在多次工具调用,则回调将执行多次。所提供的回调会按列表中的顺序依次执行。如果回调返回了替换的响应,则执行会停止,并跳过所有剩余的回调。

afterToolCallbacks[]

object (Callback)

可选。在调用工具后要执行的回调。如果存在多次工具调用,则回调将执行多次。所提供的回调会按列表中的顺序依次执行。如果回调返回了替换的响应,则执行会停止,并跳过所有剩余的回调。

createTime

string (Timestamp format)

仅限输出。创建代理时的时间戳。

采用 RFC 3339 标准,生成的输出将始终进行 Z 规范化(即转换为 UTC 零时区格式并在末尾附加 Z),并使用 0、3、6 或 9 个小数位。不带“Z”的偏差时间也是可以接受的。示例:"2014-10-02T15:01:23Z"、"2014-10-02T15:01:23.045123456Z" 或 "2014-10-02T15:01:23+05:30"。

updateTime

string (Timestamp format)

仅限输出。代理上次更新时的时间戳。

采用 RFC 3339 标准,生成的输出将始终进行 Z 规范化(即转换为 UTC 零时区格式并在末尾附加 Z),并使用 0、3、6 或 9 个小数位。不带“Z”的偏差时间也是可以接受的。示例:"2014-10-02T15:01:23Z"、"2014-10-02T15:01:23.045123456Z" 或 "2014-10-02T15:01:23+05:30"。

guardrails[]

string

可选。代理的护栏列表。格式:projects/{project}/locations/{location}/apps/{app}/guardrails/{guardrail}

etag

string

用于确保对象在读取-修改-写入操作期间未发生更改的 ETag。如果 etag 为空,则更新会覆盖任何并发更改。

toolsets[]

object (AgentToolset)

可选。代理的工具集列表。

generatedSummary

string

仅限输出。如果代理是由 LLM 助理生成的,此字段包含生成内容的描述性摘要。

transferRules[]

object (TransferRule)

可选。客服人员转移规则。如果多个规则匹配,系统将使用列表中的第一个规则。

validationErrors[]

string

仅限输出。代理中的错误配置或错误,可能会影响代理质量。

联合字段 agent_type。代理的类型。agent_type 只能是下列其中一项:
llmAgent

object (LlmAgent)

可选。默认代理类型。

remoteDialogflowAgent

object (RemoteDialogflowAgent)

可选。用于执行代理的远程 Dialogflow 代理。如果设置了此字段,系统将忽略所有其他代理级属性。

注意:如果 Dialogflow 代理与应用位于不同的项目中,您应向 CES 服务代理 service-<PROJECT-NUMBER>@gcp-sa-ces.iam.gserviceaccount.com 授予 roles/dialogflow.client 权限。

remoteA2aAgent

object (RemoteA2aAgent)

可选。用于执行代理的远程 A2A 代理。

RemoteDialogflowAgent

JSON 表示法
{
  "agent": string,
  "flowId": string,
  "environmentId": string,
  "inputVariableMapping": {
    string: string,
    ...
  },
  "outputVariableMapping": {
    string: string,
    ...
  },
  "respectResponseInterruptionSettings": boolean,
  "languageCodeVariable": string
}
字段
agent

string

必需。Dialogflow 代理资源名称。格式:projects/{project}/locations/{location}/agents/{agent}

flowId

string

可选。Dialogflow 代理中相应流程的流程 ID。

environmentId

string

可选。用于代理执行的 Dialogflow 代理的环境 ID。如果未指定,则使用草稿环境。

inputVariableMapping

map (key: string, value: string)

可选。应用变量名称与要作为输入发送给 Dialogflow 代理的 Dialogflow 会话参数名称之间的映射。

包含一系列 "key": value 对的对象。示例:{ "name": "wrench", "mass": "1.3kg", "count": "3" }。

outputVariableMapping

map (key: string, value: string)

可选。Dialogflow 会话参数名称与应用变量名称的映射,用于在 Dialogflow 代理执行结束后发送回 CES 代理。

包含一系列 "key": value 对的对象。示例:{ "name": "wrench", "mass": "1.3kg", "count": "3" }。

respectResponseInterruptionSettings

boolean

可选。指示是否遵循在 Dialogflow 代理中配置的消息级中断设置。

  • 如果为 false:来自 Dialogflow 代理的所有响应消息都遵循应用级抢占设置。
  • 如果为 true:只有将 allow_playback_interruption 设置为 true 的响应消息可以被中断,所有其他消息都遵循应用级抢占设置。
languageCodeVariable

string

可选。包含要用于 Dialogflow 会话的语言代码的变量的名称。如果未指定,系统将使用 Dialogflow 代理的默认语言代码。

InputVariableMappingEntry

JSON 表示法
{
  "key": string,
  "value": string
}
字段
key

string

value

string

OutputVariableMappingEntry

JSON 表示法
{
  "key": string,
  "value": string
}
字段
key

string

value

string

RemoteA2aAgent

JSON 表示法
{
  "a2aConfig": {
    object (RemoteA2aConfig)
  }
}
字段
a2aConfig

object (RemoteA2aConfig)

必需。A2A 连接配置。

RemoteA2aConfig

JSON 表示法
{
  "apiAuthentication": {
    object (ApiAuthentication)
  },
  "inputVariableMapping": {
    string: string,
    ...
  },
  "outputVariableMapping": {
    string: string,
    ...
  },
  "streamingEnabled": boolean,
  "contextId": string,

  // Union field agent_spec can be only one of the following:
  "agentCard": {
    object (AgentCard)
  },
  "agentRegistry": string
  // End of list of possible types for union field agent_spec.
}
字段
apiAuthentication

object (ApiAuthentication)

可选。用于调用远程代理的身份验证配置。如果注册表引用已处理身份验证,则为可选。

inputVariableMapping

map (key: string, value: string)

可选。远程代理的输入变量名称与 GECX 变量名称的映射。

包含一系列 "key": value 对的对象。示例:{ "name": "wrench", "mass": "1.3kg", "count": "3" }。

outputVariableMapping

map (key: string, value: string)

可选。远程代理的输出变量名称与 GECX 变量名称之间的映射。

包含一系列 "key": value 对的对象。示例:{ "name": "wrench", "mass": "1.3kg", "count": "3" }。

streamingEnabled

boolean

可选。远程代理是否已启用流式传输。

contextId

string

可选。如果不为空,与远程 A2A 代理的互动将使用此上下文 ID。此 context_id 字段可以引用会话变量,例如 $context.variables.order_agent_session_id。

联合字段 agent_spec。远程代理的规范。agent_spec 只能是下列其中一项:
agentCard

object (AgentCard)

可选。以内嵌方式定义的完整代理卡片。

agentRegistry

string

可选。对 Agent Registry 中代理的引用。格式:projects/{project}/locations/{location}/agents/{agent}

AgentCard

JSON 表示法
{
  "name": string,
  "description": string,
  "supportedInterfaces": [
    {
      object (AgentInterface)
    }
  ],
  "version": string,
  "skills": [
    {
      object (AgentSkill)
    }
  ]
}
字段
name

string

必需。代理的人类可读名称。

description

string

必需。代理的操作领域/解决方案空间的说明。

supportedInterfaces[]

object (AgentInterface)

必需。支持的接口的有序列表。第一个条目是首选。

version

string

必需。代理的版本。

skills[]

object (AgentSkill)

必需。技能表示智能体可以执行的能力单位。这可能有些抽象,但代表了一组更集中的操作,智能体很可能成功完成这些操作。

AgentInterface

JSON 表示法
{
  "url": string,
  "protocolBinding": string,
  "tenant": string,
  "protocolVersion": string
}
字段
url

string

必需。相应接口可用的网址。在正式版中,必须是有效的绝对 HTTPS 网址。示例:“https://api.example.com/a2a/v1”“https://grpc.example.com/a2a”

protocolBinding

string

必需。相应网址支持的协议绑定。这是一个开放形式的字符串,可轻松扩展以用于其他协议绑定。受官方支持的核心模型包括 JSONRPC、GRPC 和 HTTP+JSON。

tenant

string

在调用代理时要在请求中使用的租户 ID。

protocolVersion

string

必需。相应接口公开的 A2A protocol 版本。使用每个主要版本的最新受支持次要版本。示例:“0.3”“1.0”

AgentSkill

JSON 表示法
{
  "id": string,
  "name": string,
  "description": string,
  "tags": [
    string
  ],
  "examples": [
    string
  ],
  "inputModes": [
    string
  ],
  "outputModes": [
    string
  ]
}
字段
id

string

必需。代理技能的唯一标识符。

name

string

必需。技能的人类可读名称。

description

string

必需。技能的详细说明。

tags[]

string

必需。一组描述技能功能的关键字。

examples[]

string

此技能可处理的提示或场景示例。

inputModes[]

string

此技能支持的输入媒体类型集,用于替换代理的默认设置。

outputModes[]

string

相应技能支持的一组输出媒体类型,用于替换代理的默认设置。

ApiAuthentication

JSON 表示法
{

  // Union field auth_config can be only one of the following:
  "apiKeyConfig": {
    object (ApiKeyConfig)
  },
  "oauthConfig": {
    object (OAuthConfig)
  },
  "serviceAgentIdTokenAuthConfig": {
    object (ServiceAgentIdTokenAuthConfig)
  },
  "serviceAccountAuthConfig": {
    object (ServiceAccountAuthConfig)
  },
  "bearerTokenConfig": {
    object (BearerTokenConfig)
  }
  // End of list of possible types for union field auth_config.
}
字段
联合字段 auth_config。身份验证配置。auth_config 只能是下列其中一项:
apiKeyConfig

object (ApiKeyConfig)

可选。API 密钥身份验证的配置。

oauthConfig

object (OAuthConfig)

可选。OAuth 的配置。

serviceAgentIdTokenAuthConfig

object (ServiceAgentIdTokenAuthConfig)

可选。从 CES 服务代理生成的 ID 令牌身份验证配置。

serviceAccountAuthConfig

object (ServiceAccountAuthConfig)

可选。服务账号身份验证的配置。

bearerTokenConfig

object (BearerTokenConfig)

可选。不记名令牌身份验证的配置。

ApiKeyConfig

JSON 表示法
{
  "keyName": string,
  "apiKeySecretVersion": string,
  "requestLocation": enum (RequestLocation)
}
字段
keyName

string

必需。API 密钥的参数名称或标头名称。例如,如果 API 请求为“https://example.com/act?X-Api-Key=",则“X-Api-Key”为参数名称。

apiKeySecretVersion

string

必需。存储 API 密钥的 SecretManager Secret 版本资源的名称。格式:projects/{project}/secrets/{secret}/versions/{version}

注意:您应向 CES 服务代理 service-<PROJECT-NUMBER>@gcp-sa-ces.iam.gserviceaccount.com 授予 roles/secretmanager.secretAccessor 角色。

requestLocation

enum (RequestLocation)

必需。请求中的密钥位置。

OAuthConfig

JSON 表示法
{
  "oauthGrantType": enum (OauthGrantType),
  "clientId": string,
  "clientSecretVersion": string,
  "tokenEndpoint": string,
  "scopes": [
    string
  ]
}
字段
oauthGrantType

enum (OauthGrantType)

必需。OAuth 授权类型。

clientId

string

必需。OAuth 提供方的客户端 ID。

clientSecretVersion

string

必需。存储客户端密钥的 SecretManager 密钥版本资源的名称。格式:projects/{project}/secrets/{secret}/versions/{version}

注意:您应向 CES 服务代理 service-<PROJECT-NUMBER>@gcp-sa-ces.iam.gserviceaccount.com 授予 roles/secretmanager.secretAccessor 角色。

tokenEndpoint

string

必需。OAuth 提供方中用于换取访问令牌的令牌端点。

scopes[]

string

可选。要授予的 OAuth 范围。

ServiceAccountAuthConfig

JSON 表示法
{
  "serviceAccount": string,
  "scopes": [
    string
  ]
}
字段
serviceAccount

string

必需。用于身份验证的服务账号的电子邮件地址。CES 使用此服务账号来交换访问令牌,然后将该访问令牌发送到请求的 Authorization 标头中。

服务账号必须具有授予 CES 服务代理 service-<PROJECT-NUMBER>@gcp-sa-ces.iam.gserviceaccount.com 的 roles/iam.serviceAccountTokenCreator 角色。

scopes[]

string

可选。要授予的 OAuth 范围。如果未指定,则使用默认范围 https://www.googleapis.com/auth/cloud-platform。

BearerTokenConfig

JSON 表示法
{
  "token": string
}
字段
token

string

必需。不记名令牌。必须采用 $context.variables.<name_of_variable> 格式。

InputVariableMappingEntry

JSON 表示法
{
  "key": string,
  "value": string
}
字段
key

string

value

string

OutputVariableMappingEntry

JSON 表示法
{
  "key": string,
  "value": string
}
字段
key

string

value

string

ModelSettings

JSON 表示法
{
  "model": string,
  "thinkingLevel": enum (ThinkingLevel),

  // Union field _temperature can be only one of the following:
  "temperature": number
  // End of list of possible types for union field _temperature.
}
字段
model

string

可选。智能体应使用的 LLM 模型。如果未设置,代理将从其父智能体继承模型。

thinkingLevel

enum (ThinkingLevel)

可选。模型的思考等级。

联合字段 _temperature。

_temperature 只能是下列其中一项:

temperature

number

可选。如果设置,系统将使用此温度值来运行 LLM 模型。温度可控制模型回答的随机性。温度越低,生成的回答就越可预测。温度越高,生成的回答就越有创意。

回调

JSON 表示法
{
  "description": string,
  "disabled": boolean,
  "proactiveExecutionEnabled": boolean,

  // Union field callback can be only one of the following:
  "pythonCode": string
  // End of list of possible types for union field callback.
}
字段
description

string

可选。回调的人类可读说明。

disabled

boolean

可选。回调是否已停用。代理会忽略已停用的回拨。

proactiveExecutionEnabled

boolean

可选。如果启用,系统还会针对中间模型输出执行回调。此设置仅影响模型后回调。请谨慎启用。通常,模型后回调只需要在收到所有模型回答后执行。启用主动执行可能会对执行费用和延迟时间产生负面影响,因此仅应在极少数情况下启用。

联合字段 callback。要执行的回调。callback 只能是下列其中一项:
pythonCode

string

必需。要为回调执行的 Python 代码。

时间戳

JSON 表示法
{
  "seconds": string,
  "nanos": integer
}
字段
seconds

string (int64 format)

表示世界协调时间 (UTC) 的秒数(从 Unix 纪元 1970-01-01T00:00:00Z 开始算起)。必须介于 -62135596800 和 253402300799 之间(含边界值),对应于 0001-01-01T00:00:00Z 到 9999-12-31T23:59:59Z。

nanos

integer

秒数的非负小数部分(以纳秒为单位)。此字段是时长的纳秒部分,而不是秒的替代项。对于含小数部分的负秒数,仍必须包含按时间递升的非负纳秒值。必须在 0 到 999,999,999 之间(含边界值)。

AgentToolset

JSON 表示法
{
  "toolset": string,
  "toolIds": [
    string
  ]
}
字段
toolset

string

必需。工具集的资源名称。格式:projects/{project}/locations/{location}/apps/{app}/toolsets/{toolset}

toolIds[]

string

可选。用于过滤工具集的工具 ID。

TransferRule

JSON 表示法
{
  "childAgent": string,
  "direction": enum (Direction),

  // Union field rule_type can be only one of the following:
  "deterministicTransfer": {
    object (DeterministicTransfer)
  },
  "disablePlannerTransfer": {
    object (DisablePlannerTransfer)
  }
  // End of list of possible types for union field rule_type.
}
字段
childAgent

string

必需。规则所适用的子代理的资源名称。格式:projects/{project}/locations/{location}/apps/{app}/agents/{agent}

direction

enum (Direction)

必需。转移方向。

联合字段 rule_type。规则类型。rule_type 只能是下列其中一项:
deterministicTransfer

object (DeterministicTransfer)

可选。一种在满足条件时立即转移到目标客服人员的规则。

disablePlannerTransfer

object (DisablePlannerTransfer)

可选。阻止规划器转移到目标代理的规则。

DeterministicTransfer

JSON 表示法
{

  // Union field condition_type can be only one of the following:
  "expressionCondition": {
    object (ExpressionCondition)
  },
  "pythonCodeCondition": {
    object (PythonCodeCondition)
  }
  // End of list of possible types for union field condition_type.
}
字段
联合字段 condition_type。要评估的条件。condition_type 只能是下列其中一项:
expressionCondition

object (ExpressionCondition)

可选。用于评估会话状态条件的规则。如果条件的评估结果为 true,则会发生转移。

pythonCodeCondition

object (PythonCodeCondition)

可选。使用 Python 代码块评估条件的规则。如果条件的评估结果为 true,则会发生转移。

ExpressionCondition

JSON 表示法
{
  "expression": string
}
字段
expression

string

必需。cloud.api.Expression 条件的字符串表示形式。

PythonCodeCondition

JSON 表示法
{
  "pythonCode": string
}
字段
pythonCode

string

必需。要执行的 Python 代码。

DisablePlannerTransfer

JSON 表示法
{
  "expressionCondition": {
    object (ExpressionCondition)
  }
}
字段
expressionCondition

object (ExpressionCondition)

必需。如果条件的评估结果为 true,则规划器将无法转移到目标代理。

RequestLocation

请求中 API 密钥的位置。

枚举
REQUEST_LOCATION_UNSPECIFIED 未指定。不应使用此值。
HEADER 表示 HTTP 标头中的键。
QUERY_STRING 表示查询字符串中的键。

OauthGrantType

OAuth 授权类型。仅支持客户端凭据授权。

枚举
OAUTH_GRANT_TYPE_UNSPECIFIED 未指定。默认值为 CLIENT_CREDENTIAL。
CLIENT_CREDENTIAL 表示客户端凭证流程。

ThinkingLevel

模型的思考水平配置。

枚举
THINKING_LEVEL_UNSPECIFIED 思考等级未指定。
DEFAULT 默认思考等级。
LOW 低思考等级。
MEDIUM 中等思考等级。
HIGH 高思考等级。

方向

转移方向。

枚举
DIRECTION_UNSPECIFIED 未指定方向。
PARENT_TO_CHILD 从父智能体转移到子代理。
CHILD_TO_PARENT 从子智能体转移到父智能体。

工具注释

工具注释会发送给 MCP 客户端,用于描述指定工具的基本风险。大多数客户端会将这些提示视为不受信任的,但它们可用于确定何时向用户发送确认提示。

除了标题字符串之外,还定义了以下布尔值提示:

  • readOnlyHint:如果为 true,则工具不会修改其环境。默认值:false。
  • destructiveHint:如果为 true,则工具可以执行破坏性操作。如果为 false,则该工具只能执行添加操作。默认值:true。
  • idempotentHint:如果为 true,则使用相同实参重复调用该工具不会对其环境产生任何额外影响。默认值:false。
  • openWorldHint:如果为 true,则工具可以与外部实体的“开放世界”进行交互。如果为 false,则该工具只能与内部实体互动。例如,网络搜索工具是开放世界,而内存工具不是开放世界。

破坏性提示:✅ | 等幂性提示:❌ | 只读提示:❌ | 开放世界提示:❌