Pasar al contenido principal
OpenAI

29 de enero de 2026

Ingeniería

Dentro 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 las empresas toman decisiones. Pero obtener respuestas rápidamente, correctamente y con el contexto adecuado suele ser más difícil de lo que debería. Para facilitar esto a medida que OpenAI crece, desarrollamos nuestro propio agente de datos de IA personalizado, creado internamente que explora y razona sobre nuestra propia plataforma.

Nuestro agente es una herramienta personalizada de uso exclusivo interno (no es una oferta externa), diseñada específicamente en torno a los datos, permisos y flujos de trabajo de OpenAI. Estamos mostrando cómo lo construimos y lo usamos para ayudar a destacar ejemplos de las formas reales y significativas en que la IA puede apoyar el trabajo diario en nuestros equipos. Las herramientas de OpenAI que usamos para construirlo y ejecutarlo (Codex, nuestro modelo insignia GPT‑5, la Evals API(se abre en una nueva ventana) y la Embeddings API(se abre en una nueva ventana)) son las mismas herramientas que ponemos a disposición de los desarrolladores en todo el mundo.

Nuestro agente de datos permite a los empleados pasar de la pregunta a la información en minutos, no en días. Esto reduce la barrera para extraer datos y realizar análisis matizados en todas las funciones, no solo por parte de nuestro equipo de datos. Hoy, los equipos de Ingeniería, Ciencia de Datos, Go-To-Market, Finanzas e Investigación en OpenAI se apoyan en el agente para responder preguntas de datos de gran impacto. Por ejemplo, puede ayudar a responder cómo evaluar lanzamientos y comprender la salud empresarial, todo 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 de aprendizaje continuo significa que también mejora con cada giro.

Captura de pantalla que muestra a un usuario solicitando ChatGPT WAU el 6 de octubre de 2025 en comparación con DevDay 2023. El agente informa ≈800 millones de WAU para 2025 y ≈100 millones para 2023, con notas que muestran un cambio de +700 millones y un aumento de ~8×, seguido de un contexto explicativo.

En esta publicación, vamos a desglosar por qué necesitábamos un agente de datos de IA a medida, qué hace que su contexto de datos enriquecido con código y su capacidad de autoaprendizaje sean tan útiles, y las 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 Ingeniería, Producto e Investigación, y abarca más de 600 petabytes de datos en 70 000 conjuntos de datos. A esa escala, simplemente encontrar la tabla correcta puede ser una de las partes más lentas del análisis.

Como dijo un usuario interno:

“Tenemos muchas tablas que son bastante similares, y paso mucho tiempo tratando de averiguar en qué se diferencian y cuál debo usar. Algunos incluyen a usuarios que han cerrado sesión, otros no. Algunos tienen campos que se superponen; es difícil distinguir qué es qué”.

Incluso con las tablas correctas seleccionadas, producir resultados correctos puede ser un desafío. Los analistas deben analizar los datos de las tablas y las relaciones entre ellas para asegurar que las transformaciones y los filtros se apliquen correctamente. Modos de falla comunes—uniones de muchos a muchos, errores de empuje de filtros y valores nulos no manejados—pueden invalidar los resultados de manera silenciosa. A la escala de OpenAI, los analistas no deberían tener que invertir tiempo en depurar la semántica de SQL o el rendimiento de las consultas; su enfoque debería estar en definir métricas, validar supuestos y tomar decisiones basadas en datos.

Captura de pantalla del código SQL que define dos CTEs—order_enriched y monthly_segment—que combinan datos de geografía del cliente, derivan campos de mes de pedido y calculan agregados mensuales como el número de pedidos, ingresos brutos, 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

Veamos qué es nuestro agente, cómo organiza el contexto y cómo sigue mejorando por sí mismo.

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

Diagrama titulado “Cómo funciona el agente de datos”. Los puntos de entrada—Agent-UI, Local Agent-MCP, Remote Agent-MCP y Slack Agent—alimentan una 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 normalmente requerirían múltiples rondas de exploración manual. Toma este ejemplo de prompt, que utiliza un conjunto de datos de prueba: “Para los viajes en taxi de NYC, ¿qué pares de códigos postales (ZIP) de recogida a destino son los más poco confiables, con la mayor diferencia entre los tiempos de viaje típicos y los del peor de los casos, y cuándo ocurre esa variabilidad?”

El agente gestiona el análisis de principio a fin, desde comprender la pregunta hasta explorar los datos, ejecutar consultas y sintetizar los hallazgos.

Captura de pantalla que muestra a un usuario preguntando cuáles son los pares de códigos postales de recogida→destino de taxi en NYC más “poco confiables”. El agente explica usando aproximadamente 21 000 viajes de samples.nyctaxi.trips, define lo típico (p50) frente al peor de los casos (p95), aplica filtros y describe cómo identifica cuándo ocurrió el viaje más largo de cada par de códigos ZIP.

La respuesta del agente a la pregunta.

Uno de los superpoderes del agente es su capacidad para razonar y resolver problemas. En lugar de seguir un guion fijo, el agente evalúa su progreso. Si un resultado intermedio parece incorrecto (p. ej., si tiene cero filas debido a una unión o un filtro incorrectos), el agente investiga qué salió mal, ajusta su enfoque y lo intenta de nuevo. A lo largo de este proceso, mantiene el contexto completo y lleva los aprendizajes de un paso al siguiente. Este proceso de bucle cerrado y autoaprendizaje traslada la iteración del usuario al propio agente, permitiendo obtener resultados más rápidos y análisis consistentemente 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 viajes en taxi de 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, la identificación de pares de ZIP poco fiables y la planificación de consultas SQL.

El razonamiento del agente para identificar los pares de recogida y entrega de taxi en NYC menos confiables.

El agente cubre todo el flujo de trabajo analítico: descubrimiento de datos, ejecución de SQL y publicación de cuadernos e informes. Comprende el conocimiento interno 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 es todo

Las respuestas de alta calidad dependen de un contexto rico y preciso. Sin contexto, incluso los modelos más sólidos pueden producir resultados incorrectos, como estimar erróneamente el número de usuarios o malinterpretar la terminología interna.

Captura de pantalla de un usuario preguntando: “¿Cuál fue el DAU de ChatGPT Imágenes con sesión iniciada en los últimos 30 días?” con una línea de estado 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 preguntando: “¿Cuál fue el DAU con sesión iniciada de ChatGPT Imágenes en los últimos 30 días?” Debajo del mensaje, una línea de estado dice “Worked for 1m 22s”, lo que indica que la consulta aún se está ejecutando y está tardando mucho en completarse.

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

Para evitar estos modos de falla, el agente se construye en torno a múltiples capas de contexto que lo anclan en los datos y el 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 tablas

  • Fundamentación en metadatos: El agente se basa en los metadatos del esquema (nombres de columnas y tipos de datos) para informar 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 diferentes tablas.
  • Inferencia de consultas: Ingerir consultas históricas ayuda al agente a comprender cómo redactar sus propias consultas y qué tablas suelen combinarse.

Capa n.º 2: Anotaciones humanas

  • Descripciones curadas de tablas y columnas proporcionadas por expertos en el dominio, capturando la intención, la semántica, el significado empresarial y las advertencias conocidas que no se infieren fácilmente de los esquemas o consultas pasadas.

Los metadatos por sí solos no bastan. Para distinguir realmente las tablas, necesitas entender cómo fueron creadas y de dónde se originan.

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 analítico proporcionan información adicional. Por ejemplo, puede proporcionar contexto sobre la singularidad de los valores, con qué frecuencia 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 ofrece un contexto de uso mejorado al demostrar cómo se utiliza la tabla más allá de SQL en Spark, Python y otros sistemas de datos.
  • Esto significa que el agente puede distinguir entre tablas que parecen similares pero difieren en aspectos fundamentales. Por ejemplo, puede determinar si una tabla solo incluye tráfico de ChatGPT de primera mano. Este contexto también se actualiza automáticamente, por lo que se mantiene actualizado sin necesidad de mantenimiento manual.
Diagrama titulado “Canalización de conocimiento enriquecida con Codex”. Las tablas populares alimentan múltiples tareas de Codex, que extraen detalles del código base de OpenAI, incluyendo el propósito de la tabla, el nivel de detalle y las claves primarias, los patrones de uso posteriores, las opciones de tablas alternativas y la 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 confiabilidad, nombres en clave internos, herramientas, y las definiciones canónicas y la lógica de cálculo para las métricas clave.
  • Estos documentos se ingieren, se incrustan y se 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, permitiendo al agente obtener 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 subconteo del uso después del lanzamiento de ChatGPT 5.1. La telemetría heredada quedó vacía hasta que un evento más reciente se convirtió en la fuente de verdad.

Capa n.º 5: Memoria

  • Cuando el agente recibe correcciones o descubre matices sobre ciertas preguntas de datos, puede guardar estos aprendizajes para la próxima vez, lo que le permite mejorar constantemente con sus usuarios. 
    • Como resultado, las respuestas futuras parten de una base más precisa en vez de encontrarse repetidamente con los mismos problemas.
    • El objetivo de la memoria es retener y reutilizar correcciones, filtros y restricciones no evidentes que son cruciales para la exactitud de los datos, pero difíciles de deducir solo a partir de las otras capas. 
    • Por ejemplo, en un caso, el agente no sabía cómo filtrar un experimento analítico en particular (se basaba en la coincidencia con una cadena específica definida en una puerta de experimento). La memoria era crucialmente importante aquí para asegurar que pudiera filtrar correctamente, en lugar de intentar hacer una coincidencia difusa de cadenas.
  • Cuando le das al agente una corrección o cuando encuentra un aprendizaje de tu conversación, te hará un prompt para que guardes esa memoria para la próxima vez. 
    • Las memorias también pueden ser creadas y editadas manualmente por los usuarios.
    • Las memorias se definen a nivel global y personal, y las herramientas del agente facilitan su edición.
Banner de notificación que muestra “El agente de datos quiere guardar 2 aprendizajes en la memoria”, con un elemento etiquetado “ChatGPT Top-level Metrics” y un mensaje de confirmación a la derecha que dice “Guardado en la memoria global” con una marca de verificación verde.

Capa n.º 6: Contexto de ejecución en tiempo real

  • Cuando no hay un contexto previo para una tabla o cuando la información existente está obsoleta, el agente puede realizar consultas en tiempo real al almacén de datos para inspeccionar y consultar la tabla directamente. Esto le permite validar esquemas, entender los datos en tiempo real y responder de manera adecuada.
  • 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 que existe 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 nueva ventana) and stored for retrieval. At query time, the agent pulls only the most relevant embedded context via retrieval-augmented generation(se abre en una nueva ventana) (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 offline—uso de tablas, anotaciones humanas, enriquecimiento de Codex, conocimiento institucional y memoria—alimentan las incrustaciones de RAG. La recuperación en vivo muestra al agente que consulta 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 interfaz de usuario 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 están los íconos de micrófono y 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 nueva ventana) 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”. Los pares de evaluación de preguntas y respuestas (Q&A) con SQL esperado alimentan un paso de generación que produce SQL y resultados. OpenAI Evals compara los resultados generados con los esperados utilizando comparaciones de dataframe y SQL, y genera un puntaje 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

Agradecimientos especiales a los equipos de Productividad de Datos y Ciencia de Datos, así como a nuestros numerosos usuarios interfuncionales por su experimentación y comentarios.