View a markdown version of this page

Amazon Bedrock 将知识库作为连接器目标进行管理 - Amazon Bedrock AgentCore

Amazon Bedrock 将知识库作为连接器目标进行管理

Amazon Bedrock 托管知识库提供完全托管的检索增强生成 (RAG):Amazon Bedrock 负责处理矢量存储、数据摄取和检索优化,因此您无需配置或操作检索基础设施。Amazon Bedrock AgentCore 将托管知识库作为原生网关连接器公开,您可以将其附加到 AgentCore 网关,然后您的代理使用标准模型上下文协议 (MCP) 调用来发现和查询它,无需构建自定义检索集成。有关创建和管理托管知识库的详细信息,请参阅《亚马逊 B edrock 用户指南》中的 Amazon Bedrock 知识库

连接器暴露了两个工具。第一个是AgenticRetrieveStream。它不是单一查找,而是计划检索策略,在托管的知识库中运行多个检索步骤,可以选择扩展到完整文档,并流式传输支持结果和综合的、有引文支持的答案。 Retrieve执行单次混合搜索并返回最相关的段落。

注意

此连接器仅支持 Amazon Bedrock 托管知识库。

以下各节将介绍连接器的工作原理、代理检索的深度、常见用例、如何设置目标以及这两种工具的输入和响应架构。

工作原理

Amazon Bedrock AgentCore 提供了指向亚马逊 Bedrock 托管知识库的内置连接器。网关负责架构管理、端点解析和服务身份验证。该连接器公开了两个工具,您的代理使用这些工具来发现这些工具:tools/list

  • AgenticRetrieveStream— 一种多步骤、流式代理检索,可返回结果、计划和检索跟踪事件,以及带引文的合成答案(默认返回;禁用)。generateResponse: false

  • Retrieve— 单一混合搜索,可返回最相关的段落和来源参考文献。

单次Retrieve调用遵循以下流程:

  1. 网关设置-创建网关并添加 Amazon Bedrock 托管知识库目标,引用您要公开的托管知识库。网关会对工具架构进行快照并配置集成。

  2. 工具发现-您的代理调用 tools/list Gateway 端点并发现检索工具及其输入架构。

  3. 检索调用-您的代理使用自然语言查询tools/call进行呼叫。Gateway 向后端进行身份验证,并将请求路由到托管知识库,该知识库会对你摄取的内容进行混合搜索。

  4. 结果 — 该工具在工具结果的文本内容中以 JSON 形式返回最相关的段落,其源引用为 JSON。

  5. 有@@ 根据的回应-您的代理使用结果撰写带有引用来源的回复。

有关代理检索流程,请参阅代理检索。

代理检索

AgenticRetrieveStream将问题视为一项任务:它不是针对一个查询Retrieve运行的单一混合搜索,而是计划检索策略,在托管知识库中运行多个检索步骤,并流式传输支持结果和综合的、有引文支持的答案,所有这些都可以在一个工具调用中完成。默认情况下返回合成答案;设置generateResponse为仅false返回结果。

您的代理通过对话调用它 () messages。它查询的检索器(每个检索器都指向托管知识库)由目标上的管理员配置,而不是由代理提供。通过 MCP 进行规划和检索进度流notifications/message,结果和答案将在工具结果中返回。

有关代理检索工作原理的更多信息,请参阅《亚马逊 B edrock 用户指南》中的 Amazon B edrock 知识库

有关请求和事件架构,请参阅AgenticRetrieveStream 输入架构AgenticRetrieveStream 响应格式

使用案例

  • 企业知识助手 — 内部 wiki、运行手册和政策文件中的地面代理回复,这些文档已纳入托管知识库。

  • 文档问答 — 无需建立或运营矢量存储库即可回答有关大型文档集的问题。

  • Multi-source RAG — 在一次检索调用中查询来自多个数据源的内容,这些内容合并到单个托管知识库中。

  • Multi-step 规划 — 用于回答AgenticRetrieveStream需要计划和多个检索步骤的多部分或模棱两可的问题,在一次通话中返回一个综合的、有引文支持的答案。

  • Tool-augmented 代理 — 将托管知识库检索与您的其他 Gateway 工具相结合,这样代理既可以查找有根据的事实,又可以采取行动。

设置托管知识库

有关如何使用 Amazon Bedrock 托管知识库连接器配置创建网关目标的说明,包括使用 Python SDK 和 CLI 的设置示例,请参阅目标配置指南中的设置托管知识库

配置网关服务角色

Gateway 需要一个 AgentCore 服务角色,允许该服务代表您对托管知识库执行检索操作。有关所需的 IAM 权限和策略配置,请参阅目标配置指南中的配置网关服务角色

调用工具

创建目标后,您的代理会发现带有的工具tools/list并使用调用tools/call它们。每个工具名称都以目标名称为前缀,形式为 managed-kb___Retrieve (<target-name>_<tool-name>_AgenticRetrieveStream或)。

因为AgenticRetrieveStream,您的代理只会通过对话。检索器由管理员在目标上配置,因此代理不会发送知识库 ID:

{ "jsonrpc": "2.0", "id": 1, "method": "tools/call", "params": { "name": "managed-kb___AgenticRetrieveStream", "arguments": { "messages": [ { "role": "user", "content": { "text": "How do I configure a knowledge base target?" } } ] } } }

对于Retrieve,托管知识库标识符绑定到目标,因此您的代理仅通过查询:

{ "jsonrpc": "2.0", "id": 1, "method": "tools/call", "params": { "name": "managed-kb___Retrieve", "arguments": { "retrievalQuery": { "text": "What is Amazon Bedrock AgentCore?" } } } }

如果您向代理公开了检索参数(请参阅控制代理可以设置哪些参数),则代理可以在呼叫时覆盖管理员配置的默认值:

{ "jsonrpc": "2.0", "id": 1, "method": "tools/call", "params": { "name": "managed-kb___Retrieve", "arguments": { "retrievalQuery": { "text": "insurance benefits" }, "retrievalConfiguration": { "managedSearchConfiguration": { "numberOfResults": 2 } } } } }

AgenticRetrieveStream 输入架构

返回的架构tools/list是您的代理在调用时可以设置的一组字段AgenticRetrieveStream。默认情况下,代理可见的唯一字段是。messages要查询的检索器和所有检索配置均由管理员在目标上设置,请参阅设置托管知识库。要向代理显示更多字段,请在目标parameterOverrides上进行配置-请参阅控制代理可以设置的参数

{ "type": "object", "properties": { "messages": { "description": "The messages for the agentic retrieval conversation. Contains the user query and conversation history.", "type": "array", "items": { "type": "object", "properties": { "role": { "description": "The role of the message sender (user or assistant).", "type": "string", "enum": ["user", "assistant"] }, "content": { "description": "The content of the message.", "type": "object", "properties": { "text": { "description": "The text content of the message.", "type": "string" } } } }, "required": ["content", "role"] } } }, "required": ["messages"] }
字段 类型 必需 说明

messages

array

代理检索对话。每条消息都有roleuserassistant)和content.text

有关管理员设置的字段—— retrievers、agenticRetrieveConfiguration(基础模型、重新排名和护栏policyConfiguration)和maxAgentIteration,请参见设置托管generateResponse知识库和配置参考。

AgenticRetrieveStream 响应格式

AgenticRetrieveStream流式传输一系列事件。通过 MCP,跟踪事件按实时进度传送,检索结果和综合答案在工具结果中传送。notifications/message直播会发出以下事件类型:

事件 说明

traceEvent

计划或检索步骤,包含 step (PlanningRetrievalSpeculativeRetrieval、或FullDocumentExpansion)、status (IN_PROGRESS、或FAILED) SUCCEEDED、人类可读的messageactions已执行的以及任何warningsfailures

responseEvent

生成的答案文本的一部分。默认情况下发出;仅当设置generateResponse为时才会隐藏。false

result

检索results,除非设置generateResponsefalse,否则将generatedResponse包含答案和引文的最终结果。

result事件具有以下结构:

{ "result": { "results": [ { "content": { "text": "Amazon Bedrock AgentCore manages the storage, indexing, and retrieval infrastructure for a managed knowledge base...", "mimeType": "text/plain" }, "sourceRetriever": { "identifier": "kb-retriever-1" }, "metadata": { "x-amz-bedrock-kb-source-uri": "s3://example-bucket/docs/overview.pdf" } } ], "generatedResponse": { "answer": "A managed knowledge base lets Amazon Bedrock AgentCore handle the vector store, ingestion, and retrieval for you.", "citations": [ { "startIndex": 0, "endIndex": 98, "references": [ { "..." : "references to supporting results" } ] } ] } } }
字段 类型 必需 说明

results

array

检索结果。每个项目都有content(带有 o text r byteContent 和 amimeType)、生成它sourceRetriever的,以及可选的metadata

generatedResponse

object

默认情况下存在。仅当设置generateResponse为时才会省略false。包含合成的答案answercitations该映射答案跨越 (startIndex,endIndex) 到支持结果。

nextToken

字符串

用于检索下一组结果的令牌(如果有)。

检索输入架构

返回的架构tools/list是您的代理在调用时可以设置的一组字段Retrieve。默认情况下,代理可见的唯一字段是。retrievalQuery.text托管知识库标识符和所有检索设置均由管理员在目标上设置。要向代理公开检索设置(例如numberOfResults或元数据filter),请在目标parameterOverrides上进行配置,请参阅控制代理可以设置的参数

{ "type": "object", "properties": { "retrievalQuery": { "description": "Contains the query to send the managed knowledge base.", "type": "object", "properties": { "text": { "description": "The text of the query made to the managed knowledge base.", "type": "string" } } } }, "required": ["retrievalQuery"] }
字段 类型 必需 说明

retrievalQuery

对象

要发送到托管知识库的查询。

retrievalQuery.text

字符串

查询的文本。

有关管理员设置和可覆盖的字段(元数据numberOfResultsfilter、重排序和多模态overrideSearchType图像查询),请参阅配置参考。

检索响应格式

Retrieve工具返回封装在 JSON-RPC 信封中的 MCP tools/call 结果。isErrorcontent字段在里面result,该text字段包含序列化的retrievalResults有效负载:

{ "jsonrpc": "2.0", "id": 1, "result": { "isError": false, "content": [ { "type": "text", "text": "{\"retrievalResults\":[{\"content\":{\"type\":\"TEXT\",\"text\":\"Amazon Bedrock AgentCore manages the storage, indexing, and retrieval infrastructure for a managed knowledge base...\"},\"location\":{\"type\":\"S3\",\"s3Location\":{\"uri\":\"s3://example-bucket/docs/overview.pdf\"}},\"score\":0.87,\"metadata\":{\"x-amz-bedrock-kb-source-uri\":\"s3://example-bucket/docs/overview.pdf\"}}]}" } ] } }

中的每个项目都retrievalResults具有以下结构:

字段 类型 必需 说明

content

对象

检索到的区块的内容。包括 type (TEXTIMAGEROWAUDIO、或VIDEO) 和相应的内容,text例如文本块。

location

object

源数据的位置。包括 type (S3WEBCONFLUENCESHAREPOINTCUSTOM、等) 和匹配的位置对象,例如s3Location.uri

score

数字

结果与查询的相关性。

metadata

object

数据源中源文件的元数据属性及其值。

配置参考

在创建目标时parameterValues,以下字段由管理员在中设置或向代理公开。parameterOverrides有关在何处设置它们,请参阅设置托管知识库控制代理可以设置哪些参数

AgenticRetrieveStreamagenticRetrieveConfiguration

字段 有效值 注意

foundationModelType

MANAGED, CUSTOM

MANAGED使用服务管理模型(默认)。 CUSTOM使用您提供的 Bedrock 模型 ARN。

rerankingModelType

MANAGED, CUSTOM, NONE

MANAGED使用服务管理的重新排名(默认)。 CUSTOM使用你自己的。 NONE禁用重新排名。

foundationModelConfiguration.type

BEDROCK_FOUNDATION_MODEL

何时foundationModelType为必填项CUSTOM

maxAgentIteration

integer

限制计划和检索迭代的次数。

policyConfiguration.guardrailConfiguration

guardrailId, guardrailVersion

附上 Amazon Bedrock 护栏。

RetrievemanagedSearchConfiguration

字段 有效值 注意

numberOfResults

整数 (1—100)

要检索的源区块数。

overrideSearchType

HYBRID, SEMANTIC

HYBRID结合了关键字和矢量搜索。 SEMANTIC仅使用矢量搜索。

rerankingModelType

MANAGED, CUSTOM, NONE

和 for 一样AgenticRetrieveStream

rerankingConfiguration.type

BEDROCK_RERANKING_MODEL

使用自定义重新排名时为必填项。

rerankingConfiguration.bedrockRerankingConfiguration.metadataConfiguration.selectionMode

SELECTIVE, ALL

控制将哪些元数据字段传递给重新排名者。

filter

equals, notEquals, greaterThan, greaterThanOrEquals, lessThan, lessThanOrEquals, in, notIn, startsWith, listContains, stringContains, andAll, orAll

元数据过滤器。只提供一个操作员。

访问控制过滤

如果您的托管知识库使用访问控制来筛选每个用户或组的结果,则调用的应用程序必须在请求中userContext通过 a。网关userContext传递到知识库,知识库基于它应用访问控制过滤。网关不是通过调用者的 IAM 身份填充userContext的,您的应用程序必须明确提供该身份。

要使用它,请执行以下操作:

  1. 通过在目标parameterOverrides上进行配置$.userContext向代理公开 — 请参阅控制代理可以设置的参数

  2. 让调用应用程序(不是模型)包含userContexttools/call参数中:

{ "arguments": { "retrievalQuery": { "text": "insurance benefits" }, "userContext": { "userId": "user@example.com" } } }