Liwati menyang isi utama
OpenAI

29 Januari 2026

Rekayasa

Ndelok njero agen data internal OpenAI

Dening Bonnie Xu, Aravind Suresh, lan Emma Tang

Lagi dimuat…

Data nguwataké cara sistem sinau, produk berkembang, lan perusahaan njupuk keputusan. Nanging njaluk jawaban kanthi cepet, bener, lan nganggo konteks sing pas kerep luwih angel tinimbang sing kuduné. Kanggo nggampangaké iki nalika OpenAI saya skala, kami mbangun agen data AI internal khusus duwéké dhewe sing njelajah lan nalar ing platform kami dhéwé.

Agen kami yaiku alat internal kustom mung kanggo panggunaan njero (dudu penawaran eksternal), dibangun khusus ngubengi data, ijin, lan workflow OpenAI. Kami nuduhaké carané kami mbangun lan nggunakaké alat iki kanggo ngangkat conto cara nyata lan migunani nalika AI ndhukung kerja saben dina ing saindenging tim kami. Alat OpenAI sing kami gunakaké kanggo mbangun lan mbukak agen iki (Codex, model unggulan GPT‑5 kami, Evals API(mbukak ing jendhela anyar), lan Embeddings API(mbukak ing jendhela anyar)) yaiku alat sing padha sing kami sediaaké kanggo developer ing endi waé.

Agen data kami ngidini karyawan pindhah saka pitakonan menyang wawasan mung sajroning menit, dudu dina. Iki nurunaké alangan kanggo narik data lan analisis sing bernuansa ing kabèh fungsi, ora mung tim data kami. Dina iki, tim ing saindenging Teknik, Data Science, Go-To-Market, Keuangan, lan Riset ing OpenAI nggunakaké agen iki kanggo njawab pitakonan data berdampak dhuwur. Contoné, agen iki bisa mbantu njawab carané ngevaluasi peluncuran lan mangertèni kesehatan bisnis, kabèh liwat format basa alami sing intuïtif. Agen iki nggabungaké kawruh tingkat tabel sing didhukung Codex karo konteks produk lan organisasi. Sistem memori sinau terus-terusan tegesé agen iki uga saya apik saben puteran.

Tangkapan layar nuduhaké pangguna njaluk WAU ChatGPT ing 6 Okt 2025 dibandhingaké karo DevDay 2023. Agen nglaporaké ≈800M WAU kanggo 2025 lan ≈100M kanggo 2023, karo cathetan nuduhaké owah-owahan +700M lan kenaikan ~8×, banjur diterusaké karo konteks panjelas.

Ing tulisan iki, kami bakal njlentrehaké kenapa kami butuh agen data AI khusus, apa sing ndadèkaké konteks data sing diperkaya kode lan kemampuan sinau dhiriné migunani banget, lan piwulang sing kami petik sajroning prosesé.

Kenapa kami butuh alat kustom

Platform data OpenAI nglayani luwih saka 3.5k pangguna internal sing nyambut gawe ing saindenging Teknik, Produk, lan Riset, nyakup luwih saka 600 petabyte data ing 70k dataset. Ing ukuran kaya iki, mung golek tabel sing pas waé bisa dadi salah siji bagéan paling nyita wektu ing analisis.

Kaya sing diomongaké salah siji pangguna internal:

“Kami nduwé akèh tabel sing cukup mirip, lan aku ngentèkaké akèh wektu kanggo mangertèni bedané lan sing endi kudu dienggo. Ana sing nyakup pangguna sing ora login, ana sing ora. Ana sing nduwé kolom tumpang tindih; angel mbedakaké sing endi sing endi.”

Senajan tabel sing bener wis kapilih, ngasilaké asil sing bener isih bisa dadi tantangan. Analis kudu nalar babagan data tabel lan hubungan antartabel supaya transformasi lan filter ditrapaké kanthi bener. Mode gagal umum—join many-to-many, kesalahan filter pushdown, lan null sing ora ketangani—bisa kanthi meneng-meneng mbatalaké asil. Ing skala OpenAI, analis kuduné ora perlu mbuwang wektu kanggo ndandani semantik SQL utawa kinerja kueri: fokusé kuduné ana ing netepaké métrik, mriksa asumsi, lan njupuk keputusan adhedhasar data.

Tangkapan layar kode SQL sing nemtokaké rong CTE—order_enriched lan monthly_segment—sing nggabungaké data geografi pelanggan, nurunaké kolom order-month, lan ngetung agregat saben wulan kayata jumlah pesenan, penghasilan kotor, penghasilan kalebu pajeg, lan rata-rata dina kirim-nganti-diterima.

Pernyataan SQL iki dawané luwih saka 180 baris. Ora gampang ngerti apa kita nggabungaké tabel sing bener lan ngueri kolom sing bener.

Carané kerja

Ayo kita mlaku bareng ndeleng apa agen kami iku, carané nyusun konteks, lan carané agen tetep ningkataké dhiri.

Agen kami didhukung déning GPT‑5.2 lan dirancang kanggo nalar ing platform data OpenAI. Agen iki kasedhiya ing endi waé karyawan wis nyambut gawe: dadi agen Slack, liwat antarmuka web, ing njero IDE, ing Codex CLI liwat MCP(mbukak ing jendhela anyar), lan langsung ing app ChatGPT internal OpenAI liwat konektor MCP(mbukak ing jendhela anyar).

Diagram kanthi judhul “Carané agen data kerja.” Titik mlebu—Agent-UI, Local Agent-MCP, Remote Agent-MCP, lan Slack Agent—mlebu menyang Agent-API. API iki nyambung karo kawruh data internal lan konteks perusahaan, nyelarasaké karo gudang data lan sumber platform, lan ijol-ijolan panjalukan karo model GPT-5.2 liwat Agent-MCP.

Pangguna bisa takon pitakonan kompleks lan kabuka sing biasané mbutuhaké pirang-pirang puteran eksplorasi manual. Delengen prompt conto iki, sing nggunakaké dataset tes: “Kanggo perjalanan taksi NYC, pasangan ZIP jemput-nganti-turun endi sing paling ora andal, kanthi jurang paling gedhé antarané wektu perjalanan khas lan kasus paling ala, lan kapan variasi iku kedadéan?”

Agen nangani analisis saka ujung nganti ujung, wiwit mangertèni pitakonan, njelajah data, mbukak kueri, nganti nyintesis temuan.

Tangkapan layar nuduhaké pangguna takon pasangan ZIP jemput→turun taksi NYC endi sing paling “ora andal.” Agen nerangaké nggunakaké ~21k perjalanan saka samples.nyctaxi.trips, netepaké khas (p50) vs kasus paling ala (p95), nerapaké filter, lan njlèntrèhaké carané ngenali kapan perjalanan paling dawa saben pasangan ZIP kedadéan.

Wangsulan agen kanggo pitakonan kasebut.

Salah siji kekuwatan utama agen iki yaiku carané agen nalar liwat masalah. Tinimbang nuruti skrip sing tetep, agen ngevaluasi kemajuané dhéwé. Yen asil tengah katon salah (umpamané, yen ana nol baris amarga join utawa filter sing salah), agen nyelidiki apa sing keliru, nyetel pendekatané, lan nyoba manèh. Sajroning proses iki, agen njaga konteks lengkap lan nggawa pembelajaran maju antar langkah. Proses loop tertutup sing sinau dhéwé iki mindhah iterasi saka pangguna menyang agen dhéwé, saéngga asil metu luwih cepet lan analisis kanthi kualitas luwih dhuwur kanthi konsisten tinimbang workflow manual.

Tangkapan layar workflow tugas sing nuduhaké rencana langkah demi langkah agen AI kanggo nganalisis durasi perjalanan taksi NYC. Isiné kalebu tujuan, telusur internal, inspeksi skema, potongan kode, lan nalar babagan ngetung sebaran p50/p95, ngenali pasangan ZIP sing ora andal, lan ngrancang kueri SQL.

Nalar agen kanggo ngenali pasangan jemput–turun taksi NYC sing paling ora andal.

Agen iki nyakup workflow analitik lengkap: nemokaké data, mbukak SQL, lan nerbitaké notebook lan laporan. Agen ngerti kawruh perusahaan internal, bisa nelusur web kanggo informasi eksternal, lan saya apik saka wektu ke wektu liwat panggunaan sing dipelajari lan memori.

Konteks iku kabèh

Jawaban bermutu dhuwur gumantung marang konteks sing sugih lan akurat. Tanpa konteks, malah model sing kuwat bisa ngasilaké asil salah, kayata salah kira jumlah pangguna kanthi adoh banget utawa salah napsiraké istilah internal.

Tangkapan layar pangguna takon, “Pira DAU mlebu ChatGPT Image Gen kanggo 30 dina pungkasan?” kanthi garis status ing ngisor sing nuduhaké agen wis “Makarya 22m 41s,” nuduhaké kueri sing suwé isih lagi mlaku.

Agen tanpa memori, ora bisa nggawe kueri kanthi efektif.

Tangkapan layar nuduhaké pangguna takon, “Pira DAU mlebu ChatGPT Image Gen kanggo 30 dina pungkasan?” Ing ngisor pesen, ana garis status sing ujar “Wis mlaku 1m 22s,” nuduhaké kueri isih mlaku lan butuh wektu suwe kanggo rampung.

Memori agen ndadèkaké kueri luwih cepet kanthi nemokaké tabel sing bener.

Kanggo ngindhari mode gagal iki, agen dibangun ngubengi pirang-pirang lapisan konteks sing mendarasaké agen iki ing data lan kawruh institusional OpenAI.

Diagram kanthi judhul “Lapisan konteks agen data” sing nuduhaké enem tingkat tumpuk: 1) Panggunaan Tabel, 2) Anotasi Manungsa, 3) Pengayaan Codex, 4) Kawruh Institusional, 5) Memori, lan 6) Konteks Runtime. Saben lapisan katon minangka garis horisontal kanthi wangun piramida.

Lapisan #1: Panggunaan Tabel

  • Pendasaran metadata: Agen ngandelaké metadata skema (jeneng kolom lan jinis data) kanggo nuntun panulisan SQL lan nggunakaké lineage tabel (umpamané, hubungan tabel hulu lan hilir) kanggo maringi konteks babagan sesambungan antartabel.
  • Inferensi kueri: Nginjest kueri sajarah mbantu agen mangertèni carané nulis kueri dhéwé lan tabel endi sing biasané dijoin bebarengan.

Lapisan #2: Anotasi Manungsa

  • Deskripsi sing dikurasi babagan tabel lan kolom sing diwènèhaké para ahli domain, nyekel maksud, semantik, makna bisnis, lan cathetan penting sing ora gampang diinferensikaké saka skema utawa kueri lawas.

Metadata waé ora cukup. Kanggo tenanan mbedakaké tabel, sampeyan kudu mangertèni carané tabel iku digawé lan asal-usulé saka ngendi.

Lapisan #3: Pengayaan Codex

  • Kanthi nurunaké definisi tingkat kode saka sawijining tabel, agen mbangun pangerten sing luwih jero babagan apa sejatine isi data kasebut. 
    • Nuanse babagan apa sing disimpen ing tabel lan carané diturunaké saka sawijining event analytics maringi informasi tambahan. Contoné, agen bisa maringi konteks babagan keunikan nilai, sepira kerepé data tabel dianyari, cakupan data (umpamané, yen tabel ora nyakup kolom tartamtu, tabel nduwé tingkat granularitas iki), lan liya-liyané.
  • Iki maringi konteks panggunaan sing luwih sugih kanthi nuduhaké carané tabel digunakaké ngluwihi SQL ing Spark, Python, lan sistem data liyané.
  • Tegesé, agen bisa mbedakaké tabel-tabel sing katon mirip nanging béda ing bab kritis. Contoné, agen bisa ngerti apa sawijining tabel mung nyakup trafik ChatGPT first-party. Konteks iki uga dianyari kanthi otomatis, dadi tetep anyar tanpa pangopènan manual.
Diagram titled “Codex-enriched knowledge pipeline.” Popular tables feed into multiple Codex tasks, which extract details from the OpenAI codebase, including a table’s purpose, grain and primary keys, downstream usage patterns, alternate table options, and data freshness.

Lapisan #4: Kawruh Institusional 

  • Agen bisa ngakses Slack, Google Docs, lan Notion, sing nyekel konteks perusahaan penting kayata peluncuran, insiden reliabilitas, jeneng kode internal lan alat, uga definisi kanonis lan logika perhitungan kanggo métrik utama.
  • Dokumen iki diingest, di-embedding, lan disimpen bebarengan karo metadata lan ijin. Layanan retrieval nangani kontrol akses lan caching nalika runtime, saéngga agen bisa kanthi efisien lan aman narik informasi iki.
Tangkapan layar pangguna takon kenapa panggunaan konektor mudhun ing Desember. Agen nerangaké penurunan iki amarga masalah logging wiwit 13 Nov 2025, sing nyebabaké panggunaan kaétung kurang sawisé peluncuran ChatGPT 5.1. Telemetri lawas dadi kosong nganti ana event anyar dadi sumber bebener.

Lapisan #5: Memori

  • Nalika agen diwènèhi koreksi utawa nemokaké nuanse babagan pitakonan data tartamtu, agen bisa nyimpen pembelajaran iki kanggo wektu salajengé, saéngga bisa terus ningkat bebarengan karo panggunané. 
    • Akibaté, jawaban ing mangsa ngarep diwiwiti saka dhasar sing luwih akurat tinimbang bola-bali ketemu masalah sing padha.
    • Tujuan memori yaiku njaga lan nggunakaké manèh koreksi, filter, lan watesan sing ora cetha nanging kritis kanggo kabeneran data lan angel diinferensikaké saka lapisan-lapisan liyané waé. 
    • Contoné, ing siji kasus, agen ora ngerti carané nyaring eksperimen analytics tartamtu (agen ngandelaké pencocokan marang string tartamtu sing ditemtokaké ing gerbang eksperimen). Memori penting banget ing kéné supaya agen bisa nyaring kanthi bener, tinimbang mung nyoba string match sing samar.
  • Nalika sampeyan maringi koreksi marang agen utawa nalika agen nemokaké pembelajaran saka obrolan sampeyan, agen bakal njaluk sampeyan nyimpen memori kasebut kanggo wektu salajengé. 
    • Memori uga bisa digawé lan disunting manual déning pangguna.
    • Memori nduwé cakupan tingkat global lan pribadi, lan tooling agen ndadèkaké gampang kanggo nyuntingé.
Banner notifikasi nuduhaké “Agen data pengin nyimpen 2 pembelajaran menyang memori,” karo item berlabel “Metrik Tingkat Atas ChatGPT” lan pesen konfirmasi ing sisih tengen sing maos “Disimpen menyang memori global” nganggo tandha centhang ijo.

Lapisan #6: Konteks Runtime

  • Nalika durung ana konteks sadurungé kanggo sawijining tabel utawa nalika informasi sing ana wis lawas, agen bisa ngirim kueri langsung menyang gudang data kanggo mriksa lan ngueri tabel kasebut kanthi langsung. Iki ngidini agen mvalidasi skema, mangertèni data kanthi wektu nyata, lan nanggapi sakcukupe.
  • Agen uga bisa komunikasi karo sistem Data Platform liyané (layanan metadata, Airflow, Spark) yen dibutuhaké kanggo entuk konteks data sing luwih jembar sing ana ing njaba gudang data.

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(mbukak ing jendhela anyar) and stored for retrieval. At query time, the agent pulls only the most relevant embedded context via retrieval-augmented generation(mbukak ing jendhela anyar) (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.

Diagram kanthi judhul “Retrieval konteks ing agen data.” Lapisan preprocessing offline—panggunaan tabel, anotasi manungsa, pengayaan Codex, kawruh institusional, lan memori—mlebu menyang embedding RAG. Retrieval langsung nuduhaké agen ngueri database liwat telusur semantik utawa retrieval teks persis kanggo ngasilaké konteks runtime.

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.

Bilah input UI kanthi teks placeholder “Takon pitakonan data.” Ing ngisoré ana tombol berlabel “Gunakna workflow,” lan ing sisih tengen ana ikon mikropon lan kirim. Bilah iki nduwé pojok mbunder lan mapan ing latar mburi peteng.

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(mbukak ing jendhela anyar) 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.

Diagram kanthi judhul “Pipeline evaluasi agen data.” Pasangan eval T&J kanthi SQL sing diarepaké mlebu menyang langkah generasi sing ngasilaké SQL lan asil. OpenAI Evals mbandhingaké asil sing digawé vs. sing diarepaké nganggo dataframe lan perbandingan SQL, banjur ngasilaké skor lan nalar.

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.

Pangarang

Bonnie Xu, Aravind Suresh, Emma Tang

Ucapan matur nuwun

Matur nuwun khusus kanggo tim Data Productivity lan Data Science, uga kanggo akèh pangguna lintas fungsi amarga eksperimen lan umpan baliké.