Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
Agentenbasierte Abrufe zur Abfrage einer Wissensdatenbank verwenden
Agentic Retrieval verwendet ein Basismodell, um komplexe Abfragen intelligent in Unterabfragen zu zerlegen, iterativ relevante Informationen aus Ihren Wissensdatenbanken abzurufen und zu bewerten, ob die abgerufenen Ergebnisse ausreichen, um die ursprüngliche Anfrage zu beantworten. Dieser Ansatz verbessert die Abrufgenauigkeit bei komplexen, mehrstufigen Fragen, die in einem einzelnen Abrufdurchgang möglicherweise nicht vollständig beantwortet werden.
Zum Beispiel bei der Abfrage „Welches Magazin wurde zuerst veröffentlicht, Arthur's Magazine oder First for Women?“ , agentic retrieval unterteilt dies in separate Unterabfragen wie „Wann wurde Arthur's Magazine gegründet?“ und „Wann wurde First for Women gegründet?“ , ruft die Ergebnisse für jedes Objekt ab und bewertet, ob die kombinierten Ergebnisse ausreichend sind.
So funktioniert der Agentenabruf
Wenn Sie eine Anfrage an die AgenticRetrieveStream API senden, läuft der folgende Prozess ab:
-
Laden des Sitzungsverlaufs — Wenn Sie eine angeben,
memoryConfigurationdie eine enthältsessionBinding, stellt Amazon Bedrock den vorherigen Verlauf dieser Sitzung aus dem AgentCore Kurzzeitspeicher von Memory wieder her, bevor der Agent mit der Arbeit beginnt. Der wiederhergestellte Verlauf wird zum Gesprächskontext für die Anfrage. -
Planung — Das Foundation-Modell analysiert Ihre Abfrage und erstellt einen Plan, um sie in eine oder mehrere Unterabfragen zu zerlegen. Jede Unterabfrage zielt auf eine bestimmte Quelle ab, die Sie konfiguriert haben, entweder auf einen Knowledge Base-Retriever oder AgentCore auf das Memory-Langzeitgedächtnis. Nachdem die Abrufergebnisse gesammelt wurden, bewertet das Foundation-Modell, ob sie ausreichen, um die ursprüngliche Abfrage zu beantworten. Wenn nicht, plant und führt es zusätzliche Abruf-Iterationen bis zum konfigurierten Maximum aus.
-
Abruf — Die Unterabfragen werden für die konfigurierten Quellen ausgeführt. Die Ergebnisse werden bei jedem Abruf gesammelt.
-
Vollständige Dokumenterweiterung — Wenn das Basismodell feststellt, dass der gesamte Inhalt eines Dokuments benötigt wird (z. B. für eine Zusammenfassung, zur Überprüfung der Vollständigkeit oder für den Zugriff auf bestimmte Abschnitte), ruft es die GetDocumentContent API auf, um den vollständigen Dokumentinhalt abzurufen.
-
Antwortgenerierung — Wenn diese Option auf
true(Standardeinstellung) gesetztgenerateResponseist, synthetisiert das Foundation-Modell eine Antwort in natürlicher Sprache aus den abgerufenen Ergebnissen. Amazon Bedrock streamt die Antwort anhand von Ereignissen an Sie zurück.responseEventWenn gesetztsessionBindingist undpersistenceModeistDEFAULT, speichert Amazon Bedrock die Frage und die generierte Antwort auf die Sitzung. -
Ergebnisereignis — Die deduplizierten Abrufergebnisse aller Iterationen, die vollständig synthetisierte Antwort in natürlicher Sprache und Zitate werden an Sie zurückgegeben. Trace-Ereignisse werden aus Gründen der Beobachtbarkeit während des gesamten Prozesses gestreamt.
Voraussetzungen
Bevor Sie Agentic Retrieval verwenden können, müssen Sie über Folgendes verfügen:
-
Eine vollständig verwaltete Amazon Bedrock-Wissensdatenbank. Agentic Retrieval unterstützt derzeit nur verwaltete Wissensdatenbanken.
-
Zugriff auf ein Basismodell in Amazon Bedrock, das für die Planung und Bewertung von Abfragen verwendet werden kann.
-
Die erforderlichen IAM-Berechtigungen. Weitere Informationen finden Sie unter Erforderliche Berechtigungen für den agentischen Abruf.
Fragen Sie eine Wissensdatenbank mit agentischem Abruf ab
Um Agentic Retrieval zu verwenden, senden Sie eine Anfrage. AgenticRetrieveStream Die Antwort ist ein Stream, der Abrufergebnisse und Ablaufverfolgungsereignisse enthält.
In der folgenden Tabelle werden die wichtigsten Anforderungsfelder beschrieben:
| Feld | Description |
|---|---|
| messages | Die Eingabeabfrage und der Konversationsverlauf. Jede Nachricht enthält ein content Feld mit einem text Wert und ein role Feld (useroderassistant). |
| Retriever | Die Wissensdatenbank ruft ab, um Daten abzurufen. Sie können bis zu 5 Abrufer angeben, von denen jeder anhand seiner ID auf eine verwaltete Wissensdatenbank verweist. Jeder Abrufer kann optional Metadatenfilter und eine maximale Anzahl von Ergebnissen enthalten. |
| agentisch RetrieveConfiguration | Die Agenten-Abrufkonfiguration, einschließlich des Basismodells, das für die Planung und Bewertung von Abfragen verwendet werden soll, und optional ein Modell zur Neubewertung und die maximale Anzahl der Agenteniterationen. |
| Feld | Description |
|---|---|
| Konfiguration der Richtlinie | Konfiguriert eine Amazon Bedrock-Leitplanke, die beim automatischen Abruf angewendet wird. Geben guardrailId guardrailVersion Sie ein und an. |
| UserContext | Stellt einen Benutzerkontext für die Filterung der Zugriffskontrolle bereit. |
| Konfiguration des Speichers | Konfiguriert eine AgentCore Speicherressource, die beim Abruf verwendet werden soll. Geben Sie eine anmemoryId, und geben Sie dann, sessionBinding um eine Sitzung wiederherzustellen und fortzusetzen, retrievalConfigs damit der Agent Daten aus dem Langzeitspeicher abrufen kann, oder beides. Weitere Informationen finden Sie unter AgentCore Speicher mit agentischem Abruf verwenden. |
| Antwort generieren | Ein boolesches Feld, das, wenn es auf true (Standardeinstellung) gesetzt ist, das Foundation-Modell anweist, aus den abgerufenen Ergebnissen eine Antwort in natürlicher Sprache zu generieren. Die Antwort wird in Form von Textblöcken zurückgestreamt und in das Ergebnisereignis aufgenommen. |
Die vollständige Anfrage- und Antwortsyntax finden Sie AgenticRetrieveStream in der API-Referenz.
Antwort auf den Agentenabruf
Die AgenticRetrieveStream Antwort ist ein Stream, der die folgenden Ereignistypen enthält:
-
Result-Ereignis (
AgenticRetrieveResultEvent) — Das letzte Ereignis, das ausgelöst wird, wenn die Verarbeitung abgeschlossen ist. Enthält die Abrufergebnisse und, wenn die Antwortgenerierung aktiviert ist, die generierte Antwort. Das Ergebnisereignis beinhaltet:-
Ergebnisse abrufen (
results) — Die Quellblöcke, die in allen Iterationen abgerufen wurden. Jedes Ergebnis enthält Inhalt, Quellabrufbezeichner und optionale Metadaten. Wenn derselbe Block durch mehrere Unterabfragen abgerufen wird, erscheint er in den Endergebnissen nur einmal. -
Generierte Antwort (
generatedResponse) — Wenn auftrue(Standardeinstellung) gesetztgenerateResponseist, beinhaltet das Ergebnisereignis eingeneratedResponseObjekt, das Folgendes enthält:-
answer— Der vollständig synthetisierte Antworttext in natürlicher Sprache. -
citations— Eine optionale Liste, die Bereiche der Antwort den unterstützenden Abrufergebnissen zuordnet. Jedes Zitat enthält:-
startIndex— Der Zeichenversatz, an dem die zitierte Passage innerhalb deranswerZeichenfolge beginnt. -
endIndex— Der Zeichenversatz, an dem die zitierte Passage endet (exklusiv — der zitierte Text läuft vonstartIndexbis, aber nicht einschließlichendIndex). -
references— Eine Liste, in der jeder Verweis einresultIndexFeld hat, das bei demselben Ergebnisereignis in dasresultsArray indexiert und angibt, welches Abrufergebnis den angegebenen Bereich unterstützt.
-
-
-
-
Antwortereignisse (
AgenticRetrieveResponseEvent) — Wenn auftrue(Standardeinstellung) gesetztgenerateResponseist, werdenresponseEventEreignisse während der Antwortgenerierung gestreamt. Jedes Ereignis enthält eintextFeld mit einem inkrementellen Teil der synthetisierten Antwort in natürlicher Sprache. -
Ereignisse verfolgen (
AgenticRetrieveTraceEvent) — Ereignisse, die während des Agentenabrufs gestreamt werden und einen Überblick über jeden Schritt bieten. Dies sind die Typen von Trace-Ereignissen:-
Planung — Zeigt an, dass das Foundation-Modell die Abfrage analysiert und Unterabfragen erstellt. Beinhaltet die geplanten Aktionen und Zielquellen. Jede Aktion ist entweder eine
retrieveAktion, die auf eine Wissensdatenbank abzielt, oder einememoryRetrieveAktion, die auf das Langzeitgedächtnis abzielt. Dazu gehören die zusammengestellte Abfrage und diememoryId. -
Abruf — Zeigt an, dass ein Abruf für eine konfigurierte Quelle ausgeführt wird. Beinhaltet die Eingabe und Ausgabe des Abrufs sowie alle Warnungen oder Fehler. Der
retrievalMetadataEintrag gibt den Quelltyp an, entwederBedrockKnowledgeBaseoderBedrockAgentCoreMemory. -
Spekulativer Abruf — Ein erster Abruf, der vor dem ersten Planungsschritt ausgeführt wird, um die Latenz zu reduzieren. Bei einer einzelnen Wissensdatenbank werden die Ergebnisse anhand der unformatierten Benutzerabfrage abgerufen. Bei mehreren Wissensdatenbanken wird eine Sondensuche durchgeführt, um Abfragen an die entsprechenden Abrufer weiterzuleiten. Bei der Konfiguration
retrievalConfigskann dieser Schritt auch aus dem Langzeitspeicher abgerufen werden. -
Vollständige Dokumenterweiterung — Zeigt an, dass der Agent den gesamten Inhalt eines bestimmten Dokuments abruft. Enthält die Dokument-ID, den Quellabruf und den Status (InProgress, Erfolgreich oder Fehlgeschlagen).
-
Laden des Sitzungsverlaufs — Zeigt an, dass Amazon Bedrock den Verlauf einer früheren Sitzung aus dem AgentCore Kurzzeitspeicher von Memory wiederherstellt, bevor der Agent mit der Arbeit beginnt.
-
AgentCore Speicher mit agentischem Abruf verwenden
Sie können Agentic Retrieval Zugriff auf eine Amazon Bedrock Memory-Ressource gewähren. AgentCore Mit Speicherzugriff kann ein Abruf eine frühere Sitzung fortsetzen und auf dem aufbauen, was der Agent in früheren Sitzungen gelernt hat. Füllen Sie das memoryConfiguration Feld mit memoryId einer Speicherressource in Ihrem Konto aus, die sich im ACTIVE Status befindet.
Speicher ist optional. AmemoryConfiguration, das nur a festlegt, memoryId ist nicht gültig. Wenn Sie angebenmemoryConfiguration, müssen Sie die Speicherressource auf mindestens eine der beiden folgenden Arten verwenden:
-
Short-term memory (
sessionBinding) — Stellt den Verlauf einer früheren Sitzung wieder her, sodass die Anforderung diese Sitzung fortsetzt, anstatt neu zu beginnen. Identifizieren Sie die Sitzung mit einemactorIdund einemsessionId. DeractorIdUmfang ist die Geschichte, sodass die Geschichte eines Schauspielers nie für einen anderen zurückgegeben wird. Wenn gesetztsessionBindingist,messagesdarf nur die aktuelle Abfrage mit einemrolevonuserenthalten sein. Sie können eine Sitzung nicht wiederherstellen undmessagesin derselben Anfrage den Verlauf früherer Konversationen angeben. Bei der Wiederherstellung werden Konversationsereignisse mit der RolleUSERoderASSISTANTgeladen. -
Long-term memory (
retrievalConfigs) — Macht die Speicheraufzeichnungen, die AgentCore Memory aus früheren Sitzungen extrahiert hat, für den Agenten verfügbar. Identifizieren Sie die Datensätze mit einemnamespacePräfix oder mit einem,namespacePathum sie in jedem Namespace unter einem übergeordneten Objekt abzurufen. Sie können die Ergebnisse mit einemstrategyIdund mit weiter eingrenzenmetadataFilters. Der Agent entscheidet, ob er seine eigene Abfrage abrufen möchte, und erstellt sie.
Geben Sie die Namespaces genau so an, wie sie in der Speicherstrategie konfiguriert sind, wobei die Platzhalter bereits aufgelöst sind. Wenn die Strategie beispielsweise den Namespace definiert, geben Sie den aufgelösten Wert /strategy/{memoryStrategyId}/actor/{actorId} und nicht die Vorlage an. Weitere Informationen zu Namespaces, Strategien und Speicherdatensätzen finden Sie unter Speicher-Terminologie im Amazon Bedrock Developer Guide. AgentCore
Anmerkung
Sie sind dafür verantwortlich, die richtigenmemoryId, sessionBinding und -Werte anzugeben. retrievalConfigs Agentic Retrieval überprüft nicht, ob die Sitzung oder die von Ihnen angegebenen Namespaces der Konversation entsprechen, die Sie fortsetzen möchten. Wenn Sie falsche Werte angeben, erhalten Sie unerwartete Ergebnisse.
Wenn gesetzt sessionBinding ist, verwenden Sie, persistenceMode um zu steuern, ob der aktuelle Austausch in die Sitzung zurückgeschrieben wird:
-
DEFAULT(Standardeinstellung) — Behält die Frage und die generierte Antwort auf die Sitzung als einzelnes Ereignis bei. Dieser Wert muss 1generateResponsesein.true -
NONE— Die Sitzung bleibt unverändert. Verwenden Sie diesen Wert, um den Sitzungsverlauf zu lesen, ohne ihn zu ergänzen.
Das folgende Beispiel stellt eine frühere Sitzung wieder her, gewährt dem Agenten Zugriff auf das Langzeitgedächtnis dieses Akteurs und speichert den Austausch zurück in die Sitzung:
{ "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" } }
Der Antwortstream meldet Speicheraktivität. Die Wiederherstellung wird als Load-Trace-Ereignis für den Sitzungsverlauf angezeigt. Die Datensätze, die das Langzeitgedächtnis zurückgibt, werden im Trace-Ereignis „Abruf“ mit dem Quelltyp angezeigt, unabhängig davonBedrockAgentCoreMemory, welcher Schritt sie abgerufen hat.
Wie der Abruf selbst aussieht, hängt davon ab, wann er stattfindet. Wenn sich das Foundation-Modell dafür entscheidet, den Speicher zu durchsuchen (typischerweise bei einer fortgesetzten Sitzung), wird der Abruf als memoryRetrieve Aktion für das Planning-Trace-Ereignis angezeigt. In einer neuen Sitzung kann der Agent stattdessen während des spekulativen Abrufs vor dem ersten Planungsschritt das Langzeitgedächtnis abrufen. In diesem Fall gibt er keine Aktion aus. memoryRetrieve Weitere Informationen finden Sie unter Antwort auf den Agentenabruf.
Erforderliche Berechtigungen für den agentischen Abruf
Um die AgenticRetrieveStream API verwenden zu können, muss die aufrufende IAM-Identität über die folgenden Berechtigungen verfügen:
{ "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": "*" } ] }
Wenn Sie Guardrails mit agentischem Abruf verwenden, fügen Sie die folgenden Berechtigungen hinzu:
{ "Effect": "Allow", "Action": [ "bedrock:GetGuardrail", "bedrock:ApplyGuardrail" ], "Resource": "*" }
Wenn Sie eine AgentCore Speicherressource mit agentischem Abruf verwenden, fügen Sie die folgenden Berechtigungen hinzu:
{ "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:ListEventsist nur erforderlich, wenn Sie Folgendes festlegen. sessionBinding bedrock-agentcore:RetrieveMemoryRecordsist nur erforderlich, wenn Sie festlegenretrievalConfigs. bedrock-agentcore:CreateEventist nur erforderlich, wenn persistenceMode es istDEFAULT.
Wenn die Speicherressource mit einem vom Kunden verwalteten Schlüssel verschlüsselt ist, fügen Sie diesem Schlüssel die folgende Berechtigung hinzu:
{ "Effect": "Allow", "Action": "kms:Decrypt", "Resource": "arn:aws:kms:region:account-id:key/key-id" }
Überlegungen
Beachten Sie Folgendes, wenn Sie Agentic Retrieval verwenden:
-
Agentic Retrieval unterstützt nur verwaltete Amazon Bedrock-Wissensdatenbanken.
-
Informationen zu den Quoten für Abrufer pro Anfrage, zu Ergebnissen pro Abrufanruf und zur maximalen Anzahl von Agenteniterationen finden Sie unter. Servicekontingente für verwaltete Wissensdatenbanken
-
Eine Reduzierung der maximalen Anzahl von Iterationen kann dazu führen, dass der Agent früher stoppt, was möglicherweise die Genauigkeit komplexer Abfragen verringert.
-
Bei der Konfiguration von Leitplanken wird nur die
BLOCKAktion unterstützt. DieMASKAktion wird beim agentischen Abruf nicht unterstützt. -
Der Kunde stellt das Basismodell, das Einbettungsmodell und das Modell zur Neurangierung bereit, die beim Agentenabruf verwendet werden, und ist dessen Eigentümer, sofern vorhanden. Ihre IAM-Anmeldeinformationen werden verwendet, um diese Modelle aufzurufen.
-
Wenn Sie eine AgentCore Speicherressource verwenden, muss sich die Ressource im selben Konto wie die Wissensdatenbank befinden und sich im
ACTIVEStatus befinden. -
Wenn Sie diese
sessionBindingOption angeben,messagesdarf nur die aktuelle Abfrage mit einemrolevon enthalten seinuser. Sie können eine Sitzung nicht wiederherstellen undmessagesin derselben Anfrage den Verlauf früherer Konversationen angeben. -
Beim Wiederherstellen einer Sitzung werden Konversationsereignisse mit der Rolle
USERoderASSISTANTgeladen. AgentCore Der Speicher akzeptiert auch dieOTHERRollenTOOLund, die bei einer Wiederherstellung nicht geladen werden. Weitere Informationen finden SieConversationalin der Amazon Bedrock AgentCore API-Referenz. -
retrievalConfigsakzeptiert derzeit höchstens einen Eintrag, und jeder Eintrag akzeptiert maximal 5metadataFiltersAusdrücke. -
Ein
persistenceModeWert vonDEFAULTgenerateResponsemuss seintrue, da die Sitzung die generierte Antwort beibehält.