Codex SDK
Lokale Codex-Agenten programmgesteuert steuern
Wenn Sie Codex über Codex CLI, die IDE-Erweiterung oder Codex cloud verwenden, können Sie Codex auch programmgesteuert steuern.
Verwenden Sie das SDK, wenn Sie:
- Codex als Teil Ihrer CI/CD-Pipeline steuern möchten
- Ihren eigenen Agenten erstellen möchten, der mit Codex interagieren kann, um komplexe Engineering-Aufgaben auszuführen
- Codex in Ihre eigenen internen Tools und Workflows integrieren möchten
- Codex in Ihre eigene Anwendung integrieren möchten
Verwenden Sie das Codex SDK für auf Programmierung ausgerichtete Codex-Threads. Wenn Codex ein Spezialist innerhalb eines umfassenderen orchestrierten Workflows ist, führen Sie Codex CLI als MCP-Server aus und orchestrieren Sie es mit dem Agents SDK.
Wenn Sie Beta-Zugriff haben und Repository- oder Änderungs-Scans mit strukturierten Sicherheitsbefunden und Abdeckungsinformationen benötigen, verwenden Sie das Codex Security TypeScript SDK.
TypeScript-Bibliothek
Mit der TypeScript-Bibliothek kann Ihre Anwendung lokale Codex-Threads starten, fortsetzen und wiederaufnehmen.
Verwenden Sie die Bibliothek serverseitig; sie erfordert Node.js 18 oder höher.
Installation
Installieren Sie zunächst das Codex SDK mit npm:
npm install @openai/codex-sdkVerwendung
Starten Sie einen Thread mit Codex und führen Sie ihn mit Ihrem Prompt aus.
const codex = new Codex();
const thread = codex.startThread();
const result = await thread.run(
"Make a plan to diagnose and fix the CI failures"
);
console.log(result.finalResponse);Rufen Sie run() erneut auf, um denselben Thread fortzusetzen, oder nehmen Sie einen früheren Thread wieder auf, indem Sie eine Thread-ID angeben.
// running the same thread
const result = await thread.run("Implement the plan");
console.log(result.finalResponse);
// resuming past thread
const threadId = "<thread-id>";
const thread2 = codex.resumeThread(threadId);
const result2 = await thread2.run("Pick up where you left off");
console.log(result2.finalResponse);Weitere Einzelheiten finden Sie im TypeScript-Repository.
Python-Bibliothek
Das Python SDK steuert den lokalen Codex app-server über JSON-RPC. Es erfordert Python 3.10 oder höher. Veröffentlichte SDK-Builds enthalten eine festgelegte Codex CLI-Laufzeitabhängigkeit.
Installation
Führen Sie zur Installation des SDK Folgendes aus:
pip install openai-codexVeröffentlichte SDK-Builds verwenden automatisch ihre festgelegte Laufzeit. Übergeben Sie CodexConfig(codex_bin=...) nur, wenn Sie bewusst eine bestimmte lokale ausführbare Codex-Datei verwenden möchten.
Solange sich das Python SDK in der Betaphase befindet, wählt pip install openai-codex den neuesten
veröffentlichten Beta-Build aus. Sobald ein stabiles SDK-Release verfügbar ist, verwenden Sie
pip install --pre openai-codex, um neuere Vorabversionen zu nutzen.
Verwendung
Starten Sie Codex, erstellen Sie einen Thread und führen Sie einen Prompt aus:
from openai_codex import Codex, Sandbox
with Codex() as codex:
thread = codex.thread_start(
model="gpt-5.6-terra",
sandbox=Sandbox.workspace_write,
)
result = thread.run("Make a plan to diagnose and fix the CI failures")
print(result.final_response)Verwenden Sie AsyncCodex, wenn Ihre Anwendung bereits asynchron arbeitet:
import asyncio
from openai_codex import AsyncCodex
async def main() -> None:
async with AsyncCodex() as codex:
thread = await codex.thread_start(model="gpt-5.6-terra")
result = await thread.run("Implement the plan")
print(result.final_response)
asyncio.run(main())Sandbox-Voreinstellungen
Verwenden Sie dieselben Sandbox-Voreinstellungen, wenn Sie einen Thread erstellen oder seinen Dateisystemzugriff
für einen späteren Durchlauf ändern:
from openai_codex import Codex, Sandbox
with Codex() as codex:
thread = codex.thread_start(sandbox=Sandbox.workspace_write)
thread.run("Make the requested change.")
review = thread.run("Review the diff only.", sandbox=Sandbox.read_only)Verfügbare Voreinstellungen:
Sandbox.read_only: Dateien lesen, ohne Schreibzugriffe zu erlauben.Sandbox.workspace_write: Dateien lesen und innerhalb des Workspace sowie der konfigurierten beschreibbaren Stammverzeichnisse schreiben.Sandbox.full_access: Ohne Einschränkungen des Dateisystemzugriffs ausführen.
Wenn Sie sandbox= weglassen, verwendet app-server die konfigurierte Standardeinstellung. Eine an
run(...) oder turn(...) übergebene Sandbox gilt für diesen und spätere Durchläufe
im Thread.
Weitere Einzelheiten finden Sie im Python-Repository.