Ir al contenido principal
OpenAI

29 de enero de 2026

Ingeniería

En el interior del agente de datos interno de OpenAI

Por Bonnie Xu, Aravind Suresh y Emma Tang

Cargando…

Los datos impulsan cómo aprenden los sistemas, cómo evolucionan los productos y cómo se toman las decisiones en las empresas. Pero conseguir respuestas de forma rápida y correcta, y con el contexto adecuado, suele ser más difícil de lo que debería. Para facilitar esto a medida que OpenAI escala, hemos creado nuestro propio agente de datos de IA personalizado interno, que explora nuestra propia plataforma y razona sobre ella.

Nuestro agente es una herramienta personalizada solo para uso interno (no se ofrece a nivel externo) que ha sido diseñada específicamente sobre la base de los datos, permisos y flujos de trabajo de OpenAI. Queremos mostrar cómo lo desarrollamos y lo utilizamos para poner de relieve ejemplos de formas reales e impactantes en que la IA puede ayudar a nuestros equipos en su trabajo diario. Las herramientas de OpenAI que empleamos para crearlo y ejecutarlo (Codex, nuestro modelo insignia GPT‑5, la API Evals(se abre en una ventana nueva) y la API Embeddings(se abre en una ventana nueva)) son las mismas herramientas que ponemos a disposición de los desarrolladores en todas partes.

Nuestro agente de datos permite a nuestros empleados pasar de la pregunta a la información en cuestión de minutos, no de días. Esto hace que se baje el listón a la hora de extraer datos y realizar análisis detallados por todas las funciones, en lugar de centrarse únicamente en nuestro equipo de datos. Hoy, los equipos de Ingeniería, Ciencia de Datos, Go-To-Market, Finanzas e Investigación de OpenAI confían en el agente para responder a preguntas de datos de alto impacto. Por ejemplo, puede ayudar a responder cómo evaluar lanzamientos y entender la situación del negocio, todo ello a través del formato intuitivo del lenguaje natural. El agente combina el conocimiento a nivel de tabla impulsado por Codex con el contexto del producto y la organización. Su sistema de memoria basado en el aprendizaje continuo también mejora con cada turno.

Captura de pantalla que muestra a un usuario que pregunta a ChatGPT los usuarios activos semanales el 6 de octubre de 2025 en comparación con el DevDay de 2023. El agente indica alrededor de 800 millones de usuarios activos semanales para 2025 y alrededor de 100 millones para 2023, con notas que muestran un cambio de +700 millones y un aumento de alrededor de 8 veces, a lo que sigue un contexto explicativo.

En esta publicación, vamos a analizar por qué necesitábamos un agente de datos de IA a medida, dónde reside la utilidad de su contexto de datos enriquecido con código y su capacidad de autoaprendizaje, y qué lecciones que aprendimos en el camino.

Por qué necesitábamos una herramienta a medida

La plataforma de datos de OpenAI da servicio a más de 3500 usuarios internos que trabajan en las áreas de Ingeniería, Producto e Investigación, lo que supone más de 600 petabytes de datos en 70 000 conjuntos de datos. Con estas dimensiones, el simple hecho de encontrar la tabla adecuada puede ser una de las partes que más tiempo lleva a la hora de hacer un análisis.

En palabras de un usuario interno:

«Tenemos muchas tablas bastante similares, y pierdo mucho tiempo tratando de averiguar la diferencia entre ellas y cuál debo usar. Algunas incluyen a usuarios desconectados, otras no. Algunas tienen campos superpuestos, así que es difícil saber qué es qué.»

Incluso teniendo seleccionadas las tablas adecuadas, obtener resultados correctos puede ser todo un reto. Los analistas deben razonar sobre los datos de las tablas y las relaciones entre ellas para asegurarse de que las transformaciones y los filtros se apliquen correctamente. Algunos modos de fallo comunes, como uniones de muchos a muchos, errores de empuje de filtros y valores nulos no gestionados, pueden invalidar silenciosamente los resultados. A escala de OpenAI, los analistas no tendrían que perder tiempo depurando la semántica de SQL o el rendimiento de las consultas, sino que deberían enfocarse en definir métricas, validar suposiciones y tomar decisiones basadas en datos.

Captura de pantalla del código SQL que define dos expresiones comunes de tabla (order_enriched y monthly_segment) que unen datos geográficos del cliente, derivan campos del mes de pedido y calculan agregados mensuales como el recuento de pedidos, los ingresos brutos, los ingresos con impuestos y el promedio de días desde el envío hasta la recepción.

Esta declaración SQL tiene más de 180 líneas. No es fácil saber si estamos combinando las tablas adecuadas y consultando las columnas correctas.

Cómo funciona

Haremos un recorrido por nuestro agente para ver en qué consiste, cómo organiza el contexto y cómo mejora de forma autónoma.

Nuestro agente, impulsado por GPT‑5.2, ha sido diseñado para razonar sobre la plataforma de datos de OpenAI. Está disponible en las áreas donde trabajan los empleados: como un agente de Slack, a través de una interfaz web, en el interior de los IDE, en la CLI de Codex a través de MCP(se abre en una ventana nueva) y directamente en la aplicación interna de ChatGPT de OpenAI mediante un conector MCP(se abre en una ventana nueva).

Diagrama titulado «Cómo funciona el agente de datos». Los puntos de entrada (Agent-UI, Local Agent-MCP, Remote Agent-MCP y Slack Agent) se integran en un Agent-API. La API se conecta al conocimiento interno de datos y al contexto de la empresa, se sincroniza con un almacén de datos y fuentes de la plataforma, e intercambia solicitudes con el modelo de GPT-5.2 a través de Agent-MCP.

Los usuarios pueden hacer preguntas complejas y abiertas que de forma habitual requerirían varias rondas de exploración manual. Veamos este ejemplo de prompt, el cual utiliza un conjunto de datos de prueba: «En el caso de los trayectos en taxi en Nueva York, ¿qué pares de códigos postales de salida y llegada son los menos fiables, al presentar la mayor brecha entre la duración típica de un trayecto y la más larga en el peor de los casos, y cuándo se produce esa variabilidad?».

El agente gestiona el análisis de principio a fin, desde la comprensión de la pregunta hasta la exploración de los datos, la ejecución de las consultas y la sintetización de los hallazgos.

Captura de pantalla que muestra a un usuario que pregunta cuáles son los pares de códigos postales de salida→llegada de taxis en Nueva York «menos fiables». El agente explica el uso de alrededor 21 000 trayectos de samples.nyctaxi.trips, define lo típico (p50) frente al peor de los casos (p95), aplica filtros y describe cómo identifica cuando ocurrió el trayecto más largo de cada par de códigos postales.

La respuesta del agente a la pregunta.

Uno de los superpoderes del agente es cómo razona los problemas. En lugar de seguir un guion fijo, el agente evalúa su propio progreso. Si un resultado intermedio parece incorrecto (por ejemplo, si tiene cero filas debido a una unión o un filtro incorrectos), el agente investiga lo que ha salido mal, ajusta su enfoque y lo intenta de nuevo. A lo largo de este proceso, conserva todo el contexto y arrastra el aprendizaje de un paso a otro. Este proceso de circuito cerrado y de autoaprendizaje traslada la iteración del usuario al propio agente, lo que le permite obtener resultados más rápidos y análisis de mayor calidad que los flujos de trabajo manuales.

Captura de pantalla de un flujo de trabajo de tareas que muestra el plan paso a paso de un agente de IA para analizar la duración de los trayectos en taxi en Nueva York. Incluye objetivos, búsquedas internas, inspección de esquemas, fragmentos de código y razonamiento sobre el cálculo de las dispersiones p50/p95, identificación de pares de códigos postales poco fiables y planificación de consultas SQL.

El razonamiento del agente para identificar los pares de salida y llegada de taxis en Nueva York menos fiables.

El agente cubre todo el flujo de trabajo en torno al análisis, desde el descubrimiento de datos y la ejecución de SQL a la publicación de cuadernos e informes. Entiende los conocimientos internos de la empresa, puede buscar información externa en la web y mejora con el tiempo a través del uso aprendido y la memoria.

El contexto lo es todo

Para ofrecer respuestas de alta calidad se requiere un contexto rico y preciso. Sin contexto, incluso los modelos más sólidos pueden dar resultados erróneos, como una estimación incorrecta del número de usuarios o una mala interpretación de la terminología interna.

Captura de pantalla de un usuario que pregunta: «¿Cuál ha siso el índice de usuarios activos mensuales que han iniciado sesión en ChatGPT Imágenes durante los últimos 30 días?», con una línea de estado por debajo que muestra que el agente ha estado «Trabajando durante 22m 41s», lo que indica que hay una consulta de larga duración en curso.

El agente sin memoria, incapaz de realizar consultas de manera efectiva.

Captura de pantalla que muestra a un usuario que pregunta: «¿Cuál ha sido el índice de usuarios activos mensuales que han iniciado sesión en ChatGPT Imágenes durante los últimos 30 días?» Debajo del mensaje, una línea de estado señala «Ha trabajado durante 1m 22s», lo que indica que la consulta sigue en curso y está tardando mucho en completarse.

La memoria del agente permite hacer consultas más rápidas al encontrar las tablas correctas.

Para evitar estos modos de fallo, el agente se asienta en torno a múltiples capas de contexto que se alimentan de los datos y del conocimiento institucional de OpenAI.

Diagrama titulado «Capas de contexto del agente de datos» que muestra seis niveles apilados: 1) Uso de tablas, 2) Anotaciones humanas, 3) Enriquecimiento de Codex, 4) Conocimiento institucional, 5) Memoria y 6) Contexto de ejecución. Cada capa se muestra como una barra horizontal en forma de pirámide.

Capa n.º 1: Uso de la tabla

  • Fundamentación de metadatos: El agente se basa en los metadatos del esquema (nombres de columnas y tipos de datos) para guiar la escritura de SQL y utiliza el linaje de tablas (por ejemplo, relaciones de tablas ascendentes y descendentes) para proporcionar contexto sobre cómo se relacionan las diferentes tablas.
  • Inferencia de consultas: Mediante la introducción de consultas históricas, el agente aprende a redactar sus propias consultas y qué tablas suelen unirse.

Capa n.º 2: Anotaciones humanas

  • Descripciones seleccionadas de tablas y columnas proporcionadas por expertos en la materia que recogen la intención, la semántica, el significado empresarial y las advertencias conocidas que no se infieren fácilmente de esquemas o consultas anteriores.

Los metadatos por sí solos no son suficientes. Para distinguir realmente unas tablas de otras, necesitas entender cómo fueron creadas y de dónde provienen.

Capa n.º 3: Enriquecimiento de Codex

  • Al derivar una definición a nivel de código de una tabla, el agente adquiere una comprensión más profunda de lo que realmente contienen los datos. 
    • Los matices sobre lo que se almacena en la tabla y cómo se deriva de un evento de analítica proporcionan información extra. Por ejemplo, puede dar contexto sobre la singularidad de los valores, la frecuencia con la que se actualizan los datos de la tabla, el alcance de los datos (p. ej., si la tabla excluye ciertos campos, tiene este nivel de granularidad), etc.
  • Esto proporciona un contexto de uso mejorado al mostrar cómo se utiliza la tabla más allá de SQL en Spark, Python y otros sistemas de datos.
  • Gracias a ello, el agente puede distinguir entre tablas que parecen similares pero difieren en aspectos críticos. Por ejemplo, puede decir si una tabla solo incluye tráfico de ChatGPT de primera mano. Este contexto también se actualiza automáticamente, así que se mantiene al día sin necesidad de mantenimiento manual.
Diagrama titulado «Flujo de conocimiento enriquecido con Codex». Diferentes tablas populares se utilizan en múltiples tareas de Codex, que extraen detalles del código base de OpenAI, incluyendo el propósito de una tabla, su granularidad y claves primarias, patrones de uso descendente, opciones alternativas de tablas y actualización de los datos.

Capa n.º 4: Conocimiento institucional 

  • El agente puede acceder a Slack, Google Docs y Notion, que capturan el contexto crítico de la empresa, como lanzamientos, incidentes de fiabilidad, nombres en clave y herramientas internas, así como las definiciones canónicas y la lógica de cálculo para las métricas clave.
  • Estos documentos se introducen, insertan y almacenan con metadatos y permisos. Un servicio de recuperación gestiona el control de acceso y el almacenamiento en caché en tiempo de ejecución, lo que permite al agente incorporar esta información de manera eficiente y segura.
Captura de pantalla de un usuario que pregunta por qué el uso del conector disminuyó en diciembre. El agente explica que la caída se debió a un problema de registro que comenzó el 13 de noviembre de 2025, lo que provocó un uso calculado a la baja tras el lanzamiento de ChatGPT 5.1. La telemetría heredada se quedó sin datos hasta que un evento más reciente se convirtió en la referencia principal.

Capa n.º 5: Memoria

  • Cuando el agente recibe correcciones o descubre matices sobre ciertas preguntas de datos, puede guardar este aprendizaje para la próxima vez, lo que le permite mejorar constantemente con sus usuarios. 
    • Como resultado, las siguientes respuestas parten de una base más precisa, en lugar de encontrarse repetidamente con los mismos problemas.
    • El objetivo de la memoria es conservar y reutilizar correcciones, filtros y restricciones no evidentes que resultan fundamentales para la corrección de los datos, aunque pueden ser difíciles de inferir a partir únicamente de las otras capas. 
    • Por ejemplo, en un caso, el agente no sabía cómo filtrar un experimento analítico específico (dependía de coincidir con una cadena específica definida en una puerta de experimento). La memoria aquí era crucial para asegurar que se pudiera filtrar correctamente, en lugar de intentar coincidir cadenas de manera imprecisa.
  • Cuando hagas una corrección al agente o cuando este obtenga un aprendizaje a raíz de tu conversación, recibirás una indicación para guardar esa memoria para la próxima vez. 
    • Las memorias también pueden ser creadas y editadas manualmente por los usuarios.
    • Los recuerdos se gestionan a nivel global y personal, los cuales será muy fácil editar utilizando las herramientas del agente.
Banner de notificación que muestra «El agente de datos quiere guardar dos aprendizajes en la memoria», con un elemento etiquetado «Métrica de ChatGPT de alto nivel» y un mensaje de confirmación a la derecha que dice «Guardado en la memoria global», con una marca de verificación de color verde.

Capa n.º 6: Contexto de ejecución

  • Cuando no hay un contexto previo para una tabla o cuando la información existente está obsoleta, el agente puede realizar consultas en vivo al almacén de datos para inspeccionar y examinar la tabla directamente. Esto le permite validar esquemas, entender los datos en tiempo real y responder de forma oportuna.
  • El agente también puede comunicarse con otros sistemas de la plataforma de datos (metadata service, Airflow, Spark) según sea necesario para obtener un contexto de datos más amplio fuera del almacén.

We run a daily offline pipeline that aggregates table usage, human annotations, and Codex-derived enrichment into a single, normalized representation. This enriched context is then converted into embeddings using the OpenAI embeddings API(se abre en una ventana nueva) and stored for retrieval. At query time, the agent pulls only the most relevant embedded context via retrieval-augmented generation(se abre en una ventana nueva) (RAG) instead of scanning raw metadata or logs. This makes table understanding fast and scalable, even across tens of thousands of tables, while keeping runtime latency predictable and low. Runtime queries are issued to our data warehouse live as needed.

Diagrama titulado «Recuperación de contexto en el agente de datos». Las capas de preprocesamiento sin conexión (uso de tablas, anotaciones humanas, enriquecimiento de Codex, conocimiento institucional y memoria) nutren las integraciones de RAG. La recuperación en vivo muestra al agente que consultando una base de datos mediante búsqueda semántica o recuperación exacta de texto para generar contexto en tiempo de ejecución.

Together, these layers ensure the agent’s reasoning is grounded in OpenAI’s data, code, and institutional knowledge, dramatically reducing errors and improving answer quality.

Built to think and work like a teammate

One-shot answers work when the problem is clear, but most questions aren’t. More often, arriving at the correct result requires back-and-forth refinement and some course correction.

The agent is built to behave like a teammate you can reason with. It’s a conversational, always-on and handles both quick answers and iterative exploration.

It carries over complete context across turns, so users can ask follow-up questions, adjust their intent, or change direction without restating everything. If the agent starts heading down the wrong path, users can interrupt mid-analysis and redirect it, just like working with a human collaborator who listens instead of plowing ahead.

When instructions are unclear or incomplete, the agent proactively asks clarifying questions. If no response is provided, it applies sensible defaults to make progress. For example, if a user asks about business growth with no date range specified, it may assume the last seven or 30 days. These priors allow it to stay responsive and non-blocking while still converging on the right outcome.

The result is an agent that works well both when you know exactly what you want (e.g., “Tell me about this table”) and just as strong when you’re exploring (e.g., “I’m seeing a dip here, can we break this down by customer type and timeframe?”). 

After rollout, we observed that users frequently ran the same analyses for routine repetitive work. To expedite this, the agent's workflows package recurring analyses into reusable instruction sets. Examples include workflows for weekly business reports and table validations. By encoding context and best practices once, workflows streamline repeat analyses and ensure consistent results across users.

Barra de entrada de la IU con el texto de marcador de posición «Haz una pregunta sobre datos.» Debajo hay un botón con la etiqueta «Usar un flujo de trabajo», y a la derecha hay iconos de micrófono y de envío. La barra tiene esquinas redondeadas y se encuentra sobre un fondo oscuro.

Moving fast without breaking trust

Building an always-on, evolving agent means quality can drift just as easily as it can improve. Without a tight feedback loop, regressions are inevitable and invisible. The only way to scale capability without breaking trust is through systematic evaluation.

In this section, we’ll discuss how we leverage OpenAI’s Evals API(se abre en una ventana nueva) to measure and protect the agent’s response quality.

Its Evals are built on curated sets of question-answer pairs. Each question targets an important metric or analytical pattern we care deeply about getting right, paired with a manually authored “golden” SQL query that produces the expected result. For each eval, we send the natural language question to its query-generation endpoint, execute the generated SQL, and compare the output against the result of the expected SQL.

Diagrama titulado «Flujo de evaluación del agente de datos». Pares de evaluación de preguntas y respuestas con SQL componen un paso de generación que produce SQL y resultados. La API Evals de OpenAI compara los resultados generados frente a los esperados utilizando comparaciones de dataframe y SQL, y ofrece una puntuación y un razonamiento.

Evaluation doesn’t rely on naive string matching. Generated SQL can differ syntactically while still being correct, and result sets may include extra columns that don’t materially affect the answer. To account for this, we compare both the SQL and the resulting data, and feed these signals into OpenAI’s Evals grader. The grader produces a final score along with an explanation, capturing both correctness and acceptable variation.

These evals are like unit tests that run continuously during development to identify regressions as canaries in production; this allows us to catch issues early and confidently iterate as the agent's capabilities expand.

Agent security

Our agent plugs directly into OpenAI’s existing security and access-control model. It operates purely as an interface layer, inheriting and enforcing the same permissions and guardrails that govern OpenAI’s data. 

All of the agent’s access is strictly pass-through, meaning users can only query tables they already have permission to access. When access is missing, it flags this or falls back to alternative datasets the user is authorized to use.

Finally, it's built for transparency. Like any system, it can make mistakes. It exposes its reasoning process by summarizing assumptions and execution steps alongside each answer. When queries are executed, it links directly to the underlying results, allowing users to inspect raw data and verify every step of the analysis.

Lessons learned

Building our agent from scratch surfaced practical lessons about how agents behave, where they struggle, and what actually makes them reliable at scale.

Lesson #1: Less is More

Early on, we exposed our full tool set to the agent, and quickly ran into problems with overlapping functionality. While this redundancy can be helpful for specific custom cases and is more obvious to a human when manually invoking, it’s confusing to agents. To reduce ambiguity and improve reliability, we restricted and consolidated certain tool calls.

Lesson #2: Guide the Goal, Not the Path

We also discovered that highly prescriptive prompting degraded results. While many questions share a general analytical shape, the details vary enough that rigid instructions often pushed the agent down incorrect paths. By shifting to higher-level guidance and relying on GPT‑5’s reasoning to choose the appropriate execution path, the agent became more robust and produced better results.

Lesson #3: Meaning Lives in Code

Schemas and query history describe a table’s shape and usage, but its true meaning lives in the code that produces it. Pipeline logic captures assumptions, freshness guarantees, and business intent that never surface in SQL or metadata. By crawling the codebase with Codex, our agent understands how datasets are actually constructed and is able to better reason about what each table actually contains. It can answer “what’s in here” and “when can I use it” far more accurately than from warehouse signals alone. 

Same vision, new tools

We’re constantly working to improve our agent by increasing its ability to handle ambiguous questions, improving its reliability and accuracy with stronger validations, and integrating it more deeply into workflows. We believe it should blend naturally into how people already work, instead of functioning like a separate tool.

While our tooling will keep benefiting from underlying improvements in agent reasoning, validation, and self-correction, our team’s mission remains the same: seamlessly deliver fast, trustworthy data analysis across OpenAI’s data ecosystem.

Autor

Bonnie Xu, Aravind Suresh y Emma Tang

Agradecimientos

Un agradecimiento especial a los equipos de Productividad de Datos y Ciencia de Datos, así como a nuestros numerosos usuarios de diferentes funciones por su experimentación y comentarios.