Dela via


Codex med Azure OpenAI i Azure AI Foundry modeller

OpenAI:s Codex CLI är samma kodningsagent som driver ChatGPT:s Codex. Du kan köra den här kodningsagenten helt i Azure-infrastrukturen, samtidigt som du håller dina data inom din efterlevnadsgräns med de extra fördelarna med säkerhet i företagsklass, privat nätverk, rollbaserad åtkomstkontroll och förutsägbar kostnadshantering. Codex är mer än en chatt med din kodagent – det är en asynkron kodningsagent som kan utlösas från din terminal, VS Code eller från en GitHub Actions-löpare. Med Codex kan du automatiskt öppna pull-begäranden, omstrukturera filer och skriva tester med autentiseringsuppgifterna för ditt AI Foundry-projekt och Azure OpenAI-distributioner.

Förutsättningar

Kravspecifikation Detaljer
Operativsystem macOS 12+, Ubuntu 20.04+/Debian 10+, eller Windows 11 via WSL2
Git (valfritt, rekommenderas) 2.23+ för inbyggda pull request-verktyg
RAM Minst 4 GB (8 GB rekommenderas)

Distribuera en modell i Azure AI Foundry

  1. Gå till Azure AI Foundry och skapa ett nytt projekt.
  2. I modellkatalogen väljer du en resonemangsmodell som gpt-5-codex, gpt-5, gpt-5-minieller gpt-5-nano.
  3. Om du vill distribuera modellen från modellkatalogen väljer du Använd den här modellen, eller om du använder fönstret Azure OpenAI-distributioner väljer du distribuera modell.
  4. Kopiera slutpunkts-URL:en och API-nyckeln.

Installera Codex CLI

Från terminalen kör du följande kommandon för att installera Codex CLI

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

Skapa och konfigurera config.toml

  1. För att kunna använda Codex CLI med Azure måste du skapa och konfigurera en config.toml fil.

    Filen config.toml måste lagras i ~/.codex katalogen. Skapa en config.toml fil i den här katalogen eller redigera den befintliga filen om den redan finns:

    cd ~/.codex
    nano config.toml
    
  2. Kopiera texten nedan för att använda v1-svars-API:et. Med v1-API :et behöver du inte längre skicka api-version, men du måste inkludera /v1 i base_url sökvägen. Du kan inte skicka API-nyckeln som en sträng direkt till env_key. env_key måste peka på en miljövariabel. Uppdatera base_url med ditt resursnamn:

    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. När du har sparat uppdateringarna för config.toml filen återgår du till terminalen och skapar en instans av miljövariabeln som refereras i konfigurationsfilen.

    # Linux, macOS, or WSL 
    export AZURE_OPENAI_API_KEY="<your-api-key>"
    
  4. Kör nu något av följande kommandon i terminalen för att testa om Codex CLI-konfigurationen lyckades:

    Befallning Avsikt
    Codex Starta interaktivt terminalanvändargränssnitt (TUI)
    codex "Inledande uppmaning" Starta TUI med en inledande uppmaning
    codex exec "Inledande uppmaning" Starta TUI i icke-interaktivt "automationsläge"

Använda codex i Visual Studio Code

Du kan också använda Codex direkt i Visual Studio Code när du använder OpenAI Codex-tillägget

  1. Om du inte redan har Visual Studio Code kan du installera det för macOS och Linux.

  2. Installera OpenAI Codex-tillägget. Tillägget förlitar sig på filen config.toml som har konfigurerats för Codex CLI.

  3. Om du är i en ny terminalsession konfigurerar du miljövariabeln för AZURE_OPENAI_API_KEY:

    export OPENAI_API_KEY="your-azure-api-key-here"
    
  4. Starta VS Code från samma terminalsession. (Om du startar från en appstart kan det leda till att din API-nyckelmiljövariabel inte är tillgänglig för Codex-tillägget.)

    code .
    
  5. Nu kan du använda Codex i Visual Studio Code för att chatta, redigera och förhandsgranska ändringar när du växlar mellan tre godkännandelägen.

Godkännandelägen

Godkännandelägen avgör hur mycket autonomi och interaktion du vill ha med Codex.

Godkännandeläge Description
Chat Att chatta och planera med modellen.
Handläggare Codex kan läsa filer, göra ändringar och köra kommandon i arbetskatalogen automatiskt. Codex behöver godkännande för aktiviteter utanför arbetskatalogen eller för att få åtkomst till Internet.
Agent (fullständig åtkomst) Alla funktioner i agentläget utan steg-för-steg-godkännande. Fullständigt åtkomstläge ska inte användas utan full förståelse för de potentiella riskerna, samt utan implementering av ytterligare skyddsåtgärder, som att köra i en kontrollerad sandlådemiljö.

Viktigt!

Vi rekommenderar att du läser OpenAI:s vägledning om Codex-säkerhet.

Beständig vägledning med AGENTS.md

Du kan ge Codex extra instruktioner och vägledning med hjälp av AGENTS.md filer. Codex söker AGENTS.md efter filer på följande platser och sammanfogar dem uppifrån och ned, vilket ger den kontext om dina personliga inställningar, projektspecifik information och den aktuella uppgiften:

  • ~/.codex/AGENTS.md– personlig global vägledning.
  • AGENTS.md i lagringsplatsens rotenhet – delade projektanteckningar.
  • AGENTS.md i den aktuella arbetskatalogen – undermapp/funktionens specifikationer.

För att till exempel hjälpa Codex att förstå hur man skriver kod för Azure AI Foundry Agents kan du skapa en AGENTS.md i projektroten med följande innehåll som härleds från Azure AI Agents SDK-dokumentationen:

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

I föregående exempel är bakåtsnedstrecken i Python-kodblocket escapade för att tillåta korrekt återgivning. ' \s kan tas bort.

Experimentera med Codex CLI

Starta codex med följande inledande prompt:

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

Andra föreslagna tester:

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

Codex i GitHub Actions

Codex kan köras som en del av din CI-pipeline (continuous integration). Lagra din API-nyckel i lagringsplatsens hemliga lagringsplats som AZURE_OPENAI_KEY och lägg till ett jobb som det här för att automatiskt uppdatera ändringsloggen före en version:

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"

Felsökning

Symtom Lösning
401 Unauthorized eller 403 Forbidden Exportera AZURE_OPENAI_API_KEY miljövariabeln korrekt. Bekräfta att nyckeln har projekt-/distributionsåtkomst.
Kontrollera att du inte skickar API-nyckeln som en sträng direkt till env_key i config.toml filen. Du måste skicka en giltig miljövariabel.
ENOTFOUND, DNS error eller 404 Not Found Verifiera att base_url i config.toml används ditt resursnamn, korrekt domän och innehåller /v1.
Till exempel base_url = "https://<your-resource>.openai.azure.com/openai/v1".
CLI ignorerar Azure-inställningar Öppna ~/.codex/config.toml och se till att:
- model_provider = "azure" är inställd.
- Avsnittet [model_providers.azure] finns.
- env_key = "AZURE_OPENAI_API_KEY" matchar miljövariabelnamnet.
Stöd för Entra-ID Stöd för Entra-ID är för närvarande inte tillgängligt för Codex. För att spåra status för den här funktionen, se den här pull request som lägger till stöd.
401 Unauthorized endast med tillägget WSL + VS Code Codex När du kör VS Code från WSL med Codex-tillägget kan tillägget leta efter miljövariabeln för API-nyckeln på den lokala Windows-värddatorn istället för i terminalen från vilken VS Code startades. Du kan åtgärda det här problemet genom att ange miljövariabeln på den lokala Windows-värden, starta sedan en ny terminal från WSL och starta VS Code med code ..