+190 XP

ChatGPT · Codex: Agentic Coding in Ihrer Umgebung

Codex ist das agentic Coding-Tool von OpenAI, das Ihre Codebase lesen, eine Änderung planen, den Code schreiben und Ihre Tests ausführen kann, um Ihnen anschließend ein Diff zur Prüfung zu übergeben, bevor irgendetwas ausgeliefert wird. Den Agent-Loop verstehen Sie abstrakt schon. Diese Lektion verankert ihn in einem echten Workflow: Sie geben Codex eine Aufgabe, es arbeitet in einer isolierten Umgebung, und Sie bleiben der Reviewer, der das Ergebnis freigibt oder ablehnt.

Was Codex eigentlich ist

„Codex“ bezeichnet heute eine Familie von Oberflächen, nicht einen einzelnen Button. Drei davon werden Sie antreffen:

  • Codex in der Cloud, verfügbar über die Codex-Ansicht in ChatGPT, wo jede Aufgabe in ihrem eigenen Sandbox-Container mit dem hineingeklonten Repo läuft.
  • Das Codex CLI, ein Open-Source-Terminal-Agent, den Sie lokal gegen den Code auf Ihrem Rechner ausführen.
  • Die Codex IDE-Extension für VS Code und ähnliche Editoren, die denselben Agenten direkt neben Ihre Dateien bringt.

Alle drei laufen auf Codex-optimierten Modellen und teilen dieselbe Grundidee: der Agent erhält Lese- und Schreibzugriff auf eine echte Arbeitskopie Ihres Projekts plus eine Shell, damit er Befehle wirklich ausführen kann, statt Code nur zu erraten.

Der offizielle Startpunkt ist die Codex-Dokumentation. Lesen Sie die Seiten zu Umgebung und Konfiguration, bevor Sie etwas Ernsthaftes ausführen; die Defaults rund um Netzwerkzugriff und Approvals sind wichtig.

Warum „agentic“ die Arbeit verändert

In Canvas (dem Tool der vorherigen Lektion) bearbeiten Sie ein Dokument oder eine Datei gemeinsam. Codex ist anders: es arbeitet über das gesamte Repo und kann ausführen. Genau diese eine Fähigkeit, einen Befehl auszuführen und die Ausgabe zu lesen, macht aus einem Codegenerator einen Agenten. Es schreibt einen Test, führt ihn aus, sieht ihn scheitern, bearbeitet die Implementierung, führt ihn erneut aus. Sie kopieren keine Snippets mehr hin und her. Sie prüfen eine fertige, getestete Änderung.

Setup: das lokale CLI

Nehmen wir das CLI, weil es den Loop am sichtbarsten macht. Installieren und authentifizieren:

bash
npm install -g @openai/codex
cd ~/projects/billing-service
codex

Beim ersten Start authentifiziert es sich über Ihren ChatGPT-Account (oder einen API-Key) und erkennt das Repo. Von hier aus können Sie am Prompt eine Aufgabe in normaler Sprache eintippen.

Die wichtigste Datei, die Sie hinzufügen können, ist AGENTS.md im Repo-Root. Betrachten Sie sie als Custom Instructions, die auf diese Codebase zugeschnitten sind: sie sagt Codex, wie gebaut, getestet und sich verhalten wird. Codex liest sie automatisch.

markdown
# AGENTS.md

## Commands
- Install: `poetry install`
- Test: `poetry run pytest -q`
- Lint: `poetry run ruff check .`

## Conventions
- Type hints required on all new functions.
- Tests live next to the module they cover, named `test_*.py`.
- Never edit files under `migrations/` without flagging it.

Das ist der Unterschied zwischen einem Agenten, der herumrudert, und einem, der zu Ihrem Projekt passt. Investieren Sie hier zehn Minuten, und jede künftige Aufgabe wird günstiger.

Ein konkreter Durchgang: ein kleines Feature implementieren und die Tests laufen lassen

Das Szenario: Unser billing-service hat ein discount-Modul. Wir wollen eine neue Funktion, die einen prozentualen Rabatt auf eine Bestellsumme anwendet, mit Validierung. Und getestet soll sie sein. Beobachten Sie den agentic Loop.

Schritt 1: Die Aufgabe geben

Am Codex-Prompt:

Add a function `apply_percentage_discount(total, percent)` to
discount.py. It returns the discounted total. Raise ValueError if
percent is not between 0 and 100. Add unit tests covering valid
input, the boundaries, and invalid input. Run the test suite.

Achten Sie darauf, was wir angegeben haben und was nicht. Wir haben Verhalten und Edge Cases beschrieben, nicht die Implementierung. Wir haben ausdrücklich verlangt, die Tests auszuführen, und das ist die Anweisung, die den Loop aktiviert.

Schritt 2: Der Agent plant und liest

Codex erkundet zuerst. Es greppt nach discount.py, liest die bestehenden Funktionen, um den Stil zu übernehmen, und prüft, wie andere Tests aufgebaut sind. Dieser Read-before-write-Schritt ist der Grund, warum eine saubere `AGENTS.md` und ein aufgeräumtes Repo sich auszahlen: der Agent imitiert, was er sieht.

Danach nennt es einen kurzen Plan: Funktion erstellen, test_discount.py hinzufügen, pytest ausführen.

Schritt 3: Es schreibt den Code

Es erzeugt etwa Folgendes und schreibt es auf die Platte:

python
def apply_percentage_discount(total: float, percent: float) -> float:
    if not 0 <= percent <= 100:
        raise ValueError(f"percent must be between 0 and 100, got {percent}")
    return total * (1 - percent / 100)

Und eine passende Testdatei mit den von Ihnen verlangten Fällen.

Schritt 4: Es führt die Tests aus (der Loop)

Das ist der Teil, den Sie aus einem einfachen Chat nicht bekommen. Codex führt poetry run pytest -q in der Sandbox aus. Nehmen wir an, ein Grenzwerttest scheitert wegen eines Floating-Point-Vergleichs. Der Agent sieht die fehlgeschlagene Ausgabe, ändert den Test auf pytest.approx und führt ihn erneut aus. Grün. Er macht das ohne Rückfrage, weil die Arbeit in einer isolierten Umgebung stattfand und nicht auf Ihrem Production-Branch.

Sie sehen jeden Befehl und seine Ausgabe im Terminal mitlaufen. Genau darum geht es: Sie beobachten die Argumentation und vertrauen nicht einer Black Box.

Schritt 5: Der Review-Schritt

Wenn der Loop zur Ruhe kommt, zeigt Codex Ihnen ein Unified Diff aller Änderungen. Noch ist nichts committet. Sie lesen es wie einen Pull Request:

  • Entspricht apply_percentage_discount Ihren Erwartungen ans Rundungsverhalten? (Vielleicht wollen Sie round(..., 2).)
  • Sind die Tests aussagekräftig oder laufen sie trivial durch?
  • Hat es Dateien angefasst, die es nicht anfassen sollte?

Sie können freigeben, in natürlicher Sprache eine Überarbeitung verlangen („runde das Ergebnis auf 2 Dezimalstellen und ergänze einen Test dafür“) oder verwerfen. Der Review-Schritt ist nicht verhandelbar. Der Agent ist schnell und kompetent und liegt trotzdem manchmal falsch, also bleiben Sie das Tor.

Approval-Modi: wie viel Leine Sie geben

Codex lässt Sie festlegen, wie autonom es agiert. Die genauen Bezeichnungen ändern sich, das Spektrum bleibt gleich:

  • Suggest / read-only: es schlägt Edits und Befehle vor, fragt aber vor jeder Aktion.
  • Auto / workspace-write: es bearbeitet Dateien und führt Befehle im Arbeitsverzeichnis ohne Rückfrage aus, bleibt aber in der Sandbox.
  • Full access: es kann alles ausführen, inklusive Netzwerkaufrufe. Nutzen Sie das selten und bewusst.

Ein guter Default für echte Arbeit ist der mittlere Modus mit abgeschaltetem Netzwerkzugriff. Der Agent kann frei bearbeiten und testen, aber nicht ins Internet, was eine große Klasse von Unfällen ausschließt (und Prompt-Injection-Risiken, wenn er nicht vertrauenswürdige Dateien liest). Schalten Sie das Netzwerk nur an, wenn eine Aufgabe wirklich eine Dependency laden muss.

Getting started with OpenAI Codex

Watch on YouTube

Cloud-Codex und parallele Aufgaben

Das CLI ist ideal, um neben dem Agenten zu arbeiten. Das Cloud-Codex in ChatGPT ist für Delegation gebaut. Sie verbinden ein GitHub-Repo, übergeben eine Aufgabe („behebe den flaky Test in test_orders.py“) und lassen sie in einem eigenen Container laufen. Sie können mehrere Aufgaben parallel anstoßen und später nachsehen.

Wenn Cloud-Codex fertig ist, kann es direkt einen Pull Request auf GitHub öffnen. Ihr Review-Schritt wird damit ein normaler PR-Review mit angehängter CI, also genau dort, wo ein sorgfältiges Team den menschlichen Checkpoint haben will. Das ist das Modell für Batch-Arbeit: Montagmorgen drei kleine Bugs triagieren, indem Sie jeden beschreiben, und dann beim Kaffee drei PRs prüfen.

Wissenscheck

1. Welche einzelne Fähigkeit unterscheidet Codex am stärksten als „Agenten“ und nicht bloß als Codegenerator?

2. Welche Rolle behält der Mensch im beschriebenen Codex-Workflow vor allem?

3. Wozu dient eine AGENTS.md-Datei im Repository-Root?

MEHRFACHAUSWAHL

4. Wählen Sie ALLE Aussagen, die die verschiedenen in der Lektion genannten Codex-Oberflächen korrekt beschreiben.

Wählen Sie alle richtigen Antworten aus.

MEHRFACHAUSWAHL

5. Wählen Sie ALLE Gründe, die die Lektion dafür nennt, dass Codex sich von einem kollaborativen Dokumenteneditor wie Canvas unterscheidet.

Wählen Sie alle richtigen Antworten aus.

Wo Codex neben dem übrigen Ökosystem steht

Sie haben jetzt mehrere agentic Oberflächen in der OpenAI-Welt. Sie auseinanderzuhalten verhindert Fehlgebrauch:

  • Codex ist für die Arbeit in *Ihrer* Codebase: lesen, bearbeiten, Tests ausführen, PRs öffnen. Das ist Engineering.
  • Advanced Data Analysis (Code Interpreter) führt Python in einer Wegwerf-Sandbox aus, um eine Datei zu analysieren oder ein Chart zu erzeugen. Es ist nicht mit Ihrem Repo verbunden und nicht dafür gedacht, Code dorthin auszuliefern.
  • Canvas ist eine fokussierte Editieroberfläche für ein einzelnes Dokument oder eine Datei, bei der Sie bei jeder Änderung im Loop sind. Es führt keine Test-Suite über ein Projekt aus.
  • Der ChatGPT-Agent browst, klickt und nutzt Tools, um allgemeine Web- und Computeraufgaben zu erledigen. Er ist kein Coding-Agent.

Wenn Sie Ihren eigenen Agenten in Software bauen statt diese Produkte zu nutzen, dann ist das das Agents SDK und die Responses API, die Function Calling und Tool-Nutzung als Primitive bereitstellen. Codex ist die produktisierte, auf Coding spezialisierte Version derselben Ideen, mit Sandbox, Repo-Integration und Diff-Review fertig für Sie gebaut.

Ein realistischer Engineering-Rhythmus

So nutzen Teams es tatsächlich im Alltag:

  1. Abgegrenzte Aufgaben, keine vagen Wünsche. „Ergänze Input-Validierung am Signup-Endpoint samt Tests“ funktioniert. „Verbessere die Codebase“ nicht. Kleine, überprüfbare Aufgaben halten den Loop ehrlich und die Diffs reviewbar.
  2. Lassen Sie Tests der Vertrag sein. Weil Codex sie ausführt, ist eine starke Test-Suite Ihr Lenkrad. Verlangen Sie den Test zuerst, wenn das Verhalten präzise ist.
  3. Halten Sie `AGENTS.md` lebendig. Wenn der Agent zweimal etwas Nerviges macht, ist das eine fehlende Anweisung, kein Modellfehler. Ergänzen Sie die Regel.
  4. Prüfen Sie jedes Diff wie einen PR. Behandeln Sie Agent-Output genau wie den ersten Entwurf eines Junior-Engineers: meist solide, gelegentlich subtil falsch, ab dem Merge immer Ihre Verantwortung.

Wichtigste Erkenntnisse

  • Der Loop ist der Wert: Codex liest, schreibt, *führt* Ihre Befehle aus und iteriert über Fehlschläge, alles in einer Sandbox. Nehmen Sie immer „run the tests“ in die Aufgabe auf, damit der Loop wirklich zündet.
  • Schreiben Sie eine `AGENTS.md` im Repo-Root mit Anweisungen zu Build, Tests und Konventionen. Das ist der Setup-Schritt mit der höchsten Hebelwirkung und macht jede Aufgabe genauer.
  • Default ist workspace-write mit abgeschaltetem Netzwerkzugriff. Geben Sie Full Access nur für einzelne Aufgaben, die ihn brauchen.
  • Der Diff-Review ist Ihre Aufgabe, nicht optional. Freigeben, überarbeiten oder verwerfen wie bei einem Pull Request; nutzen Sie Cloud-Codex für echte PRs, wenn Sie CI und Team-Review im Pfad haben wollen.
  • Nutzen Sie die richtige Oberfläche: Codex für Ihre Codebase, Code Interpreter für einmalige Analysen, Canvas für die Bearbeitung einzelner Dateien und das Agents SDK, wenn Sie selbst Agenten bauen.

Was Sie aus dieser Lektion umsetzen

Diese Maßnahmen sind im Playbook der Rolle zusammengefasst.

  • Eine AGENTS.md mit Install, Test, Lint und Sperrverzeichnissen schreiben
  • Jeden Diff auf den Trick mit gelöschten fehlschlagenden Tests und auf Scope Creep prüfen
Vollständiges Action Playbook ansehen →

Verwandte Artikel

Aktuelle Blogartikel, die auf dieser Lektion aufbauen.