Codex avec Azure OpenAI dans les modèles de Microsoft Foundry

L’interface CLI du Codex d’OpenAI est le même agent de codage que celui qui alimente le Codex de ChatGPT. Vous pouvez exécuter entièrement cet agent de codage sur Azure infrastructure tout en conservant vos données à l’intérieur de votre limite de conformité. Vous bénéficiez des avantages supplémentaires de la sécurité de niveau entreprise, de la mise en réseau privée, du contrôle d’accès en fonction du rôle et de la gestion prévisible des coûts. Le Codex est plus qu'une conversation avec votre agent de code : il s'agit d'un agent de codage asynchrone que vous pouvez déclencher à partir de votre terminal, VS Code ou d'un exécuteur de GitHub Actions. Codex vous permet d’ouvrir automatiquement des pull requests, de refactoriser des fichiers et d’écrire des tests à l’aide des informations d’identification de votre projet Foundry et de vos déploiements Azure OpenAI.

Conditions préalables

Exigences Détails
Systèmes d’exploitation macOS 12+, Ubuntu 20.04+/Debian 10+ ou Windows 11 via WSL2
Git (facultatif, recommandé) 2.23+ pour les assistances de pull request intégrées
Mémoire vive 4 Go minimum (8 Go recommandés)

Déployer un modèle dans Foundry

  1. Accédez à Foundry et créez un projet.
  2. Dans le catalogue de modèles, sélectionnez un modèle de raisonnement tel que gpt-5.3-codex, , gpt-5.2-codexgpt-5.1-codex-maxgpt-5.1-codex, gpt-5.1-codex-mini, gpt-5-codex, , gpt-5gpt-5-miniou .gpt-5-nano
  3. Pour déployer le modèle à partir du catalogue de modèles, sélectionnez Utiliser ce modèle. Si vous utilisez le volet Azure OpenAI Deployments, sélectionnez deploy model.
  4. Copiez l’URL du point de terminaison et la clé API.

Installer l’interface CLI du Codex

À partir du terminal, exécutez les commandes suivantes pour installer l’interface CLI du Codex

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

Créer et configurer config.toml

  1. Pour utiliser l’interface CLI du Codex avec Azure, créez et configurez un fichier config.toml.

    Stockez le config.toml fichier dans le ~/.codex répertoire. Créez un config.toml fichier dans ce répertoire ou modifiez le fichier existant s’il existe déjà :

    cd ~/.codex
    nano config.toml
    
  2. Copiez le texte suivant pour utiliser l’API Réponses v1. Avec l’API v1 , vous n’avez plus besoin de passer api-version, mais vous devez inclure /v1 dans le chemin d’accès base_url . Vous ne pouvez pas passer votre clé API en tant que chaîne directement à env_key. env_key doit pointer vers une variable d’environnement. Mettez à jour le nom de votre ressource base_url :

    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. Après avoir enregistré les mises à jour dans votre config.toml fichier, revenez au terminal et créez une instance de la variable d’environnement référencée par le fichier de configuration.

    # Linux, macOS, or WSL 
    export AZURE_OPENAI_API_KEY="<your-api-key>"
    
  4. Exécutez l’une des commandes suivantes dans le terminal pour tester si la configuration de l’interface CLI du Codex a réussi :

    Commande Objectif
    Codex Lancer l’interface utilisateur de terminal interactif (TUI)
    Codex « Invite de démarrage » Lancer une interface à tonalité (TUI) avec une requête initiale
    codex exec « Requête initiale » Lancer TUI en mode « automation » non interactif

Utiliser le Codex dans Visual Studio Code

Vous pouvez également utiliser le Codex directement à l’intérieur Visual Studio Code lors de l’utilisation de l’extension OpenAI Codex.

  1. Si vous n'avez pas encore Visual Studio Code, installez-le pour macOS et Linux.

  2. Installez l’extension OpenAI Codex. L’extension s’appuie sur votre config.toml fichier que vous avez configuré pour l’interface CLI du Codex.

  3. Si vous êtes dans une nouvelle session de terminal, configurez la variable d’environnement pour AZURE_OPENAI_API_KEY:

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

    Note

    Si vous utilisez WSL, définissez également la même variable d’environnement sur l’hôte Windows afin que l’extension puisse la lire si nécessaire.

  4. Lancez VS Code à partir de la même session de terminal. (Le lancement à partir d’un lanceur d’applications peut entraîner que votre variable d’environnement de clé API n’est pas disponible pour l’extension Codex.)

    code .
    
  5. Vous pouvez maintenant utiliser Le Codex dans Visual Studio Code pour discuter, modifier et afficher un aperçu des modifications lors du basculement entre trois modes d’approbation.

Modes d’approbation

Les modes d’approbation déterminent la quantité d’autonomie et d’interaction que vous souhaitez avoir avec le Codex.

Mode d’approbation Description
Conversation Pour discuter et planifier avec le modèle.
Agent Le Codex peut lire des fichiers, effectuer des modifications et exécuter automatiquement des commandes dans le répertoire de travail. Le Codex a besoin d’une approbation pour les activités en dehors du répertoire de travail ou pour accéder à Internet.
Agent (accès complet) Toutes les fonctionnalités du mode Agent sans avoir besoin d’approbation pas à pas. N’utilisez pas le mode d’accès complet sans bien comprendre les risques potentiels ni mettre en place des garde-fous supplémentaires, comme l’exécution dans un environnement sandbox contrôlé.

Important

Nous vous recommandons de consulter les conseils d’OpenAI sur la sécurité du Codex.

Conseils persistants avec AGENTS.md

Vous pouvez donner des instructions et des conseils supplémentaires au Codex à l’aide de AGENTS.md fichiers. Codex recherche AGENTS.md des fichiers dans les emplacements suivants et les fusionne de haut en bas, en lui fournissant un contexte sur vos préférences personnelles, les détails spécifiques au projet et la tâche actuelle :

  • ~/.codex/AGENTS.md – conseils globaux personnels.
  • AGENTS.md à la racine de votre référentiel : notes de projet partagées.
  • AGENTS.md dans le répertoire de travail actuel – spécificités du sous-dossier/fonctionnalité.

Par exemple, pour aider Codex à comprendre comment écrire du code pour les agents Foundry, vous pouvez créer un AGENTS.md dans la racine de votre projet avec le contenu suivant, dérivé de la documentation du SDK Azure AI Agents :

# 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}")
\`\`\`

Dans l’exemple précédent, les backticks dans le bloc de code Python sont échappés pour permettre un rendu approprié. Vous pouvez supprimer les \ caractères.

Expérience avec l’interface CLI du Codex

Lancez le codex avec l’invite initiale suivante :

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

Autres tests suggérés :

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

Codex en GitHub Actions

Le Codex peut s’exécuter dans le cadre de votre pipeline d’intégration continue (CI). Stockez votre clé API dans le stockage de secrets du référentiel comme AZURE_OPENAI_KEY et ajoutez un travail semblable à celui-ci pour mettre à jour automatiquement votre changelog avant une mise en production :

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"

Dépannage

Symptôme Solution
401 Unauthorized Ou 403 Forbidden Exportez correctement votre variable d’environnement AZURE_OPENAI_API_KEY. Vérifiez que votre clé dispose d’un accès projet/déploiement.
Assurez-vous que vous ne transmettez pas la clé API sous forme de chaîne directement dans le fichier env_keyconfig.toml. Vous devez passer une variable d’environnement valide.
ENOTFOUND, DNS errorou 404 Not Found Vérifiez que base_url dans config.toml utilise le nom de votre ressource, le domaine correct, et qu’il contient /v1.
Par exemple, base_url = "https://<your-resource>.openai.azure.com/openai/v1".
L’interface CLI ignore les paramètres de Azure Ouvrez ~/.codex/config.toml et assurez-vous :
- model_provider = "azure" est défini.
- La [model_providers.azure] section existe.
- env_key = "AZURE_OPENAI_API_KEY" correspond au nom de votre variable d’environnement.
Support Entra ID La prise en charge d'Entra ID n’est actuellement pas disponible pour le Codex.
401 Unauthorized uniquement avec l’extension WSL + VS Code Codex Lors de l’exécution de VS Code à partir de WSL avec l’extension Codex, l’extension peut vérifier la variable d’environnement de clé API sur l’hôte local Windows plutôt que dans l’interpréteur de commandes de terminal qui a lancé VS Code. Pour atténuer ce problème, définissez également la variable d’environnement sur l’hôte de Windows local, puis lancez un nouveau terminal à partir de WSL et lancez VS Code avec code ..