工具: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 }' |
输入架构
AgentService.CreateAgent 的请求消息。
CreateAgentRequest
| JSON 表示法 |
|---|
{
"parent": string,
"agentId": string,
"agent": {
object ( |
| 字段 | |
|---|---|
parent |
必需。要在其中创建代理的应用的资源名称。 |
agentId |
可选。要用于智能体的 ID,该 ID 将成为智能体资源名称的最后一个组成部分。如果未提供,系统会自动为代理分配唯一 ID。 |
agent |
必需。要创建的代理。 |
代理
| JSON 表示法 |
|---|
{ "name": string, "displayName": string, "description": string, "modelSettings": { object ( |
| 字段 | |
|---|---|
name |
标识符。代理的唯一标识符。格式: |
displayName |
必需。代理的显示名称。 |
description |
可选。代理的人类可读说明。 |
modelSettings |
可选。LLM 模型的配置。 |
instruction |
可选。LLM 模型用于指导代理行为的指令。 |
tools[] |
可选。智能体可用的工具列表。格式: |
childAgents[] |
可选。智能体树中的子智能体列表。格式: |
beforeAgentCallbacks[] |
可选。在调用智能体之前执行的回调。提供的回调会严格按照其在列表中出现的顺序依次执行。如果回调返回了替换响应,则执行会停止,并且系统会跳过所有剩余的回调。 |
afterAgentCallbacks[] |
可选。调用智能体后要执行的回调。提供的回调会严格按照其在列表中出现的顺序依次执行。如果回调返回了替换响应,则执行会停止,并且系统会跳过所有剩余的回调。 |
beforeModelCallbacks[] |
可选。在调用模型之前执行的回调。如果对模型进行了多次调用,则回调将执行多次。提供的回调会严格按照其在列表中出现的顺序依次执行。如果回调返回了替换响应,执行会停止,并且所有剩余的回调都会被跳过。 |
afterModelCallbacks[] |
可选。调用模型后要执行的回调。如果对模型进行了多次调用,则回调将执行多次。提供的回调会严格按照其在列表中出现的顺序依次执行。如果回调返回了替换响应,执行会停止,并且所有剩余的回调都会被跳过。 |
beforeToolCallbacks[] |
可选。在调用工具之前执行的回调。如果存在多个工具调用,则回调将执行多次。提供的回调会严格按照其在列表中出现的顺序依次执行。如果回调返回了替换响应,执行会停止,并且所有剩余的回调都会被跳过。 |
afterToolCallbacks[] |
可选。调用工具后要执行的回调。如果存在多个工具调用,则回调将执行多次。提供的回调会严格按照其在列表中出现的顺序依次执行。如果回调返回了替换响应,则执行会停止,并且系统会跳过所有剩余的回调。 |
createTime |
仅限输出。创建代理时的时间戳。 采用 RFC 3339 标准,生成的输出将始终进行 Z 规范化(即转换为 UTC 零时区格式并在末尾附加 Z),并使用 0、3、6 或 9 个小数位。不带“Z”的偏差时间也是可以接受的。示例: |
updateTime |
仅限输出。上次更新代理时的时间戳。 采用 RFC 3339 标准,生成的输出将始终进行 Z 规范化(即转换为 UTC 零时区格式并在末尾附加 Z),并使用 0、3、6 或 9 个小数位。不带“Z”的偏差时间也是可以接受的。示例: |
guardrails[] |
可选。智能体的护栏列表。格式: |
etag |
用于确保对象在读取-修改-写入操作期间未发生更改的 Etag。如果 etag 为空,则更新将覆盖所有并发更改。 |
toolsets[] |
可选。智能体的工具集列表。 |
generatedSummary |
仅限输出。如果代理是由 LLM 助理生成的,则此字段包含生成的描述性摘要。 |
transferRules[] |
可选。客服人员转接规则。如果有多条规则匹配,系统将使用列表中的第一条规则。 |
validationErrors[] |
仅限输出。智能体中可能影响智能体质量的错误配置或错误。 |
联合字段 agent_type。代理的类型。agent_type 只能是下列其中一项: |
|
llmAgent |
可选。默认代理类型。 |
remoteDialogflowAgent |
可选。要用于代理执行的远程 Dialogflow 代理。如果设置了此字段,系统将忽略所有其他代理级属性。 注意:如果 Dialogflow 代理与应用位于不同的项目中,您应向 CES 服务代理 |
remoteA2aAgent |
可选。要用于执行智能体的远程 A2A 智能体。 |
RemoteDialogflowAgent
| JSON 表示法 |
|---|
{ "agent": string, "flowId": string, "environmentId": string, "inputVariableMapping": { string: string, ... }, "outputVariableMapping": { string: string, ... }, "respectResponseInterruptionSettings": boolean, "languageCodeVariable": string } |
| 字段 | |
|---|---|
agent |
必需。Dialogflow 代理资源名称。格式: |
flowId |
可选。Dialogflow 代理中流程的流程 ID。 |
environmentId |
可选。要用于代理执行的 Dialogflow 代理的环境 ID。如果未指定,系统将使用草稿环境。 |
inputVariableMapping |
可选。应用变量名称与 Dialogflow 会话参数名称的映射,这些参数将作为输入发送到 Dialogflow 代理。 包含一系列 |
outputVariableMapping |
可选。Dialogflow 会话参数名称与应用变量名称的映射,这些变量将在 Dialogflow 代理执行结束后发送回 CES 代理。 包含一系列 |
respectResponseInterruptionSettings |
可选。指示是否遵循 Dialogflow 代理中配置的消息级打断设置。
|
languageCodeVariable |
可选。包含要用于 Dialogflow 会话的语言代码的变量名称。如果未指定,系统将使用 Dialogflow 代理的默认语言代码。 |
InputVariableMappingEntry
| JSON 表示法 |
|---|
{ "key": string, "value": string } |
| 字段 | |
|---|---|
key |
|
value |
|
OutputVariableMappingEntry
| JSON 表示法 |
|---|
{ "key": string, "value": string } |
| 字段 | |
|---|---|
key |
|
value |
|
RemoteA2aAgent
| JSON 表示法 |
|---|
{
"a2aConfig": {
object ( |
| 字段 | |
|---|---|
a2aConfig |
必需。A2A 连接配置。 |
RemoteA2aConfig
| JSON 表示法 |
|---|
{ "apiAuthentication": { object ( |
| 字段 | |
|---|---|
apiAuthentication |
可选。用于调用远程代理的身份验证配置。如果注册表引用已处理身份验证,则为可选。 |
inputVariableMapping |
可选。远程智能体的输入变量名称与 GECX 变量名称之间的映射。 包含一系列 |
outputVariableMapping |
可选。远程代理的输出变量名称与 GECX 变量名称的映射。 包含一系列 |
streamingEnabled |
可选。是否为远程代理启用了流式传输。 |
contextId |
可选。如果不为空,则与远程 A2A 智能体的互动将使用此上下文 ID。此 context_id 字段可以引用会话变量,例如 |
联合字段 agent_spec。远程代理的规范。agent_spec 只能是下列其中一项: |
|
agentCard |
可选。以内嵌方式定义的完整代理卡片。 |
agentRegistry |
可选。对 Agent Registry 中智能体的引用。格式: |
AgentCard
| JSON 表示法 |
|---|
{ "name": string, "description": string, "supportedInterfaces": [ { object ( |
| 字段 | |
|---|---|
name |
必需。代理的人类可读名称。 |
description |
必需。对代理的操作领域/解决方案空间的描述。 |
supportedInterfaces[] |
必需。支持的接口的有序列表。首选第一个条目。 |
version |
必需。代理的版本。 |
skills[] |
必需。技能代表智能体可以执行的能力单元。这可能有些抽象,但它代表了一组更集中的操作,智能体极有可能成功执行这些操作。 |
AgentInterface
| JSON 表示法 |
|---|
{ "url": string, "protocolBinding": string, "tenant": string, "protocolVersion": string } |
| 字段 | |
|---|---|
url |
必需。此接口所在的网址。在生产环境中,必须是有效的绝对 HTTPS 网址。示例:“https://api.example.com/a2a/v1”“https://grpc.example.com/a2a” |
protocolBinding |
必需。此网址支持的协议绑定。这是一个开放式字符串,可轻松扩展到其他协议绑定。官方支持的核心插件包括 |
tenant |
调用代理时要在请求中使用的租户 ID。 |
protocolVersion |
必需。此接口公开的 A2A protocol 版本。请使用每个主要版本支持的最新次要版本。示例:“0.3”“1.0” |
AgentSkill
| JSON 表示法 |
|---|
{ "id": string, "name": string, "description": string, "tags": [ string ], "examples": [ string ], "inputModes": [ string ], "outputModes": [ string ] } |
| 字段 | |
|---|---|
id |
必需。智能体技能的唯一标识符。 |
name |
必需。技能的人类可读名称。 |
description |
必需。技能的详细说明。 |
tags[] |
必需。一组描述技能功能的关键字。 |
examples[] |
此技能可以处理的提示或场景示例。 |
inputModes[] |
此技能支持的输入媒体类型集,会覆盖智能体的默认设置。 |
outputModes[] |
此技能支持的输出媒体类型集,会覆盖代理的默认设置。 |
ApiAuthentication
| JSON 表示法 |
|---|
{ // Union field |
| 字段 | |
|---|---|
联合字段 auth_config。身份验证配置。auth_config 只能是下列其中一项: |
|
apiKeyConfig |
可选。API 密钥身份验证的配置。 |
oauthConfig |
可选。OAuth 配置。 |
serviceAgentIdTokenAuthConfig |
可选。从 CES 服务代理生成的 ID 令牌身份验证的配置。 |
serviceAccountAuthConfig |
可选。服务账号身份验证的配置。 |
bearerTokenConfig |
可选。不记名令牌身份验证的配置。 |
ApiKeyConfig
| JSON 表示法 |
|---|
{
"keyName": string,
"apiKeySecretVersion": string,
"requestLocation": enum ( |
| 字段 | |
|---|---|
keyName |
必需。API 密钥的参数名称或标头名称。例如,如果 API 请求为“https://example.com/act?X-Api-Key= |
apiKeySecretVersion |
必需。存储 API 密钥的 SecretManager 密钥版本资源的名称。格式: 注意:您应向 CES 服务代理 |
requestLocation |
必需。请求中的密钥位置。 |
OAuthConfig
| JSON 表示法 |
|---|
{
"oauthGrantType": enum ( |
| 字段 | |
|---|---|
oauthGrantType |
必需。OAuth 授权类型。 |
clientId |
必需。OAuth 提供方的客户端 ID。 |
clientSecretVersion |
必需。存储客户端密钥的 SecretManager 密钥版本资源的名称。格式: 注意:您应向 CES 服务代理 |
tokenEndpoint |
必需。OAuth 提供方中用于换取访问令牌的令牌端点。 |
scopes[] |
可选。要授予的 OAuth 范围。 |
ServiceAccountAuthConfig
| JSON 表示法 |
|---|
{ "serviceAccount": string, "scopes": [ string ] } |
| 字段 | |
|---|---|
serviceAccount |
必需。用于身份验证的服务账号的邮箱。CES 会使用此服务账号来交换访问令牌,然后该访问令牌会在请求的 服务账号必须具有授予 CES 服务代理 |
scopes[] |
可选。要授予的 OAuth 范围。如果未指定,则使用默认范围 |
BearerTokenConfig
| JSON 表示法 |
|---|
{ "token": string } |
| 字段 | |
|---|---|
token |
必需。不记名令牌。必须采用 |
InputVariableMappingEntry
| JSON 表示法 |
|---|
{ "key": string, "value": string } |
| 字段 | |
|---|---|
key |
|
value |
|
OutputVariableMappingEntry
| JSON 表示法 |
|---|
{ "key": string, "value": string } |
| 字段 | |
|---|---|
key |
|
value |
|
ModelSettings
| JSON 表示法 |
|---|
{ "model": string, "thinkingLevel": enum ( |
| 字段 | |
|---|---|
model |
可选。智能体应使用的 LLM 模型。如果未设置,智能体将沿用其父智能体的模型。 |
thinkingLevel |
可选。模型的思考等级。 |
联合字段
|
|
temperature |
可选。如果设置,此温度将用于 LLM 模型。温度控制模型回答的随机性。温度越低,生成的回答越可预测。温度越高,生成的回答越有创意。 |
回调
| JSON 表示法 |
|---|
{ "description": string, "disabled": boolean, "proactiveExecutionEnabled": boolean, // Union field |
| 字段 | |
|---|---|
description |
可选。回调的人类可读说明。 |
disabled |
可选。回调是否已停用。代理会忽略已停用的回调。 |
proactiveExecutionEnabled |
可选。如果启用,回调也会在中间模型输出上执行。此设置仅影响模型后回调。请谨慎启用。通常,模型后回调只需在收到所有模型回答后执行。启用主动执行可能会对执行费用和延迟时间产生负面影响,因此应仅在极少数情况下启用。 |
联合字段 callback。要执行的回调。callback 只能是下列其中一项: |
|
pythonCode |
必需。要为回调执行的 Python 代码。 |
时间戳
| JSON 表示法 |
|---|
{ "seconds": string, "nanos": integer } |
| 字段 | |
|---|---|
seconds |
表示世界协调时间 (UTC) 的秒数(从 Unix 纪元 1970-01-01T00:00:00Z 开始算起)。必须介于 -62135596800 到 253402300799 之间(含边界值,对应于 0001-01-01T00:00:00Z 到 9999-12-31T23:59:59Z)。 |
nanos |
秒数的非负小数部分(以纳秒为单位)。此字段是时长的纳秒部分,而不是秒的替代。对于含小数部分的负秒数,仍必须包含按时间递升的非负纳秒值。必须在 0 到 999,999,999 之间(含边界值)。 |
AgentToolset
| JSON 表示法 |
|---|
{ "toolset": string, "toolIds": [ string ] } |
| 字段 | |
|---|---|
toolset |
必需。工具集的资源名称。格式: |
toolIds[] |
可选。用于过滤工具集的工具 ID。 |
TransferRule
| JSON 表示法 |
|---|
{ "childAgent": string, "direction": enum ( |
| 字段 | |
|---|---|
childAgent |
必需。规则适用的子代理的资源名称。格式: |
direction |
必需。转移方向。 |
联合字段 rule_type。规则类型。rule_type 只能是下列其中一项: |
|
deterministicTransfer |
可选。满足条件时立即转移到目标代理的规则。 |
disablePlannerTransfer |
可选。阻止规划器转移到目标智能体的规则。 |
DeterministicTransfer
| JSON 表示法 |
|---|
{ // Union field |
| 字段 | |
|---|---|
联合字段 condition_type。要评估的条件。condition_type 只能是下列其中一项: |
|
expressionCondition |
可选。用于评估会话状态条件的规则。如果条件的计算结果为 true,则会发生转移。 |
pythonCodeCondition |
可选。使用 Python 代码块评估条件的规则。如果条件的计算结果为 true,则会发生转移。 |
ExpressionCondition
| JSON 表示法 |
|---|
{ "expression": string } |
| 字段 | |
|---|---|
expression |
必需。cloud.api.Expression 条件的字符串表示。 |
PythonCodeCondition
| JSON 表示法 |
|---|
{ "pythonCode": string } |
| 字段 | |
|---|---|
pythonCode |
必需。要执行的 Python 代码。 |
DisablePlannerTransfer
| JSON 表示法 |
|---|
{
"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 ( |
| 字段 | |
|---|---|
name |
标识符。代理的唯一标识符。格式: |
displayName |
必需。代理的显示名称。 |
description |
可选。代理的人类可读说明。 |
modelSettings |
可选。LLM 模型的配置。 |
instruction |
可选。LLM 模型用于指导代理行为的指令。 |
tools[] |
可选。智能体可用的工具列表。格式: |
childAgents[] |
可选。智能体树中的子智能体列表。格式: |
beforeAgentCallbacks[] |
可选。在调用智能体之前执行的回调。提供的回调会严格按照其在列表中出现的顺序依次执行。如果回调返回了替换响应,则执行会停止,并且系统会跳过所有剩余的回调。 |
afterAgentCallbacks[] |
可选。调用智能体后要执行的回调。提供的回调会严格按照其在列表中出现的顺序依次执行。如果回调返回了替换响应,则执行会停止,并且系统会跳过所有剩余的回调。 |
beforeModelCallbacks[] |
可选。在调用模型之前执行的回调。如果对模型进行了多次调用,则回调将执行多次。提供的回调会严格按照其在列表中出现的顺序依次执行。如果回调返回了替换响应,执行会停止,并且所有剩余的回调都会被跳过。 |
afterModelCallbacks[] |
可选。调用模型后要执行的回调。如果对模型进行了多次调用,则回调将执行多次。提供的回调会严格按照其在列表中出现的顺序依次执行。如果回调返回了替换响应,执行会停止,并且所有剩余的回调都会被跳过。 |
beforeToolCallbacks[] |
可选。在调用工具之前执行的回调。如果存在多个工具调用,则回调将执行多次。提供的回调会严格按照其在列表中出现的顺序依次执行。如果回调返回了替换响应,执行会停止,并且所有剩余的回调都会被跳过。 |
afterToolCallbacks[] |
可选。调用工具后要执行的回调。如果存在多个工具调用,则回调将执行多次。提供的回调会严格按照其在列表中出现的顺序依次执行。如果回调返回了替换响应,则执行会停止,并且系统会跳过所有剩余的回调。 |
createTime |
仅限输出。创建代理时的时间戳。 采用 RFC 3339 标准,生成的输出将始终进行 Z 规范化(即转换为 UTC 零时区格式并在末尾附加 Z),并使用 0、3、6 或 9 个小数位。不带“Z”的偏差时间也是可以接受的。示例: |
updateTime |
仅限输出。上次更新代理时的时间戳。 采用 RFC 3339 标准,生成的输出将始终进行 Z 规范化(即转换为 UTC 零时区格式并在末尾附加 Z),并使用 0、3、6 或 9 个小数位。不带“Z”的偏差时间也是可以接受的。示例: |
guardrails[] |
可选。智能体的护栏列表。格式: |
etag |
用于确保对象在读取-修改-写入操作期间未发生更改的 Etag。如果 etag 为空,则更新将覆盖所有并发更改。 |
toolsets[] |
可选。智能体的工具集列表。 |
generatedSummary |
仅限输出。如果代理是由 LLM 助理生成的,则此字段包含生成的描述性摘要。 |
transferRules[] |
可选。客服人员转接规则。如果有多条规则匹配,系统将使用列表中的第一条规则。 |
validationErrors[] |
仅限输出。智能体中可能影响智能体质量的错误配置或错误。 |
联合字段 agent_type。代理的类型。agent_type 只能是下列其中一项: |
|
llmAgent |
可选。默认代理类型。 |
remoteDialogflowAgent |
可选。要用于代理执行的远程 Dialogflow 代理。如果设置了此字段,系统将忽略所有其他代理级属性。 注意:如果 Dialogflow 代理与应用位于不同的项目中,您应向 CES 服务代理 |
remoteA2aAgent |
可选。要用于执行智能体的远程 A2A 智能体。 |
RemoteDialogflowAgent
| JSON 表示法 |
|---|
{ "agent": string, "flowId": string, "environmentId": string, "inputVariableMapping": { string: string, ... }, "outputVariableMapping": { string: string, ... }, "respectResponseInterruptionSettings": boolean, "languageCodeVariable": string } |
| 字段 | |
|---|---|
agent |
必需。Dialogflow 代理资源名称。格式: |
flowId |
可选。Dialogflow 代理中流程的流程 ID。 |
environmentId |
可选。要用于代理执行的 Dialogflow 代理的环境 ID。如果未指定,系统将使用草稿环境。 |
inputVariableMapping |
可选。应用变量名称与 Dialogflow 会话参数名称的映射,这些参数将作为输入发送到 Dialogflow 代理。 包含一系列 |
outputVariableMapping |
可选。Dialogflow 会话参数名称与应用变量名称的映射,这些变量将在 Dialogflow 代理执行结束后发送回 CES 代理。 包含一系列 |
respectResponseInterruptionSettings |
可选。指示是否遵循 Dialogflow 代理中配置的消息级打断设置。
|
languageCodeVariable |
可选。包含要用于 Dialogflow 会话的语言代码的变量名称。如果未指定,系统将使用 Dialogflow 代理的默认语言代码。 |
InputVariableMappingEntry
| JSON 表示法 |
|---|
{ "key": string, "value": string } |
| 字段 | |
|---|---|
key |
|
value |
|
OutputVariableMappingEntry
| JSON 表示法 |
|---|
{ "key": string, "value": string } |
| 字段 | |
|---|---|
key |
|
value |
|
RemoteA2aAgent
| JSON 表示法 |
|---|
{
"a2aConfig": {
object ( |
| 字段 | |
|---|---|
a2aConfig |
必需。A2A 连接配置。 |
RemoteA2aConfig
| JSON 表示法 |
|---|
{ "apiAuthentication": { object ( |
| 字段 | |
|---|---|
apiAuthentication |
可选。用于调用远程代理的身份验证配置。如果注册表引用已处理身份验证,则为可选。 |
inputVariableMapping |
可选。远程智能体的输入变量名称与 GECX 变量名称之间的映射。 包含一系列 |
outputVariableMapping |
可选。远程代理的输出变量名称与 GECX 变量名称的映射。 包含一系列 |
streamingEnabled |
可选。是否为远程代理启用了流式传输。 |
contextId |
可选。如果不为空,则与远程 A2A 智能体的互动将使用此上下文 ID。此 context_id 字段可以引用会话变量,例如 |
联合字段 agent_spec。远程代理的规范。agent_spec 只能是下列其中一项: |
|
agentCard |
可选。以内嵌方式定义的完整代理卡片。 |
agentRegistry |
可选。对 Agent Registry 中智能体的引用。格式: |
AgentCard
| JSON 表示法 |
|---|
{ "name": string, "description": string, "supportedInterfaces": [ { object ( |
| 字段 | |
|---|---|
name |
必需。代理的人类可读名称。 |
description |
必需。对代理的操作领域/解决方案空间的描述。 |
supportedInterfaces[] |
必需。支持的接口的有序列表。首选第一个条目。 |
version |
必需。代理的版本。 |
skills[] |
必需。技能代表智能体可以执行的能力单元。这可能有些抽象,但它代表了一组更集中的操作,智能体极有可能成功执行这些操作。 |
AgentInterface
| JSON 表示法 |
|---|
{ "url": string, "protocolBinding": string, "tenant": string, "protocolVersion": string } |
| 字段 | |
|---|---|
url |
必需。此接口所在的网址。在生产环境中,必须是有效的绝对 HTTPS 网址。示例:“https://api.example.com/a2a/v1”“https://grpc.example.com/a2a” |
protocolBinding |
必需。此网址支持的协议绑定。这是一个开放式字符串,可轻松扩展到其他协议绑定。官方支持的核心插件包括 |
tenant |
调用代理时要在请求中使用的租户 ID。 |
protocolVersion |
必需。此接口公开的 A2A protocol 版本。请使用每个主要版本支持的最新次要版本。示例:“0.3”“1.0” |
AgentSkill
| JSON 表示法 |
|---|
{ "id": string, "name": string, "description": string, "tags": [ string ], "examples": [ string ], "inputModes": [ string ], "outputModes": [ string ] } |
| 字段 | |
|---|---|
id |
必需。智能体技能的唯一标识符。 |
name |
必需。技能的人类可读名称。 |
description |
必需。技能的详细说明。 |
tags[] |
必需。一组描述技能功能的关键字。 |
examples[] |
此技能可以处理的提示或场景示例。 |
inputModes[] |
此技能支持的输入媒体类型集,会覆盖智能体的默认设置。 |
outputModes[] |
此技能支持的输出媒体类型集,会覆盖代理的默认设置。 |
ApiAuthentication
| JSON 表示法 |
|---|
{ // Union field |
| 字段 | |
|---|---|
联合字段 auth_config。身份验证配置。auth_config 只能是下列其中一项: |
|
apiKeyConfig |
可选。API 密钥身份验证的配置。 |
oauthConfig |
可选。OAuth 配置。 |
serviceAgentIdTokenAuthConfig |
可选。从 CES 服务代理生成的 ID 令牌身份验证的配置。 |
serviceAccountAuthConfig |
可选。服务账号身份验证的配置。 |
bearerTokenConfig |
可选。不记名令牌身份验证的配置。 |
ApiKeyConfig
| JSON 表示法 |
|---|
{
"keyName": string,
"apiKeySecretVersion": string,
"requestLocation": enum ( |
| 字段 | |
|---|---|
keyName |
必需。API 密钥的参数名称或标头名称。例如,如果 API 请求为“https://example.com/act?X-Api-Key= |
apiKeySecretVersion |
必需。存储 API 密钥的 SecretManager 密钥版本资源的名称。格式: 注意:您应向 CES 服务代理 |
requestLocation |
必需。请求中的密钥位置。 |
OAuthConfig
| JSON 表示法 |
|---|
{
"oauthGrantType": enum ( |
| 字段 | |
|---|---|
oauthGrantType |
必需。OAuth 授权类型。 |
clientId |
必需。OAuth 提供方的客户端 ID。 |
clientSecretVersion |
必需。存储客户端密钥的 SecretManager 密钥版本资源的名称。格式: 注意:您应向 CES 服务代理 |
tokenEndpoint |
必需。OAuth 提供方中用于换取访问令牌的令牌端点。 |
scopes[] |
可选。要授予的 OAuth 范围。 |
ServiceAccountAuthConfig
| JSON 表示法 |
|---|
{ "serviceAccount": string, "scopes": [ string ] } |
| 字段 | |
|---|---|
serviceAccount |
必需。用于身份验证的服务账号的邮箱。CES 会使用此服务账号来交换访问令牌,然后该访问令牌会在请求的 服务账号必须具有授予 CES 服务代理 |
scopes[] |
可选。要授予的 OAuth 范围。如果未指定,则使用默认范围 |
BearerTokenConfig
| JSON 表示法 |
|---|
{ "token": string } |
| 字段 | |
|---|---|
token |
必需。不记名令牌。必须采用 |
InputVariableMappingEntry
| JSON 表示法 |
|---|
{ "key": string, "value": string } |
| 字段 | |
|---|---|
key |
|
value |
|
OutputVariableMappingEntry
| JSON 表示法 |
|---|
{ "key": string, "value": string } |
| 字段 | |
|---|---|
key |
|
value |
|
ModelSettings
| JSON 表示法 |
|---|
{ "model": string, "thinkingLevel": enum ( |
| 字段 | |
|---|---|
model |
可选。智能体应使用的 LLM 模型。如果未设置,智能体将沿用其父智能体的模型。 |
thinkingLevel |
可选。模型的思考等级。 |
联合字段
|
|
temperature |
可选。如果设置,此温度将用于 LLM 模型。温度控制模型回答的随机性。温度越低,生成的回答越可预测。温度越高,生成的回答越有创意。 |
回调
| JSON 表示法 |
|---|
{ "description": string, "disabled": boolean, "proactiveExecutionEnabled": boolean, // Union field |
| 字段 | |
|---|---|
description |
可选。回调的人类可读说明。 |
disabled |
可选。回调是否已停用。代理会忽略已停用的回调。 |
proactiveExecutionEnabled |
可选。如果启用,回调也会在中间模型输出上执行。此设置仅影响模型后回调。请谨慎启用。通常,模型后回调只需在收到所有模型回答后执行。启用主动执行可能会对执行费用和延迟时间产生负面影响,因此应仅在极少数情况下启用。 |
联合字段 callback。要执行的回调。callback 只能是下列其中一项: |
|
pythonCode |
必需。要为回调执行的 Python 代码。 |
时间戳
| JSON 表示法 |
|---|
{ "seconds": string, "nanos": integer } |
| 字段 | |
|---|---|
seconds |
表示世界协调时间 (UTC) 的秒数(从 Unix 纪元 1970-01-01T00:00:00Z 开始算起)。必须介于 -62135596800 到 253402300799 之间(含边界值,对应于 0001-01-01T00:00:00Z 到 9999-12-31T23:59:59Z)。 |
nanos |
秒数的非负小数部分(以纳秒为单位)。此字段是时长的纳秒部分,而不是秒的替代。对于含小数部分的负秒数,仍必须包含按时间递升的非负纳秒值。必须在 0 到 999,999,999 之间(含边界值)。 |
AgentToolset
| JSON 表示法 |
|---|
{ "toolset": string, "toolIds": [ string ] } |
| 字段 | |
|---|---|
toolset |
必需。工具集的资源名称。格式: |
toolIds[] |
可选。用于过滤工具集的工具 ID。 |
TransferRule
| JSON 表示法 |
|---|
{ "childAgent": string, "direction": enum ( |
| 字段 | |
|---|---|
childAgent |
必需。规则适用的子代理的资源名称。格式: |
direction |
必需。转移方向。 |
联合字段 rule_type。规则类型。rule_type 只能是下列其中一项: |
|
deterministicTransfer |
可选。满足条件时立即转移到目标代理的规则。 |
disablePlannerTransfer |
可选。阻止规划器转移到目标智能体的规则。 |
DeterministicTransfer
| JSON 表示法 |
|---|
{ // Union field |
| 字段 | |
|---|---|
联合字段 condition_type。要评估的条件。condition_type 只能是下列其中一项: |
|
expressionCondition |
可选。用于评估会话状态条件的规则。如果条件的计算结果为 true,则会发生转移。 |
pythonCodeCondition |
可选。使用 Python 代码块评估条件的规则。如果条件的计算结果为 true,则会发生转移。 |
ExpressionCondition
| JSON 表示法 |
|---|
{ "expression": string } |
| 字段 | |
|---|---|
expression |
必需。cloud.api.Expression 条件的字符串表示。 |
PythonCodeCondition
| JSON 表示法 |
|---|
{ "pythonCode": string } |
| 字段 | |
|---|---|
pythonCode |
必需。要执行的 Python 代码。 |
DisablePlannerTransfer
| JSON 表示法 |
|---|
{
"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,则该工具只能与内部实体交互。例如,网页搜索工具是开放世界,而记忆工具不是开放世界。
破坏性提示:✅ | 幂等性提示:❌ | 只读提示:❌ | 开放世界提示:❌