本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
知识库检索配置
使用编排 AI 代理时,您可以配置检索工具,允许您的 AI 代理搜索知识库并返回相关信息来回答用户问题。
每个 “检索” 工具都会查询一个知识库。通过配置多个检索工具,您可以使您的 AI 代理能够同时查询多个知识库,或者根据用户的问题智能地选择要搜索的知识库。 Well-defined 工具描述和即时说明允许模型自动将查询路由到最相关的知识库。
您可以在两个级别上控制 AI 代理查询内容的方式:
-
知识库级别:配置多个检索工具来查询不同的知识库。当您的内容组织成多个知识库时,请使用此方法。
-
内容级别:使用内容分段仅查询单个知识库中的特定内容。
如何配置您的编排代理以查询多个知识库
您可以配置多个检索工具来查询不同的知识库。根据您的用例,您可以:
同时查询所有知识库(并行调用)
根据请求的上下文查询特定的知识库(条件调用)
设置多个检索工具
两种配置都需要相同的初始设置。首先完成这些步骤,然后按照特定用例的说明进行操作。
-
在 AWS 控制台中,您可以通过选择 “添加集成” 并遵循指导式体验来添加其他知识库。在此示例中,我们添加了 demo-byobkb 作为附加知识库。
-
在 AI 代理设计器中,创建新的 Orchestration AI 代理,然后编辑默认的检索工具
-
将现有知识库关联到检索工具。AI 代理将使用此知识库作为默认值
-
添加其他工具,选择 Amazon Connect 作为命名空间,然后选择检索 AI 工具的类型
-
现在,选择要在默认知识库之外关联的其他知识库
-
以 “检索” 开头为每个其他检索工具命名(例如,Retrieve2、Retrieve3、、)。 RetrieveProducts RetrievePolicies
-
接下来,配置工具说明和示例。配置因您的用例而异。以下部分涵盖两种场景:同时查询所有知识库和有选择地查询知识库。
同时查询所有知识库
当您希望代理同时搜索所有知识库以查找每个查询时,请使用此配置。
配置工具说明
-
复制默认 “检索” 工具中的说明和示例,填写工具说明。
-
选择 “添加” 按钮以创建新的 “检索” 工具。现在,您的工具列表中应该有新的检索工具。
你现在有了第二个 “检索” 工具。要同时使用所有检索工具,必须修改提示并附上同时调用这些工具的说明。如果不进行此更改,将仅使用一个检索工具。
更新您的并行调用提示
-
修改提示以指示其使用多个检索工具。默认编排提示无法直接编辑,因此您需要创建包含更改的副本。
通过复制与您的用例相匹配的默认编排提示来创建新提示。在此示例中,我们从 AgentAssistanceOrchestration 提示符中复制。
-
选择 “创建” 按钮,您将进入一个可以修改提示的页面。
-
根据您的编排类型修改您的提示:
-
有关代理协助编排提示:
在编排提示中找到带编号的规则部分。本节以类似于以下内容的行开头:
Your goal is to resolve the customer's issue while also being responsive. While responding, follow these important rules:将以下内容添加为本节中最后编号的规则:
CRITICAL - Multiple Retrieve Tools: When multiple Retrieve-type tools are available ([Retrieve], [Retrieve2]), you MUST invoke ALL of them simultaneously for any search request. Never use only one Retrieve tool when multiple are available-always select and invoke them together to ensure comprehensive results from all knowledge sources. -
有关 Self-Service 编排提示:
找到
core_behavior部分。在该部分中添加以下规则:CRITICAL - Multiple Retrieve Tools: When multiple Retrieve-type tools are available ([Retrieve], [Retrieve2]), you MUST invoke ALL of them simultaneously for any search request. Never use only one Retrieve tool when multiple are available—always invoke them together to ensure comprehensive results from all knowledge sources.
注意
将方括号中的占位符替换为您的实际工具名称。
-
有选择地查询知识库
当您希望代理根据问题或上下文的类型选择相应的知识库时,请使用此配置。
为每个知识库配置工具说明
与并行调用不同,每个 Retrieve 工具都需要不同的指令来描述何时应使用该工具。这包括默认的 “检索” 工具,必须更新其说明以将其与其他检索工具区分开来。使用反映每个知识库内容的描述性名称(例如 RetrieveProducts, RetrievePolicies)来帮助模型选择正确的工具。
-
对于每个 “检索” 工具(包括默认工具),编写具体的指令,描述其相关知识库的内容以及何时使用。
-
选择 “添加” 按钮以创建新的 “检索” 工具。现在,您的工具列表中应该有新的检索工具。
你现在有了第二个 “检索” 工具。要让代理根据上下文选择相应的工具,必须修改提示,说明何时使用每种工具。
更新条件调用提示
-
修改提示以指示其根据上下文选择相应的检索工具。默认编排提示无法直接编辑,因此您需要创建包含更改的副本。
通过复制与您的用例相匹配的默认编排提示来创建新提示。在此示例中,我们从 AgentAssistanceOrchestration 提示符中复制。
-
选择 “创建” 按钮,您将进入一个可以修改提示的页面。
-
根据您的编排类型修改您的提示:
-
有关代理协助编排提示:
在编排提示中找到带编号的规则部分。本节以类似于以下内容的行开头:
Your goal is to resolve the customer's issue while also being responsive. While responding, follow these important rules:将以下内容添加为本节中最后编号的规则:
CRITICAL - Retrieve Tool Selection: You have multiple Retrieve tools. Each queries a different knowledge base. You MUST select only ONE tool per question based on the topic. - [Retrieve] contains [description]. - [Retrieve2] contains [description]. Evaluate the question, match it to the most relevant tool, and invoke only that tool. -
有关 Self-Service 编排提示:
找到
core_behavior部分。在该部分中添加以下规则:CRITICAL - Retrieve Tool Selection: You have multiple Retrieve tools. Each queries a different knowledge base. You MUST select only ONE tool per question based on the topic. - [Retrieve] contains [description]. - [Retrieve2] contains [description]. Evaluate the question, match it to the most relevant tool, and invoke only that tool.
注意
将方括号中的占位符替换为您的实际工具名称、描述和示例问题。
准确选择刀具的最佳实践
模型选择正确检索工具的能力取决于多个因素:工具名称、工具描述、工具示例和即时说明。请遵循以下准则:
-
使用描述性工具名称:类似 RetrieveProducts 或 RetrievePolicies 有助于模型理解每个工具的用途。
-
描述要具体:避免像 “一般信息” 这样的模糊描述。列出每个知识库处理的特定主题、文档类型或问题类别。
-
添加示例问题:在工具说明中加入示例问题,以帮助模型理解预期用例。
-
避免重叠:确保工具名称、描述和示例相互排斥。重叠的内容可能会导致模型选择不一致。
-
将术语与用户语言相匹配:使用用户通常使用的相同单词和短语,而不仅仅是内部或技术术语。
除了此处提供的示例外,您的用例可能需要立即进行其他修改。
-
内容分割
通过内容分割,您可以标记知识库内容并根据这些标签筛选检索结果。当你的 LLM 工具查询知识库时,它可以指定标签来仅检索与这些标签匹配的内容,从而实现来自特定内容子集的有针对性的响应。
注意
内容分段不适用于 Web 爬虫数据源类型。
按数据源类型标记内容
标记内容的过程因您的数据源类型而异。
S3、Salesforce SharePoint、Zendesk 和 ServiceNow
创建知识库后,您可以将标签应用于单个内容项以进行细分。标签应用于内容级别,这意味着必须单独标记每段内容。
要标记内容,请使用 Amazon Connect TagResource API 。使用此 API,您可以以编程方式向知识库内容添加标签,然后可以在检索期间将其用于内容分段过滤。
有关为内容添加标签的示例,请参阅内容分段研讨会
在 “检索” 工具中使用标签
为内容添加标签后,您可以通过在检索工具配置中指定标签过滤器来筛选检索结果。
-
在检索工具配置中,导航至覆盖输入值部分。
-
添加键值对来定义您的标签过滤器。你需要两次覆盖才能按单个标签进行筛选。在这个例子中,我们用
equals作过滤器运算符:-
将属性密钥设置
retrievalConfiguration.filter.equals.key为,将值作为您的标签名称(例如,number)。
-
将属性键设置为,将
retrievalConfiguration.filter.equals.value该值作为您的标签值(例如,one)。
-
您可以使用任何以开头的过滤器配置retrievalConfiguration.filter来定义标签筛选标准。
Bedrock 知识库
对于 Bedrock 知识库数据源,内容不存储为 Amazon Connect 资源,因此无法通过 TagResource API 进行标记。相反,您必须直接在 Bedrock 知识库数据源上定义元数据字段。
对于 S3 数据源,请参阅 Amazon Bedrock S3 数据源连接器用户指南中的文档元数据字段部分。
有关其他数据源类型,请参阅 Amazon Bedrock 文档中的摄取期间的自定义转换。
在 “检索” 工具中使用元数据字段
Bedrock 知识库会自动为所有文件提供内置元数据字段。您可以使用上述示例中显示的相同配置方法,使用这些字段在检索工具中筛选检索结果。
要仅从 Bedrock 知识库中的特定数据源检索结果,请按如下方式配置过滤器覆盖:
-
retrievalConfiguration.filter.equals.key=x-amz-bedrock-kb-data-source-id -
retrievalConfiguration.filter.equals.value=[your-data-source-id]
这会过滤检索工具,使其仅从该特定数据源提取结果。您还可以使用相同的覆盖配置按在 Bedrock 数据源上定义的自定义元数据字段进行筛选。
将引文数据添加到您的 AI 代理追踪中
当您的 AI 代理使用知识库回答问题时,您可以捕获引用数据以显示引用了哪些知识库内容。这些数据包括:
-
contentId — 引用的特定内容项的标识符
-
标题 — 引用内容的标题(例如,“Amazon Connect 概述”)
-
知识 BaseId — 所用知识库的标识符
-
知识 BaseArn — 所用知识库的 ARN
该知识库引文数据可通过 ListSpans API 和 AI 代理跟踪获得。要了解更多信息,请参阅ListSpans和 AI 代理跟踪。
注意
如果您使用代理协助,引文数据将自动包括在内,无需进行其他配置。以下步骤仅适用于自助编排提示。
更新您的自助服务提示以添加引文
-
要启用引文数据,您必须在自助编排提示中更新检索工具的说明块。这指示模型使用所需格式在其响应中包含源引用。
-
创建默认自助服务编排提示的副本(无法直接编辑默认提示)。
-
在复制的提示中,将检索工具的指令块替换为以下内容:
instruction: instruction: |- Search the knowledge base using semantic search to find relevant information. Use the results of the RETRIEVE tool to provide an informed answer to the customer's query. When summarizing retrieve tool results, you MUST include source citations using the format shown in the good examples below. MUST include a <sources> block with the sourceId values from the Retrieve result inside every <message_part> that uses retrieved content. MUST use the exact sourceId string returned by the Retrieve tool. Do not modify, truncate, or fabricate sourceId values. MUST include source citations for ALL information taken from retrieve results. If a message_part is purely conversational (greetings, clarifying questions, hand-offs) and does not use retrieved content, omit the <sources> block. If retrieve returns no results or empty results, acknowledge that you don't have that specific information available. Do not make assumptions or provide information from general knowledge. examples: - |- Good example - single message part with one source: <message> <message_part> <text>Your warranty covers parts replacement for any manufacturing defects during the first year.</text> <sources> <sourceId>warranty_policy_2024</sourceId> </sources> </message_part> </message> - |- Good example - multiple sources contributing to one answer: <message> <message_part> <text>Our check-in time is 3 PM and checkout is 11 AM. Late checkout is available for an additional fee.</text> <sources> <sourceId>checkin_policy</sourceId> <sourceId>fees_addendum</sourceId> </sources> </message_part> </message> - |- Good example - greeting with no retrieval: <message> <message_part> <text>Hello! How can I help you today?</text> </message_part> </message> - |- Bad example - retrieved content with no sources block (avoid this): <message> <message_part> <text>We offer extended warranty coverage beyond the manufacturer's warranty period.</text> </message_part> </message> - |- Bad example - text outside <message_part> (avoid this): <message> <message_part> <text>Your warranty covers parts replacement.</text> <sources> <sourceId>warranty_policy_2024</sourceId> </sources> </message_part> Let me know if you need anything else. </message> - |- Example for no results: <message> <message_part> <text>I don't have specific information about that topic available.</text> </message_part> </message>
-
保存您的提示并将其与您的 AI 代理关联。
语音代理
该<sources>区块是元数据,不会大声说出来。它不会影响来电者听到的内容。
如何验证
更新提示后,请联系测试人员并确认:
-
代理正确回答了这个问题。
-
检查该会话 ListSpans 的 API 响应。用于回答的知识库应在 ListSpans详细信息中以引文形式出现。要了解更多信息 ListSpans,请参阅 ListSpans API 。