MCP Tools Reference: ces.googleapis.com

工具:get_conversation

获取指定对话的详细信息。

以下代码示例展示了如何使用 curl 调用 get_conversation 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": "get_conversation",
    "arguments": {
      // Provide these details according to the MCP tool specification.
    }
  },
  "jsonrpc": "2.0",
  "id": 1
}'

输入架构

AgentService.GetConversation 的请求消息。

GetConversationRequest

JSON 表示法
{
  "name": string,
  "source": enum (Source)
}
字段
name

string

必需。要检索的对话的资源名称。

source
(deprecated)

enum (Source)

可选。指明对话的来源。如果未设置,系统将搜索所有来源。

来源

对话的来源。

枚举
SOURCE_UNSPECIFIED 未指定的来源。
LIVE 对话来自实时最终用户。
SIMULATOR 对话来自模拟器。
EVAL 对话来自评估。
AGENT_TOOL 对话来自智能体工具。智能体工具会在单独的会话中运行智能体,该会话会保留下来,以便进行测试和调试。

输出架构

对话表示最终用户与 CES 应用之间的互动。

对话

JSON 表示法
{
  "name": string,
  "startTime": string,
  "endTime": string,
  "turns": [
    {
      object (Turn)
    }
  ],
  "turnCount": integer,
  "channelType": enum (ChannelType),
  "source": enum (Source),
  "inputTypes": [
    enum (InputType)
  ],
  "entryAgent": string,
  "deployment": string,
  "appVersion": string,
  "languageCode": string,
  "messages": [
    {
      object (Message)
    }
  ]
}
字段
name

string

标识符。对话的唯一标识符。格式:projects/{project}/locations/{location}/apps/{app}/conversations/{conversation}

startTime

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"。

endTime

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"。

turns[]

object (Turn)

必需。对话中的轮次。

turnCount

integer

仅限输出。对话中的轮数。

channelType
(deprecated)

enum (ChannelType)

已弃用。请改用 input_types。

source

enum (Source)

仅限输出。指明对话的来源。

inputTypes[]

enum (InputType)

仅限输出。对话的输入类型。

entryAgent

string

仅限输出。最初处理对话的代理。如果未指定,则对话由根代理处理。格式:projects/{project}/locations/{location}/apps/{app}/agents/{agent}

deployment

string

仅限输出。用于处理对话的应用的部署。格式:projects/{project}/locations/{location}/apps/{app}/deployments/{deployment}

appVersion

string

仅限输出。用于处理对话的应用版本。格式:projects/{project}/locations/{location}/apps/{app}/versions/{version}

languageCode

string

仅限输出。对话的语言代码。

messages[]
(deprecated)

object (Message)

已弃用。请改用轮次。

时间戳

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 之间(含边界值)。

Turn

JSON 表示法
{
  "messages": [
    {
      object (Message)
    }
  ],
  "rootSpan": {
    object (Span)
  },
  "userIntendedText": string
}
字段
messages[]

object (Message)

可选。对话轮次中的消息列表,包括用户输入、代理回答和处理期间的中间事件。

rootSpan

object (Span)

可选。操作处理的根 span。

userIntendedText

string

可选。模拟来电者 (Polysynth) 的预期标准答案文本。仅在启用字词错误率指标时填充。

消息

JSON 表示法
{
  "role": string,
  "chunks": [
    {
      object (Chunk)
    }
  ],
  "eventTime": string
}
字段
role

string

可选。对话中的角色,例如用户、智能体。

chunks[]

object (Chunk)

可选。消息内容,以一系列分块的形式呈现。

eventTime

string (Timestamp format)

可选。发送或接收消息时的时间戳。如果消息是 example 的一部分,则不应使用。

采用 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"。

块

JSON 表示法
{

  // Union field data can be only one of the following:
  "text": string,
  "transcript": string,
  "blob": {
    object (Blob)
  },
  "payload": {
    object
  },
  "image": {
    object (Image)
  },
  "toolCall": {
    object (ToolCall)
  },
  "toolResponse": {
    object (ToolResponse)
  },
  "agentTransfer": {
    object (AgentTransfer)
  },
  "updatedVariables": {
    object
  },
  "defaultVariables": {
    object
  }
  // End of list of possible types for union field data.
}
字段
联合字段 data。数据块数据。data 只能是下列其中一项:
text

string

可选。文本数据。

transcript

string

可选。与音频关联的转写内容。

blob

object (Blob)

可选。Blob 数据。

payload

object (Struct format)

可选。自定义载荷数据。

image

object (Image)

可选。图片数据。

toolCall

object (ToolCall)

可选。工具执行请求。

toolResponse

object (ToolResponse)

可选。工具执行响应。

agentTransfer

object (AgentTransfer)

可选。智能体转移事件。

updatedVariables

object (Struct format)

一个结构体,表示在对话中更新的变量,以变量名称为键。

defaultVariables

object (Struct format)

一个结构体,表示对话开始时的默认变量,以变量名称为键。

Blob

JSON 表示法
{
  "mimeType": string,
  "data": string
}
字段
mimeType

string

必需。来源数据的 IANA 标准 MIME 类型。

data

string (bytes format)

必需。Blob 的原始字节。

使用 base64 编码的字符串。

结构体

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

map (key: string, value: value (Value format))

动态类型值的无序映射。

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

FieldsEntry

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

string

value

value (Value format)

值

JSON 表示法
{

  // Union field kind can be only one of the following:
  "nullValue": null,
  "numberValue": number,
  "stringValue": string,
  "boolValue": boolean,
  "structValue": {
    object
  },
  "listValue": array
  // End of list of possible types for union field kind.
}
字段
联合字段 kind。值的类型。kind 只能是下列其中一项:
nullValue

null

表示 JSON null。

numberValue

number

表示 JSON 数值。不得为 NaN、Infinity 或 -Infinity,因为 JSON 不支持这些值。这也无法表示较大的 Int64 值,因为 JSON 格式通常不支持在其数字类型中使用这些值。

stringValue

string

表示 JSON 字符串。

boolValue

boolean

表示 JSON 布尔值(JSON 中的 true 或 false 字面量)。

structValue

object (Struct format)

表示一个 JSON 对象。

listValue

array (ListValue format)

表示 JSON 数组。

ListValue

JSON 表示法
{
  "values": [
    value
  ]
}
字段
values[]

value (Value format)

动态类型值的重复字段。

映像

JSON 表示法
{
  "mimeType": string,
  "data": string,
  "altText": string
}
字段
mimeType

string

必需。来源数据的 IANA 标准 MIME 类型。支持的图片类型包括:* image/png * image/jpeg * image/webp

data

string (bytes format)

必需。图片的原始字节。

使用 base64 编码的字符串。

altText

string

可选。图片的替代文本。

ToolCall

JSON 表示法
{
  "id": string,
  "displayName": string,
  "args": {
    object
  },
  "parentToolCallId": string,
  "agentName": string,
  "targetApp": string,

  // Union field tool_identifier can be only one of the following:
  "tool": string,
  "toolsetTool": {
    object (ToolsetTool)
  }
  // End of list of possible types for union field tool_identifier.
}
字段
id

string

可选。工具调用的唯一标识符。如果已填充,客户端应在 ToolResponse 中返回具有匹配 ID 的执行结果。

displayName

string

仅限输出。工具的显示名称。

args

object (Struct format)

可选。以 JSON 对象格式表示的工具输入参数和值。

parentToolCallId

string

仅限输出。导致此工具调用的工具调用的 ID(如果此工具调用是由代表父级调用工作的子智能体发出的)。对于顶级调用,此字段为空。让客户端能够将子智能体的工作归入启动该工作的调用下,而不是将每个步骤都呈现为同级。

agentName

string

仅限输出。发出此调用的智能体的人类可读名称,例如“Contract Architect”。如果由根代理发出,则为空。

targetApp

string

仅限输出。此调用所针对的应用,由助理根据调用的资源实参推导得出:应用资源名称、PROJECT(对于位置级工具)或空(对于会话本地工具)。仅在项目级范围的助理会话中设置。

联合字段 tool_identifier。要执行的工具的标识符。它可以是持久化工具,也可以是工具集中的工具。tool_identifier 只能是下列其中一项:
tool

string

可选。要执行的工具的名称。格式:projects/{project}/locations/{location}/apps/{app}/tools/{tool}

toolsetTool

object (ToolsetTool)

可选。要执行的工具集工具。

ToolsetTool

JSON 表示法
{
  "toolset": string,
  "toolId": string
}
字段
toolset

string

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

toolId

string

可选。用于过滤工具以检索其架构的工具 ID。

ToolResponse

JSON 表示法
{
  "id": string,
  "displayName": string,
  "response": {
    object
  },
  "parentToolCallId": string,
  "agentName": string,
  "targetApp": string,

  // Union field tool_identifier can be only one of the following:
  "tool": string,
  "toolsetTool": {
    object (ToolsetTool)
  }
  // End of list of possible types for union field tool_identifier.
}
字段
id

string

可选。回复所针对的 tool call 的匹配 ID。

displayName

string

仅限输出。工具的显示名称。

response

object (Struct format)

必需。以 JSON 对象格式表示的工具执行结果。使用“output”键指定工具响应,使用“error”键指定错误详情(如有)。如果未指定“output”和“error”键,则整个“response”都会被视为工具执行结果。

parentToolCallId

string

仅限输出。导致此工具调用的工具调用的 ID(如果此工具调用是由代表父级调用工作的子智能体发出的)。对于顶级调用,此字段为空。让客户端能够将子智能体的工作归入启动该工作的调用下,而不是将每个步骤都呈现为同级。

agentName

string

仅限输出。发出此调用的智能体的人类可读名称,例如“Contract Architect”。如果由根代理发出,则为空。

targetApp

string

仅限输出。执行的工具所针对的应用;镜像 ToolCall.target_app。

联合字段 tool_identifier。已执行工具的标识符。它可以是持久化工具,也可以是工具集中的工具。tool_identifier 只能是下列其中一项:
tool

string

可选。要执行的工具的名称。格式:projects/{project}/locations/{location}/apps/{app}/tools/{tool}

toolsetTool

object (ToolsetTool)

可选。已执行的工具集工具。

AgentTransfer

JSON 表示法
{
  "targetAgent": string,
  "displayName": string
}
字段
targetAgent

string

必需。对话要转接到的智能体。此后,客服人员将接管对话。格式:projects/{project}/locations/{location}/apps/{app}/agents/{agent}

displayName

string

仅限输出。代理的显示名称。

span

JSON 表示法
{
  "name": string,
  "startTime": string,
  "endTime": string,
  "duration": string,
  "attributes": {
    object
  },
  "childSpans": [
    {
      object (Span)
    }
  ]
}
字段
name

string

仅限输出。span 的名称。

startTime

string (Timestamp format)

仅限输出。span 的开始时间。

采用 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"。

endTime

string (Timestamp format)

仅限输出。span 的结束时间。

采用 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"。

duration

string (Duration format)

仅限输出。Span 的时长。

该时长以秒为单位,最多包含九个小数位,以“s”结尾。示例:"3.5s"。

attributes

object (Struct format)

仅限输出。与 span 关联的键值对属性。

childSpans[]

object (Span)

仅限输出。嵌套在此 span 下的子 span。

时长

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

string (int64 format)

时间跨度的带符号秒数。必须介于 -315,576,000,000 到 +315,576,000,000 之间(含边界值)。注意:这些边界的计算公式为:60 秒/分钟 * 60 分钟/小时 * 24 小时/天 * 365.25 天/年 * 10000 年

nanos

integer

时间跨度的秒数的有符号小数部分(以纳秒为单位)。小于 1 秒的时长用 0 seconds 字段和正或负 nanos 字段表示。对于一秒或更长的时长,nanos 字段的非零值必须与 seconds 字段具有相同的符号。必须介于 -999,999,999 到 +999,999,999 之间(含边界值)。

NullValue

表示 JSON null。

NullValue 是一个哨兵,使用仅有一个值的枚举来表示 Value 类型联合的 null 值。

NullValue 类型的字段如果包含 0 以外的任何值,则会被视为无效。大多数 ProtoJSON 序列化器都会发出一个 Value,其中 null_value 设置为 JSON null,而不管整数值如何,因此会往返于 0 值。

枚举
NULL_VALUE Null 值。

ChannelType

对话的渠道类型。

枚举
CHANNEL_TYPE_UNSPECIFIED 未指定渠道类型。
TEXT 对话仅包含最终用户与智能体之间的短信。
AUDIO 对话包含最终用户与代理之间的语音消息。
MULTIMODAL 最终用户与代理之间的对话多模态消息(例如图片)。

来源

对话的来源。

枚举
SOURCE_UNSPECIFIED 未指定的来源。
LIVE 对话来自实时最终用户。
SIMULATOR 对话来自模拟器。
EVAL 对话来自评估。
AGENT_TOOL 对话来自智能体工具。智能体工具会在单独的会话中运行智能体,该会话会保留下来,以便进行测试和调试。

InputType

输入消息的类型。

枚举
INPUT_TYPE_UNSPECIFIED 未指定输入类型。
INPUT_TYPE_TEXT 文本输入。
INPUT_TYPE_EVENT 事件输入。
INPUT_TYPE_AUDIO 音频输入。
INPUT_TYPE_IMAGE 图片输入。
INPUT_TYPE_BLOB Blob 输入。
INPUT_TYPE_TOOL_RESPONSE 客户端函数工具响应输入。
INPUT_TYPE_VARIABLES 变量输入。

工具注释

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

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

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

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