OpenAI Responses API: guía de migración antes del cierre de agosto 2026
El 26 de agosto de 2026, los endpoints /v1/assistants, /v1/threads y /v1/threads/runs dejarán de responder sin período de gracia. Esta guía entrega el mapa de migración a la Responses API, las equivalencias técnicas y las nuevas capacidades —MCP nativo, computer use, mejora de 40-80% en caché— que conviene aprovechar en el proceso.
El 26 de agosto de 2026, OpenAI cerrará definitivamente la Assistants API sin un período de gracia adicional anunciado: cualquier llamada a /v1/assistants, /v1/threads o /v1/threads/runs retornará un error. OpenAI no ha publicado un modo de transición ni prórroga adicional. Para Cognitiva, agencia chilena de IA, este cierre es el evento técnico más urgente del año para las empresas que construyeron sus chatbots o agentes sobre esta API. La buena noticia es que OpenAI no está eliminando capacidades: las trasladó a la Responses API, una primitiva unificada que reemplaza Chat Completions, Assistants y sus herramientas en un solo modelo de ejecución. La migración implica un cambio de nombres y conceptos —Assistants→Prompts, Threads→Conversations, Runs→Responses, RunSteps→Items— más que una reescritura desde cero. Este artículo entrega el mapa de equivalencias completo, las diferencias arquitectónicas que cambian cómo se diseñan los agentes y las nuevas capacidades —soporte nativo de MCP, computer use, búsqueda web integrada y una mejora de entre 40% y 80% en el aprovechamiento de caché— que hacen que migrar ahora valga la pena más allá de solo evitar el error.
El cierre del 26 de agosto de 2026
OpenAI anunció la deprecación de la Assistants API el 26 de agosto de 2025, dando doce meses de margen a los equipos de desarrollo. Ese plazo vence en semanas. A diferencia de otras deprecaciones que mantienen un modo degradado o extienden fechas, hasta la fecha, OpenAI no ha comunicado extensión de plazo.
La decisión responde a un cambio de dirección arquitectónica, no a un recorte de capacidades. La Responses API absorbió lo mejor de Assistants —conversaciones persistentes, code interpreter, búsqueda de archivos— y además unificó Chat Completions, herramientas externas vía MCP y computer use en una sola superficie de API. Es una consolidación, no una eliminación.
El mapa de migración: Assistants → Responses
| Assistants API | Responses API | Descripción del cambio |
|---|---|---|
| Assistants | Prompts | Los prompts se crean desde el dashboard con versionado integrado. Ya no son objetos de API que se crean ni gestionan por código. |
| Threads | Conversations | Las conversaciones almacenan Items generalizados: mensajes, llamadas a herramientas y sus resultados, con más riqueza que los Threads. |
| Runs | Responses | La respuesta llega sincrónicamente en una sola llamada; desaparece el ciclo de consulta de estado. |
| Run Steps | Items | Cada unidad de contexto tiene un tipo explícito: message, function_call, function_call_output, reasoning. |
El cambio más inmediato es que los Assistants dejan de existir como objetos de API. Para migrar uno existente, accede al dashboard de OpenAI y crea un Prompt a partir de él: el modelo, las instrucciones y las herramientas se trasladan allí con versionado incorporado. Anota el ID del Prompt generado porque lo necesitarás en cada llamada a la Responses API.
Los Threads se convierten en Conversations, gestionadas por la API de Conversaciones. La diferencia conceptual es relevante: donde un Thread solo guardaba mensajes de texto, una Conversation almacena Items de distintos tipos —incluyendo llamadas a herramientas y sus resultados— lo que permite una trazabilidad más rica del comportamiento del agente.
La desaparición del ciclo de consulta de estado
El cambio más relevante para el código existente es la eliminación del patrón de polling. En la Assistants API, crear una Run implicaba consultarla repetidamente hasta que su estado cambiara a 'completed'. En la Responses API, la respuesta llega sincrónicamente: envías Input Items y recibes Output Items en la misma llamada, sin esperas ni reintentos de estado.
Diferencias arquitectónicas: antes y después
Antes: Assistants API con ciclo de consulta
# Assistants API: crear thread, mensaje, run y hacer polling
thread = client.beta.threads.create()
client.beta.threads.messages.create(
thread_id=thread.id,
role="user",
content="Analiza este contrato"
)
run = client.beta.threads.runs.create(
thread_id=thread.id,
assistant_id="asst_abc123"
)
# Consultar estado hasta completarse
while run.status not in ["completed", "failed"]:
time.sleep(1)
run = client.beta.threads.runs.retrieve(
thread_id=thread.id,
run_id=run.id
)
messages = client.beta.threads.messages.list(thread_id=thread.id)Después: Responses API con llamada directa
# Responses API: una sola llamada, sin ciclo de estado
response = client.responses.create(
model="gpt-4.1",
prompt={"id": "prompt_abc123"},
conversation="conv_xyz789",
input=[{
"type": "message",
"role": "user",
"content": "Analiza este contrato"
}],
store=True
)
output_text = response.output_textLa simplificación no es solo cosmética. Al eliminar el ciclo de consulta, la latencia de integración baja y el manejo de errores se simplifica: en vez de controlar estados intermedios (queued, in_progress, requires_action), el código solo maneja éxito o error en la respuesta.
El parámetro store=True permite mantener la Conversation en los servidores de OpenAI para llamadas futuras, replicando la persistencia que proveían los Threads. La diferencia es que los Items almacenados tienen tipos más ricos y la estructura es más eficiente para el aprovechamiento de caché.
Nuevas capacidades que trae la Responses API
Migrar no es solo evitar el error del 26 de agosto. La Responses API habilita capacidades que la Assistants API no tenía o tenía de forma más limitada.
- MCP remoto: conecta el agente a servidores Model Context Protocol externos —bases de datos, ERPs, SaaS— sin implementar function calling a mano para cada herramienta
- Computer use: el agente puede controlar interfaces gráficas de aplicaciones de escritorio o web, habilitando automatizaciones de alto nivel sin intervención humana
- Búsqueda web integrada: acceso a información en tiempo real desde el modelo, sin mantener pipelines externos de búsqueda ni actualizaciones de índices
- Razonamiento cifrado: para arquitecturas con Zero Data Retention (ZDR), el reasoning puede cifrarse antes de almacenarse en los servidores de OpenAI
- Ejecución de múltiples herramientas por respuesta: una sola llamada puede activar varias herramientas en paralelo, reduciendo la latencia en agentes complejos
La Responses API ya superó a Chat Completions en actividad de tokens, señal de que la industria comenzó la transición antes del plazo oficial.
En términos de costos, la mejora en el aprovechamiento de caché —entre 40% y 80% según pruebas internas de OpenAI— se debe a que la Responses API construye el contexto de forma más eficiente: los prompts versionados y la estructura de Items permiten que el servidor reutilice computación ya realizada en llamadas anteriores, lo que baja el costo efectivo por conversación en sistemas con contextos repetitivos.
Plan de acción en 5 pasos
Con la fecha límite en agosto de 2026 y semanas en el horizonte, el orden de las acciones importa. El siguiente plan prioriza lo crítico sobre lo óptimo.
Marco de priorización de Cognitiva: criticidad × complejidad
Para decidir qué integración migrar primero, en Cognitiva usamos una matriz de dos ejes: criticidad del negocio (qué tan importante es el sistema para las operaciones diarias) y complejidad técnica de la migración (cantidad de endpoints usados, uso de streaming, herramientas personalizadas). Las integraciones de alta criticidad y baja complejidad migran en la primera semana; las de alta criticidad y alta complejidad requieren un diseño arquitectónico previo antes de tocar código.
- Audita tus integraciones: identifica todos los puntos de código que llaman a /v1/assistants, /v1/threads o /v1/threads/runs y clasifícalos según la matriz de criticidad × complejidad
- Crea Prompts en el dashboard: por cada Assistant existente, genera el Prompt equivalente en el dashboard de OpenAI, define modelo, instrucciones y herramientas, y anota el ID resultante
- Reemplaza la lógica de consulta de estado: elimina los ciclos while run.status != 'completed' y sustitúyelos por llamadas directas a client.responses.create() con el Prompt ID correspondiente
- Migra el manejo de contexto: si tus Threads acumulan historial relevante, trasládalo a Conversations usando store=True para mantener la persistencia entre llamadas
- Prueba en paralelo durante al menos una semana: mantén ambas implementaciones activas en un entorno de prueba antes de cortar el paso a producción para validar paridad de respuestas
Preguntas frecuentes
Da el siguiente paso
Hablemos
Cuéntanos sobre tu negocio. Respondemos en 24 horas.
Otros canales
Escríbenos por WhatsApp o agenda una llamada de 30 minutos.