Deutsch

Codex SDK

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, um Programmieraufgaben zu automatisieren, darunter auch Aufträge in CI. Mit dem Codex app server können Sie benutzerdefinierte Clients erstellen, die Authentifizierung, Konversationsverlauf, Genehmigungen und gestreamte Agentenereignisse verarbeiten.

Der Befehl codex mcp-server und die eigenständige Binärdatei codex-mcp-server wurden entfernt. Verwenden Sie für bestehende Integrationen den Codex-App-Server.

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-sdk

Verwendung

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-codex

Verö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.

Das Python SDK ist als stabile Version verfügbar. pip install openai-codex installiert die neueste stabile Version. Verwenden Sie pip install --pre openai-codex, um sich bewusst für neuere Vorabversionen zu entscheiden.

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.