View a markdown version of this page

Utilización de la recuperación agéntica para consultar una base de conocimiento - Amazon Bedrock

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Utilización de la recuperación agéntica para consultar una base de conocimiento

La recuperación por agencia utiliza un modelo básico para descomponer de forma inteligente las consultas complejas en subconsultas, recuperar de forma iterativa la información relevante de las bases de conocimiento y evaluar si los resultados recuperados son suficientes para responder a la consulta original. Este enfoque mejora la precisión de la recuperación de preguntas complejas de varios pasos que tal vez no se aborden en su totalidad con una sola pasada de recuperación.

Por ejemplo, ante la pregunta «¿Qué revista se creó primero, Arthur's Magazine o First for Women?» , agentic retrieval divide esta información en subconsultas independientes, como «¿Cuándo se fundó Arthur's Magazine?» y «¿Cuándo se fundó First for Women?» , recupera los resultados de cada uno y evalúa si los resultados combinados son suficientes.

Cómo funciona la recuperación por agencia

Cuando envías una solicitud a la AgenticRetrieveStream API, se produce el siguiente proceso:

  1. Carga del historial de la sesión: cuando proporciona una memoryConfiguration que incluye unasessionBinding, Amazon Bedrock restaura el historial anterior de esa sesión desde la memoria a corto plazo de la AgentCore memoria antes de que el agente comience a trabajar. El historial restaurado se convierte en el contexto de conversación de la solicitud.

  2. Planificación: el modelo básico analiza la consulta y crea un plan para descomponerla en una o más subconsultas. Cada subconsulta se dirige a una fuente específica que hayas configurado, ya sea un recuperador de la base de conocimientos o AgentCore una memoria a largo plazo de Memory. Una vez recopilados los resultados de la recuperación, el modelo básico evalúa si son suficientes para responder a la consulta original. De lo contrario, planifica y ejecuta iteraciones de recuperación adicionales, hasta el máximo configurado.

  3. Recuperación: las subconsultas se ejecutan en las fuentes configuradas. Los resultados se recopilan de cada recuperación.

  4. Expansión completa del documento: cuando el modelo básico determina que se necesita todo el contenido de un documento (por ejemplo, para resumirlo, para verificar que esté completo o para acceder a secciones específicas), llama a la GetDocumentContent API para recuperar el contenido completo del documento.

  5. Generación de respuestas: cuando generateResponse se establece en true (valor predeterminado), el modelo básico sintetiza una respuesta en lenguaje natural a partir de los resultados recuperados. Amazon Bedrock le envía la respuesta a través de eventos. responseEvent Cuando sessionBinding está configurada y persistenceMode estáDEFAULT, Amazon Bedrock conserva la pregunta y la respuesta generada para la sesión.

  6. Evento de resultado: se recuperan los resultados deduplicados de todas las iteraciones, se le devuelven la respuesta completa sintetizada en lenguaje natural y las citas. Los eventos de rastreo se transmiten a lo largo del proceso para que sean observables.

Requisitos previos

Antes de poder utilizar la recuperación por agentes, debe disponer de lo siguiente:

  • Una base de conocimientos de Amazon Bedrock totalmente gestionada. La recuperación por agencias actualmente solo admite bases de conocimiento administradas.

  • Acceso a un modelo básico en Amazon Bedrock para usarlo en la planificación y evaluación de consultas.

  • Los permisos de IAM necesarios. Para obtener más información, consulte Permisos necesarios para la recuperación por parte de la agencia.

Consulte una base de conocimientos con acceso a través de una agencia

Para usar la recuperación por agencia, envía una solicitud. AgenticRetrieveStream La respuesta es un flujo que incluye los resultados de la recuperación y los eventos de rastreo.

En la siguiente tabla se describen los campos de solicitud de claves:

Campos obligatorios
Campo Description (Descripción)
Mensajes El historial de consultas y conversaciones de entrada. Cada mensaje contiene un content campo con un text valor y un role campo (useroassistant).
recuperadores Los recuperadores de la base de conocimientos de los que obtener datos. Puede especificar hasta 5 recuperadores, cada uno de los cuales apunte a una base de conocimiento gestionada por su ID. Cada recuperador puede incluir, de forma opcional, filtros de metadatos y un número máximo de resultados.
agencial RetrieveConfiguration La configuración de recuperación de la agencia, incluido el modelo básico que se utilizará para la planificación y evaluación de las consultas y, opcionalmente, un modelo de reclasificación y el recuento máximo de iteraciones de los agentes.
Campos opcionales
Campo Description (Descripción)
Configuración de políticas Configura una barrera de protección de Amazon Bedrock para aplicarla durante la recuperación por parte de la agencia. guardrailIdguardrailVersionEspecifique una y.
Contexto de usuario Proporciona un contexto de usuario para el filtrado de control de acceso.
Configuración de memoria Configura un recurso de AgentCore memoria para usarlo en la recuperación. Especifique un ymemoryId, sessionBinding a continuación, restaurar y continuar una sesión, retrievalConfigs para que el agente pueda recuperarla de la memoria a largo plazo, o ambas opciones. Para obtener más información, consulte Utilice la AgentCore memoria con la recuperación por agencia.
Genere una respuesta Un campo booleano que, cuando se establece en true (valor predeterminado), indica al modelo básico que genere una respuesta en lenguaje natural a partir de los resultados recuperados. La respuesta se devuelve en forma de fragmentos de texto y se incluye en el evento resultante.

Para ver la sintaxis completa de las solicitudes y respuestas, consulta la referencia AgenticRetrieveStream de la API.

Respuesta de recuperación agencial

La AgenticRetrieveStream respuesta es una secuencia que contiene los siguientes tipos de eventos:

  • Evento de resultado (AgenticRetrieveResultEvent): el evento final que se entrega cuando se completa el procesamiento. Contiene los resultados de la recuperación y, cuando la generación de respuestas está habilitada, la respuesta generada. El evento resultante incluye:

    • Resultados de recuperación (results): los fragmentos de origen recuperados en todas las iteraciones. Cada resultado incluye el contenido, el identificador del recuperador de origen y los metadatos opcionales. Cuando varias subconsultas recuperan el mismo fragmento, solo aparece una vez en los resultados finales.

    • Respuesta generada (generatedResponse): cuando generateResponse se establece en true (valor predeterminado), el evento resultante incluye un generatedResponse objeto que contiene:

      • answer— El texto de respuesta completo sintetizado en lenguaje natural.

      • citations— Una lista opcional que mapea los intervalos de la respuesta para respaldar los resultados de la recuperación. Cada cita contiene:

        • startIndex— El desplazamiento de caracteres donde comienza el pasaje citado dentro de la answer cadena.

        • endIndex— El desplazamiento de caracteres donde termina el pasaje citado (exclusivo: el texto citado va desde el startIndex hasta, pero sin incluirloendIndex).

        • references— Una lista en la que cada referencia tiene un resultIndex campo que se indexa en la results matriz según el mismo evento de resultado, indicando qué resultado de la recuperación admite el intervalo citado.

  • Eventos de respuesta (AgenticRetrieveResponseEvent): cuando generateResponse se establece en true (valor predeterminado), los responseEvent eventos se transmiten durante la generación de la respuesta. Cada evento contiene un text campo con una parte incremental de la respuesta sintetizada en lenguaje natural.

  • Rastrear eventos (AgenticRetrieveTraceEvent): eventos transmitidos durante el proceso de recuperación por parte de la agencia y que permiten ver cada paso. Estos son los tipos de eventos de seguimiento:

    • Planificación: indica que el modelo base analiza la consulta y crea subconsultas. Incluye las acciones planificadas y las fuentes objetivo. Cada acción es una retrieve acción dirigida a una base de conocimientos o una memoryRetrieve acción dirigida a la memoria a largo plazo, que incluye la consulta compuesta y lamemoryId.

    • Recuperación: indica que se está ejecutando una recuperación en una fuente configurada. Incluye la entrada y la salida de recuperación y cualquier advertencia o error. La retrievalMetadata entrada indica el tipo de fuente, ya sea BedrockKnowledgeBase oBedrockAgentCoreMemory.

    • Recuperación especulativa: recuperación inicial que se ejecuta antes del primer paso de planificación para reducir la latencia. En el caso de una base de conocimientos única, se recuperan los resultados mediante la consulta sin procesar del usuario. En el caso de varias bases de conocimiento, esto lleva a cabo una búsqueda por sondeo para ayudar a dirigir las consultas a los recuperadores adecuados. Al configurarretrievalConfigs, este paso también se puede recuperar de la memoria a largo plazo.

    • Expansión completa del documento: indica que el agente está recuperando todo el contenido de un documento específico. Incluye el identificador del documento, la fuente de recuperación y el estado (InProgresscorrecto o incorrecto).

    • Carga del historial de sesiones: indica que Amazon Bedrock está restaurando el historial de una sesión anterior desde la AgentCore memoria a corto plazo de la memoria, antes de que el agente comience a trabajar.

Utilice la AgentCore memoria con la recuperación por agencia

Puede conceder a una agencia acceso de recuperación a un recurso de Amazon Bedrock Memory. AgentCore Con el acceso a la memoria, la recuperación puede continuar con una sesión anterior y aprovechar lo que el agente ha aprendido en las sesiones anteriores. Introduzca en el memoryConfiguration campo la información memoryId de un recurso de memoria de su cuenta que se encuentre en ese ACTIVE estado.

La memoria es opcional. Un memoryConfiguration valor que solo establece un no memoryId es válido. Cuando lo suministrememoryConfiguration, debe usar el recurso de memoria al menos de una de las dos maneras siguientes:

  • Short-term memory (sessionBinding): restaura el historial de una sesión anterior para que la solicitud continúe esa sesión en lugar de empezar de cero. Identifique la sesión con un actorId y unsessionId. Los actorId alcances son la historia, por lo que la historia de un actor nunca es devuelta por la de otro. Cuando sessionBinding se establece, messages debe contener solo la consulta actual, con un role deuser. No puedes restaurar una sesión y proporcionar un historial de conversaciones anterior messages en la misma solicitud. La restauración carga los eventos de conversación con el rol de USER oASSISTANT.

  • Long-term memory (retrievalConfigs): pone a disposición del agente los registros de AgentCore memoria que Memory extrajo de sesiones anteriores. Identifique los registros con un namespace prefijo o con un namespacePath para recuperarlos en todos los espacios de nombres situados debajo del principal. Puede reducir aún más los resultados con un strategyId y conmetadataFilters. El agente decide si desea recuperar y crear su propia consulta.

Proporcione los espacios de nombres exactamente como están configurados en la estrategia de memoria, con los marcadores de posición ya resueltos. Por ejemplo, si la estrategia define el espacio de nombres/strategy/{memoryStrategyId}/actor/{actorId}, introduzca el valor resuelto en lugar de la plantilla. Para obtener más información sobre los espacios de nombres, las estrategias y los registros de memoria, consulte la terminología de la memoria en la guía para desarrolladores de Amazon Bedrock AgentCore .

nota

Usted es responsable de proporcionar los valores correctos memoryId ysessionBinding. retrievalConfigs La recuperación por parte de la agencia no verifica que la sesión o los espacios de nombres que usted proporciona se correspondan con la conversación que desea continuar. Si proporciona valores incorrectos, recibirá resultados inesperados.

Cuando sessionBinding esté configurado, persistenceMode utilícelo para controlar si el intercambio actual se devuelve a la sesión:

  • DEFAULT(valor predeterminado): conserva la pregunta y la respuesta generada en la sesión como un solo evento. Este valor debe generateResponse ser. true

  • NONE—Deja la sesión sin cambios. Utilice este valor para leer el historial de la sesión sin añadir nada más.

En el siguiente ejemplo, se restaura una sesión anterior, se otorga al agente acceso a la memoria a largo plazo de ese actor y se mantiene el intercambio hasta la sesión:

{ "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" } }

El flujo de respuestas informa sobre la actividad de la memoria. La restauración aparece como un evento de rastreo de carga del historial de la sesión. Los registros que devuelve la memoria a largo plazo aparecen en el evento de rastreo de recuperación con el tipo de origen deBedrockAgentCoreMemory, independientemente del paso que los haya recuperado.

La forma en que aparezca la recuperación en sí depende del momento en que se produzca. Cuando el modelo básico decide buscar en la memoria (lo habitual en una sesión continua), la recuperación aparece como una memoryRetrieve acción en el evento de rastreo de Planning. En una sesión nueva, el agente puede, en cambio, recuperar la memoria a largo plazo durante la recuperación especulativa, antes del primer paso de planificación, en cuyo caso no emite ninguna acción. memoryRetrieve Para obtener más información, consulte Respuesta de recuperación agencial.

Permisos necesarios para la recuperación por parte de la agencia

Para usar la AgenticRetrieveStream API, la identidad de IAM que realiza la llamada debe tener los siguientes permisos:

{ "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 utilizas barreras de protección con la recuperación mediante una agencia, agrega los siguientes permisos:

{ "Effect": "Allow", "Action": [ "bedrock:GetGuardrail", "bedrock:ApplyGuardrail" ], "Resource": "*" }

Si usas un recurso de AgentCore memoria con recuperación por agentes, agrega los siguientes permisos:

{ "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:ListEventssolo es obligatorio cuando lo configuras. sessionBinding bedrock-agentcore:RetrieveMemoryRecordssolo es obligatorio cuando se configuraretrievalConfigs. bedrock-agentcore:CreateEventsolo se requiere cuando persistenceMode esDEFAULT.

Si el recurso de memoria está cifrado con una clave gestionada por el cliente, añada el siguiente permiso a esa clave:

{ "Effect": "Allow", "Action": "kms:Decrypt", "Resource": "arn:aws:kms:region:account-id:key/key-id" }

Consideraciones

Tenga en cuenta lo siguiente cuando utilice la recuperación por agencia:

  • La recuperación por agencia solo es compatible con las bases de conocimiento administradas de Amazon Bedrock.

  • Para conocer las cuotas de usuarios por solicitud, los resultados por llamada de recuperación y el número máximo de iteraciones de los agentes, consulte. Cuotas de servicio para bases de conocimiento administradas

  • Reducir el recuento máximo de iteraciones puede provocar que el agente se detenga antes, lo que podría reducir la precisión de las consultas complejas.

  • Al configurar las barandillas, solo se admite la BLOCK acción. La MASK acción no se admite con la recuperación por agencia.

  • El cliente proporciona y es propietario del modelo básico, el modelo de incrustación y el modelo de reclasificación utilizados durante la recuperación por parte de la agencia, si se proporcionan. Sus credenciales de IAM se utilizan para invocar estos modelos.

  • Cuando usas un recurso de AgentCore memoria, el recurso debe estar en la misma cuenta que la base de conocimientos y debe estar en el ACTIVE estado.

  • Cuando se establecesessionBinding, messages debe contener solo la consulta actual, con un role deuser. No puedes restaurar una sesión y proporcionar un historial de conversaciones anterior messages en la misma solicitud.

  • Al restaurar una sesión, se cargan los eventos de conversación con el rol de USER oASSISTANT. AgentCore La memoria también acepta las OTHER funciones TOOL y, que una restauración no carga. Para obtener más información, consulte Conversational la referencia de la AgentCore API de Amazon Bedrock.

  • retrievalConfigsactualmente acepta como máximo una entrada y cada entrada acepta un máximo de 5 metadataFilters expresiones.

  • generateResponseA persistenceMode debe DEFAULT serlotrue, ya que la sesión conserva la respuesta generada.