Cómo construir agentes GPT-6 Astra de larga duración con estado de conversación y compactación
Diseña agentes GPT-6 Astra duraderos utilizando previous_response_id, Conversaciones, estado explícito, presupuestos de contexto, compactación, puntos de control y patrones de recuperación.

Un agente de larga duración no es simplemente un chatbot con un enorme historial. Es un sistema con estado que debe preservar objetivos, trabajo completado, resultados de herramientas, permisos y decisiones no resueltas, manteniéndose dentro de una ventana de contexto finita. GPT-6 Astra proporciona una ventana de contexto de 1,050,000 tokens, soporte de razonamiento persistente, estado de conversación y compactación, pero la arquitectura sigue determinando si un flujo de trabajo se mantiene coherente después de horas o días.
Separa cuatro tipos de estado
Tratar cada evento como texto de conversación dificulta la recuperación. Mantén capas distintas:
- Estado del diálogo: lo que dijeron el usuario y el modelo.
- Estado de la tarea: objetivos, plan, restricciones, pasos completados y bloqueadores.
- Estado del mundo: registros en bases de datos, archivos, tickets y otros sistemas externos.
- Estado de ejecución: IDs de llamadas a herramientas, claves de idempotencia, aprobaciones, reintentos y puntos de control.
Solo la primera capa pertenece naturalmente a una transcripción. Las otras tres deberían tener representaciones gestionadas por la aplicación. El modelo puede ayudar a actualizarlas, pero no debería ser el único sistema de registro.
Dos formas de continuar una respuesta
El mecanismo de continuación más simple es previous_response_id:
const first = await client.responses.create({
model: "gpt-6-astra",
input: "Redacta un plan de implementación para la migración."
});
const next = await client.responses.create({
model: "gpt-6-astra",
previous_response_id: first.id,
input: [{ role: "user", content: "Comienza con el módulo de autenticación." }]
});
Esto crea una cadena de respuestas. Es conveniente para una sesión, pero no es un atajo de facturación: OpenAI documenta que los tokens de entrada anteriores en la cadena se facturan como entrada. Las respuestas se almacenan durante 30 días por defecto a menos que se use store: false.
Para hilos duraderos, utiliza la API de Conversaciones. Una conversación puede contener mensajes, llamadas a herramientas y salidas de herramientas, y puede reutilizarse en sesiones, dispositivos o trabajos. Los objetos de conversación no están sujetos al TTL de respuesta de 30 días. Una solicitud no puede usar tanto una conversación como un previous_response_id; elige el modelo de estado deliberadamente.
Haz un presupuesto de contexto antes de que lo necesites
El contexto incluye tokens de entrada, salida y razonamiento. No esperes hasta que el modelo alcance el límite. Reserva espacio para el siguiente resultado de la herramienta y la respuesta final, luego compacta o poda antes de cruzar tu umbral.
Un presupuesto útil puede asignar porcentajes a:
- instrucciones y herramientas duraderas;
- resumen de la tarea actual;
- detalle reciente de la conversación;
- evidencia recuperada;
- razonamiento esperado y salida;
- un margen de emergencia para resultados de herramientas inusualmente grandes.
El contexto grande también tiene implicaciones de precio. La página del modelo GPT-6 Astra documenta una tarifa más alta para solicitudes cuya entrada supera los 272K tokens, aplicada a toda la solicitud. Ese umbral hace que la higiene temprana del contexto sea financieramente importante incluso cuando la ventana completa está lejos de agotarse.
Lo que hace la compactación
La compactación reduce el contexto anterior mientras conserva la información necesaria para turnos futuros. OpenAI expone un endpoint explícito /responses/compact y una gestión automática del contexto. El material de compactación devuelto es opaco: pásalo hacia adelante según las instrucciones, sin analizarlo, editarlo ni tratarlo como un resumen dirigido al usuario.
Compacto en hitos semánticos:
- después de que la investigación se sintetiza y ya no se necesita la exploración de fuentes en bruto;
- después de que una fase de código pase las pruebas;
- después de que el usuario apruebe un plan;
- antes de comenzar una nueva fase independiente;
- cuando el contexto medido se aproxima a tu umbral planificado.
Evita compactar después de cada turno. Añade trabajo, puede descartar detalles locales útiles y cambia el prefijo reutilizable del prompt, lo que puede afectar el comportamiento de la caché del prompt.
const compacted = await client.responses.compact({
model: "gpt-6-astra",
input: accumulatedItems
});
// Persist the returned compacted items and use them as the base for later work.
Usa la referencia actual del SDK para los tipos exactos; las superficies beta y del SDK pueden evolucionar. La regla duradera es preservar la salida opaca sin cambios.
Marca el trabajo, no solo las palabras
Un punto de control de producción debe registrar:
- objetivo visible para el usuario y alcance aceptado más reciente;
- pasos completados y evidencia de verificación;
- llamadas a herramientas pendientes y estado de aprobación;
- identificadores de recursos externos y versiones;
- decisiones importantes con procedencia;
- el identificador de la respuesta o conversación;
- una versión de punto de control monótona.
Supongamos que un flujo de trabajo de animación ha aprobado un guion, generado referencias de personajes y comenzado el montaje de escenas. El agente debe almacenar los IDs de los activos, las aprobaciones y el estado de las escenas en los datos de la aplicación. Una plataforma como Elser AI es un destino natural para los activos creativos, pero la capa de orquestación aún necesita un estado explícito para que un agente reanudado no regenere escenas aprobadas.
Recuperación después de la interrupción
Diseñar para ejecución al menos una vez. Una conexión puede desaparecer después de que una herramienta actúe, pero antes de que el cliente reciba el resultado. Cada herramienta que cambie el estado debería aceptar una clave de idempotencia o admitir una verificación de lectura antes de escritura. Al reanudar:
- cargar el último checkpoint confirmado;
- inspeccionar el estado externo para operaciones inciertas;
- conciliar los resultados de la herramienta por llamada o ID de idempotencia;
- reconstruir el contexto a partir del estado compactado más eventos recientes;
- pídele al modelo que continúe desde el trabajo pendiente explícito.
Nunca le digas al modelo "continúa" sin un estado estructurado después de un fallo. Puede repetir acciones o inferir el hito incorrecto.
Mantén la compactación y la memoria empresarial separadas
La compactación es un contexto optimizado para el modelo. La memoria empresarial es un registro duradero e inspeccionable para tu aplicación. Mantén un registro de tareas conciso y legible por humanos junto con elementos compactados opacos. El registro permite a los operadores auditar decisiones, migrar modelos y recuperarse si una cadena de respuestas no está disponible.
Un buen registro contiene hechos, no prosa persuasiva. Por ejemplo: “El cliente aprobó el plan v7 a las 14:32 UTC” es más sólido que “El cliente parecía contento con el plan.” Guarda los IDs de origen para las afirmaciones extraídas de las herramientas.
Controles de calidad para ejecuciones largas
Prueba más que la precisión de la respuesta final. Mide:
- retención de objetivos después de 20, 50 y 100 turnos;
- efectos secundarios duplicados después de desconexiones inyectadas;
- reanudación correcta después de la compactación;
- procedencia del resultado de la herramienta;
- persistencia y caducidad de la autorización;
- costo por hito;
- desviación entre el libro de tareas y el estado externo.
Incluye pruebas adversariales donde un mensaje antiguo entre en conflicto con una instrucción más reciente, una herramienta devuelva una carga útil enorme, o una aprobación expire mientras el agente está en pausa. La fiabilidad en ejecuciones largas se trata principalmente de transiciones.
Preguntas Frecuentes
¿Debería usar Conversations o previous_response_id?
Usa previous_response_id para encadenar respuestas de manera directa. Usa una Conversación cuando necesites un objeto duradero reutilizado entre sesiones o trabajos. No pueden proporcionarse juntos en la misma solicitud.
¿Una ventana de un millón de tokens elimina la compactación?
No. El costo, la latencia, la relevancia y el umbral de precios documentado para contexto largo hacen que la gestión del contexto sea útil antes del límite estricto.
¿Puedo editar contenido compactado?
Trata los elementos compactados como opacos. Mantén tu propio registro de tareas editable por separado.
¿Qué cambia store: false?
Desactiva el almacenamiento predeterminado de la respuesta. Su aplicación debe entonces gestionar explícitamente el estado necesario y cumplir con sus propios requisitos de retención y recuperación.
Conclusión
Los agentes Durable GPT-6 Astra combinan la continuidad de la conversación gestionada por API con el estado de tareas y ejecución propiedad de la aplicación. Encadena o conserva respuestas deliberadamente, presupuesta el contexto antes de que se vuelva costoso, compacta en hitos, preserva elementos de compactación opacos y hace que cada acción externa sea recuperable. El resultado es un agente que puede reanudar el trabajo de manera segura, no uno que simplemente recuerda una conversación larga.





























































































