本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
工具
工具是声明性的。您可以列出代理可以调用的内容; AgentCore 处理调用、凭证和结果。该工具支持五种工具类型,以及内置的文件系统和外壳工具。
-
MCP 服务器:通过 URL 连接到任何远程模型上下文协议
端点。对于简单的案例,无需网关。 -
AgentCore 网关:通过 inbound/outbound 身份验证、访问控制和策略执行来管理与 API 和 MCP 服务器的连接。参考网关 ARN,在该网关上配置的所有工具都可用。当您需要托管的、受策略支持的工具界面时,请使用 Gateway。
-
AgentCore 浏览器:托管式网页浏览和自动化。
-
AgentCore 代码解释器:用于数据分析和计算的沙盒化 Python/JavaScript/TypeScript 代码执行。
-
内联函数:在客户端执行的工具架构,而不是在安全带虚拟机上执行的工具架构。调用该工具时,安全带会暂停,并将调用返回到您的代码,由代码决定要做什么并将结果发送回去。这是人工在环审批和自定义集成的模式。
默认工具shell,file_operations除非您对其进行限制,否则它们在每个会话中都可用allowedTools。shell执行 bash 命令;file_operations支持查看、创建和编辑文件。
该allowedTools参数控制代理可以使用哪些工具。如果省略,则允许使用所有工具。
工具定义产生的代币开销
即使代理不调用工具,工具定义也会计入模型输入标记。默认值shell和file_operations定义一起为每个模型请求添加了大约 900 个输入标记。确切数量因型号而异,并且会随着工具定义的变化而变化。由于一次调用可以发出多个模型请求,因此每次调用可能会产生不止一次的开销。allowedTools用于仅公开请求所需的工具并减少令牌的使用。
支持的模式:
| 模式 | 示例 | Matches |
|---|---|---|
|
|
|
所有工具 |
|
普通的名字 |
|
按名称内置 |
|
内置glob |
|
|
|
|
|
所有内置工具 |
|
|
|
特定的内置 |
|
|
|
来自 MCP 服务器的所有工具 |
|
|
|
特定的 MCP 工具 |
|
|
|
服务器内的 Glob |
|
|
|
跨服务器全局浏览 |
注意
allowedToolsInvokeHarness仅在 LLM 工具选择期间适用。它不影响 InvokeAgentRuntimeCommand,这是一个具有自己的 IAM 操作 (bedrock-agentcore:InvokeAgentRuntimeCommand) 的单独的 API,无需通过 LLM 即可直接执行命令。为防止直接执行命令,请勿在 IAM 策略bedrock-agentcore:InvokeAgentRuntimeCommand中授权。
添加工具
例
网络搜索
要为您的代理提供网络搜索,请将 Web 搜索工具连接器放在AgentCore 网关后面,并将该网关作为agentcore_gateway工具连接到您的安全带上。该网关将网络搜索作为标准的 MCP WebSearch 工具公开。您的代理发现并像任何其他网关工具一样调用它。 AgentCore Gateway 完全在内部提供所有查询 AWS。有关隐私模型和专门构建的 Web 索引的更多信息,请参阅 Web 搜索工具连接器页面。
区域可用性
Web 搜索工具在美国东部(弗吉尼亚北部)us-east-1地区可用。创建网关并在其中进行利用us-east-1。
完成以下步骤,为您的安全带设置 Web 搜索。
-
创建网关和连接器目标。按照设置 Web 搜索工具中的步骤创建网关(MCP 协议、
AWS_IAM入站身份验证)并使用添加目标。connectorId: "web-search"该目标需要在连接器bedrock-agentcore:InvokeWebSearch上使用网关服务角色。有关更多信息,请参阅配置网关服务角色。一旦网关 ARN 到达READY,请注意它。 -
授予线束执行角色访问权限。线束执行角色(不同于
bedrock-agentcore:InvokeGateway上一步中的网关服务角色)需要网关 ARN。有关所需权限的更多信息,请参阅安全主题中的AgentCore 网关可选权限策略。如果您的工具使用托管内存(默认),则执行角色还需要AgentCore 内存权限。代理在每次调用时读取和写入会话内存。 -
将网关连接到安全带上。将其添加为具有默认
AWS_IAM出站身份验证的agentcore_gateway工具。以下示例显示如何在创建时连接网关。
例
内联函数调用
内联函数允许您定义在代码中执行的工具,而不是在安全带上执行的工具。这对于人工在环审批、调用内部 API 或任何你想控制客户端的逻辑都很有用。
例
了解有关每种工具的更多信息: