工具:create_guardrail
在指定应用中创建新的安全护栏。
以下代码示例展示了如何使用 curl 调用 create_guardrail 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_guardrail", "arguments": { // provide these details according to the tool's MCP specification } }, "jsonrpc": "2.0", "id": 1 }' |
输入架构
AgentService.CreateGuardrail 的请求消息。
CreateGuardrailRequest
| JSON 表示法 |
|---|
{
"parent": string,
"guardrailId": string,
"guardrail": {
object ( |
| 字段 | |
|---|---|
parent |
必需。要创建安全屏障的应用的资源名称。 |
guardrailId |
可选。要用于安全屏障的 ID,该 ID 将成为安全屏障资源名称的最后一个组成部分。如果未提供,系统会自动为安全屏障分配唯一 ID。 |
guardrail |
必需。要创建的护栏。 |
保护措施
| JSON 表示法 |
|---|
{ "name": string, "displayName": string, "description": string, "enabled": boolean, "action": { object ( |
| 字段 | |
|---|---|
name |
标识符。安全屏障的唯一标识符。格式: |
displayName |
必需。安全屏障的显示名称。 |
description |
可选。安全屏障的说明。 |
enabled |
可选。安全护栏是否已启用。 |
action |
可选。触发安全护栏时要采取的操作。 |
createTime |
仅限输出。安全屏障的创建时间戳。 采用 RFC 3339 标准,生成的输出将始终进行 Z 规范化(即转换为 UTC 零时区格式并在末尾附加 Z),并使用 0、3、6 或 9 个小数位。不带“Z”的偏差时间也是可以接受的。示例: |
updateTime |
仅限输出。防护栏上次更新时的时间戳。 采用 RFC 3339 标准,生成的输出将始终进行 Z 规范化(即转换为 UTC 零时区格式并在末尾附加 Z),并使用 0、3、6 或 9 个小数位。不带“Z”的偏差时间也是可以接受的。示例: |
etag |
用于确保对象在读取-修改-写入操作期间未发生更改的 ETag。如果 etag 为空,则更新会覆盖任何并发更改。 |
联合字段 guardrail_type。保护措施类型。guardrail_type 只能是下列其中一项: |
|
contentFilter |
可选。禁止在对话中使用某些内容的护栏。 |
llmPromptSecurity |
可选。如果根据 LLM 分类,提示被视为不安全,则会阻止对话的护栏。 |
llmPolicy |
可选。如果 LLM 回答根据 LLM 分类被视为违反政策,则阻止对话的安全屏障。 |
modelSafety |
可选。如果 LLM 回答根据模型安全设置被视为不安全,则阻止对话的安全屏障。 |
codeCallback |
可选。根据回调执行结果可能会屏蔽对话的护栏。 |
ContentFilter
| JSON 表示法 |
|---|
{
"bannedContents": [
string
],
"bannedContentsInUserInput": [
string
],
"bannedContentsInAgentResponse": [
string
],
"matchType": enum ( |
| 字段 | |
|---|---|
bannedContents[] |
可选。禁用短语列表。适用于用户输入和智能体回答。 |
bannedContentsInUserInput[] |
可选。禁用短语列表。仅适用于用户输入。 |
bannedContentsInAgentResponse[] |
可选。禁用短语列表。仅适用于代理回答。 |
matchType |
必需。内容过滤条件的匹配类型。 |
disregardDiacritics |
可选。如果为 true,则在匹配期间忽略变音符号。 |
LlmPromptSecurity
| JSON 表示法 |
|---|
{ "failOpen": boolean, // Union field |
| 字段 | |
|---|---|
failOpen |
可选。确定保护措施遇到 LLM 错误时的行为。- 如果为 true:则绕过安全护栏。- 如果为 false(默认):安全护栏会触发/屏蔽。 注意:如果提供了自定义政策,系统会忽略此字段,而采用相应政策的“fail_open”配置。 |
联合字段 security_config。定义安全配置模式。用户必须选择以下配置之一。security_config 只能是下列其中一项: |
|
defaultSettings |
可选。使用系统预定义的默认安全设置。如需选择此模式,请在请求中添加空的“default_settings”消息。其中的“default_prompt_template”字段将由服务器填充在响应中。 |
customPolicy |
可选。使用用户定义的 LlmPolicy 配置安全防护措施。 |
DefaultSecuritySettings
| JSON 表示法 |
|---|
{ "defaultPromptTemplate": string } |
| 字段 | |
|---|---|
defaultPromptTemplate |
仅限输出。系统使用的默认提示模板。此字段用于显示目的,以向用户展示系统默认使用的提示。此字段为 OUTPUT_ONLY。 |
LlmPolicy
| JSON 表示法 |
|---|
{ "maxConversationMessages": integer, "modelSettings": { object ( |
| 字段 | |
|---|---|
maxConversationMessages |
可选。检查此政策时,请考虑对话中的最后“n”条消息。如果未设置,则使用默认值 10。 |
modelSettings |
可选。模型设置。 |
prompt |
必需。政策提示。 |
policyScope |
必需。定义在对话期间何时应用政策检查。如果设为 |
failOpen |
可选。如果在政策检查期间发生错误,则会失败打开,并且不会触发安全防护栏。 |
allowShortUtterance |
可选。默认情况下,系统会跳过对简短话语的 LLM 政策检查。启用此设置后,系统会对所有话语(包括通常会跳过的话语)执行政策检查。 |
ModelSettings
| JSON 表示法 |
|---|
{ "model": string, // Union field |
| 字段 | |
|---|---|
model |
可选。智能体应使用的 LLM 模型。如果未设置,代理将从其父智能体继承模型。 |
联合字段
|
|
temperature |
可选。如果设置,系统将使用此温度值来运行 LLM 模型。温度可控制模型回答的随机性。温度越低,生成的回答就越可预测。温度越高,生成的回答就越有创意。 |
ModelSafety
| JSON 表示法 |
|---|
{
"safetySettings": [
{
object ( |
| 字段 | |
|---|---|
safetySettings[] |
必需。安全设置列表。 |
SafetySetting
| JSON 表示法 |
|---|
{ "category": enum ( |
| 字段 | |
|---|---|
category |
必需。有害类别。 |
threshold |
必需。有害内容屏蔽阈值。 |
CodeCallback
| JSON 表示法 |
|---|
{ "beforeAgentCallback": { object ( |
| 字段 | |
|---|---|
beforeAgentCallback |
可选。在调用代理之前要执行的回调。每个回调函数都应返回一个结构(例如字典或对象),其中至少包含:-“decision”:可以是“OK”或“TRIGGER”。-“reason”:说明判决的字符串。“触发”决定可能会停止进一步处理。 |
afterAgentCallback |
可选。在调用代理后执行的回调。每个回调函数都应返回一个结构(例如字典或对象),其中至少包含:-“decision”:可以是“OK”或“TRIGGER”。-“reason”:说明判决的字符串。“触发”决定可能会停止进一步处理。 |
beforeModelCallback |
可选。在调用模型之前要执行的回调。如果多次调用模型,则回调将执行多次。每个回调函数都应返回一个结构(例如字典或对象),其中至少包含:-“decision”:可以是“OK”或“TRIGGER”。-“reason”:说明判决的字符串。“触发”决定可能会停止进一步处理。 |
afterModelCallback |
可选。在调用模型后执行的回调。如果多次调用模型,则回调将执行多次。每个回调函数都应返回一个结构(例如字典或对象),其中至少包含:-“decision”:可以是“OK”或“TRIGGER”。-“reason”:说明判决的字符串。“触发”决定可能会停止进一步处理。 |
回调
| JSON 表示法 |
|---|
{ "description": string, "disabled": boolean, "proactiveExecutionEnabled": boolean, // Union field |
| 字段 | |
|---|---|
description |
可选。回调的人类可读说明。 |
disabled |
可选。回调是否已停用。代理会忽略已停用的回调。 |
proactiveExecutionEnabled |
可选。如果启用,系统还会针对中间模型输出执行回调。此设置只会影响模型后回调。请谨慎启用。通常,模型后回调只需在收到所有模型回答后执行。启用主动执行可能会对执行费用和延迟时间产生负面影响,因此仅应在极少数情况下启用。 |
联合字段 callback。要执行的回调。callback 只能是下列其中一项: |
|
pythonCode |
必需。要为回调执行的 Python 代码。 |
TriggerAction
| JSON 表示法 |
|---|
{ // Union field |
| 字段 | |
|---|---|
联合字段 action。要采取的行动。action 只能是下列其中一项: |
|
respondImmediately |
可选。立即以预配置的回答进行回复。 |
transferAgent |
可选。将对话转接给其他客服人员。 |
generativeAnswer |
可选。使用生成式回答进行回复。 |
RespondImmediately
| JSON 表示法 |
|---|
{
"responses": [
{
object ( |
| 字段 | |
|---|---|
responses[] |
必需。供代理选择的预设回复。回答是随机选择的。 |
响应
| JSON 表示法 |
|---|
{ "text": string, "disabled": boolean } |
| 字段 | |
|---|---|
text |
必需。智能体要回复的文本。 |
disabled |
可选。回答是否已停用。代理不会使用已停用的回答。 |
TransferAgent
| JSON 表示法 |
|---|
{ "agent": string } |
| 字段 | |
|---|---|
agent |
必需。要将对话转接到的代理的名称。代理必须与当前代理位于同一应用中。格式: |
GenerativeAnswer
| JSON 表示法 |
|---|
{ "prompt": string } |
| 字段 | |
|---|---|
prompt |
必需。用于生成式回答的提示。 |
时间戳
| 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 之间(含边界值)。 |
MatchType
内容过滤条件的匹配类型。
| 枚举 | |
|---|---|
MATCH_TYPE_UNSPECIFIED |
未指定匹配类型。 |
SIMPLE_STRING_MATCH |
系统会逐个字符地匹配子字符串。 |
WORD_BOUNDARY_STRING_MATCH |
只有当文本中找到的模式被字词定界符包围时,内容才会匹配。禁用短语也可以包含字词定界符。 |
REGEXP_MATCH |
系统会使用正则表达式语法来匹配内容。 |
PolicyScope
定义在对话期间何时应用政策检查。
| 枚举 | |
|---|---|
POLICY_SCOPE_UNSPECIFIED |
未指定政策范围。 |
USER_QUERY |
在用户输入时触发政策检查。 |
AGENT_RESPONSE |
政策检查会在代理回答时触发。应用此政策范围会在代理能够响应之前引入额外的延迟。 |
USER_QUERY_AND_AGENT_RESPONSE |
系统会在用户输入和代理回答时触发政策检查。应用此政策范围会在代理能够响应之前引入额外的延迟。 |
HarmCategory
危害类别。
| 枚举 | |
|---|---|
HARM_CATEGORY_UNSPECIFIED |
未指定有害类别。 |
HARM_CATEGORY_HATE_SPEECH |
有害类别为仇恨言论。 |
HARM_CATEGORY_DANGEROUS_CONTENT |
有害类别为危险内容。 |
HARM_CATEGORY_HARASSMENT |
有害类别为骚扰。 |
HARM_CATEGORY_SEXUALLY_EXPLICIT |
有害类别为露骨色情内容。 |
HARM_CATEGORY_PROFANITY |
有害类别为脏话。 |
HARM_CATEGORY_TOXIC |
有害类别为恶意。 |
HarmBlockThreshold
用于屏蔽的基于概率的阈值级别。
| 枚举 | |
|---|---|
HARM_BLOCK_THRESHOLD_UNSPECIFIED |
未指定的有害屏蔽阈值。 |
BLOCK_LOW_AND_ABOVE |
屏蔽低阈值及以上的内容(即屏蔽较多的内容)。 |
BLOCK_MEDIUM_AND_ABOVE |
屏蔽中等阈值及以上。 |
BLOCK_ONLY_HIGH |
仅屏蔽高阈值内容(即屏蔽较少的内容)。 |
BLOCK_NONE |
全部不屏蔽。 |
OFF |
关闭安全过滤条件。 |
输出架构
保护措施包含一系列检查和平衡机制,可确保智能体安全无虞。
保护措施
| JSON 表示法 |
|---|
{ "name": string, "displayName": string, "description": string, "enabled": boolean, "action": { object ( |
| 字段 | |
|---|---|
name |
标识符。安全屏障的唯一标识符。格式: |
displayName |
必需。安全屏障的显示名称。 |
description |
可选。安全屏障的说明。 |
enabled |
可选。安全护栏是否已启用。 |
action |
可选。触发安全护栏时要采取的操作。 |
createTime |
仅限输出。安全屏障的创建时间戳。 采用 RFC 3339 标准,生成的输出将始终进行 Z 规范化(即转换为 UTC 零时区格式并在末尾附加 Z),并使用 0、3、6 或 9 个小数位。不带“Z”的偏差时间也是可以接受的。示例: |
updateTime |
仅限输出。防护栏上次更新时的时间戳。 采用 RFC 3339 标准,生成的输出将始终进行 Z 规范化(即转换为 UTC 零时区格式并在末尾附加 Z),并使用 0、3、6 或 9 个小数位。不带“Z”的偏差时间也是可以接受的。示例: |
etag |
用于确保对象在读取-修改-写入操作期间未发生更改的 ETag。如果 etag 为空,则更新会覆盖任何并发更改。 |
联合字段 guardrail_type。保护措施类型。guardrail_type 只能是下列其中一项: |
|
contentFilter |
可选。禁止在对话中使用某些内容的护栏。 |
llmPromptSecurity |
可选。如果根据 LLM 分类,提示被视为不安全,则会阻止对话的护栏。 |
llmPolicy |
可选。如果 LLM 回答根据 LLM 分类被视为违反政策,则阻止对话的安全屏障。 |
modelSafety |
可选。如果 LLM 回答根据模型安全设置被视为不安全,则阻止对话的安全屏障。 |
codeCallback |
可选。根据回调执行结果可能会屏蔽对话的护栏。 |
ContentFilter
| JSON 表示法 |
|---|
{
"bannedContents": [
string
],
"bannedContentsInUserInput": [
string
],
"bannedContentsInAgentResponse": [
string
],
"matchType": enum ( |
| 字段 | |
|---|---|
bannedContents[] |
可选。禁用短语列表。适用于用户输入和智能体回答。 |
bannedContentsInUserInput[] |
可选。禁用短语列表。仅适用于用户输入。 |
bannedContentsInAgentResponse[] |
可选。禁用短语列表。仅适用于代理回答。 |
matchType |
必需。内容过滤条件的匹配类型。 |
disregardDiacritics |
可选。如果为 true,则在匹配期间忽略变音符号。 |
LlmPromptSecurity
| JSON 表示法 |
|---|
{ "failOpen": boolean, // Union field |
| 字段 | |
|---|---|
failOpen |
可选。确定保护措施遇到 LLM 错误时的行为。- 如果为 true:则绕过安全护栏。- 如果为 false(默认):安全护栏会触发/屏蔽。 注意:如果提供了自定义政策,系统会忽略此字段,而采用相应政策的“fail_open”配置。 |
联合字段 security_config。定义安全配置模式。用户必须选择以下配置之一。security_config 只能是下列其中一项: |
|
defaultSettings |
可选。使用系统预定义的默认安全设置。如需选择此模式,请在请求中添加空的“default_settings”消息。其中的“default_prompt_template”字段将由服务器填充在响应中。 |
customPolicy |
可选。使用用户定义的 LlmPolicy 配置安全防护措施。 |
DefaultSecuritySettings
| JSON 表示法 |
|---|
{ "defaultPromptTemplate": string } |
| 字段 | |
|---|---|
defaultPromptTemplate |
仅限输出。系统使用的默认提示模板。此字段用于显示目的,以向用户展示系统默认使用的提示。此字段为 OUTPUT_ONLY。 |
LlmPolicy
| JSON 表示法 |
|---|
{ "maxConversationMessages": integer, "modelSettings": { object ( |
| 字段 | |
|---|---|
maxConversationMessages |
可选。检查此政策时,请考虑对话中的最后“n”条消息。如果未设置,则使用默认值 10。 |
modelSettings |
可选。模型设置。 |
prompt |
必需。政策提示。 |
policyScope |
必需。定义在对话期间何时应用政策检查。如果设为 |
failOpen |
可选。如果在政策检查期间发生错误,则会失败打开,并且不会触发安全防护栏。 |
allowShortUtterance |
可选。默认情况下,系统会跳过对简短话语的 LLM 政策检查。启用此设置后,系统会对所有话语(包括通常会跳过的话语)执行政策检查。 |
ModelSettings
| JSON 表示法 |
|---|
{ "model": string, // Union field |
| 字段 | |
|---|---|
model |
可选。智能体应使用的 LLM 模型。如果未设置,代理将从其父智能体继承模型。 |
联合字段
|
|
temperature |
可选。如果设置,系统将使用此温度值来运行 LLM 模型。温度可控制模型回答的随机性。温度越低,生成的回答就越可预测。温度越高,生成的回答就越有创意。 |
ModelSafety
| JSON 表示法 |
|---|
{
"safetySettings": [
{
object ( |
| 字段 | |
|---|---|
safetySettings[] |
必需。安全设置列表。 |
SafetySetting
| JSON 表示法 |
|---|
{ "category": enum ( |
| 字段 | |
|---|---|
category |
必需。有害类别。 |
threshold |
必需。有害内容屏蔽阈值。 |
CodeCallback
| JSON 表示法 |
|---|
{ "beforeAgentCallback": { object ( |
| 字段 | |
|---|---|
beforeAgentCallback |
可选。在调用代理之前要执行的回调。每个回调函数都应返回一个结构(例如字典或对象),其中至少包含:-“decision”:可以是“OK”或“TRIGGER”。-“reason”:说明判决的字符串。“触发”决定可能会停止进一步处理。 |
afterAgentCallback |
可选。在调用代理后执行的回调。每个回调函数都应返回一个结构(例如字典或对象),其中至少包含:-“decision”:可以是“OK”或“TRIGGER”。-“reason”:说明判决的字符串。“触发”决定可能会停止进一步处理。 |
beforeModelCallback |
可选。在调用模型之前要执行的回调。如果多次调用模型,则回调将执行多次。每个回调函数都应返回一个结构(例如字典或对象),其中至少包含:-“decision”:可以是“OK”或“TRIGGER”。-“reason”:说明判决的字符串。“触发”决定可能会停止进一步处理。 |
afterModelCallback |
可选。在调用模型后执行的回调。如果多次调用模型,则回调将执行多次。每个回调函数都应返回一个结构(例如字典或对象),其中至少包含:-“decision”:可以是“OK”或“TRIGGER”。-“reason”:说明判决的字符串。“触发”决定可能会停止进一步处理。 |
回调
| JSON 表示法 |
|---|
{ "description": string, "disabled": boolean, "proactiveExecutionEnabled": boolean, // Union field |
| 字段 | |
|---|---|
description |
可选。回调的人类可读说明。 |
disabled |
可选。回调是否已停用。代理会忽略已停用的回调。 |
proactiveExecutionEnabled |
可选。如果启用,系统还会针对中间模型输出执行回调。此设置只会影响模型后回调。请谨慎启用。通常,模型后回调只需在收到所有模型回答后执行。启用主动执行可能会对执行费用和延迟时间产生负面影响,因此仅应在极少数情况下启用。 |
联合字段 callback。要执行的回调。callback 只能是下列其中一项: |
|
pythonCode |
必需。要为回调执行的 Python 代码。 |
TriggerAction
| JSON 表示法 |
|---|
{ // Union field |
| 字段 | |
|---|---|
联合字段 action。要采取的行动。action 只能是下列其中一项: |
|
respondImmediately |
可选。立即以预配置的回答进行回复。 |
transferAgent |
可选。将对话转接给其他客服人员。 |
generativeAnswer |
可选。使用生成式回答进行回复。 |
RespondImmediately
| JSON 表示法 |
|---|
{
"responses": [
{
object ( |
| 字段 | |
|---|---|
responses[] |
必需。供代理选择的预设回复。回答是随机选择的。 |
响应
| JSON 表示法 |
|---|
{ "text": string, "disabled": boolean } |
| 字段 | |
|---|---|
text |
必需。智能体要回复的文本。 |
disabled |
可选。回答是否已停用。代理不会使用已停用的回答。 |
TransferAgent
| JSON 表示法 |
|---|
{ "agent": string } |
| 字段 | |
|---|---|
agent |
必需。要将对话转接到的代理的名称。代理必须与当前代理位于同一应用中。格式: |
GenerativeAnswer
| JSON 表示法 |
|---|
{ "prompt": string } |
| 字段 | |
|---|---|
prompt |
必需。用于生成式回答的提示。 |
时间戳
| 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 之间(含边界值)。 |
MatchType
内容过滤条件的匹配类型。
| 枚举 | |
|---|---|
MATCH_TYPE_UNSPECIFIED |
未指定匹配类型。 |
SIMPLE_STRING_MATCH |
系统会逐个字符地匹配子字符串。 |
WORD_BOUNDARY_STRING_MATCH |
只有当文本中找到的模式被字词定界符包围时,内容才会匹配。禁用短语也可以包含字词定界符。 |
REGEXP_MATCH |
系统会使用正则表达式语法来匹配内容。 |
PolicyScope
定义在对话期间何时应用政策检查。
| 枚举 | |
|---|---|
POLICY_SCOPE_UNSPECIFIED |
未指定政策范围。 |
USER_QUERY |
在用户输入时触发政策检查。 |
AGENT_RESPONSE |
政策检查会在代理回答时触发。应用此政策范围会在代理能够响应之前引入额外的延迟。 |
USER_QUERY_AND_AGENT_RESPONSE |
系统会在用户输入和代理回答时触发政策检查。应用此政策范围会在代理能够响应之前引入额外的延迟。 |
HarmCategory
危害类别。
| 枚举 | |
|---|---|
HARM_CATEGORY_UNSPECIFIED |
未指定有害类别。 |
HARM_CATEGORY_HATE_SPEECH |
有害类别为仇恨言论。 |
HARM_CATEGORY_DANGEROUS_CONTENT |
有害类别为危险内容。 |
HARM_CATEGORY_HARASSMENT |
有害类别为骚扰。 |
HARM_CATEGORY_SEXUALLY_EXPLICIT |
有害类别为露骨色情内容。 |
HARM_CATEGORY_PROFANITY |
有害类别为脏话。 |
HARM_CATEGORY_TOXIC |
有害类别为恶意。 |
HarmBlockThreshold
用于屏蔽的基于概率的阈值级别。
| 枚举 | |
|---|---|
HARM_BLOCK_THRESHOLD_UNSPECIFIED |
未指定的有害屏蔽阈值。 |
BLOCK_LOW_AND_ABOVE |
屏蔽低阈值及以上的内容(即屏蔽较多的内容)。 |
BLOCK_MEDIUM_AND_ABOVE |
屏蔽中等阈值及以上。 |
BLOCK_ONLY_HIGH |
仅屏蔽高阈值内容(即屏蔽较少的内容)。 |
BLOCK_NONE |
全部不屏蔽。 |
OFF |
关闭安全过滤条件。 |
工具注释
工具注释会发送给 MCP 客户端,用于描述指定工具的基本风险。大多数客户端会将这些提示视为不受信任的,但它们可用于确定何时向用户发送确认提示。
除了标题字符串之外,还定义了以下布尔值提示:
readOnlyHint:如果为 true,则工具不会修改其环境。默认值:false。destructiveHint:如果为 true,则工具可以执行破坏性操作。如果为 false,则该工具只能执行添加操作。默认值:true。idempotentHint:如果为 true,则使用相同实参重复调用该工具不会对其环境产生任何额外影响。默认值:false。openWorldHint:如果为 true,则工具可以与外部实体的“开放世界”互动。如果为 false,则该工具只能与内部实体互动。例如,网络搜索工具是开放世界工具,而内存工具不是开放世界工具。
破坏性提示:✅ | 等幂性提示:❌ | 只读提示:❌ | 开放世界提示:❌