Sdílet prostřednictvím


Codex s Azure OpenAI v modelech Microsoft Foundry

OpenAI's Codex CLI je stejný agent kódování, který pohání Codex ChatGPT. Tento agent kódování můžete spouštět zcela v infrastruktuře Azure a zároveň zachovat data v rámci hranice dodržování předpisů s přidanými výhodami zabezpečení na podnikové úrovni, privátních sítí, řízení přístupu na základě rolí a předvídatelné správy nákladů. Codex je víc než chat s vaším agentem kódu – jedná se o asynchronní agenta kódování, který se dá aktivovat z terminálu, VS Code nebo z spouštěče GitHub Actions. Codex umožňuje automaticky otevírat žádosti o přijetí změn, refaktorovat soubory a zapisovat testy pomocí přihlašovacích údajů projektu Foundry a nasazení Azure OpenAI.

Požadavky

Požadavky Podrobnosti
Operační systémy macOS 12+, Ubuntu 20.04+/Debian 10+ nebo Windows 11 přes WSL2
Git (volitelné, doporučeno) 2.23 a novější pro integrované nástroje pro požadavky na stažení
paměť RAM Minimálně 4 GB (doporučeno 8 GB)

Nasazení modelu v Foundry

  1. Přejděte do Foundry a vytvořte nový projekt.
  2. V katalogu modelů vyberte model odůvodnění , například gpt-5.1-codex-max, gpt-5.1-codex, gpt-5.1-codex-mini, gpt-5-codex, gpt-5, , gpt-5-mininebo gpt-5-nano.
  3. Pokud chcete model nasadit z katalogu modelů, vyberte Použít tento model nebo pokud používáte podokno Nasazení Azure OpenAI, vyberte model nasazení.
  4. Zkopírujte adresu URL koncového bodu a klíč rozhraní API.

Instalace rozhraní příkazového řádku Codex

V terminálu spusťte následující příkazy pro instalaci Rozhraní příkazového řádku Codex.

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

Vytvoření a konfigurace config.toml

  1. Pokud chcete použít Rozhraní příkazového řádku Codex s Azure, musíte vytvořit a nastavit config.toml soubor.

    Soubor config.toml musí být uložen v adresáři ~/.codex . Vytvořte config.toml soubor v tomto adresáři nebo upravte existující soubor, pokud již existuje:

    cd ~/.codex
    nano config.toml
    
  2. Zkopírujte text níže a použijte rozhraní API v1 pro odpovědi. S API v1 už nemusíte předávat verzi API, ale do cesty musíte zahrnout /v1 base_url. Klíč rozhraní API nemůžete předat jako řetězec přímo do env_key. env_key musí odkazovat na proměnnou prostředí. Aktualizujte název svého base_url prostředku:

    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. Jakmile uložíte aktualizace do souboru config.toml, vraťte se k terminálu a definujte proměnnou prostředí odkazovanou v konfiguračním souboru.

    # Linux, macOS, or WSL 
    export AZURE_OPENAI_API_KEY="<your-api-key>"
    
  4. Teď v terminálu spusťte jeden z následujících příkazů a otestujte, jestli konfigurace rozhraní příkazového řádku Codex proběhla úspěšně:

    Command Účel
    kodex Spuštění interaktivního uživatelského rozhraní terminálu (TUI)
    codex "Initial prompt" (Počáteční výzva) Spuštění TUI s počáteční výzvou
    codex exec "Počáteční výzva" Spuštění TUI v neinteraktivním režimu automatizace

Použití kódu v editoru Visual Studio Code

Codex můžete použít také přímo v editoru Visual Studio Code při použití rozšíření OpenAI Codex.

  1. Pokud ještě nemáte Visual Studio Code, můžete ho nainstalovat pro macOS a Linux.

  2. Nainstalujte rozšíření OpenAI Codex. Přípona spoléhá na váš config.toml soubor nakonfigurovaný pro Rozhraní příkazového řádku Codex.

  3. V nové relaci terminálu nastavte proměnnou prostředí pro AZURE_OPENAI_API_KEY:

    export OPENAI_API_KEY="your-azure-api-key-here"
    
  4. Spusťte VS Code ze stejné relace terminálu. (Spuštění ze spouštěče aplikací může mít za následek nedostupnou proměnnou prostředí klíče rozhraní API pro rozšíření Codex.)

    code .
    
  5. V editoru Visual Studio Code teď budete moct používat codex k chatování, úpravám a změnám náhledu při přepínání mezi třemi režimy schválení.

Režimy schválení

Režimy schválení určují, kolik autonomií a interakcí chcete mít s Codexem.

Režim schválení Description
Chat Chatování a plánování s modelem
Agenta Codex může číst soubory, provádět úpravy a spouštět příkazy v pracovním adresáři automaticky. Codex bude potřebovat schválení pro aktivity mimo pracovní adresář nebo pro přístup k internetu.
Agent (úplný přístup) Všechny možnosti režimu agenta bez nutnosti podrobného schválení. Režim úplného přístupu by se neměl používat, aniž byste plně porozuměli potenciálním rizikům a také implementovali další mantinely, jako je spuštění v řízeném sandboxovém prostředí.

Důležité

Doporučujeme projít si pokyny openAI týkající se zabezpečení Codex.

Průběžné pokyny pro AGENTS.md

Můžete poskytnout Codexu další instrukce a vedení s použitím AGENTS.md souborů. Codex hledá AGENTS.md soubory na následujících místech a slučuje je shora dolů, poskytuje kontext o vašich osobních preferencích, podrobnostech specifických pro projekt a aktuální úkol:

  • ~/.codex/AGENTS.md– osobní globální pokyny.
  • AGENTS.md v kořenovém adresáři vašeho úložiště – sdílené poznámky k projektu.
  • AGENTS.md v aktuálním pracovním adresáři – specifika podsložky nebo funkce.

Pokud například chcete codexu pomoct pochopit, jak psát kód pro Foundry Agents, můžete vytvořit v kořenovém AGENTS.md adresáři projektu následující obsah odvozený z dokumentace k sadě 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}")
\`\`\`

V předchozím příkladu jsou backticky v bloku kódu Pythonu escapované, aby bylo možné správně zobrazit výsledný výstup. Je možné \ odebrat.

Experimentování s rozhraním příkazového řádku Codex

Spusťte kód s následující úvodní výzvou:

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

Další navrhované testy:

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

Codex v rámci GitHub Actions

Codex se může spouštět jako součást kanálu kontinuální integrace (CI). Uložte svůj klíč rozhraní API do tajného úložiště repozitáře jako AZURE_OPENAI_KEY a přidejte takovou úlohu, která automaticky aktualizuje protokol změn před vydáním:

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"

Řešení problémů

Příznaky Solution
401 Unauthorized nebo 403 Forbidden Exportujte proměnnou prostředí AZURE_OPENAI_API_KEY správně. Ověřte, že váš klíč má přístup k projektům/nasazením.
Ujistěte se, že klíč rozhraní API nepředáváte jako řetězec přímo do env_key v souboru config.toml. Musíte předat platnou proměnnou prostředí.
ENOTFOUND, DNS error nebo 404 Not Found Ověřte, zda base_url používá název vašeho prostředku, správnou doménu a obsahuje config.toml.
Například: base_url = "https://<your-resource>.openai.azure.com/openai/v1".
Rozhraní příkazového řádku ignoruje nastavení Azure. Otevřete ~/.codex/config.toml a ujistěte se, že:
- model_provider = "azure" je nastavená.
- Oddíl [model_providers.azure] existuje.
- env_key = "AZURE_OPENAI_API_KEY" odpovídá názvu proměnné prostředí.
Podpora Entra ID Podpora Entra ID není v současné době k dispozici pro Codex.
401 Unauthorized pouze s rozšířením WSL + VS Code Codex Při spuštění nástroje VS Code z wsL s rozšířením Codex může rozšíření zkontrolovat proměnnou prostředí klíče rozhraní API na místním hostiteli Windows, a ne v prostředí terminálu, který spustil VS Code. Pokud chcete tento problém zmírnit, nastavte proměnnou prostředí na místním hostiteli Windows a pak spusťte nový terminál z WSL a spusťte VS Code pomocí code ..