Кодекс с Azure OpenAI в моделях Microsoft Foundry

Codex CLI от OpenAI — это тот же агент программирования, который обеспечивает работу Codex ChatGPT. Этот агент программирования можно запускать полностью в Azure инфраструктуре, сохраняя данные в пределах границы соответствия с дополнительными преимуществами безопасности корпоративного уровня, частной сети, управления доступом на основе ролей и прогнозируемого управления затратами. Codex больше, чем чат с агентом кода— это асинхронный агент программирования, который можно активировать из терминала, VS Code или из GitHub Actions runner. Codex позволяет автоматически открывать pull requests, рефакторить файлы и писать тесты с учетными данными вашего проекта Foundry и развертываний Azure OpenAI.

Необходимые условия

Требования Детали
Операционные системы macOS 12+, Ubuntu 20.04+/Debian 10+, или Windows 11 через WSL2
Git (необязательно, рекомендуется) 2.23+ для встроенных вспомогательных pull request'ов
Оперативная память Минимум 4 ГБ (рекомендуется 8 ГБ)

Разверните модель в Foundry

  1. Перейдите в Foundry и создайте новый проект.
  2. В каталоге моделей выберите модель причин, например gpt-5.3-codex, , gpt-5.2-codexgpt-5.1-codex-maxgpt-5.1-codex, , gpt-5.1-codex-mini, gpt-5-codexgpt-5gpt-5-miniили .gpt-5-nano
  3. Чтобы развернуть модель из каталога моделей, выберите Использовать эту модель, или если используется панель развертывания Azure OpenAI развертывание, выберите развернуть модель.
  4. Скопируйте URL-адрес конечной точки и ключ API.

Установка интерфейса командной строки Codex

В терминале выполните следующие команды, чтобы установить Codex CLI

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

Создание и настройка config.toml

  1. Чтобы использовать Cli Codex с Azure, необходимо создать и настроить файл config.toml.

    Файл config.toml должен храниться в каталоге ~/.codex . Создайте файл в этом каталоге или измените существующий config.toml файл, если он уже существует:

    cd ~/.codex
    nano config.toml
    
  2. Скопируйте приведенный ниже текст, чтобы использовать API ответов версии 1. В API версии 1 больше не нужно передавать версию API, но необходимо включить /v1 в base_url путь. Нельзя передать ключ API как строку напрямую в env_key. env_key должен указывать на переменную среды. Обновите имя 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. После сохранения обновлений config.toml файла вернитесь в терминал и создайте экземпляр переменной среды, на которую ссылается файл конфигурации.

    # Linux, macOS, or WSL 
    export AZURE_OPENAI_API_KEY="<your-api-key>"
    
  4. Теперь выполните одну из следующих команд в терминале, чтобы проверить, успешно ли выполнена конфигурация cli Codex:

    Команда Цель
    Кодекс Запуск интерактивного пользовательского интерфейса терминала (TUI)
    codex "Начальный запрос" Запуск TUI с начальным запросом
    codex exec "Начальный запрос" Запуск TUI в неинтерактивном режиме автоматизации

Использование кодекса в Visual Studio Code

Вы также можете использовать Codex непосредственно внутри Visual Studio Code при использовании расширения OpenAI Codex

  1. Если у вас еще нет Visual Studio Code, его можно установить для macOS и Linux.

  2. Установите расширение OpenAI Codex. Расширение зависит от config.toml файла, настроенного для Codex CLI.

  3. Если вы находитесь в новом сеансе терминала, настройте переменную среды для AZURE_OPENAI_API_KEY:

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

    Примечание

    При использовании WSL также задайте ту же переменную среды на хосте Windows, чтобы расширение могло его прочитать при необходимости.

  4. Запустите VS Code из одного сеанса терминала. (Запуск из средства запуска приложений может привести к тому, что переменная ключевой среды API недоступна для расширения Codex.)

    code .
    
  5. Теперь вы сможете использовать Codex в Visual Studio Code для чата, редактирования и предварительного просмотра изменений при переключение между тремя режимами утверждения.

Режимы утверждения

Режимы утверждения определяют, сколько автономности и взаимодействия вы хотите иметь с Codex.

Режим утверждения Описание
Чат Для чата и планирования с моделью.
Агент Codex может считывать файлы, вносить изменения и выполнять команды в рабочем каталоге автоматически. Кодексу потребуется получение разрешения на действия за пределами рабочей папки или для доступа к интернету.
Агент (полный доступ) Все возможности режима агента, не требующие пошагового утверждения. Режим полного доступа не следует использовать без полного понимания потенциальных рисков, а также реализации дополнительных мер защиты, таких как запуск в контролируемой песочнице.

Важно

Мы рекомендуем ознакомиться с рекомендациями OpenAI по безопасности Codex.

Постоянное сопровождение с AGENTS.md

Дополнительные инструкции и рекомендации по Codex можно предоставить с помощью AGENTS.md файлов. Codex ищет AGENTS.md файлы в следующих местах и объединяет их сверху вниз, предоставляя ему контекст о личных предпочтениях, сведениях о проекте и текущей задаче:

  • ~/.codex/AGENTS.md— личное глобальное руководство.
  • AGENTS.md в корневом каталоге репозитория — общие заметки о проекте.
  • AGENTS.md в текущем рабочем каталоге — вложенная папка или особенности компонентов.

Например, чтобы помочь Codex понять, как писать код для Foundry Agents, вы можете создать AGENTS.md в корневом каталоге вашего проекта со следующим содержимым, взятым из документации 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}")
\`\`\`

В предыдущем примере обратные кавычки в блоке кода Python экранируются, чтобы обеспечить правильный рендеринг. Можно удалить \.

Эксперимент с интерфейсом командной строки Codex

Запустите кодекс со следующим начальным запросом:

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

Другие предлагаемые тесты:

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

Кодекс в GitHub Actions

Codex может выполняться как часть конвейера непрерывной интеграции (CI). Сохраните ключ API в хранилище секретов репозитория как AZURE_OPENAI_KEY и добавьте задачу, подобную этой, чтобы автоматически обновлять журнал изменений перед выпуском.

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"

Устранение неполадок

Симптом Решение
401 Unauthorized Или 403 Forbidden Экспортируйте переменную среды AZURE_OPENAI_API_KEY правильно. Убедитесь, что ваш ключ имеет доступ к проекту/развертыванию.
Убедитесь, что вы не передаете ключ API непосредственно как строку в файл env_key в config.toml. Необходимо передать допустимую переменную среды.
ENOTFOUND, или DNS error404 Not Found Убедитесь, что base_url использует ваше имя ресурса, правильный домен и содержит config.toml.
Например, base_url = "https://<your-resource>.openai.azure.com/openai/v1".
CLI игнорирует параметры Azure Откройте ~/.codex/config.toml и убедитесь, что:
- model_provider = "azure" установлен.
— Раздел [model_providers.azure] существует.
- env_key = "AZURE_OPENAI_API_KEY" соответствует имени переменной среды.
поддержка Entra ID поддержка Entra ID в настоящее время недоступна для Codex.
401 Unauthorized только с расширением WSL + VS Codex При запуске VS Code из WSL с расширением Codex расширение может проверить переменную среды ключа API на локальном узле Windows, а не в оболочке терминала, из которого был запущен VS Code. Чтобы устранить эту проблему, задайте переменную среды на локальном узле Windows, а затем запустите новый терминал из WSL и запустите VS Code.code .