工具: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 ( |
| 字段 | |
|---|---|
name |
必需。要检索的对话的资源名称。 |
source |
可选。指明对话的来源。如果未设置,系统将搜索所有来源。 |
来源
对话的来源。
| 枚举 | |
|---|---|
SOURCE_UNSPECIFIED |
未指定的来源。 |
LIVE |
对话来自实时最终用户。 |
SIMULATOR |
对话来自模拟器。 |
EVAL |
对话来自评估。 |
AGENT_TOOL |
对话来自智能体工具。智能体工具会在单独的会话中运行智能体,该会话会保留下来,以便进行测试和调试。 |
输出架构
对话表示最终用户与 CES 应用之间的互动。
对话
| JSON 表示法 |
|---|
{ "name": string, "startTime": string, "endTime": string, "turns": [ { object ( |
| 字段 | |
|---|---|
name |
标识符。对话的唯一标识符。格式: |
startTime |
仅限输出。对话创建时的时间戳。 采用 RFC 3339 标准,生成的输出将始终进行 Z 规范化(即转换为 UTC 零时区格式并在末尾附加 Z),并使用 0、3、6 或 9 个小数位。不带“Z”的偏差时间也是可以接受的。示例: |
endTime |
仅限输出。对话完成时的时间戳。 采用 RFC 3339 标准,生成的输出将始终进行 Z 规范化(即转换为 UTC 零时区格式并在末尾附加 Z),并使用 0、3、6 或 9 个小数位。不带“Z”的偏差时间也是可以接受的。示例: |
turns[] |
必需。对话中的轮次。 |
turnCount |
仅限输出。对话中的轮数。 |
channelType |
已弃用。请改用 |
source |
仅限输出。指明对话的来源。 |
inputTypes[] |
仅限输出。对话的输入类型。 |
entryAgent |
仅限输出。最初处理对话的代理。如果未指定,则对话由根代理处理。格式: |
deployment |
仅限输出。用于处理对话的应用的部署。格式: |
appVersion |
仅限输出。用于处理对话的应用版本。格式: |
languageCode |
仅限输出。对话的语言代码。 |
messages[] |
已弃用。请改用轮次。 |
时间戳
| 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 之间(含边界值)。 |
Turn
| JSON 表示法 |
|---|
{ "messages": [ { object ( |
| 字段 | |
|---|---|
messages[] |
可选。对话轮次中的消息列表,包括用户输入、代理回答和处理期间的中间事件。 |
rootSpan |
可选。操作处理的根 span。 |
userIntendedText |
可选。模拟来电者 (Polysynth) 的预期标准答案文本。仅在启用字词错误率指标时填充。 |
消息
| JSON 表示法 |
|---|
{
"role": string,
"chunks": [
{
object ( |
| 字段 | |
|---|---|
role |
可选。对话中的角色,例如用户、智能体。 |
chunks[] |
可选。消息内容,以一系列分块的形式呈现。 |
eventTime |
可选。发送或接收消息时的时间戳。如果消息是 采用 RFC 3339 标准,生成的输出将始终进行 Z 规范化(即转换为 UTC 零时区格式并在末尾附加 Z),并使用 0、3、6 或 9 个小数位。不带“Z”的偏差时间也是可以接受的。示例: |
块
| JSON 表示法 |
|---|
{ // Union field |
| 字段 | |
|---|---|
联合字段 data。数据块数据。data 只能是下列其中一项: |
|
text |
可选。文本数据。 |
transcript |
可选。与音频关联的转写内容。 |
blob |
可选。Blob 数据。 |
payload |
可选。自定义载荷数据。 |
image |
可选。图片数据。 |
toolCall |
可选。工具执行请求。 |
toolResponse |
可选。工具执行响应。 |
agentTransfer |
可选。智能体转移事件。 |
updatedVariables |
一个结构体,表示在对话中更新的变量,以变量名称为键。 |
defaultVariables |
一个结构体,表示对话开始时的默认变量,以变量名称为键。 |
Blob
| JSON 表示法 |
|---|
{ "mimeType": string, "data": string } |
| 字段 | |
|---|---|
mimeType |
必需。来源数据的 IANA 标准 MIME 类型。 |
data |
必需。Blob 的原始字节。 使用 base64 编码的字符串。 |
结构体
| JSON 表示法 |
|---|
{ "fields": { string: value, ... } } |
| 字段 | |
|---|---|
fields |
动态类型值的无序映射。 包含一系列 |
FieldsEntry
| JSON 表示法 |
|---|
{ "key": string, "value": value } |
| 字段 | |
|---|---|
key |
|
value |
|
值
| JSON 表示法 |
|---|
{ // Union field |
| 字段 | |
|---|---|
联合字段 kind。值的类型。kind 只能是下列其中一项: |
|
nullValue |
表示 JSON |
numberValue |
表示 JSON 数值。不得为 |
stringValue |
表示 JSON 字符串。 |
boolValue |
表示 JSON 布尔值(JSON 中的 |
structValue |
表示一个 JSON 对象。 |
listValue |
表示 JSON 数组。 |
ListValue
| JSON 表示法 |
|---|
{ "values": [ value ] } |
| 字段 | |
|---|---|
values[] |
动态类型值的重复字段。 |
映像
| JSON 表示法 |
|---|
{ "mimeType": string, "data": string, "altText": string } |
| 字段 | |
|---|---|
mimeType |
必需。来源数据的 IANA 标准 MIME 类型。支持的图片类型包括:* image/png * image/jpeg * image/webp |
data |
必需。图片的原始字节。 使用 base64 编码的字符串。 |
altText |
可选。图片的替代文本。 |
ToolCall
| JSON 表示法 |
|---|
{ "id": string, "displayName": string, "args": { object }, "parentToolCallId": string, "agentName": string, "targetApp": string, // Union field |
| 字段 | |
|---|---|
id |
可选。工具调用的唯一标识符。如果已填充,客户端应在 |
displayName |
仅限输出。工具的显示名称。 |
args |
可选。以 JSON 对象格式表示的工具输入参数和值。 |
parentToolCallId |
仅限输出。导致此工具调用的工具调用的 ID(如果此工具调用是由代表父级调用工作的子智能体发出的)。对于顶级调用,此字段为空。让客户端能够将子智能体的工作归入启动该工作的调用下,而不是将每个步骤都呈现为同级。 |
agentName |
仅限输出。发出此调用的智能体的人类可读名称,例如“Contract Architect”。如果由根代理发出,则为空。 |
targetApp |
仅限输出。此调用所针对的应用,由助理根据调用的资源实参推导得出:应用资源名称、 |
联合字段 tool_identifier。要执行的工具的标识符。它可以是持久化工具,也可以是工具集中的工具。tool_identifier 只能是下列其中一项: |
|
tool |
可选。要执行的工具的名称。格式: |
toolsetTool |
可选。要执行的工具集工具。 |
ToolsetTool
| JSON 表示法 |
|---|
{ "toolset": string, "toolId": string } |
| 字段 | |
|---|---|
toolset |
必需。此工具派生自的工具集的资源名称。格式: |
toolId |
可选。用于过滤工具以检索其架构的工具 ID。 |
ToolResponse
| JSON 表示法 |
|---|
{ "id": string, "displayName": string, "response": { object }, "parentToolCallId": string, "agentName": string, "targetApp": string, // Union field |
| 字段 | |
|---|---|
id |
可选。回复所针对的 |
displayName |
仅限输出。工具的显示名称。 |
response |
必需。以 JSON 对象格式表示的工具执行结果。使用“output”键指定工具响应,使用“error”键指定错误详情(如有)。如果未指定“output”和“error”键,则整个“response”都会被视为工具执行结果。 |
parentToolCallId |
仅限输出。导致此工具调用的工具调用的 ID(如果此工具调用是由代表父级调用工作的子智能体发出的)。对于顶级调用,此字段为空。让客户端能够将子智能体的工作归入启动该工作的调用下,而不是将每个步骤都呈现为同级。 |
agentName |
仅限输出。发出此调用的智能体的人类可读名称,例如“Contract Architect”。如果由根代理发出,则为空。 |
targetApp |
仅限输出。执行的工具所针对的应用;镜像 |
联合字段 tool_identifier。已执行工具的标识符。它可以是持久化工具,也可以是工具集中的工具。tool_identifier 只能是下列其中一项: |
|
tool |
可选。要执行的工具的名称。格式: |
toolsetTool |
可选。已执行的工具集工具。 |
AgentTransfer
| JSON 表示法 |
|---|
{ "targetAgent": string, "displayName": string } |
| 字段 | |
|---|---|
targetAgent |
必需。对话要转接到的智能体。此后,客服人员将接管对话。格式: |
displayName |
仅限输出。代理的显示名称。 |
span
| JSON 表示法 |
|---|
{
"name": string,
"startTime": string,
"endTime": string,
"duration": string,
"attributes": {
object
},
"childSpans": [
{
object ( |
| 字段 | |
|---|---|
name |
仅限输出。span 的名称。 |
startTime |
仅限输出。span 的开始时间。 采用 RFC 3339 标准,生成的输出将始终进行 Z 规范化(即转换为 UTC 零时区格式并在末尾附加 Z),并使用 0、3、6 或 9 个小数位。不带“Z”的偏差时间也是可以接受的。示例: |
endTime |
仅限输出。span 的结束时间。 采用 RFC 3339 标准,生成的输出将始终进行 Z 规范化(即转换为 UTC 零时区格式并在末尾附加 Z),并使用 0、3、6 或 9 个小数位。不带“Z”的偏差时间也是可以接受的。示例: |
duration |
仅限输出。Span 的时长。 该时长以秒为单位,最多包含九个小数位,以“ |
attributes |
仅限输出。与 span 关联的键值对属性。 |
childSpans[] |
仅限输出。嵌套在此 span 下的子 span。 |
时长
| JSON 表示法 |
|---|
{ "seconds": string, "nanos": integer } |
| 字段 | |
|---|---|
seconds |
时间跨度的带符号秒数。必须介于 -315,576,000,000 到 +315,576,000,000 之间(含边界值)。注意:这些边界的计算公式为:60 秒/分钟 * 60 分钟/小时 * 24 小时/天 * 365.25 天/年 * 10000 年 |
nanos |
时间跨度的秒数的有符号小数部分(以纳秒为单位)。小于 1 秒的时长用 0 |
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,则该工具只能与内部实体交互。例如,网页搜索工具是开放世界,而记忆工具不是开放世界。
破坏性提示:❌ | 等幂性提示:✅ | 只读提示:✅ | 开放世界提示:❌