Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
Interrogation d’une base de connaissances à l’aide de l’extraction agentique
La récupération agentique utilise un modèle de base pour décomposer intelligemment les requêtes complexes en sous-requêtes, récupérer de manière itérative les informations pertinentes de vos bases de connaissances et évaluer si les résultats récupérés sont suffisants pour répondre à la requête d'origine. Cette approche améliore la précision de récupération pour les questions complexes en plusieurs étapes auxquelles une seule passe de récupération peut ne pas répondre complètement.
Par exemple, étant donné la requête « Quel magazine a été créé en premier, Arthur's Magazine ou First for Women ? » , agentic retrieval divise cela en sous-requêtes distinctes telles que « Quand a été fondé Arthur's Magazine ? » et « Quand a été fondée First for Women ? » , extrait les résultats pour chacun et évalue si les résultats combinés sont suffisants.
Comment fonctionne la récupération agentique
Lorsque vous envoyez une demande à l'AgenticRetrieveStreamAPI, le processus suivant se produit :
-
Chargement de l'historique des sessions : lorsque vous fournissez un
memoryConfigurationqui inclut unsessionBinding, Amazon Bedrock restaure l'historique antérieur de cette session à partir de la AgentCore mémoire à court terme de Memory avant que l'agent ne commence à fonctionner. L'historique restauré devient le contexte de conversation pour la demande. -
Planification : le modèle de base analyse votre requête et crée un plan pour la décomposer en une ou plusieurs sous-requêtes. Chaque sous-requête cible une source spécifique que vous avez configurée, qu'il s'agisse d'un extracteur de base de connaissances ou d'une AgentCore mémoire à long terme. Une fois les résultats de récupération collectés, le modèle de base évalue s'ils sont suffisants pour répondre à la requête d'origine. Dans le cas contraire, il planifie et exécute des itérations de récupération supplémentaires, jusqu'au maximum configuré.
-
Extraction : les sous-requêtes sont exécutées sur les sources configurées. Les résultats sont collectés à partir de chaque extraction.
-
Expansion complète du document — Lorsque le modèle de base détermine que le contenu complet d'un document est nécessaire (par exemple, pour le résumer, pour vérifier l'exhaustivité ou pour accéder à des sections spécifiques), il appelle l' GetDocumentContent API pour récupérer le contenu complet du document.
-
Génération de réponses : lorsqu'il
generateResponseest défini surtrue(valeur par défaut), le modèle de base synthétise une réponse en langage naturel à partir des résultats récupérés. Amazon Bedrock vous transmet la réponse par le biais d'responseEventévénements. Lorsque cette optionsessionBindingpersistenceModeest définieDEFAULT, Amazon Bedrock maintient la question et la réponse générée pendant la session. -
Événement résultant — Les résultats de récupération dédupliqués de toutes les itérations, la réponse complète synthétisée en langage naturel et les citations vous sont renvoyés. Les événements de traçage sont diffusés tout au long du processus à des fins d'observabilité.
Conditions préalables
Avant de pouvoir utiliser la récupération agentique, vous devez disposer des éléments suivants :
-
Une base de connaissances Amazon Bedrock entièrement gérée. La récupération agentique ne prend actuellement en charge que les bases de connaissances gérées.
-
Accès à un modèle de base dans Amazon Bedrock à utiliser pour la planification et l'évaluation des requêtes.
-
Les autorisations IAM requises. Pour de plus amples informations, veuillez consulter Autorisations requises pour la récupération des données d'agence.
Interrogez une base de connaissances grâce à la recherche agentique
Pour utiliser la récupération agentique, envoyez une demande. AgenticRetrieveStream La réponse est un flux qui inclut les résultats de récupération et les événements de suivi.
Le tableau suivant décrit les principaux champs de demande :
| Champ | Description |
|---|---|
| messages | La requête saisie et l'historique des conversations. Chaque message contient un content champ avec une text valeur et un role champ (userouassistant). |
| retrievers | La base de connaissances extrait les données à partir desquelles elles peuvent être extraites. Vous pouvez spécifier jusqu'à 5 extracteurs, chacun pointant vers une base de connaissances gérée par son identifiant. Chaque extracteur peut éventuellement inclure des filtres de métadonnées et un nombre maximum de résultats. |
| agentique RetrieveConfiguration | La configuration de récupération agentique, y compris le modèle de base à utiliser pour la planification et l'évaluation des requêtes, et éventuellement un modèle de reclassement et un nombre maximal d'itérations d'agents. |
| Champ | Description |
|---|---|
| Configuration des politiques | Configure un garde-corps Amazon Bedrock à appliquer lors de la récupération par les agents. Spécifiez un guardrailId etguardrailVersion. |
| Contexte de l'utilisateur | Fournit un contexte utilisateur pour le filtrage du contrôle d'accès. |
| Configuration de la mémoire | Configure une ressource AgentCore mémoire à utiliser pour la récupération. Spécifiez unmemoryId, puis sessionBinding pour restaurer et poursuivre une session, pour permettre retrievalConfigs à l'agent d'effectuer des recherches à partir de la mémoire à long terme, ou les deux. Pour de plus amples informations, veuillez consulter Utiliser AgentCore la mémoire avec la récupération agentique. |
| Générer une réponse | Champ booléen qui, lorsqu'il est défini sur true (valeur par défaut), indique au modèle de base de générer une réponse en langage naturel à partir des résultats récupérés. La réponse est retransmise sous forme de morceaux de texte et incluse dans l'événement de résultat. |
Pour la syntaxe complète de la demande et de la réponse, consultez AgenticRetrieveStream la référence de l'API.
Réponse de récupération agentique
La AgenticRetrieveStream réponse est un flux qui contient les types d'événements suivants :
-
Événement de résultat (
AgenticRetrieveResultEvent) : événement final généré une fois le traitement terminé. Contient les résultats de récupération et, lorsque la génération de réponses est activée, la réponse générée. L'événement résultant inclut :-
Résultats de récupération (
results) — Les segments source récupérés au cours de toutes les itérations. Chaque résultat inclut du contenu, un identifiant de source et des métadonnées facultatives. Lorsque le même segment est récupéré par plusieurs sous-requêtes, il n'apparaît qu'une seule fois dans les résultats finaux. -
Réponse générée (
generatedResponse) : lorsqu'ilgenerateResponseest défini surtrue(valeur par défaut), l'événement de résultat inclut ungeneratedResponseobjet contenant :-
answer— Le texte de réponse entièrement synthétisé en langage naturel. -
citations— Une liste facultative qui met en correspondance les différentes parties de la réponse avec les résultats de récupération. Chaque citation contient :-
startIndex— Le décalage de caractères à l'endroit où le passage cité commence dans laanswerchaîne. -
endIndex— Le décalage de caractères à la fin du passage cité (exclusif : le texte cité va dustartIndexhaut à mais non inclusendIndex). -
references— Liste dans laquelle chaque référence possède unresultIndexchamp indexé dans leresultstableau sur le même événement de résultat, indiquant quel résultat de récupération prend en charge la plage citée.
-
-
-
-
Événements de réponse (
AgenticRetrieveResponseEvent) : lorsque cette optiongenerateResponseest définie surtrue(valeur par défaut), lesresponseEventévénements sont diffusés lors de la génération de la réponse. Chaque événement contient untextchamp contenant une partie incrémentielle de la réponse synthétisée en langage naturel. -
Événements de suivi (
AgenticRetrieveTraceEvent) : événements diffusés pendant le processus de récupération agentic qui fournissent une visibilité sur chaque étape. Voici les types d'événements de suivi :-
Planification : indique que le modèle de base analyse la requête et crée des sous-requêtes. Inclut les actions prévues et les sources cibles. Chaque action est soit une
retrieveaction ciblant une base de connaissances, soit unememoryRetrieveaction ciblant la mémoire à long terme, qui inclut la requête composée et lememoryId. -
Récupération : indique qu'une extraction est en cours d'exécution sur une source configurée. Inclut l'entrée et la sortie de récupération, ainsi que les éventuels avertissements ou défaillances. L'
retrievalMetadataentrée indique le type de source,BedrockKnowledgeBasesoitBedrockAgentCoreMemory. -
Récupération spéculative : extraction initiale exécutée avant la première étape de planification afin de réduire la latence. Pour une base de connaissances unique, cela extrait les résultats à l'aide de la requête utilisateur brute. Pour plusieurs bases de connaissances, cela effectue une recherche par sonde pour aider à acheminer les requêtes vers les extracteurs appropriés. Lors de la configuration
retrievalConfigs, cette étape permet également de récupérer des données à partir de la mémoire à long terme. -
Extension complète du document : indique que l'agent est en train de récupérer le contenu complet d'un document spécifique. Inclut l'identifiant du document, l'outil de recherche de la source et l'état (InProgressréussite ou échec).
-
Chargement de l'historique des sessions : indique qu'Amazon Bedrock est en train de restaurer l'historique d'une session précédente à partir de AgentCore la mémoire à court terme Memory, avant que l'agent ne commence à fonctionner.
-
Utiliser AgentCore la mémoire avec la récupération agentique
Vous pouvez autoriser Agentic Retrieval à accéder à une ressource Amazon AgentCore Bedrock Memory. Grâce à l'accès à la mémoire, une extraction peut poursuivre une session précédente et s'appuyer sur ce que l'agent a appris lors des sessions précédentes. Indiquez memoryConfiguration dans le champ le memoryId nom d'une ressource mémoire de votre compte qui est dans ACTIVE cet état.
La mémoire est optionnelle. A memoryConfiguration qui définit uniquement a n'memoryIdest pas valide. Lors de la fourniturememoryConfiguration, vous devez utiliser la ressource mémoire d'au moins l'une des deux manières suivantes :
-
Short-term memory (
sessionBinding) : restaure l'historique d'une session précédente afin que la demande continue cette session au lieu de recommencer à zéro. Identifiez la session par unactorIdet unsessionId. Il couvreactorIdl'histoire, de sorte que l'histoire d'un acteur n'est jamais reprise pour celle d'un autre. WhensessionBindingest défini, nemessagesdoit contenir que la requête en cours, avec unroledeuser. Vous ne pouvez pas restaurer une session et fournir l'historique des conversations précédentesmessagesdans la même demande. La restauration charge les événements conversationnels dont le rôle estUSERouASSISTANT. -
Long-term memory (
retrievalConfigs) : met les enregistrements de AgentCore mémoire que Memory a extraits des sessions précédentes à la disposition de l'agent. Identifiez les enregistrements à l'aide d'unnamespacepréfixe ou d'unnamespacePathà récupérer dans chaque espace de noms situé sous un parent. Vous pouvez affiner davantage les résultats avec unstrategyIdet avecmetadataFilters. L'agent décide s'il souhaite récupérer et compose sa propre requête.
Fournissez les espaces de noms exactement tels qu'ils sont configurés dans la stratégie de mémoire, les espaces réservés étant déjà résolus. Par exemple, si la stratégie définit l'espace de noms/strategy/{memoryStrategyId}/actor/{actorId}, fournissez la valeur résolue plutôt que le modèle. Pour plus d'informations sur les espaces de noms, les stratégies et les enregistrements de mémoire, consultez la section Terminologie de la mémoire dans le guide du AgentCore développeur Amazon Bedrock.
Note
Vous êtes responsable de fournir les retrievalConfigs valeurs correctes memoryIdsessionBinding, et. La récupération agentique ne vérifie pas si la session ou les espaces de noms que vous fournissez correspondent à la conversation que vous souhaitez poursuivre. Si vous fournissez des valeurs incorrectes, vous obtenez des résultats inattendus.
Quand sessionBinding est défini, utilisez-le persistenceMode pour contrôler si l'échange en cours est réécrit dans la session :
-
DEFAULT(valeur par défaut) : conserve la question et la réponse générée dans la session sous la forme d'un événement unique. Cette valeurgenerateResponsedoit êtretrue. -
NONE—Laisse la session inchangée. Utilisez cette valeur pour lire l'historique des sessions sans rien y ajouter.
L'exemple suivant restaure une session précédente, permet à l'agent d'accéder à la mémoire à long terme de cet acteur et poursuit l'échange jusqu'à la session :
{ "messages": [ { "content": { "text": "What did we decide about the migration timeline?" }, "role": "user" } ], "retrievers": [ { "configuration": { "knowledgeBase": { "knowledgeBaseId": "KB12345678" } } } ], "agenticRetrieveConfiguration": { "foundationModelType": "MANAGED", "rerankingModelType": "MANAGED" }, "memoryConfiguration": { "memoryId": "projectAssistantMemory-1a2b3c4d5e", "sessionBinding": { "actorId": "user-123", "sessionId": "session-456" }, "retrievalConfigs": [ { "namespace": "/strategy/summarization-1a2b3c4d5e/actor/user-123" } ], "persistenceMode": "DEFAULT" } }
Le flux de réponse indique l'activité de la mémoire. La restauration apparaît sous la forme d'un événement de suivi du chargement de l'historique de session. Les enregistrements renvoyés par la mémoire à long terme apparaissent dans l'événement Retrieval trace avec le type de sourceBedrockAgentCoreMemory, quelle que soit l'étape à laquelle ils ont été récupérés.
L'apparence de la récupération elle-même dépend du moment où elle se produit. Lorsque le modèle de base choisit d'effectuer une recherche dans la mémoire (généralement lors d'une session continue), la récupération apparaît sous la forme d'une memoryRetrieve action sur l'événement Planning trace. Lors d'une nouvelle session, l'agent peut à la place récupérer de la mémoire à long terme lors de la récupération spéculative, avant la première étape de planification, auquel cas il n'émet aucune action. memoryRetrieve Pour de plus amples informations, veuillez consulter Réponse de récupération agentique.
Autorisations requises pour la récupération des données d'agence
Pour utiliser l'AgenticRetrieveStreamAPI, l'identité IAM de l'appelant doit disposer des autorisations suivantes :
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "bedrock:AgenticRetrieveStream", "Resource": "*" }, { "Effect": "Allow", "Action": [ "bedrock:Retrieve", "bedrock:GetDocumentContent" ], "Resource": "arn:aws:bedrock:region:account-id:knowledge-base/*" }, { "Effect": "Allow", "Action": "bedrock:InvokeModelWithResponseStream", "Resource": "*" } ] }
Si vous utilisez des garde-corps avec la récupération des données agentiques, ajoutez les autorisations suivantes :
{ "Effect": "Allow", "Action": [ "bedrock:GetGuardrail", "bedrock:ApplyGuardrail" ], "Resource": "*" }
Si vous utilisez une ressource AgentCore mémoire avec extraction agentique, ajoutez les autorisations suivantes :
{ "Effect": "Allow", "Action": [ "bedrock-agentcore:GetMemory", "bedrock-agentcore:ListEvents", "bedrock-agentcore:RetrieveMemoryRecords", "bedrock-agentcore:CreateEvent" ], "Resource": "arn:aws:bedrock-agentcore:region:account-id:memory/memory-id" }
bedrock-agentcore:ListEventsn'est requis que lorsque vous définissezsessionBinding. bedrock-agentcore:RetrieveMemoryRecordsn'est requis que lorsque vous définissezretrievalConfigs. bedrock-agentcore:CreateEventn'est requis que lorsque persistenceMode c'est le casDEFAULT.
Si la ressource mémoire est chiffrée à l'aide d'une clé gérée par le client, ajoutez l'autorisation suivante à cette clé :
{ "Effect": "Allow", "Action": "kms:Decrypt", "Resource": "arn:aws:kms:region:account-id:key/key-id" }
Considérations
Lorsque vous utilisez la récupération agentique, gardez les points suivants à l'esprit :
-
Agentic Retrieval ne prend en charge que les bases de connaissances Amazon Bedrock gérées.
-
Pour les quotas de récupérateurs par demande, les résultats par appel de récupération et le nombre maximal d'itérations d'agents, consultez. Quotas de service pour les bases de connaissances gérées
-
La réduction du nombre maximum d'itérations peut entraîner l'arrêt de l'agent plus tôt, ce qui peut réduire la précision des requêtes complexes.
-
Lors de la configuration des garde-corps, seule l'
BLOCKaction est prise en charge. L'MASKaction n'est pas prise en charge par la récupération agentique. -
Le client fournit et possède le modèle de base, le modèle d'intégration et le modèle de reclassement utilisés lors de la recherche des agents, s'ils sont fournis. Vos informations d'identification IAM sont utilisées pour invoquer ces modèles.
-
Lorsque vous utilisez une ressource AgentCore mémoire, celle-ci doit se trouver dans le même compte que la base de connaissances et doit être dans
ACTIVEcet état. -
Lorsque vous définissez
sessionBinding, nemessagesdoit contenir que la requête en cours, avecrolela valeur deuser. Vous ne pouvez pas restaurer une session et fournir l'historique des conversations précédentesmessagesdans la même demande. -
La restauration d'une session charge les événements conversationnels ayant le rôle de
USERouASSISTANT. AgentCore La mémoire accepte également lesOTHERrôlesTOOLet, qu'une restauration ne charge pas. Pour plus d'informations, consultez la référenceConversationalde l' AgentCore API Amazon Bedrock. -
retrievalConfigsaccepte actuellement au plus une entrée, et chaque entrée accepte un maximum de 5metadataFiltersexpressions. -
A
persistenceModeofDEFAULTdoitgenerateResponseêtretrue, car la session conserve la réponse générée.