Utilice sesiones aisladas para los agentes
Amazon Bedrock AgentCore Runtime le permite aislar cada sesión de usuario y reutilizar el contexto de forma segura en varias invocaciones de una sesión de usuario. El aislamiento de las sesiones es fundamental para las cargas de trabajo de los agentes de IA debido a sus características operativas únicas:
-
Separación completa del entorno de ejecución: cada sesión de usuario en AgentCore Runtime recibe su propia microVM dedicada con recursos de cómputo, memoria y sistema de archivos aislados. Esto impide que el agente de un usuario acceda a los datos de otro usuario. Una vez finalizada la sesión, se cierra toda la microVM y se desinfecta la memoria para eliminar todos los datos de la sesión, lo que elimina los riesgos de contaminación entre sesiones.
-
Procesos de razonamiento basados en estados: a diferencia de las funciones sin estado, los agentes de IA mantienen un estado contextual complejo durante todo su ciclo de ejecución, más allá del simple historial de mensajes para conversaciones sucesivas. AgentCore El tiempo de ejecución conserva este estado de forma segura durante una sesión y, al mismo tiempo, garantiza el aislamiento total entre los diferentes usuarios, lo que permite que los agentes disfruten de experiencias personalizadas sin comprometer los límites de los datos.
-
Operaciones con herramientas privilegiadas: los agentes de IA realizan operaciones privilegiadas en nombre de los usuarios mediante herramientas integradas que acceden a varios recursos. AgentCore El modelo de aislamiento de Runtime garantiza que las operaciones de estas herramientas mantengan los contextos de seguridad adecuados e impide el intercambio de credenciales o la escalada de permisos entre distintas sesiones de usuario.
-
Seguridad determinista para procesos no deterministas: el comportamiento de los agentes de IA puede ser no determinista debido a la naturaleza probabilística de los modelos básicos. AgentCore El tiempo de ejecución proporciona límites de aislamiento consistentes y deterministas, independientemente de los patrones de ejecución de los agentes, lo que proporciona las propiedades de seguridad predecibles necesarias para los despliegues empresariales.
nota
AgentCore no impone mapeos de sesión a usuario: el backend de su cliente debe mantener la relación entre los usuarios y sus ID de sesión. Además, el backend de su cliente debe implementar una lógica para la administración del ciclo de vida de usuario a sesión, como el número máximo de sesiones por usuario. Para obtener una guía completa sobre el aislamiento de sesiones, consulta las prácticas recomendadas de seguridad para AgentCore Runtime.
Temas
Comprender el contexto efímero
De forma predeterminada, el proceso (microVM) asociado a una sesión es efímero. Todos los datos almacenados en la memoria o escritos en el disco se conservan solo durante el ciclo de vida de la computación. Esto incluye el historial de conversaciones, las preferencias del usuario, los resultados de los cálculos intermedios y cualquier otra información de estado que conserve su agente.
Para conservar los datos del sistema de archivos a lo largo de los stop/resume ciclos de sesión, configure el almacenamiento de sesiones, un directorio persistente que sobrevive a la finalización del proceso. Consulte Configuraciones del sistema de archivos para Runtime. AgentCore
Para los datos estructurados que deben conservarse más allá de la duración de la sesión (como el historial de conversaciones del usuario, las preferencias aprendidas o la información importante), utilice AgentCore Memory. Este servicio proporciona almacenamiento persistente diseñado específicamente para las cargas de trabajo de los agentes, con capacidades de memoria a corto y largo plazo.
Conversaciones ampliadas y flujos de trabajo de varios pasos
A diferencia de las funciones tradicionales sin servidor que finalizan después de cada solicitud, AgentCore admite sesiones aisladas respaldadas por cálculos efímeros que duran hasta 8 horas por ciclo de vida. Esto simplifica la creación de flujos de trabajo de agentes de varios pasos, ya que puede realizar varias llamadas al mismo entorno, y cada invocación se basa en el contexto establecido por las interacciones anteriores. Puede utilizarlas tanto InvokeAgentRuntime para razonar con los agentes como para ejecutar comandos de shell deterministas en la misma sesión. InvokeAgentRuntimeCommand
AgentCore Ciclo de vida de la sesión
Creación de sesiones
Se crea una nueva sesión en la primera invocación con un tiempo de ejecución único SessionId proporcionado por la aplicación. AgentCore Runtime proporciona un entorno de ejecución dedicado (microVM) para cada sesión. El contexto se conserva entre las invocaciones a la misma sesión. Ambas InvokeAgentRuntime InvokeAgentRuntimeCommand funcionan en la misma sesión: un comando ve el mismo contenedor, sistema de archivos y entorno que el agente.
Estados de sesión
El estado de la sesión viene determinado por el ciclo de vida de la computación y puede ser uno de los siguientes:
-
Activo: procesa una solicitud de sincronización, ejecuta un comando o realiza tareas en segundo plano. La actividad de invocación y ejecución de comandos de sincronización se rastrea automáticamente en función de las invocaciones a una sesión en tiempo de ejecución. El código del agente comunica las tareas en segundo plano, respondiendo con el estado «HealthyBusy" en los pings.
-
Inactivo: cuando no se está procesando ninguna solicitud o tarea en segundo plano. La sesión ha completado el procesamiento, pero permanece disponible para futuras invocaciones.
-
Detenido: el proceso (microVM) aprovisionado para la sesión ha finalizado y la sesión se ha detenido. Esto puede ocurrir debido a una inactividad (15 minutos de forma predeterminada), a que se alcance la vida útil máxima del proceso (de forma predeterminada, 8 horas), a una interrupción explícita al invocar la StopRuntimeSessionAPI o a que se considere que el proceso está en mal estado según las comprobaciones de estado. La sesión vuelve a estar activa en la siguiente invocación y se aprovisiona un nuevo proceso, con la misma configuración de ciclo de vida (es decir, inactiva RuntimeSessionTimeout y MaxLifetime, que puede durar hasta 8 horas más). La sesión en sí misma sigue siendo válida hasta que se AgentCore elimine el ARN del tiempo de ejecución. Si el tiempo de ejecución está configurado con almacenamiento de sesiones, los datos del sistema de archivos en la ruta de montaje configurada persisten durante varios ciclos. stop/resume Consulte Configuraciones del sistema de archivos para Runtime AgentCore .
Cómo usar las sesiones
Para utilizar las sesiones de forma eficaz:
-
Genere un identificador de sesión único para cada usuario o conversación con al menos 33 caracteres
-
Pase el mismo ID de sesión para todas las invocaciones relacionadas
-
Usa diferentes ID de sesión para diferentes usuarios o conversaciones
Ejemplo de uso de sesiones para una conversación
# First message in a conversation response1 = agent_core_client.InvokeAgentRuntime( agentRuntimeArn=agent_arn, runtimeSessionId="user-123456-conversation-12345678", # or uuid.uuid4() payload=json.dumps({"prompt": "Tell me about AWS"}).encode() ) # Follow-up message in the same conversation reuses the runtimeSessionId. response2 = agent_core_client.InvokeAgentRuntime( agentRuntimeArn=agent_arn, runtimeSessionId="user-123456-conversation-12345678", # or uuid.uuid4() payload=json.dumps({"prompt": "How does it compare to other cloud providers"}).encode() )
Al utilizar el mismo tiempo de ejecución SessionId para las invocaciones relacionadas, se asegura de que el contexto se mantenga durante toda la conversación, lo que permite al agente ofrecer respuestas coherentes basadas en interacciones anteriores.
Encabezados de sesión por protocolo
Cuando invoque a los agentes, incluya el encabezado de sesión adecuado para garantizar que las solicitudes se dirijan a la misma microVM. El encabezado depende del protocolo configurado por el agente:
| Protocolo | Encabezado de sesión |
|---|---|
|
MCP |
|
|
HTTP |
|
|
A2A |
|
|
AG-UI |
|
Adherencia de microVM: Amazon Bedrock AgentCore usa el encabezado de sesión para enrutar las solicitudes a la misma instancia de microVM. Los clientes deben capturar el ID de sesión devuelto en la respuesta e incluirlo en todas las solicitudes posteriores para garantizar la afinidad de la sesión. Sin un ID de sesión coherente, cada solicitud puede enrutarse a una nueva microVM, lo que puede provocar una latencia adicional debido a los arranques en frío.
Para obtener información específica sobre el protocolo MCP, incluidos los modos sin estado y con estado, consulte Administración de sesiones MCP y adherencia de microVM.