Codex mit Azure OpenAI in Microsoft Foundry Models

OpenAIs Codex CLI ist derselbe Programmier-Agent, der ChatGPTs Codex antreibt. Sie können diesen Codierungs-Agent vollständig auf Azure Infrastruktur ausführen, während Ihre Daten innerhalb Ihrer Compliancegrenze bleiben. Sie erhalten die zusätzlichen Vorteile von Sicherheit auf Unternehmensniveau, private Netzwerke, rollenbasierte Zugriffssteuerung und vorhersehbare Kostenverwaltung. Codex ist mehr als ein Chat mit Ihrem Code-Agent – es handelt sich um einen asynchronen Codierungs-Agent, den Sie von Ihrem Terminal, VS Code oder von einem GitHub Actions Läufer auslösen können. Mit Codex können Sie Pullanforderungen automatisch öffnen, Dateien umgestalten und Tests schreiben, indem Sie die Anmeldeinformationen Ihres Foundry-Projekts und Azure OpenAI-Bereitstellungen verwenden.

Voraussetzungen

Anforderungen Details
Betriebssysteme macOS 12+, Ubuntu 20.04+/Debian 10+, oder Windows 11 über WSL2
Git (optional, empfohlen) 2.23+ für integrierte Pull-Request-Hilfsprogramme
RAM Mindestens 4 GB (empfohlen 8 GB)

Ein Modell bereitstellen in Foundry

  1. Wechseln Sie zu Foundry , und erstellen Sie ein neues Projekt.
  2. Wählen Sie im Modellkatalog ein Denkmodell aus, z. B. gpt-5.3-codex, gpt-5.2-codex, gpt-5.1-codex-max, gpt-5.1-codex, gpt-5.1-codex-mini, gpt-5-codex, gpt-5, gpt-5-mini oder gpt-5-nano.
  3. Um das Modell aus dem Modellkatalog bereitzustellen, wählen Sie "Dieses Modell verwenden" aus. Wenn Sie den Bereich Azure OpenAI Deployments verwenden, wählen Sie Deploy model aus.
  4. Kopieren Sie die Endpunkt-URL und den API-Schlüssel.

Codex CLI installieren

Führen Sie im Terminal die folgenden Befehle aus, um Codex CLI zu installieren.

npm install -g @openai/codex
codex --version # verify installation

Erstellen und Konfigurieren von config.toml

  1. Um Codex CLI mit Azure zu verwenden, erstellen und einrichten Sie eine config.tomlDatei.

    Speichern Sie die config.toml Datei im ~/.codex Verzeichnis. Erstellen Sie eine config.toml Datei in diesem Verzeichnis, oder bearbeiten Sie die vorhandene Datei, wenn sie bereits vorhanden ist:

    cd ~/.codex
    nano config.toml
    
  2. Kopieren Sie den folgenden Text, um die v1-Antwort-API zu verwenden. Mit der v1 API müssen Sie api-version nicht mehr übergeben, aber Sie müssen /v1 im base_url-Pfad angeben. Sie können Ihren API-Schlüssel nicht direkt als Zeichenfolge an env_key übergeben. env_key muss auf eine Umgebungsvariable verweisen. Aktualisieren Sie Ihren base_url mit Ihren Ressourcennamen:

    model = "gpt-5-codex"  # Replace with your actual Azure model deployment name
    model_provider = "azure"
    model_reasoning_effort = "medium"
    
    [model_providers.azure]
    name = "Azure OpenAI"
    base_url = "https://YOUR_RESOURCE_NAME.openai.azure.com/openai/v1"
    env_key = "AZURE_OPENAI_API_KEY"
    wire_api = "responses"
    
  3. Nachdem Sie die Aktualisierungen in Ihrer config.toml Datei gespeichert haben, kehren Sie zum Terminal zurück, und erstellen Sie eine Instanz der Umgebungsvariable, auf die die Konfigurationsdatei verweist.

    # Linux, macOS, or WSL 
    export AZURE_OPENAI_API_KEY="<your-api-key>"
    
  4. Führen Sie einen der folgenden Befehle im Terminal aus, um zu testen, ob die Codex CLI-Konfiguration erfolgreich war:

    Befehl Zweck
    Codex Interaktive Terminal-Benutzeroberfläche (TUI) starten
    codex "Startbefehl" Starten Sie TUI mit einer ersten Aufforderung
    codex exec "Initiale Eingabeaufforderung" Tui im nicht interaktiven "Automatisierungsmodus" starten

Verwenden von Codex in Visual Studio Code

Sie können Codex auch direkt in Visual Studio Code verwenden, wenn Sie die Erweiterung OpenAI Codex verwenden.

  1. Wenn Sie noch nicht über Visual Studio Code verfügen, installieren Sie es für macOS und Linux.

  2. Installieren Sie die OpenAI Codex-Erweiterung. Die Erweiterung basiert auf Ihrer config.toml Datei, die Sie für Codex CLI konfiguriert haben.

  3. Falls Sie sich in einer neuen Terminalsitzung befinden, richten Sie die Umgebungsvariable für AZURE_OPENAI_API_KEY ein:

    export OPENAI_API_KEY="<your-azure-api-key-here>"
    

    Hinweis

    Wenn Sie WSL verwenden, legen Sie auch die gleiche Umgebungsvariable auf dem Windows Host fest, damit die Erweiterung sie bei Bedarf lesen kann.

  4. Starten Sie VS Code aus derselben Terminalsitzung. (Das Starten von einem App-Launcher kann dazu führen, dass die Variable für die API-Schlüsselumgebung nicht für die Codex-Erweiterung verfügbar wird.)

    code .
    
  5. Sie können codex jetzt in Visual Studio Code verwenden, um Änderungen zu chatten, zu bearbeiten und in der Vorschau anzuzeigen, während Sie zwischen drei Genehmigungsmodi umschalten.

Genehmigungsmodi

Genehmigungsmodi bestimmen, wie viel Autonomie und Interaktion Sie mit Codex haben möchten.

Genehmigungsmodus Beschreibung
Chat Zum Chatten und Planen mit dem Modell.
Agent Codex kann Dateien lesen, Änderungen vornehmen und Befehle automatisch im Arbeitsverzeichnis ausführen. Codex benötigt Genehmigung für Aktivitäten außerhalb des Arbeitsverzeichnisses oder für den Zugriff auf das Internet.
Agent (Vollzugriff) Alle Funktionen des Agentmodus, ohne dass eine schrittweise Genehmigung erforderlich ist. Verwenden Sie den Vollzugriffsmodus nicht, ohne die potenziellen Risiken vollständig zu verstehen und zusätzliche Schutzmaßnahmen zu ergreifen, etwa den Betrieb in einer kontrollierten Sandbox-Umgebung.

Wichtig

Es wird empfohlen, die Anleitungen von OpenAI zur Codex-Sicherheit zu überprüfen.

Dauerhafte Anleitungen mit AGENTS.md

Sie können Codex zusätzliche Anweisungen und Anleitungen mithilfe von AGENTS.md Dateien geben. Codex sucht an den folgenden Stellen nach AGENTS.md Dateien und führt sie oben nach unten zusammen, sodass es Kontext zu Ihren persönlichen Einstellungen, projektspezifischen Details und der aktuellen Aufgabe gibt:

  • ~/.codex/AGENTS.md – persönliche globale Anleitung.
  • AGENTS.md im Root-Verzeichnis Ihres Repositorys – geteilte Projektnotizen.
  • AGENTS.md im aktuellen Arbeitsverzeichnis – Unterordner oder Funktionsspezifikationen.

Damit Codex lernt, wie Code für Foundry Agents geschrieben wird, können Sie eine AGENTS.md in Ihrem Projektstamm erstellen mit dem folgenden Inhalt, der aus der Azure AI Agents SDK-Dokumentation abgeleitet wurde:

# Instructions for working with Foundry Agents

You are an expert in the Azure AI Agents client library for Python.

## Key Concepts

- **Client Initialization**: Always start by creating an `AIProjectClient` or `AgentsClient`. The recommended way is via `AIProjectClient`.
- **Authentication**: Use `DefaultAzureCredential` from `azure.identity`.
- **Agent Creation**: Use `agents_client.create_agent()`. Key parameters are `model`, `name`, and `instructions`.
- **Tools**: Agents use tools to perform actions like file search, code interpretation, or function calls.
  - To use tools, they must be passed to `create_agent` via the `tools` and `tool_resources` parameters or a `toolset`.
  - Example: `file_search_tool = FileSearchTool(vector_store_ids=[...])`
  - Example: `code_interpreter = CodeInterpreterTool(file_ids=[...])`
  - Example: `functions = FunctionTool(user_functions)`

## Example: Creating a basic agent

\`\`\`python
import os
from azure.ai.projects import AIProjectClient
from azure.identity import DefaultAzureCredential

# 1. Create Project Client
project_client = AIProjectClient(
    endpoint=os.environ["PROJECT_ENDPOINT"],
    credential=DefaultAzureCredential(),
)

# 2. Get Agents Client
with project_client:
    agents_client = project_client.agents

    # 3. Create Agent
    agent = agents_client.create_agent(
        model=os.environ["MODEL_DEPLOYMENT_NAME"],
        name="my-helpful-agent",
        instructions="You are a helpful agent that can answer questions.",
    )
    print(f"Created agent with ID: {agent.id}")
\`\`\`

Im vorangegangenen Beispiel werden Backticks im Python-Codeblock maskiert, um eine korrekte Darstellung zu gewährleisten. Sie können die \ Zeichen entfernen.

Experimentieren mit Codex CLI

Starten Sie Codex mit der folgenden ersten Eingabeaufforderung:

codex "write a python script to create an Azure AI Agent with file search capabilities"

Weitere vorgeschlagene Tests:

# generate a unit test for src/utils/date.ts
# refactor this agent to use the Code Interpreter tool instead

Codex in GitHub-Aktionen

Codex kann als Teil Ihrer Ci-Pipeline (Continuous Integration) ausgeführt werden. Speichern Sie Ihren API-Schlüssel im Geheimspeicher des Repositorys als AZURE_OPENAI_KEY, damit Sie einen Auftrag wie diesen hinzufügen können, um das Änderungsprotokoll vor einer Veröffentlichung automatisch zu aktualisieren:

jobs:
  update_changelog:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - name: Update changelog via Codex
        run: |
          npm install -g @openai/codex
          export AZURE_OPENAI_API_KEY="${{ secrets.AZURE_OPENAI_KEY }}" 
          codex -p azure exec --full-auto "update CHANGELOG for next release"

Problembehandlung

Symptom Lösung
401 Unauthorized Oder 403 Forbidden Exportieren Sie ihre AZURE_OPENAI_API_KEY Umgebungsvariable korrekt. Vergewissern Sie sich, dass Ihr Schlüssel über den Projekt-/Bereitstellungszugriff verfügt.
Stellen Sie sicher, dass Sie den API-Schlüssel nicht direkt als Zeichenkette an env_key in die config.toml Datei übergeben. Sie müssen eine gültige Umgebungsvariable übergeben.
ENOTFOUND, DNS error, oder 404 Not Found Überprüfen Sie, ob base_url in config.toml den Ressourcennamen verwendet, die Domain korrekt ist und /v1 enthält.
Beispiel: base_url = "https://<your-resource>.openai.azure.com/openai/v1".
CLI ignoriert Azure Einstellungen Öffnen Sie ~/.codex/config.toml und stellen Sie sicher:
- model_provider = "azure" ist festgelegt.
- Der [model_providers.azure] Abschnitt ist vorhanden.
- env_key = "AZURE_OPENAI_API_KEY" entspricht dem Namen der Umgebungsvariablen.
Entra ID-Unterstützung Entra ID Unterstützung ist derzeit für Codex nicht verfügbar.
401 Unauthorized nur mit der WSL + VS Code Codex-Erweiterung Wenn VS Code innerhalb von WSL mit der Codex-Erweiterung ausgeführt wird, sucht die Erweiterung möglicherweise auf dem lokalen Windows-Host nach der Umgebungsvariable für den API-Schlüssel, statt in der Terminal-Shell, aus der heraus VS Code gestartet wurde. Um dieses Problem zu beheben, legen Sie auch die Umgebungsvariable auf dem lokalen Windows Host fest, und starten Sie dann ein neues Terminal von WSL, und starten Sie VS Code mit code ..