Codex ist eine Software, die auf dem codex-1 Codex ist eine modellzentrierte, cloudbasierte Software-Engineering-Intelligenz, die jetzt in ChatGPT integriert ist. Codex ist kein einfaches Tool zur Codegenerierung, sondern ein Agent, der in der Lage ist, selbstständig komplexe Programmieraufgaben auszuführen. Er läuft in einer separaten, sicheren Cloud-Sandbox-Umgebung und ist in der Lage, die Codebasis des Benutzers vorzuladen. Er übernimmt Aufgaben wie die Entwicklung neuer Funktionen, die Behebung von Fehlern und die Beantwortung von Fragen zur Codebasis auf der Grundlage von Anweisungen in natürlicher Sprache. Während der Ausführung werden nicht nur Dateien gelesen und geschrieben, sondern auch Tests und Code-Formatierungstools ausgeführt und iterativ überprüft, bis die Aufgabe abgeschlossen ist. Nach Abschluss einer Aufgabe überträgt Codex die Codeänderungen und stellt eine überprüfbare Aufzeichnung des Vorgangs, einschließlich Terminalprotokollen und Testausgaben, zur Überprüfung durch den Benutzer bereit.

Funktionsliste
- Durchführung kompletter technischer AufgabenDurchführung spezifischer Software-Engineering-Aufgaben, wie z. B. die Behebung von Fehlern oder die Implementierung neuer Funktionen, in einer separaten Cloud-basierten Umgebung auf der Grundlage von Benutzeranweisungen.
- Codebase-InteraktionLesen, Bearbeiten und Schreiben von Dateien direkt in einer Sandbox-Umgebung mit einer vorinstallierten Benutzer-Codebasis.
- Ausführen von TerminalbefehlenSie können Befehle in einer isolierten Umgebung ausführen, wie z. B. die Ausführung von Testwerkzeugen (
test runners), Code-Format-Prüfer (linters) und die Typüberprüfung (type checkers)。 - Automatisierte Tests und Behebung von MängelnDie Fähigkeit, eigenständig Tests durchzuführen, um die vorgenommenen Änderungen zu validieren, und wenn der Test fehlschlägt, wird versucht, die Änderungen zu wiederholen, bis der Test erfolgreich ist.
- Erstellung von Anträgen auf Codeänderung und -überprüfungWenn die Aufgabe abgeschlossen ist, sendet sie
git commitDer GitHub Pull Request kann für eine manuelle Überprüfung mit einem Nachweis über den gesamten Vorgang erstellt werden. - Projektspezifikationen befolgen: Es ist möglich, die Daten eines Projekts zu lesen
AGENTS.mdDokumentation, Erlernen und Befolgen spezifischer Entwicklungsumgebungskonfigurationen, Testanweisungen und Standardbetriebsverfahren des Projekts. - Codebase Q&ABenutzer können dem Codex Fragen stellen, um Informationen und Erklärungen über die aktuell geladene Codebasis zu erhalten.
- Sichere Durchsetzung der AbsonderungAlle Aufgaben werden in einem sicheren Container ausgeführt, der vom externen Netzwerk isoliert ist und die Sicherheit des Anwendercodes gewährleistet.
Hilfe verwenden
Codex wird als leistungsstarke Software-Engineering-Intelligenz eingesetzt, die über die herkömmliche Codegenerierung hinausgeht. Er simuliert einen Software-Ingenieur, der aus der Ferne mit Ihnen zusammenarbeitet, an den Sie Aufgaben delegieren und diese nach Abschluss überprüfen.
Kernnutzungsprozess
- Start Codex:
- 在 ChatGPT in der Seitenleiste und wählen Sie Codex.
- Folgen Sie den Richtlinien, um Codex mit Ihrer GitHub-Codebasis zu verbinden. codex klont diese Codebasis, um in einer separaten Cloud-Sandbox-Umgebung zu arbeiten.
- etw. in Angriff nehmen:
- Durchführung von ProgrammieraufgabenWenn Sie möchten, dass der Code geändert wird, z. B. um einen Fehler zu beheben oder eine neue Funktion hinzuzufügen, geben Sie einen klaren Befehl ein und klicken Sie auf die Schaltfläche
CodeSchaltflächen. Ein guter Befehl sollte genügend Kontext enthalten, z.B. "Bitte reparieren Sie dieastropy/astropyEine Frage in der Bibliothek:Modeling的separability_matrixVerschachtelung kann nicht korrekt berechnet werdenCompoundModelsder Trennbarkeit". - Eine Frage zur Codebasis stellenWenn Sie nur einen Aspekt der Codebasis verstehen wollen, können Sie Ihre Frage eingeben und auf die Schaltfläche
AskSchaltfläche. Zum Beispiel: "Bitte erläutern Sie, wo in diesem Projekt die Logik für die Benutzerauthentifizierung zu finden ist?"
- Durchführung von ProgrammieraufgabenWenn Sie möchten, dass der Code geändert wird, z. B. um einen Fehler zu beheben oder eine neue Funktion hinzuzufügen, geben Sie einen klaren Befehl ein und klicken Sie auf die Schaltfläche
- Überwachen und warten:
- Sobald die Aufgabe gestartet ist, arbeitet Codex selbstständig in einer Sandbox-Umgebung im Hintergrund. Je nach Komplexität der Aufgabe kann dieser Prozess zwischen 1 und 30 Minuten dauern.
- Sie können den Fortschritt der Codex-Ausführung in Echtzeit überwachen, und es wird Ihnen angezeigt, was gerade getan wird, z. B. das Lesen von Dateien, das Ausführen von Befehlen usw.
- Ergebnisse der Überprüfung:
- Sobald die Aufgabe abgeschlossen ist, überträgt Codex die in der Sandbox-Umgebung vorgenommenen Codeänderungen.
- Es liefert einen detaillierten Bericht mit nachprüfbaren Beweisen für seine Tätigkeit, z. B. Protokolle der ausgeführten Terminalbefehle und Testausgabeergebnisse. Auf diese Weise können Sie jeden Schritt der Aufgabe in seiner Gesamtheit nachvollziehen und die Transparenz und Korrektheit ihrer Ausführung sicherstellen.
- Sie können den geänderten Code, die Commit-Meldungen und die Testergebnisse sorgfältig prüfen.
- Folgeoperation:
- Ersuchen um Änderungen:: Wenn die Ergebnisse nicht genau Ihren Erwartungen entsprechen, können Sie weiterhin Änderungen beantragen.
- Erstellen eines ÄnderungsantragsWenn Sie mit dem Ergebnis zufrieden sind, können Sie Codex mit einem einzigen Klick einen GitHub Pull Request erstellen lassen, um Ihrem Team die Überprüfung des Codes zu erleichtern.
- LokalisierungSie können sich auch dafür entscheiden, die Änderungen direkt in Ihre lokale Entwicklungsumgebung zu integrieren.
ausnutzen AGENTS.md Datei Boot Codex
Um den Codex effizienter und genauer zu gestalten, können Sie eine AGENTS.md Datei. Diese Datei ist vergleichbar mit der Datei README.mdist eine speziell für KI-Intelligenzen geschriebene Bedienungsanleitung.
- entspricht Englisch -ity, -ism, -izationSie können Codex in einer Datei mitteilen, wie er durch Ihre Codebasis navigieren soll, welche Testanweisungen ausgeführt werden sollen, welche Codierungskonventionen das Projekt befolgt und wie die Standardarbeitsanweisungen aussehen.
- Beispiel Inhalt:
# AGENTS.md ## 如何运行测试 要运行完整的测试套件,请在项目根目录执行以下命令: `pytest` ## 编码规范 本项目遵循 PEP 8 编码规范。在提交代码前,请确保运行 `flake8 .` 并且没有错误报告。 ## 关键模块说明 - `src/core/auth.py`: 负责用户认证和会话管理。 - `src/api/v1/`: V1版本的所有API端点定义。
Genau wie menschliche Entwickler erbringt auch Codex die besten Leistungen, wenn die Entwicklungsumgebung gut konfiguriert ist, das Test-Framework stabil ist und die Dokumentation klar ist.
Anwendungsszenario
- Automatisierung von Routinewartungsaufgaben
Sich stark wiederholende, klar umrissene Aufgaben wie das Refactoring von Code, das Umbenennen von Variablen oder Funktionen und das Hinzufügen von Unit-Tests zu bestehendem Code können vollständig Codex überlassen werden, so dass sich die Entwickler auf kreativere Arbeiten konzentrieren können. - Schnelles Beheben bekannter Bugs
Wenn ein eindeutiger Fehlerbericht eingeht, kann der Entwickler den Bericht einfach als Aufgabe an Codex weitergeben, der automatisch den problematischen Code lokalisiert, einen Korrekturpatch schreibt, die entsprechenden Tests durchführt, um die Wirksamkeit der Korrektur zu überprüfen, und schließlich einen Änderungsantrag erstellt. - Aufbau eines neuen funktionalen Rahmens
Bei der Entwicklung einer neuen Funktion kann Codex angewiesen werden, den zugrunde liegenden Rahmencode zu erstellen, z. B. neue API-Endpunkte zu erstellen, das Datenmodell zu definieren, Beispieldateien für Komponenten zu generieren usw., um den Beginn des Entwicklungsprozesses zu beschleunigen. - Verbesserung der Qualität der Codebasis
Entwickler können Codex mit der Durchführung von Aufgaben zur Verbesserung der Codequalität beauftragen, wie z. B. "Formatieren aller nicht konformen Codes im Projekt", "Erstellen eines neuen Codes für dieuserModule fügen Tests hinzu, um eine Testabdeckung von 90% oder mehr zu erreichen", usw.
QA
- Ist es sicher, meine private Codebasis mit Codex zu verknüpfen?
Codex führt alle Aufgaben in einem vollständig isolierten, sicheren Cloud-Sandbox-Container aus. Während der Aufgabenausführung ist der Netzwerkzugriff deaktiviert, und die Intelligenzen können nur auf GitHub-Code-Repositories und vorinstallierte Abhängigkeitspakete zugreifen, die Sie über Befehle autorisieren, und haben keinen Zugriff auf externe Websites, APIs oder andere Dienste. AGENTS.mdIst eine Dokumentation erforderlich?
Ist nicht erforderlich, trägt aber wesentlich zur Verbesserung der Leistung von Codex bei. Ohne diese Datei wird Codex versuchen, Ihr Projekt auf der Grundlage seines allgemeinen Schulungswissens zu verstehen und zu bearbeiten. Wenn Sie jedoch eineAGENTS.mdEine Dokumentation, z. B. ein Projekthandbuch für einen neuen Ingenieur im Team, kann ihm helfen, sich schneller einzuarbeiten und die spezifischen Standards und Prozesse Ihres Projekts zu befolgen.- Was ist der Unterschied zwischen dem Codex und der Anforderung von Codeschnipseln direkt in ChatGPT?
Dies sind zwei völlig unterschiedliche Arbeitsweisen. Das direkte Anfordern von Code in ChatGPT ist eine "Texterzeugung", bei der die KI auf der Grundlage Ihrer Beschreibung einen textuellen Code ausgibt. Codex hingegen ist eine "Software-Engineering-Intelligenz", die Ihre gesamte Codebasis in einer realen (aber isolierten) Entwicklungsumgebung bearbeitet, Dateien liest und schreibt, Befehle ausführt, Tests durchführt und in die Versionskontrolle einspeist - ein vollständig automatisierter Workflow. - Wie lange braucht der Codex, um eine Aufgabe auszuführen? Warum ist er langsamer als eine direkte Frage und Antwort?
Codex führt eine asynchrone Delegationsaufgabe durch, die eine Reihe von Schritten erfordert, wie z. B. das Klonen der Codebasis, die Analyse der Anforderungen, das Schreiben des Codes, das iterative Ausführen von Tests, das Übertragen von Änderungen usw. Dies ahmt den Arbeitsablauf eines echten Entwicklers nach und nimmt daher mehr Zeit in Anspruch als Instant Q&A, normalerweise zwischen 1 und 30 Minuten. Dies ist vergleichbar mit dem Delegieren einer Hintergrundaufgabe an einen Kollegen, die ebenfalls eine gewisse Zeit in Anspruch nimmt.
codex-1 System-Stichwörter
# Instructions
– The user will provide a task.
– The task involves working with Git repositories in your current working directory.
– Wait for all terminal commands to be completed (or terminate them) before finishing.
# Git instructions
If completing the user’s task requires writing or modifying files:
– Do not create new branches.
– Use git to commit your changes.
– If pre-commit fails, fix issues and retry.
– Check git status to confirm your commit. You must leave your worktree in a clean state.
– Only committed code will be evaluated.
– Do not modify or amend existing commits.
# AGENTS.md spec
– Containers often contain AGENTS.md files. These files can appear anywhere in the container’s filesystem. Typical locations include `/`, `~`, and in various places inside of Git repos.
– These files are a way for humans to give you (the agent) instructions or tips for working within the container.
– Some examples might be: coding conventions, info about how code is organized, or instructions for how to run or test code.
– AGENTS.md files may provide instructions about PR messages (messages attached to a GitHub Pull Request produced by the agent, describing the PR). These instructions should be respected.
– Instructions in AGENTS.md files:
– The scope of an AGENTS.md file is the entire directory tree rooted at the folder that contains it.
– For every file you touch in the final patch, you must obey instructions in any AGENTS.md file whose scope includes that file.
– Instructions about code style, structure, naming, etc. apply only to code within the AGENTS.md file’s scope, unless the file states otherwise.
– More-deeply-nested AGENTS.md files take precedence in the case of conflicting instructions.
– Direct system/developer/user instructions (as part of a prompt) take precedence over AGENTS.md instructions.
– AGENTS.md files need not live only in Git repos. For example, you may find one in your home directory.
– If the AGENTS.md includes programmatic checks to verify your work, you MUST run all of them and make a best effort to validate that the checks pass AFTER all code changes have been made.
– This applies even for changes that appear simple, i.e. documentation. You still must run all of the programmatic checks.
# Citations instructions
– If you browsed files or used terminal commands, you must add citations to the final response (not the body of the PR message) where relevant. Citations reference file paths and terminal outputs with the following formats:
1) `[F:†L(-L)?]' '
– File path citations must start with `F:`. `file_path` is the exact file path of the file relative to the root of the repository that contains the relevant text.
– `line_start` is the 1-indexed start line number of the relevant output within that file.
2) `[†L(-L)?]' '
– Where `chunk_id` is the chunk_id of the terminal output, `line_start` and `line_end` are the 1-indexed start and end line numbers of the relevant output within that chunk.
– Line ends are optional, and if not provided, line end is the same as line start, so only 1 line is cited.
– Ensure that the line numbers are correct, and that the cited file paths or terminal outputs are directly relevant to the word or clause before the citation.
– Do not cite completely empty lines inside the chunk, only cite lines that have content.
– Only cite from file paths and terminal outputs, DO NOT cite from previous pr diffs and comments, nor cite git hashes as chunk ids.
– Use file path citations that reference any code changes, documentation or files, and use terminal citations only for relevant terminal output.
– Prefer file citations over terminal citations unless the terminal output is directly relevant to the clauses before the citation, i.e. clauses on test results.
– For PR creation tasks, use file citations when referring to code changes in the summary section of your final response, and terminal citations in the testing section.
– For question-answering tasks, you should only use terminal citations if you need to programmatically verify an answer (i.e. counting lines of code). Otherwise, use file citations.































