Codex – Erweiterte Nutzungstipps
Nach Abschluss der Basisinstallation und der ersten Konversation liegt der eigentliche Wert von Codex darin, es in Ihren täglichen Entwicklungs-Workflow einzubinden.
Dieser Artikel behandelt fünf fortgeschrittene Bereiche: Projektkonfiguration, Sitzungsverwaltung, Editor-Integration, CI/CD-Automatisierung und Tipps zum Prompting. Damit helfen Sie Codex, Ihr Projekt zu verstehen, sich Ihre Konventionen zu merken und in der Pipeline automatisch zu arbeiten.
1. Schreiben Sie ein „Onboarding-Dokument“ für Codex mit AGENTS.md
AGENTS.md ist ein Projekthandbuch, das für Codex geschrieben wurde. Im Projekt-Wurzelverzeichnis abgelegt, wird es bei jedem Start automatisch geladen und bleibt während der gesamten Sitzung aktiv.
Warum Sie es benötigen
Standardmäßig weiß Codex nichts über Ihr Projekt.
Es weiß nicht, ob Sie App Router oder Pages Router verwenden, nicht, über welche Datei Datenbankoperationen einheitlich abgewickelt werden sollen, und nicht, welche Dateien nicht verändert werden sollten.
Wenn Sie in jeder Konversation den Hintergrund erneut erklären müssen, ist die Effizienz sehr gering und Fehler sind wahrscheinlich.
Mit AGENTS.md können diese Informationen einmal geschrieben werden und bleiben in Kraft, was erspart, sich selbst zu wiederholen.
Was geschrieben werden sollte
Eine effektive AGENTS.md enthält normalerweise vier Arten von Informationen: Projektübersicht, Tech-Stack, wichtige Konventionen und Verbote.
Das Folgende ist ein vollständiges Beispiel:
# AGENTS.md ## 项目概述 这是一个基于 Next.js 14 + Prisma + PostgreSQL 的 SaaS 应用。 使用 App Router,不使用 Pages Router. ## 技术栈 - 前端:Next.js 14, React 18, TailwindCSS, shadcn/ui - 后端:Next.js API Routes, Prisma ORM - 数据库:PostgreSQL 15 - 认证:NextAuth.js ## 重要约定 - 所有数据库操作必须通过 lib/db.ts 中的 prisma 实例 - API 路由错误统一用 lib/api-error.ts 处理 - 环境变量在 .env.local 中,参考 .env.example ## 禁止事项 - 不要修改 prisma/schema.prisma,除非我明确要求 - 不要删除任何现有测试 - 生产环境的 .env 文件不要碰
Der Abschnitt „Verbote“ ist besonders wichtig. Bei der Ausführung von Aufgaben leitet Codex aktiv ab, welche Dateien geändert werden müssen. Ohne klare Grenzen kann es Stellen berühren, die Sie nicht anfassen möchten. Rote Linien klar zu formulieren ist viel einfacher, als Probleme zu beheben, nachdem sie aufgetreten sind.
Hierarchische Struktur der Konfiguration
AGENTS.md unterstützt drei Verschachtelungsebenen, wobei die Priorität von niedrig nach hoch angeordnet ist.
Je näher eine Datei am aktuellen Verzeichnis liegt, desto höher ist ihre Priorität. Im selben Verzeichnis wird AGENTS.md auf derselben Ebene übersprungen, wenn AGENTS.override.md vorhanden ist.
| Stufe | Pfad | Geltungsbereich | Priorität |
|---|---|---|---|
| Globale Ebene | ~/.codex/AGENTS.md | Projektübergreifende allgemeine Konventionen | Niedrig |
| Projektebene | repo/AGENTS.md | Konventionen auf Repository-Ebene | Mittel |
| Überschreibungsebene | repo/services/payments/AGENTS.override.md | Spezielle Regeln für Unterverzeichnisse | Hoch |
Die globale Ebene eignet sich für Konventionen, die für alle Projekte gelten, zum Beispiel:
# ~/.codex/AGENTS.md ## 全局约定 - 安装依赖时优先使用 pnpm - 修改 JavaScript 文件后始终运行 npm test - 新增生产依赖前先请求确认
Nach Abschluss der Konfiguration können Sie den folgenden Befehl verwenden, um zu überprüfen, ob das Laden korrekt ist:
codex --ask-for-approval never "Summarize the current instructions."
2. Sitzungsverwaltung: Große Aufgaben über Tage hinweg fortsetzen
Die Sitzungsverwaltungsfunktion ermöglicht es Ihnen, den aktuellen Gesprächsstatus in eine Datei zu exportieren und ihn beim nächsten Mal direkt wiederherzustellen, ohne den Hintergrund erneut einzurichten.
Hintergrund
Das Kontextfenster von Codex ist begrenzt.
Wenn Sie eine große Aufgabe bearbeiten, die sich über mehrere Dateien erstreckt und schrittweise vorangebracht werden muss, geht der Kontext verloren, wenn Sie das Terminal zwischendurch schließen oder zu etwas anderem wechseln und später zurückkommen – Codex erinnert sich nicht daran, was zuvor besprochen wurde oder welche Entscheidungen getroffen wurden.
Durch den Export der Sitzung kann dieses Problem gelöst werden, sodass Sie den vorherigen Gesprächsstatus zu jedem Zeitpunkt wiederherstellen können.
Grundlegende Verwendung
Die folgenden sind gängige Befehle im Zusammenhang mit der Sitzungsverwaltung:
Beispiel
/export session-2024-01-15.json
# Beim nächsten Fortsetzen wiederherstellen
/load session-2024-01-15.json
# Die letzte Sitzung direkt fortsetzen (am häufigsten verwendet)
codex resume --last
# Alle gespeicherten Sitzungen anzeigen
ls ~/.codex/sessions/
Wann exportieren
Sie müssen nicht jede Unterhaltung exportieren. Die folgenden Situationen sind es wert, gespeichert zu werden:
| Szenario | Beschreibung |
|---|---|
| Mehrstufige Aufgaben über mehrere Tage hinweg | Die Aufgabe erstreckt sich über mehrere Tage mit klaren Phasenaufteilungen; nach dem Speichern können Sie beim nächsten Mal direkt vom letzten Checkpoint aus fortfahren. |
| Wichtige architektonische Entscheidungen | Eine wichtige architektonische Entscheidung mit Codex besprochen, und nachfolgende Aufgaben müssen auf Grundlage dieser Entscheidung fortgesetzt werden. |
| Komplexe Debugging-Prozesse | Debuggen eines komplexen Bugs; mehrere Richtungen wurden bereits ausgeschlossen, und beim nächsten Mal möchte man nicht wieder von vorn anfangen. |
3. Integration mit VS Code
Codex bietet offiziell eine VS Code-Erweiterung. Nach der Installation können Sie Gespräche direkt im Editor starten, ohne zum Terminal wechseln zu müssen.
Installation und Anmeldung
Die Installationsschritte sind wie folgt:
Schritt 1: Öffnen Sie den Erweiterungsmarktplatz (Cmd/Ctrl + Shift + X).
-
Schritt 2: Suchen Sie nach "Codex" oder "OpenAI Codex" und installieren Sie das offizielle Plugin.

-
Schritt 3: Für die erste Verwendung müssen Sie sich bei Ihrem ChatGPT-Konto anmelden.
-
Schritt 4: Sobald das Codex-Symbol in der Seitenleiste erscheint, ist es einsatzbereit.
Nach der Installation kannst du die folgenden Tastaturkürzel für schnelle Aktionen verwenden:
| Tastenkürzel | Funktion |
|---|---|
| Alt + G | Ausgewählten Code an Codex senden, einschließlich des aktuellen Dateikontexts |
| Cmd + Shift + P | Öffne die Befehlspalette, gib "Codex" ein, um alle verfügbaren Befehle anzuzeigen |
BYO-Modus (für Nutzer ohne ChatGPT-Abonnement)
Wenn du bereits deinen eigenen API Key in der CLI konfiguriert hast (Anthropic, OpenAI oder andere kompatible Anbieter), kannst du ein kostenloses ChatGPT-Konto verwenden, um dich beim VS Code-Plugin anzumelden.
Das Plugin verwendet automatisch die Modellkonfiguration der CLI wieder und zwingt dich nicht, ChatGPT Plus zu verwenden.
| Anwendbare Szenarien | Beschreibung |
|---|---|
| Du hast bereits einen API Key, möchtest aber nicht separat ChatGPT abonnieren | Verwende deinen eigenen API Key direkt, kein zusätzliches kostenpflichtiges Abonnement erforderlich |
| Möchtest du, dass VS Code und CLI dasselbe Modell verwenden | Das Plugin verwendet automatisch die CLI-Konfiguration wieder, sodass beide Seiten ein identisches Erlebnis haben. |
4. CI/CD-Integration
Codex CLI unterstützt die Ausführung im Headless-Modus, erfordert keine menschliche Interaktion und eignet sich daher für die Integration in automatisierte Workflows.
Was kann Codex in einer Pipeline tun
Die folgenden sind gängige Einsatzbereiche von Codex in CI/CD im Headless-Modus:
| Anwendungsfall | Beschreibung | Typischer Auslösezeitpunkt |
|---|---|---|
| CHANGELOG automatisch aktualisieren | Nach jedem Merge in den Main-Branch CHANGELOG.md automatisch anhand der Commit-Historie aktualisieren. | Nach dem Merge in den Main-Branch |
| API-Dokumentation generieren | API-Dokumentation automatisch basierend auf Codeänderungen generieren oder synchronisieren | Nach dem Code-Push |
| Automatisches Code-Review | Automatisch Code-Review in der PR-Pipeline ausführen und Kommentare hinterlassen | Wenn ein PR erstellt oder aktualisiert wird |
GitHub Actions Beispiel
Der folgende Workflow ermöglicht es Codex, CHANGELOG.md basierend auf den neuesten Commits automatisch zu aktualisieren, jedes Mal wenn Code in den main-Branch gepusht wird:
Beispiel
name: Changelog automatisch aktualisieren
auf:
push:
branches: [main]
jobs:
update-changelog:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Node.js einrichten
uses: actions/setup-node@v4
with:
node-version: '22'
- name: Codex CLI installieren
run: npm install -g @openai/codex
- name: Codex-Aufgabe ausführen
env:
OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY }}
CODEX_QUIET_MODE: 1
run: |
codex exec --full-auto "CHANGELOG.md basierend auf den neuesten Commits aktualisieren"
- name: Änderungen committen
run: |
git config --local user.email '[email protected]'
git add CHANGELOG.md
git commit -m 'chore: update changelog [skip ci]'
git push
In der Konfiguration gibt es zwei wichtige Punkte, die besondere Aufmerksamkeit erfordern:
| Konfigurationseintrag | Zweck | Beschreibung |
|---|---|---|
| CODEX_QUIET_MODE: 1 | Interaktive Ausgabe unterdrücken | Vermeiden, dass die Pipeline hängen bleibt und auf interaktive Eingabe wartet |
| --full-auto | Im Headless-Modus ausführen | Codex direkt ohne Aufsicht ausführen lassen, ohne auf eine Bestätigung zu warten |
Bei der Verwendung in CI wird empfohlen, in der Datei AGENTS.md im Projektstamm explizit den Umfang der Dateien festzulegen, die Codex im automatischen Modus ändern darf, um unerwartete Änderungen aufgrund der Fehlinterpretation von Prompts zu verhindern.
5. Tipps zum Prompting
Die Qualität der Ausgabe von Codex hängt weitgehend davon ab, wie Sie Ihre Fragen stellen.
Die folgenden fünf Tipps behandeln die häufigsten Probleme, auf die neue Benutzer stoßen, jeweils mit konkreten Beispielen.
Tipp 1: Ausreichend Kontext bereitstellen
Codex kann keine Gedanken lesen. Eine Anweisung wie "Behebe den Bug" lässt es blind raten, und das Ergebnis entspricht oft nicht Ihren Vorstellungen.
Hier ist ein Vergleichsbeispiel:
| Nicht empfohlen | Empfohlen |
|---|---|
| "Behebe den Bug" | "Wenn sich ein Benutzer anmeldet, wird ein Fehler ausgelöst: TypeError: Cannot read properties of null. Der Fehler tritt in Zeile 42 von src/auth/login.ts auf. Diese Funktion ist für die Validierung von JWT-Tokens zuständig. Bitte finden und beheben Sie dieses Problem." |
Effektiver Kontext umfasst drei Elemente:
| Element | Beschreibung | Beispiel |
|---|---|---|
| Spezifisches Symptom | Fehlermeldung oder konkretes Verhalten | TypeError: Cannot read properties of null |
| Betroffene Stelle | Datei- und Zeilennummer | Zeile 42 von src/auth/login.ts |
| Verantwortung des Codes | Der ursprüngliche Zweck dieses Codes | JWT-Token validieren |
Tipp 2: Komplexe Aufgaben in zwei Schritte aufteilen
Lassen Sie bei Aufgaben mit großem Änderungsumfang zuerst Codex analysieren und einen Plan skizzieren und führen Sie ihn dann aus, nachdem Sie bestätigt haben, dass die Richtung stimmt.
Alles in einem Schritt zu erledigen, mag schneller wirken, aber die Kosten sind höher, wenn die Richtung nicht stimmt.
Beispiel
codex "Analysiere die Codequalität des Verzeichnisses src/api/ und liste die wichtigsten Probleme auf. Ändere keine Dateien."
# Schritt 2: Nach Bestätigung des Plans ausführen
codex "OK, fahre mit deinem vorgeschlagenen Plan fort. Beginne mit den Problemen bei der Fehlerbehandlung; den Rest sehe ich mir später an."
Tipp 3: Verwenden Sie den Ask-Modus, um zuerst die Codebasis zu verstehen
askDer Ask-Modus ist ein schreibgeschützter Modus, geeignet, um die Struktur und Logik des vorhandenen Codes zu verstehen, bevor Änderungen vorgenommen werden.
Verstehen vor dem Ändern spart Zeit im Vergleich dazu, nach Änderungen zurückzugehen, um zu verstehen.
Beispiel
# ask 模式不会触发任何文件修改 codex -a ask "这个项目是如何处理用户认证的?梳理完整的认证流程"
Sobald Sie ein klares Verständnis haben, beenden Sie die aktuelle Sitzung und starten Sie im editierbaren Modus neu:
# 可编辑模式(需要确认) codex -a auto # 全自动执行(谨慎使用) codex -a full-auto
Empfohlener Workflow:
ask ↓ 理解代码结构 ↓ 确定修改方案 ↓ 重新启动 Codex ↓ 进入可编辑模式 ↓ 执行修改
Hinweis: Die CLI unterstützt das Umschalten von Berechtigungsmodi zur Laufzeit nicht mehr; dies muss über einen
/approvalsParameter beim Start angegeben werden. Der Desktop-Client unterstützt weiterhin das Umschalten innerhalb einer Sitzung.-aParameter. Der Desktop-Client unterstützt weiterhin das Umschalten innerhalb einer Sitzung.
Tipp 4: Verwenden Sie negative Anweisungen, um Grenzen zu setzen
Codex zu sagen, was nicht angefasst werden darf, ist genauso wichtig wie ihm zu sagen, was zu tun ist.
Besonders bei Refactoring-Aufgaben, die mehrere zusammenhängende Dateien betreffen, können unklare Grenzen leicht zu unnötigen Folgeänderungen führen.
Beispiel
codex "Refaktoriere die Datumsformatierungsfunktionen in utils/date.ts. Ändere nicht die Funktionssignaturen und ändere nicht die Testdateien."
Tipp 5: Zuerst nach einem Plan fragen, dann ausführen
Bei Aufgaben, bei denen du unsicher bist, lass Codex zuerst auflisten, wie er sie anzugehen gedenkt.
Dieser Schritt kostet fast keine Zeit, aber er ermöglicht es dir, Richtungsabweichungen früh zu erkennen und zu vermeiden, zu weit auf den falschen Weg zu geraten.
# 先要计划 codex "你打算怎么实现这个功能?先列出步骤,不要执行" # 确认计划合理后再推进 codex "计划没问题,开始执行第一步"
Zusammenfassung
Diese fünf Richtungen decken den gesamten Pfad von "Projektkonfiguration" über "tägliche Abläufe" bis "Automatisierung" ab.
Du musst nicht alle von Anfang an verwenden. Es wird empfohlen, in dieser Reihenfolge vorzugehen: Schreibe zuerst AGENTS.md, damit Codex dein Projekt versteht, und integriere es dann nach und nach in deinen VS-Code-Workflow und deine CI/CD-Pipeline.
Prompt-Techniken lassen sich besser nach und nach durch tägliche Nutzung ansammeln, als sie sich alle auf einmal einzuprägen.
Weitere Erweiterungen