Codex z Azure OpenAI w modelach Microsoft Foundry

Codex CLI OpenAI to ten sam agent programistyczny, który zasila Codex w ChatGPT. Tego agenta programistycznego można uruchomić w całości w infrastrukturze platformy Azure, przy jednoczesnym utrzymaniu danych w granicach obszaru zgodności. Uzyskasz dodatkowe zalety zabezpieczeń klasy korporacyjnej, sieci prywatnej, kontroli dostępu opartej na rolach i przewidywalnego zarządzania kosztami. Codex to więcej niż czat z agentem kodu — jest to asynchroniczny agent kodowania, który można wyzwolić z poziomu terminalu, programu VS Code lub modułu uruchamiającego GitHub Actions. Codex umożliwia automatyczne otwieranie pull requestów, refaktoryzowanie plików i pisanie testów przy użyciu poświadczeń projektu Foundry i wdrożeń Azure OpenAI.

Wymagania wstępne

Wymagania Szczegóły
Systemy operacyjne macOS 12+, Ubuntu 20.04+/Debian 10+lub Windows 11 za pośrednictwem WSL2
Git (opcjonalnie, zalecane) 2.23+ dla wbudowanych asystentów pull requestów
RAM Minimalna 4 GB (zalecane 8 GB)

Wdrażanie modelu w narzędziu Foundry

  1. Przejdź do obszaru Foundry i utwórz nowy projekt.
  2. W katalogu modeli wybierz model rozumowania, taki jak gpt-6-astra, gpt-5.3-codexgpt-5.1-codex-maxgpt-5.1-codexgpt-5.2-codexgpt-6-solgpt-5-codexgpt-5gpt-5.1-codex-minigpt-5-minilub .gpt-5-nano
  3. Aby wdrożyć model z katalogu modeli, wybierz pozycję Użyj tego modelu. Jeśli używasz okienka Azure OpenAI Deployments wybierz pozycję deploy model.
  4. Skopiuj adres URL punktu końcowego i klucz interfejsu API.

Zainstaluj Codex CLI

W terminalu uruchom następujące polecenia, aby zainstalować interfejs wiersza polecenia Codex

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

Zweryfikowane wersje dla GPT-6 Astra

Wersje interfejsu wiersza polecenia Codex 0.152.1 i 0.153.0 są weryfikowane za pomocą gpt-6-astra w usłudze Azure OpenAI, w tym orkiestracja wieloagentowa i buforowanie promptów. Wersja 0.155.1 narzędzia Codex CLI jest zweryfikowana z gpt-6-sol i gpt-6-luna w usłudze Azure OpenAI. Te wersje są obecnie uznawane za zweryfikowane, a nie za minimalnie obsługiwane.

Tworzenie i konfigurowanie pliku config.toml

  1. Aby używać narzędzia Codex CLI na platformie Azure, utwórz i skonfiguruj plik config.toml.

    config.toml Zapisz plik w ~/.codex katalogu. Utwórz config.toml plik w tym katalogu lub zmodyfikuj istniejący plik, jeśli już istnieje:

    cd ~/.codex
    nano config.toml
    
  2. Skopiuj poniższy tekst, aby skorzystać z Responses API w wersji v1. W interfejsie API v1 nie musisz już przekazywać api-version, ale musisz uwzględnić /v1 w ścieżce base_url. Nie można bezpośrednio przekazać klucza interfejsu API jako ciągu znaków do env_key. env_key musi wskazywać zmienną środowiskową. Zaktualizuj plik base_url przy użyciu nazwy zasobu:

    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. Po zapisaniu aktualizacji w config.toml pliku wróć do terminalu i utwórz wystąpienie zmiennej środowiskowej, do której odwołuje się plik konfiguracji.

    # Linux, macOS, or WSL 
    export AZURE_OPENAI_API_KEY="<your-api-key>"
    
  4. Uruchom jedno z następujących poleceń w terminalu, aby sprawdzić, czy konfiguracja interfejsu wiersza polecenia Codex zakończyła się pomyślnie:

    Polecenia Cel
    Kodeks Uruchamianie interaktywnego interfejsu użytkownika terminalu (TUI)
    codex "Monit początkowy" Uruchamianie interfejsu TUI z początkowym monitem
    codex exec "Prompt początkowy" Uruchom interfejs TUI w trybie nieinterakcyjnym "tryb automatyczny"

Użyj Codex w Visual Studio Code

Z Codexa można również korzystać bezpośrednio w Visual Studio Code za pomocą rozszerzenia OpenAI Codex extension.

  1. Jeśli nie masz jeszcze Visual Studio Code, zainstaluj go dla macOS i Linux.

  2. Zainstaluj rozszerzenie OpenAI Codex. Rozszerzenie korzysta z pliku config.toml, który został skonfigurowany dla Codex CLI.

  3. Jeśli pracujesz w nowej sesji terminala, ustaw zmienną środowiskową dla AZURE_OPENAI_API_KEY:

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

    Uwaga

    Jeśli używasz protokołu WSL, ustaw również tę samą zmienną środowiskową na hoście Windows, aby rozszerzenie można je było odczytać w razie potrzeby.

  4. Uruchom program VS Code z tej samej sesji terminalu. (Uruchomienie za pomocą programu uruchamiającego aplikację może spowodować, że zmienna środowiskowa dla klucza API może być niedostępna dla rozszerzenia Codex).

    code .
    
  5. Możesz teraz korzystać z Codex w Visual Studio Code, aby czatować, edytować i wyświetlać podgląd zmian podczas przełączania między trzema trybami zatwierdzania.

Tryby zatwierdzania

Tryby akceptacji określają, ile autonomii i interakcji chcesz mieć z Codex.

Tryb zatwierdzania Opis
Czat Aby porozmawiać z modelem i zaplanować.
Agenta Codex może odczytywać pliki, edytować i uruchamiać polecenia w katalogu roboczym automatycznie. Codex wymaga zatwierdzenia, aby wykonywać działania poza katalogiem roboczym lub uzyskiwać dostęp do internetu.
Agent (pełny dostęp) Wszystkie możliwości trybu agenta bez konieczności zatwierdzania krok po kroku. Nie używaj trybu pełnego dostępu bez pełnego zrozumienia potencjalnych zagrożeń oraz bez wdrożenia dodatkowych zabezpieczeń, takich jak uruchamianie w kontrolowanym środowisku sandbox.

Ważne

Zalecamy zapoznanie się ze wskazówkami platformy OpenAI dotyczącymi zabezpieczeń codex.

Stałe wskazówki w sprawie AGENTS.md

Możesz przekazać Codexowi dodatkowe instrukcje i wskazówki za pomocą plików AGENTS.md. Codex wyszukuje pliki AGENTS.md w następujących miejscach i scala je od góry do dołu, co pozwala mu uwzględnić twoje osobiste preferencje, szczegóły specyficzne dla projektu oraz bieżące zadanie.

  • ~/.codex/AGENTS.md – osobiste wskazówki globalne.
  • AGENTS.md w katalogu głównym repozytorium — udostępnione notatki dotyczące projektu.
  • AGENTS.md w bieżącym katalogu roboczym — podfolder lub specyfika funkcji.

Aby na przykład ułatwić Codex zrozumienie sposobu pisania kodu dla Agentów Foundry, możesz utworzyć AGENTS.md w katalogu głównym projektu z następującą zawartością pochodzącą z dokumentacji Azure AI Agents SDK:

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

W poprzednim przykładzie elementy backticks w bloku kodu Python są blokowane w celu umożliwienia prawidłowego renderowania. Można usunąć \ znaki.

Eksperymentuj z używaniem CLI Codex

Uruchom kodeks z następującym początkowym monitem:

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

Inne sugerowane testy:

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

Kodek w GitHub Actions

Program Codex może być wykonywany w ramach potoku ciągłej integracji. Zapisz klucz interfejsu API w magazynie wpisów tajnych repozytorium jako AZURE_OPENAI_KEY i dodaj zadanie podobne do tego, aby automatycznie zaktualizować dziennik zmian przed wydaniem:

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"

Rozwiązywanie problemów

Objaw Rozwiązanie
401 Unauthorized Lub 403 Forbidden Poprawnie wyeksportuj zmienną środowiskową AZURE_OPENAI_API_KEY. Upewnij się, że klucz ma dostęp do projektu/wdrożenia.
Upewnij się, że klucz API nie jest bezpośrednio przekazywany jako ciąg do env_key w pliku config.toml. Należy przekazać prawidłową zmienną środowiskową.
ENOTFOUND, DNS errorlub 404 Not Found Sprawdź, czy base_url w config.toml używa nazwy zasobu, poprawnej domeny i zawiera /v1.
Na przykład base_url = "https://<your-resource>.openai.azure.com/openai/v1".
Interfejs wiersza polecenia ignoruje ustawienia platformy Azure Otwórz ~/.codex/config.toml i upewnij się, że:
- model_provider = "azure" jest ustawione.
- Sekcja [model_providers.azure] istnieje.
- env_key = "AZURE_OPENAI_API_KEY" pasuje do nazwy zmiennej środowiskowej.
Obsługa Entra ID Obsługa Entra ID jest obecnie niedostępna dla programu Codex.
401 Unauthorized tylko z rozszerzeniem WSL + VS Codex Podczas uruchamiania VS Code w środowisku WSL z rozszerzeniem Codex rozszerzenie może sprawdzać obecność zmiennej środowiskowej klucza API na lokalnym hoście systemu Windows, a nie w powłoce terminala, z której uruchomiono VS Code. Aby złagodzić ten problem, ustaw zmienną środowiskową również na lokalnym hoście z systemem Windows, a następnie uruchom nowy terminal w WSL i uruchom program VS Code za pomocą code ..