Wie OpenAI Codex verwendet
Codex wird bei OpenAI täglich in zahlreichen technischen Teams eingesetzt, darunter Sicherheit, Produktentwicklung, Frontend, API, Infrastruktur und Performance-Engineering. Teams nutzen es, um eine Vielzahl von Entwicklungsaufgaben zu beschleunigen – von der Analyse komplexer Systeme und dem Refaktorisieren großer Codebasen bis hin zur Bereitstellung neuer Funktionen und der Behebung von Vorfällen unter hohem Zeitdruck.
Auf Grundlage von Interviews mit OpenAI-Entwickler:innen und internen Nutzungsdaten haben wir Anwendungsfälle und bewährte Verfahrensweisen zusammengestellt, die hervorheben, wie Codex unseren Teams hilft, schneller voranzukommen, die Arbeitsqualität zu verbessern und Komplexität im großen Maßstab zu bewältigen.
Codex hilft unseren Teams, sich beim Onboarding, Debugging oder bei der Untersuchung eines Vorfalls schnell einen Überblick über unbekannte Teile der Codebasis zu verschaffen.
Sie verwenden Codex häufig, um die Kernlogik eines Features zu finden, Beziehungen zwischen Services oder Modulen abzubilden und den Datenfluss durch ein System nachzuverfolgen. Es hilft außerdem dabei, Architekturmuster oder fehlende Bestandteile der Dokumentation sichtbar zu machen, deren Erstellung sonst einen erheblichen manuellen Aufwand erfordern würde.
Während der Reaktion auf Vorfälle unterstützt Codex Entwickler:innen dabei, sich schnell in neue Themengebiete einzuarbeiten, indem es Interaktionen zwischen Komponenten aufzeigt oder nachverfolgt, wie sich Fehlerzustände über Systeme hinweg ausbreiten.
Anekdoten aus unseren Teams
„Wenn ich einen Fehler behebe, nutze ich den Fragemodus, um zu prüfen, wo derselbe Fehler sonst noch in der Codebasis auftreten könnte“
Wo befindet sich die Authentifizierungslogik in diesem Repository?
Fasse zusammen, wie Anfragen durch diesen Dienst vom Einstiegspunkt bis zur Antwort verarbeitet werden.
Welche Module interagieren mit [Modulnamen einfügen] und wie werden Fehler behandelt?
Codex wird häufig verwendet, um Änderungen vorzunehmen, die sich über mehrere Dateien oder Pakete erstrecken. Zum Beispiel macht es Codex einfach, Änderungen konsistent anzuwenden, wenn Entwickler:innen eine API aktualisieren, die Implementierung eines Musters ändern oder zu einer neuen Abhängigkeit migrieren.
Das ist besonders hilfreich, wenn dieselbe Aktualisierung in Dutzenden von Dateien vorgenommen werden muss oder wenn die Aktualisierung ein Verständnis der Struktur und Abhängigkeiten erfordert, das sich mit regulären Ausdrücken oder per Suchen-und-Ersetzen nicht ohne Weiteres erfassen lässt.
Du nutzt es außerdem für die Code-Bereinigung, indem du übergroße Module aufteilst, veraltete Muster durch moderne ersetzt oder Code auf bessere Testbarkeit vorbereitest.
Anekdoten aus unseren Teams
„Codex hat jeden alten getUserById( )-Aufruf durch unser neues Service-Muster ersetzt und den PR eröffnet. Es hat in wenigen Minuten das geschafft, wofür man sonst Stunden gebraucht hätte.“
Teile diese Datei nach Zuständigkeitsbereichen in separate Module auf und generiere Tests für jedes davon.
Stelle alle Callback-basierten Datenbankzugriffe auf async/await um.
Codex wird genutzt, um Leistungsengpässe zu erkennen und zu beheben.
Im Rahmen von Optimierungs- oder Zuverlässigkeitsmaßnahmen geben Entwickler:innen Codex einen Prompt, um langsame oder speicherintensive Codepfade zu analysieren, etwa ineffiziente Schleifen, redundante Operationen oder aufwendige Abfragen, und optimierte Alternativen vorzuschlagen, was häufig zu spürbaren Verbesserungen bei Effizienz und Zuverlässigkeit führt.
Codex wird auch verwendet, um die Code-Gesundheit zu unterstützen, indem riskante oder veraltete Muster identifiziert werden, die noch aktiv genutzt werden. Unsere Teams verlassen sich darauf, langfristige technische Altlasten zu reduzieren und Regressionen proaktiv zu verhindern.
Anekdoten aus unseren Teams
„Ich nutze Codex, um nach wiederholten kostspieligen DB-Aufrufen zu suchen. Es eignet sich hervorragend zum Erkennen von Hot Paths und zum Entwerfen gebündelter Abfragen, die ich später optimieren kann.“
Optimiere diese Schleife im Hinblick auf die Speichereffizienz und erkläre, warum deine Version schneller ist.
Finde wiederholte aufwendige Vorgänge in diesem Anfrage-Handler und schlage Caching-Möglichkeiten vor.
Schlage eine schnellere Methode für gebündelte DB-Abfragen in dieser Funktion vor.
Codex hilft Entwickler:innen, Tests schneller zu schreiben – besonders dort, wo die Testabdeckung gering oder gar nicht vorhanden ist.
Bei der Behebung von Fehlern oder beim Refactoring bitten Entwickler:innen Codex häufig, Tests vorzuschlagen, die Randfälle oder wahrscheinliche Fehlerpfade abdecken. Für neuen Code kann Codex basierend auf der Funktionssignatur und der umgebenden Logik Unit-Tests oder Integrationstests generieren.
Codex ist besonders hilfreich, um Grenzbedingungen wie leere Eingaben, maximale Länge oder ungewöhnliche, aber gültige Zustände zu identifizieren, die in ersten Tests oft übersehen werden.
Anekdoten aus unseren Teams
„Ich setze Codex über Nacht auf Module mit geringer Abdeckung an und wache mit lauffähigen Unit-Test-PRs auf.“
Schreibe Unit-Tests für diese Funktion, einschließlich Edge Cases und Fehlerpfaden.
Generiere einen eigenschaftsbasierten Test für dieses Sortierprogramm.
Erweitere diese Testdatei, um fehlende Szenarien zu Null-Eingaben und ungültigen Zuständen abzudecken.
Codex hilft Teams, schneller voranzukommen, indem es sowohl den Anfang als auch das Ende des Entwicklungszyklus beschleunigt.
Beim Start einer neuen Funktion verwenden Entwickler:innen es, um die Projektgrundstruktur und Boilerplate zu erstellen – indem sie Ordner, Module und API-Stubs generieren, um schnell lauffähigen Code bereitzustellen, ohne jeden Teil manuell verdrahten zu müssen.
Wenn sich Projekte der Veröffentlichung nähern, hilft Codex dabei, enge Fristen einzuhalten, indem es kleinere, aber unverzichtbare Aufgaben übernimmt, wie das Triagieren von Bugs, das Schließen letzter Implementierungslücken und das Generieren von Rollout-Skripten, Telemetrie-Hooks oder Konfigurationsdateien.
Es wird auch verwendet, um Produktfeedback in Ausgangscode umzuwandeln. Entwickler:innen fügen häufig eine Nutzeranfrage oder Spezifikation ein und lassen von Codex einen Rohentwurf erstellen, zu dem sie später zurückkehren und den sie weiter ausarbeiten können.
„Ich war den ganzen Tag in Meetings und habe trotzdem 4 Pull Requests zusammengeführt, weil Codex im Hintergrund gearbeitet hat.“
Lege eine neue API-Route für POST /events mit grundlegender Validierung und Logging an.
Generiere einen Telemetrie-Hook zur Nachverfolgung von Erfolg/Misserfolg des neuen Onboarding-Prozesses und verwende dabei diese Vorlage [Beispiel deines Telemetrie-Codes einfügen].
Erstelle eine Platzhalterimplementierung (Stub) auf Grundlage dieser Spezifikation: [Spezifikation oder Produktfeedback einfügen].
Codex hilft unseren Entwickler:innen, auch dann produktiv zu bleiben, wenn ihre Zeitpläne fragmentiert sind und sie häufig unterbrochen werden.
Es wird verwendet, um unfertige Arbeiten festzuhalten, Notizen in funktionierende Prototypen zu verwandeln oder neue Aufgaben für spätere Erkundungen anzulegen. Das macht es einfacher, die Arbeit zu pausieren und wieder aufzunehmen, ohne den Kontext zu verlieren – besonders, wenn sie in Bereitschaft sind oder viele Meetings haben.
„Wenn ich einen Drive-by-Fix sehe, starte ich eine Codex-Aufgabe, anstatt Branches zu wechseln, und prüfe den PR, sobald ich Zeit habe.“
Codex ist auch für offenere Aufgaben nützlich, etwa um alternative Lösungen zu finden oder Designentscheidungen zu validieren. Du kannst einen Prompt eingeben, um verschiedene Wege zur Lösung eines Problems auszuprobieren, unbekannte Muster erkunden oder Annahmen einem Stresstest unterziehen. Dies hilft dabei, Zielkonflikte sichtbar zu machen, Designoptionen zu erweitern und Implementierungsentscheidungen zu präzisieren.
Es wird auch verwendet, um zusammenhängende Fehler zu identifizieren. Ausgehend von einem bekannten Problem oder einer veralteten Methode kann Codex ähnliche Muster an anderer Stelle im Code erkennen, wodurch sich Regressionen leichter erkennen und Bereinigungsarbeiten einfacher abschließen lassen.
„Codex hilft mir, das Cold-Start-Problem zu lösen – ich füge eine Spezifikation und Dokumentation ein, und es erstellt ein Codegerüst oder zeigt mir, was ich vergessen habe.“
Wie würde das funktionieren, wenn das System ereignisgesteuert statt anfrage-/antwortgesteuert wäre?
Finde alle Module, die SQL-Strings manuell erstellen, anstatt unseren Abfrage-Generator zu verwenden.
Formuliere dies in einem funktionaleren Stil um und vermeide Mutationen und Seiteneffekte.
Codex funktioniert am besten, wenn es Struktur, Kontext und Raum für Iterationen bekommt. Hier sind einige der Gewohnheiten, die OpenAI-Teams entwickeln, um in der täglichen Arbeit kontinuierlich Nutzen daraus zu ziehen.
Für größere Änderungen starte Codex im Fragemodus, um einen Implementierungsplan zu erstellen. Dieser dient dann als Eingabe für nachfolgende Prompts, wenn du in den Code-Modus wechselst. Dieser zweistufige Ablauf sorgt dafür, dass Codex auf Kurs bleibt und hilft, Fehler in der Ausgabe zu vermeiden. Codex funktioniert am besten bei klar abgegrenzten Aufgaben, die du oder ein Teammitglied in etwa einer Stunde erledigen könnt oder die ein paar hundert Zeilen Code erfordern. Mit der Verbesserung der Modelle ist zu erwarten, dass der Umfang der Aufgaben, die sie übernehmen können, zunimmt.
Das Festlegen eines Startskripts, von Umgebungsvariablen und des Internetzugangs verringert Codex’ Fehlerrate deutlich. Achte beim Ausführen von Aufgaben auf Build-Fehler, die in der Umgebungskonfiguration von Codex behoben werden können. Dies kann einige Iterationen erfordern, bringt langfristig jedoch erhebliche Effizienzgewinne.
Codex liefert bessere Ergebnisse, wenn Prompts so formuliert sind, wie du eine Änderung in einem PR oder Issue beschreiben würdest. Das bedeutet, dass gegebenenfalls auch Dateipfade, Komponentennamen, Diffs und Dokumentationsauszüge einbezogen werden. Prompts nach Mustern wie „Implementiere dies auf die gleiche Weise, wie es in [Modul X] gemacht wird“ verbessern die Ergebnisse.
Starte Aufgaben, um Gedanken am Rande, unfertige Arbeiten oder kleinere nebenbei anfallende Fehlerbehebungen festzuhalten. Du musst nicht direkt eine vollständige PR auf einmal erstellen. Codex eignet sich gut als Zwischenstation, zu der du zurückkehren kannst, wenn du wieder fokussiert bist.
Pflege eine AGENTS.md-Datei, damit Codex in deinem Repository über verschiedene Prompts hinweg effektiver arbeiten kann. Diese Dateien enthalten in der Regel Benennungskonventionen, Geschäftslogik, bekannte Besonderheiten oder Abhängigkeiten, die Codex nicht allein aus dem Code ableiten kann. Erfahre in unserer Dokumentation mehr darüber, wie du deine AGENTS.md-Datei strukturierst.
Mit der Best-of-N-Funktion kannst du gleichzeitig mehrere Antworten für eine einzelne Aufgabe generieren, um schnell mehrere Lösungsansätze zu erkunden und den besten auszuwählen. Bei komplizierteren Aufgaben kannst du mehrere Iterationen prüfen und Teile verschiedener Antworten kombinieren, um ein besseres Ergebnis zu erzielen.
Codex befindet sich noch in der Forschungsvorschau, macht aber bereits einen echten Unterschied, wie wir entwickeln: Es hilft uns, schneller voranzukommen, besseren Code zu schreiben und Arbeit zu übernehmen, die sonst nie priorisiert worden wäre.
Wir sind begeistert von dem Potenzial, das vor uns liegt – während unsere Modelle immer besser werden und Codex immer tiefer in unsere Arbeitsabläufe integriert wird, freuen wir uns darauf, noch leistungsfähigere Möglichkeiten zu erschließen, mit Codex Software zu entwickeln. Wir werden weiterhin teilen, was wir auf dem Weg lernen.


