

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 通过 AgentCore Gateway 连接到您的知识库
<a name="kb-gateway-target"></a>

AgentCore Gateway 允许您使用模型上下文协议 (MCP) 将您的 Amazon Bedrock 托管知识库作为工具公开。将知识库目标添加到网关后，任何 MCP-compatible 客户端都可以将知识库作为标准 MCP 工具进行查询。该连接器提供了两个工具：
+ `AgenticRetrieveStream`— 一种多步骤的流式代理检索，可通过迭代方式规划、检索和流式传输结果，还有一个可选的综合的、有引文支持的答案。
+ `Retrieve`— 一次搜索可返回最相关的段落以及参考文献。

网关充当中介，处理身份验证、参数注入和架构子集设置。作为管理员，您可以绑定知识库并控制哪些参数向呼叫代理公开，哪些参数使用预先配置的默认值隐藏。

**注意**  
知识库网关目标仅支持托管知识库，并且仅支持 IAM-based 出站身份验证（`GATEWAY_IAM_ROLE`凭据提供者类型）。

**先决条件**
+ 托管知识库及其知识库 ID。
+ 具有从知识库（在知识库 ARN `bedrock:Retrieve` 上）检索权限的网关和网关服务角色。 AgentCore 

有关完整说明（包括使用 AWS SDK 或 AWS CLI 创建网关目标、配置网关服务角色和信任策略、控制代理可以设置的检索参数、调用工具以及完整的输入和响应架构），请参阅 [ Amazon Bedrock 开发者指南](bedrock-agentcore/latest/devguide/gateway-target-connector-managed-kb.html)中作为连接器目标的 Amazon Bedro AgentCore ck 托管知识库。* *

## 使用 Strands 代理调用
<a name="kb-gateway-target-invoke-strands"></a>

如果您有使用 [ Strands Agents SDK ](https://strandsagents.com/latest/) 和[AgentCore入门工具包构建的现有代理](bedrock-agentcore/latest/devguide/runtime-get-started-toolkit.html)，则可以通过切换 MCP 客户端对网关端点使用 SigV4 身份验证将其连接到知识库网关目标。

安装 `mcp-proxy-for-aws` 包：

```
pip install mcp-proxy-for-aws
```

然后更新您的 MCP 客户端，使其指向使用 IAM 身份验证的网关 URL：

```
from mcp_proxy_for_aws.client import aws_iam_streamablehttp_client
from strands.tools.mcp.mcp_client import MCPClient

GATEWAY_URL = "{{https://your-gateway-url/mcp}}"

def get_streamable_http_mcp_client() -> MCPClient:
    """Returns an MCP Client with SigV4 auth for AgentCore Gateway."""
    return MCPClient(lambda: aws_iam_streamablehttp_client(
        endpoint=GATEWAY_URL,
        aws_region="{{us-west-2}}",
        aws_service="bedrock-agentcore",
    ))
```

与标准 MCP 客户机设置相比的主要变化是：
+ 将`mcp`包裹`streamablehttp_client`中的内容替换为 f `aws_iam_streamablehttp_client` rom `mcp-proxy-for-aws`。
+ 将设置`endpoint`为您的 AgentCore 网关 URL。
+ 指定 `aws_service="bedrock-agentcore"` SigV4 签名。

连接后，可以自动发现知识库工具`tools/list`，无需额外配置即可供代理使用。