Delen via


Codex met Azure OpenAI in Azure AI Foundry-modellen

De Codex CLI van OpenAI is dezelfde coderingsagent die de Codex van ChatGPT aandrijft. U kunt deze coderingsagent volledig uitvoeren op de Azure-infrastructuur, terwijl u uw gegevens binnen uw nalevingsgrens houdt met de toegevoegde voordelen van beveiliging op bedrijfsniveau, privénetwerken, op rollen gebaseerd toegangsbeheer en voorspelbaar kostenbeheer. Codex is meer dan een chatgesprek met uw codeagent. Het is een asynchrone coderingsagent die kan worden geactiveerd vanuit uw terminal, VS Code of vanuit een GitHub Actions-runner. Met Codex kunt u automatisch pull-aanvragen openen, bestanden herstructureren en tests schrijven met de referenties van uw AI Foundry-project en Azure OpenAI-implementaties.

Vereiste voorwaarden

Requirements Bijzonderheden
Besturingssystemen macOS 12+, Ubuntu 20.04+/Debian 10+, of Windows 11 via WSL2
Git (optioneel, aanbevolen) 2.23+ voor ingebouwde helpers voor pull requests
RAM Minimaal 4 GB (8 GB aanbevolen)

Een model implementeren in Azure AI Foundry

  1. Ga naar Azure AI Foundry en maak een nieuw project.
  2. Selecteer in de modelcatalogus een redeneringsmodel zoals gpt-5-codex, gpt-5, gpt-5-miniof gpt-5-nano.
  3. Als u het model in de modelcatalogus wilt implementeren, selecteert u Dit model gebruiken of selecteert u het implementatiemodel in het deelvenster Azure OpenAI-implementaties.
  4. Kopieer de eindpunt-URL en de API-sleutel.

De Codex CLI installeren

Voer vanuit de terminal de volgende opdrachten uit om Codex CLI te installeren

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

config.toml maken en configureren

  1. Als u Codex CLI wilt gebruiken met Azure, moet u een config.toml bestand maken en instellen.

    Het bestand config.toml moet worden opgeslagen in de ~/.codex map. Maak een config.toml bestand in deze map of bewerk het bestaande bestand als het al bestaat:

    cd ~/.codex
    nano config.toml
    
  2. Kopieer de onderstaande tekst om de v1-antwoord-API te gebruiken. Met de v1-API hoeft u geen API-versie meer door te geven, maar u moet /v1 opnemen in het base_url pad. U kunt uw API-sleutel niet rechtstreeks als een tekenreeks doorgeven aan env_key. env_key moet verwijzen naar een omgevingsvariabele. Werk uw base_url bij met uw resource-naam:

    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. Nadat u de updates voor het config.toml bestand hebt opgeslagen, keert u terug naar de terminal en maakt u een exemplaar van de omgevingsvariabele waarnaar wordt verwezen in uw configuratiebestand.

    # Linux, macOS, or WSL 
    export AZURE_OPENAI_API_KEY="<your-api-key>"
    
  4. Voer nu een van de volgende opdrachten uit in de terminal om te testen of uw Codex CLI-configuratie is geslaagd:

    Command Purpose
    codex Interactieve Terminal User Interface (TUI) starten
    codex "Eerste prompt" Start TUI met een eerste prompt
    codex exec "Initiële prompt" Start TUI in niet-interactieve "automatiseringsmodus"

Codex gebruiken in Visual Studio Code

U kunt Codex ook rechtstreeks in Visual Studio Code gebruiken wanneer u de OpenAI Codex-extensie gebruikt

  1. Als u Visual Studio Code nog niet hebt, kunt u deze installeren voor macOS en Linux.

  2. Installeer de OpenAI Codex-extensie. De extensie is afhankelijk van uw config.toml bestand dat is geconfigureerd voor Codex CLI.

  3. Als u zich in een nieuwe terminalsessie bevindt, wordt de omgevingsvariabele ingesteld voor AZURE_OPENAI_API_KEY:

    export OPENAI_API_KEY="your-azure-api-key-here"
    
  4. Start VS Code vanuit dezelfde Terminal-sessie. (Het starten van een app-launcher kan ervoor zorgen dat de API-sleutel omgevingsvariabele niet beschikbaar zal zijn voor de Codex-extensie.)

    code .
    
  5. U kunt nu Codex in Visual Studio Code gebruiken om te chatten, te bewerken en een voorbeeld van wijzigingen te bekijken terwijl u tussen drie goedkeuringsmodi schakelt.

Goedkeuringsmodi

Goedkeuringsmodi bepalen hoeveel autonomie en interactie u wilt hebben met Codex.

Goedkeuringsmodus Description
Chat Chatten en plannen met het model.
Vertegenwoordiger Codex kan bestanden lezen, wijzigingen aanbrengen en opdrachten automatisch uitvoeren in de werkmap. Codex heeft goedkeuring nodig voor activiteiten buiten de werkmap of voor toegang tot internet.
Agent (volledige toegang) Alle mogelijkheden van de agentmodus zonder dat u stapsgewijze goedkeuring nodig hebt. De volledige toegangsmodus mag niet worden gebruikt zonder volledig inzicht te krijgen in de mogelijke risico's en om extra kaders te implementeren, zoals het uitvoeren in een gecontroleerde sandbox-omgeving.

Belangrijk

We raden u aan de richtlijnen van OpenAI voor Codex-beveiliging te bekijken.

Permanente richtlijnen met AGENTS.md

U kunt Codex extra instructies en richtlijnen geven met behulp van AGENTS.md bestanden. Codex zoekt naar AGENTS.md bestanden op de volgende plaatsen en voegt ze bovenaan samen, zodat deze context krijgt over uw persoonlijke voorkeuren, projectspecifieke details en de huidige taak:

  • ~/.codex/AGENTS.md– persoonlijke globale richtlijnen.
  • AGENTS.md in de root van uw opslagplaats: gedeelde projectnotities.
  • AGENTS.md in de huidige werkmap : submap/functiedetails.

Als u Codex bijvoorbeeld wilt helpen begrijpen hoe u code schrijft voor Azure AI Foundry-agents, kunt u een AGENTS.md in de hoofdmap van uw project maken met de volgende inhoud, afgeleid van de Azure AI Agents SDK-documentatie:

# Instructions for working with Azure AI 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}")
\`\`\`

In het vorige voorbeeld worden backticks in het Python-codeblok geëscaped om de juiste rendering mogelijk te maken. De \'s kunnen worden verwijderd.

Experimenteren met Codex CLI

Start codex met de volgende eerste prompt:

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

Andere voorgestelde tests:

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

Codex binnen GitHub Actions

Codex kan worden uitgevoerd als onderdeel van uw CI-pijplijn (continuous integration). Sla uw API-sleutel op in het geheime archief van de opslagplaats als AZURE_OPENAI_KEY en voeg een taak als volgt toe om uw wijzigingslogboek automatisch bij te werken vóór een release:

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"

Probleemoplossingsproces

Symptoom Solution
401 Unauthorized of 403 Forbidden Zorg ervoor dat u de omgevingsvariabele AZURE_OPENAI_API_KEY correct exporteert. Controleer of uw sleutel toegang heeft tot project/implementatie.
Zorg ervoor dat u de API-sleutel niet rechtstreeks als een tekenreeks doorgeeft aan het env_keyconfig.toml bestand. U moet een geldige omgevingsvariabele doorgeven.
ENOTFOUND, DNS errorof 404 Not Found Controleer of `base_url` uw resource-naam gebruikt, het juiste domein heeft, en `config.toml` bevat.
Bijvoorbeeld: base_url = "https://<your-resource>.openai.azure.com/openai/v1".
Cli negeert Azure-instellingen Open ~/.codex/config.toml en zorg ervoor dat:
- model_provider = "azure" is ingesteld.
- De [model_providers.azure] sectie bestaat.
- env_key = "AZURE_OPENAI_API_KEY" komt overeen met de naam van uw omgevingsvariabele.
Ondersteuning voor Entra-id's Ondersteuning voor Entra-id's is momenteel niet beschikbaar voor Codex. Als u de status van deze functie wilt bijhouden, raadpleegt u deze pull-aanvraag waarmee ondersteuning wordt toegevoegd.
401 Unauthorized alleen met de WSL + VS Code Codex-extensie Bij het uitvoeren van VS Code vanuit WSL met de Codex-extensie kan de extensie controleren op de omgevingsvariabele van de API-sleutel op de lokale Windows-host in plaats van in de terminalshell die VS Code heeft gestart. Als u dit probleem wilt oplossen, stelt u de omgevingsvariabele op de lokale Windows-host ook in, start u vervolgens een nieuwe terminal vanuit WSL en start u VS Code met code ..