Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
Utilizzare il recupero agentico per eseguire query su una knowledge base
Il recupero agentico utilizza un modello di base per scomporre in modo intelligente le query complesse in sottoquery, recuperare in modo iterativo le informazioni pertinenti dalle basi di conoscenza e valutare se i risultati recuperati sono sufficienti per rispondere alla query originale. Questo approccio migliora la precisione del recupero per domande complesse in più fasi che un singolo passaggio di recupero potrebbe non rispondere completamente.
Ad esempio, alla domanda «Quale rivista è stata fondata per prima, Arthur's Magazine o First for Women?» , agentic retrieval lo suddivide in sottoquery separate, ad esempio «Quando è stata fondata Arthur's Magazine?» e «Quando è stata fondata First for Women?» , recupera i risultati per ciascuno e valuta se i risultati combinati sono sufficienti.
Come funziona l'agentic retrieval
Quando invii una richiesta all'AgenticRetrieveStreamAPI, si verifica il seguente processo:
-
Caricamento della cronologia delle sessioni: quando ne fornisci una
memoryConfigurationche include unasessionBinding, Amazon Bedrock ripristina la cronologia precedente di quella sessione dalla AgentCore memoria a breve termine della Memoria prima che l'agente inizi a lavorare. La cronologia ripristinata diventa il contesto di conversazione per la richiesta. -
Pianificazione: il modello di base analizza la query e crea un piano per scomporla in una o più sottoquery. Ogni sottoquery è indirizzata a una fonte specifica che hai configurato, un recuperatore della knowledge base o una memoria a lungo termine di Memory. AgentCore Dopo aver raccolto i risultati del recupero, il modello di base valuta se sono sufficienti per rispondere alla query originale. In caso contrario, pianifica ed esegue ulteriori iterazioni di recupero, fino al numero massimo configurato.
-
Recupero: le sottoquery vengono eseguite sulle fonti configurate. I risultati vengono raccolti da ogni recupero.
-
Espansione completa del documento: quando il modello di base determina che è necessario l'intero contenuto di un documento (ad esempio, per il riepilogo, per verificare la completezza o per accedere a sezioni specifiche), chiama l' GetDocumentContent API per recuperare il contenuto completo del documento.
-
Generazione di risposte: quando
generateResponseè impostato sutrue(impostazione predefinita), il modello di base sintetizza una risposta in linguaggio naturale dai risultati recuperati. Amazon Bedrock ti restituisce la risposta tramite eventi.responseEventQuandosessionBindingè impostato e lopersistenceModeèDEFAULT, Amazon Bedrock mantiene la domanda e la risposta generata alla sessione. -
Evento risultato: ti vengono restituiti i risultati deduplicati del recupero di tutte le iterazioni, la risposta completa sintetizzata in linguaggio naturale e le citazioni. Gli eventi di tracciamento vengono trasmessi in streaming durante tutto il processo per garantirne l'osservabilità.
Prerequisiti
Prima di poter utilizzare l'agentic retrieval, è necessario disporre di quanto segue:
-
Una knowledge base Amazon Bedrock completamente gestita. Agentic retrieval attualmente supporta solo basi di conoscenza gestite.
-
Accesso a un modello di base in Amazon Bedrock da utilizzare per la pianificazione e la valutazione delle query.
-
Le autorizzazioni IAM richieste. Per ulteriori informazioni, consulta Autorizzazioni richieste per il recupero tramite agente.
Interroga una knowledge base con agentic retrieval
Per utilizzare l'agentic retrieval, invia una richiesta. AgenticRetrieveStream La risposta è un flusso che include i risultati del recupero e gli eventi di tracciamento.
La tabella seguente descrive i principali campi di richiesta:
| Campo | Description |
|---|---|
| messages | La cronologia delle richieste di input e delle conversazioni. Ogni messaggio contiene un content campo con un text valore e un role campo (useroassistant). |
| retriever | I recuperatori della knowledge base da cui recuperare i dati. È possibile specificare fino a 5 recuperatori, ognuno dei quali punta a una knowledge base gestita tramite il relativo ID. Ogni retriever può opzionalmente includere filtri di metadati e un numero massimo di risultati. |
| agentico RetrieveConfiguration | La configurazione di recupero dell'agente, incluso il modello di base da utilizzare per la pianificazione e la valutazione delle query e, facoltativamente, un modello di riposizionamento e il numero massimo di iterazioni degli agenti. |
| Campo | Description |
|---|---|
| Configurazione delle politiche | Configura un guardrail Amazon Bedrock da applicare durante il recupero dell'agente. guardrailIdguardrailVersionSpecifica una e. |
| Contesto utente | Fornisce un contesto utente per il filtraggio del controllo degli accessi. |
| Configurazione della memoria | Configura una risorsa di AgentCore memoria da utilizzare per il recupero. Specifica unamemoryId, quindi, sessionBinding per ripristinare e continuare una sessione, per consentire retrievalConfigs all'agente di eseguire il recupero dalla memoria a lungo termine o entrambe le cose. Per ulteriori informazioni, consulta Usa la AgentCore memoria con il recupero di un agente. |
| Genera una risposta | Un campo booleano che, se impostato su true (impostazione predefinita), indica al modello di base di generare una risposta in linguaggio naturale dai risultati recuperati. La risposta viene trasmessa in streaming come blocchi di testo e inclusa nell'evento del risultato. |
Per la sintassi completa di richiesta e risposta, consulta il riferimento AgenticRetrieveStream all'API.
Risposta di recupero agentica
La AgenticRetrieveStream risposta è uno stream che contiene i seguenti tipi di eventi:
-
Evento di risultato (
AgenticRetrieveResultEvent) — L'evento finale consegnato al termine dell'elaborazione. Contiene i risultati del recupero e, quando la generazione della risposta è abilitata, la risposta generata. L'evento dei risultati include:-
Risultati di recupero (
results): i blocchi di origine recuperati in tutte le iterazioni. Ogni risultato include contenuto, identificatore di origine recuperabile e metadati opzionali. Quando lo stesso blocco viene recuperato da più sottoquery, appare solo una volta nei risultati finali. -
Risposta generata (
generatedResponse): quandogenerateResponseè impostato sutrue(impostazione predefinita), l'evento del risultato include un oggetto contenente:generatedResponse-
answer— Il testo completo della risposta sintetizzato in linguaggio naturale. -
citations— Un elenco opzionale che associa parti della risposta ai risultati di recupero di supporto. Ogni citazione contiene:-
startIndex— L'offset di caratteri da cui inizia il passaggio citato all'interno della stringa.answer -
endIndex— L'offset di caratteri in cui termina il passaggio citato (esclusivo: il testo citato va dastartIndexfino a ma non include).endIndex -
references— Un elenco in cui ogni riferimento ha unresultIndexcampo che viene indicizzato nell'resultsarray in base allo stesso evento di risultato, indicando quale risultato di recupero supporta l'intervallo citato.
-
-
-
-
Eventi di risposta (
AgenticRetrieveResponseEvent): quandogenerateResponseè impostato su (impostazione predefinita),responseEventgli eventi vengonotruetrasmessi in streaming durante la generazione della risposta. Ogni evento contiene untextcampo con una parte incrementale della risposta sintetizzata in linguaggio naturale. -
Trace events (
AgenticRetrieveTraceEvent): eventi trasmessi in streaming durante il processo di recupero dell'agente che forniscono visibilità in ogni fase. Questi sono i tipi di eventi di tracciamento:-
Pianificazione: indica che il modello di base sta analizzando l'interrogazione e creando sottointerrogazioni. Include le azioni pianificate e le fonti di destinazione. Ogni azione è mirata a una
retrieveknowledge base o un'memoryRetrieveazione mirata alla memoria a lungo termine, che include la query composta e il.memoryId -
Recupero: indica che è in corso un recupero su una fonte configurata. Include l'input, l'output del recupero ed eventuali avvisi o guasti. La
retrievalMetadatavoce riporta il tipo di sorgente, o.BedrockKnowledgeBaseBedrockAgentCoreMemory -
Recupero speculativo: un recupero iniziale che viene eseguito prima della prima fase di pianificazione per ridurre la latenza. Per una singola knowledge base, recupera i risultati utilizzando la query utente non elaborata. Per più basi di conoscenza, esegue una ricerca tramite sonda per aiutare a indirizzare le query ai retriever appropriati. Durante la configurazione
retrievalConfigs, questo passaggio può essere recuperato anche dalla memoria a lungo termine. -
Espansione completa del documento: indica che l'agente sta recuperando l'intero contenuto di un documento specifico. Include l'ID del documento, il dispositivo di recupero del codice sorgente e lo stato (InProgress, Operazione completata o Fallita).
-
Caricamento della cronologia delle sessioni: indica che Amazon Bedrock sta ripristinando la cronologia di una sessione precedente dalla AgentCore memoria a breve termine della memoria, prima che l'agente inizi a lavorare.
-
Usa la AgentCore memoria con il recupero di un agente
Puoi concedere ad Agentic Retrieval l'accesso a una risorsa Amazon Bedrock Memory. AgentCore Con l'accesso alla memoria, un recupero può continuare una sessione precedente e attingere a ciò che l'agente ha appreso in quelle precedenti. Fornisci al memoryConfiguration campo il valore memoryId di una risorsa di memoria presente nel tuo account che si trova in tale stato. ACTIVE
La memoria è opzionale. A memoryConfiguration che imposta solo a non memoryId è valido. Quando si forniscememoryConfiguration, è necessario utilizzare la risorsa di memoria in almeno uno dei due modi seguenti:
-
Short-term memory (
sessionBinding): ripristina la cronologia di una sessione precedente in modo che la richiesta continui quella sessione anziché ricominciare da capo. Identifica la sessione con unaactorIde una.sessionIdLo scopoactorIdè la storia, in modo che la storia di un attore non venga mai restituita per un altro. QuandosessionBindingè impostato,messagesdeve contenere solo la query corrente, con un valorerolediuser. Non è possibile ripristinare una sessione e inserire la cronologia delle conversazioni precedentimessagesnella stessa richiesta. Il ripristino carica gli eventi conversazionali con il ruolo diUSERo.ASSISTANT -
Long-term memory (
retrievalConfigs): rende disponibili all'agente i record di AgentCore memoria che Memory ha estratto dalle sessioni precedenti. Identifica i record con unnamespaceprefisso o con un nome da recuperare in ogninamespacePathnamespace al di sotto di un elemento principale. Puoi restringere ulteriormente i risultati con astrategyIde conmetadataFilters. L'agente decide se recuperare e compone la propria query.
Fornisci i namespace esattamente come sono configurati nella strategia di memoria, con i segnaposto già risolti. Ad esempio, se la strategia definisce lo spazio dei nomi/strategy/{memoryStrategyId}/actor/{actorId}, fornisci il valore risolto anziché il modello. Per ulteriori informazioni su namespace, strategie e record di memoria, consulta la terminologia della memoria nella Amazon Bedrock Developer Guide. AgentCore
Nota
Sei responsabile della fornitura dei valori e corretti. memoryId sessionBinding retrievalConfigs Agentic retrieval non verifica che la sessione o i namespace forniti corrispondano alla conversazione che intendi continuare. Se si forniscono valori errati, si ottengono risultati imprevisti.
Quando sessionBinding è impostato, persistenceMode utilizzalo per controllare se lo scambio corrente viene riscritto nella sessione:
-
DEFAULT(impostazione predefinita): mantiene la domanda e la risposta generata alla sessione come un singolo evento. Questo valore devegenerateResponseessere.true -
NONE—Lascia la sessione invariata. Usa questo valore per leggere la cronologia delle sessioni senza aggiungerla.
L'esempio seguente ripristina una sessione precedente, consente all'agente di accedere alla memoria a lungo termine di quell'attore e fa sì che lo scambio continui fino alla sessione:
{ "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" } }
Il flusso di risposta riporta l'attività della memoria. Il ripristino viene visualizzato come evento di traccia del caricamento della cronologia della sessione. I record restituiti dalla memoria a lungo termine vengono visualizzati nell'evento di traccia Retrieval con un tipo di origine pari aBedrockAgentCoreMemory, a seconda della fase in cui sono stati recuperati.
L'aspetto del recupero stesso dipende da quando avviene. Quando il modello di base sceglie di cercare nella memoria (tipico in una sessione continua), il recupero appare come un'memoryRetrieveazione sull'evento di traccia di Planning. In una nuova sessione, l'agente può invece recuperare la memoria a lungo termine durante il recupero speculativo, prima della prima fase di pianificazione, nel qual caso non esegue alcuna azione. memoryRetrieve Per ulteriori informazioni, consulta Risposta di recupero agentica.
Autorizzazioni richieste per il recupero tramite agente
Per utilizzare l'AgenticRetrieveStreamAPI, l'identità IAM chiamante deve disporre delle seguenti autorizzazioni:
{ "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": "*" } ] }
Se utilizzi guardrails con recupero tramite agente, aggiungi le seguenti autorizzazioni:
{ "Effect": "Allow", "Action": [ "bedrock:GetGuardrail", "bedrock:ApplyGuardrail" ], "Resource": "*" }
Se utilizzi una risorsa di AgentCore memoria con recupero agentico, aggiungi le seguenti autorizzazioni:
{ "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:ListEventsè richiesto solo se impostato. sessionBinding bedrock-agentcore:RetrieveMemoryRecordsè richiesto solo quando si impostaretrievalConfigs. bedrock-agentcore:CreateEventè richiesto solo quando lo persistenceMode èDEFAULT.
Se la risorsa di memoria è crittografata con una chiave gestita dal cliente, aggiungi la seguente autorizzazione su quella chiave:
{ "Effect": "Allow", "Action": "kms:Decrypt", "Resource": "arn:aws:kms:region:account-id:key/key-id" }
Considerazioni
Tieni presente quanto segue quando usi l'agentic retrieval:
-
Agentic retrieval supporta solo le knowledge base gestite di Amazon Bedrock.
-
Per le quote relative ai recuperatori per richiesta, i risultati per chiamata di recupero e il numero massimo di iterazioni degli agenti, consulta. Quote di servizio per le knowledge base gestite
-
La riduzione del numero massimo di iterazioni può far sì che l'agente si fermi prima, riducendo potenzialmente la precisione per le interrogazioni complesse.
-
Quando si configurano i guardrail, è supportata solo l'azione.
BLOCKL'MASKazione non è supportata con il recupero tramite agente. -
Il cliente fornisce e possiede il modello di base, il modello di incorporamento e il modello di riclassificazione utilizzati durante il recupero dell'agente, se forniti. Le tue credenziali IAM vengono utilizzate per richiamare questi modelli.
-
Quando si utilizza una risorsa di AgentCore memoria, la risorsa deve trovarsi nello stesso account della knowledge base e deve trovarsi nello
ACTIVEstato. -
Una volta impostata
sessionBinding,messagesdeve contenere solo la query corrente, con un valorerolediuser. Non è possibile ripristinare una sessione e inserire la cronologia delle conversazioni precedentimessagesnella stessa richiesta. -
Il ripristino di una sessione carica gli eventi conversazionali con il ruolo di o.
USERASSISTANTAgentCore La memoria accetta anche iOTHERruoliTOOLand, che non vengono caricati durante il ripristino. Per ulteriori informazioni, consultaConversationalAmazon Bedrock AgentCore API Reference. -
retrievalConfigsattualmente accetta al massimo una voce e ogni voce accetta un massimo di 5metadataFiltersespressioni. -
A
persistenceModeofDEFAULTrichiedegenerateResponsedi esseretrue, perché la sessione mantiene la risposta generata.