+190 XP

Codex: agentic coding in Ihrer Umgebung

# Codex: agentic coding in Ihrer Umgebung

Codex ist OpenAIs agentic coding tool: Es liest Ihre Codebase, plant eine Änderung, schreibt den Code, führt Ihre Tests aus und übergibt Ihnen anschließend einen Diff zur Prüfung, bevor irgendetwas ausgeliefert wird. Die agent loop kennen Sie bereits in der Theorie. Diese Lektion verankert sie 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 tatsächlich ist

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

  • Codex in der Cloud, erreichbar über die Codex-Ansicht in ChatGPT, wo jede Aufgabe in einem eigenen sandboxed Container mit Ihrem geklonten Repo läuft.
  • Die Codex CLI, ein Open-Source-Terminal-Agent, den Sie lokal gegen den Code auf Ihrem Rechner laufen lassen.
  • Die Codex IDE-Extension für VS Code und vergleichbare 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-/Schreibzugriff auf eine echte Arbeitskopie Ihres Projekts plus eine Shell und kann damit tatsächlich Befehle ausführen, statt Code nur zu erraten.

Der offizielle Startpunkt ist die Codex-Dokumentation. Lesen Sie die Seiten zu Environment und Konfiguration, bevor Sie etwas Ernsthaftes starten; die Defaults zu Netzwerkzugriff und Approvals sind relevant.

Warum „agentic“ die Arbeit verändert

In Canvas (dem Tool aus der vorherigen Lektion) bearbeiten Sie ein Dokument oder eine Datei gemeinsam. Codex funktioniert 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 Code-Generator einen Agenten. Es schreibt einen Test, führt ihn aus, sieht ihn scheitern, passt die Implementierung an, führt erneut aus. Sie kopieren keine Snippets mehr. Sie prüfen eine fertige, getestete Änderung.

Setup: die lokale CLI

Wir nehmen die CLI, weil sie die 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. Ab hier 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 mit Gültigkeit für diese Codebase: 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 Durchlauf: 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 die agentic loop.

Schritt 1: Aufgabe stellen

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 die 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 treffen, und prüft, wie andere Tests aufgebaut sind. Dieses Lesen vor dem Schreiben ist der Grund, warum eine saubere AGENTS.md und ein aufgeräumtes Repo sich auszahlen: Der Agent imitiert, was er sieht.

Dann formuliert es einen kurzen Plan: Funktion anlegen, test_discount.py hinzufügen, pytest ausführen.

Schritt 3: Es schreibt den Code

Es produziert 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 angeforderten Fällen.

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

Das ist der Teil, den ein reiner Chat nicht liefert. Codex führt poetry run pytest -q in der Sandbox aus. Nehmen wir an, ein Grenzfall-Test scheitert wegen eines Floating-Point-Vergleichs. Der Agent sieht die Fehlerausgabe, passt den Test auf pytest.approx an und führt ihn erneut aus. Grün. Das macht er ohne Rückfrage, weil die Arbeit in einer isolierten Umgebung stattfand und nicht auf Ihrem Production-Branch.

Sie sehen jeden Befehl und dessen Ausgabe im Terminal mitlaufen. Genau darum geht es bei dieser Transparenz: Sie beobachten das Vorgehen und vertrauen nicht einer Black Box.

Schritt 5: Der Review-Schritt

Wenn die loop zur Ruhe kommt, zeigt Codex Ihnen einen unified Diff aller Änderungen. Nichts ist bereits committet. Sie lesen ihn wie einen Pull Request:

  • Entspricht apply_percentage_discount Ihren Rundungserwartungen? (Vielleicht wollen Sie round(..., 2).)
  • Sind die Tests sinnvoll oder laufen sie trivial durch?
  • Hat es Dateien angefasst, die es nicht anfassen sollte?

Sie können freigeben, in natürlicher Sprache eine Revision anfordern („round the result to 2 decimal places and add a test for that“) oder verwerfen. Der Review-Schritt ist nicht verhandelbar. Der Agent ist schnell und kompetent und trotzdem manchmal falsch, also bleiben Sie das Gate.

Approval-Modi: wie viel Leine Sie geben

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

  • Suggest / read-only: Es schlägt Änderungen und Befehle vor, fragt aber vor jeder Aktion.
  • Auto / workspace-write: Es ändert 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 ausgeschaltetem Netzwerkzugriff. Der Agent kann frei editieren und testen, kommt 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 ein, wenn eine Aufgabe wirklich eine Dependency laden muss.

Cloud-Codex und parallele Aufgaben

Die CLI ist stark, wenn Sie neben dem Agenten arbeiten. Cloud-Codex in ChatGPT ist für Delegation gebaut. Sie verbinden ein GitHub-Repo, übergeben eine Aufgabe („fix the flaky test in test_orders.py“) und lassen sie in einem eigenen Container laufen. Sie können mehrere Aufgaben parallel starten und später nachsehen.

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

Wissenscheck

1. Welche einzelne Fähigkeit unterscheidet Codex am stärksten als „Agenten“ von einem reinen Code-Generator?

2. Welche Rolle behält der Mensch im beschriebenen Codex-Workflow in erster Linie?

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, warum Codex sich von einem kollaborativen Dokumenteneditor wie Canvas unterscheidet.

Wählen Sie alle richtigen Antworten aus.

Wo Codex neben dem restlichen Ökosystem steht

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

  • Codex ist für die Arbeit in *Ihrer* Codebase: lesen, editieren, 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 erstellen. 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, mit Ihnen bei jeder Änderung in der loop. 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, 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 Variante derselben Ideen, mit Sandbox, Repo-Integration und Diff-Review bereits fertig gebaut.

Ein realistischer Engineering-Rhythmus

So nutzen Teams es im Alltag tatsächlich:

1. Abgegrenzte Aufgaben, keine vagen Wünsche. „Add input validation to the signup endpoint and tests“ funktioniert. „Improve the codebase“ nicht. Kleine, überprüfbare Aufgaben halten die loop ehrlich und die Diffs prüfbar.

2. Lassen Sie Tests den Vertrag sein. Weil Codex sie ausführt, ist eine starke Test-Suite Ihr Lenkrad. Lassen Sie bei präzisem Verhalten zuerst den Test schreiben.

3. Halten Sie `AGENTS.md` lebendig. Wenn der Agent zweimal etwas Nerviges tut, ist das eine fehlende Anweisung, kein Modellfehler. Fügen Sie die Regel hinzu.

4. Prüfen Sie jeden Diff wie einen PR. Behandeln Sie Agenten-Output genau wie den ersten Entwurf eines Junior-Engineers: meist solide, gelegentlich subtil falsch, und ab dem Merge immer Ihre Verantwortung.

Wichtigste Erkenntnisse

  • Die loop ist der Wert: Codex liest, schreibt, *führt* Ihre Befehle aus und iteriert bei Fehlern, alles innerhalb einer Sandbox. Schreiben Sie immer „run the tests“ in Ihre Aufgabe, damit die loop überhaupt anläuft.
  • Schreiben Sie eine `AGENTS.md` im Repo-Root mit Anweisungen zu Build, Tests und Konventionen. Das ist der Setup-Schritt mit der größten Hebelwirkung und macht jede Aufgabe genauer.
  • Default auf workspace-write mit ausgeschaltetem Netzwerkzugriff. Full access nur für einzelne Aufgaben, die es brauchen.
  • Der Diff-Review ist Ihre Aufgabe, nicht optional. Freigeben, revidieren oder verwerfen wie bei einem Pull Request; nutzen Sie Cloud-Codex für echte PRs, wenn Sie CI und Team-Review im Ablauf haben wollen.
  • Nutzen Sie die richtige Oberfläche: Codex für Ihre Codebase, Code Interpreter für einmalige Analysen, Canvas für das Editieren 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.