다음을 통해 공유


Azure AI Foundry 모델에서 Azure OpenAI를 사용하는 Codex

OpenAI의 Codex CLI 는 ChatGPT의 Codex를 구동하는 동일한 코딩 에이전트입니다. 엔터프라이즈급 보안, 프라이빗 네트워킹, 역할 기반 액세스 제어 및 예측 가능한 비용 관리의 추가적인 장점으로 규정 준수 경계 내에 데이터를 유지하면서 Azure 인프라에서 이 코딩 에이전트를 완전히 실행할 수 있습니다. Codex는 코드 에이전트와의 채팅 이상입니다. 이는 터미널, VS Code 또는 GitHub Actions 실행기에서 트리거할 수 있는 비동기 코딩 에이전트입니다. Codex를 사용하면 AI Foundry 프로젝트 및 Azure OpenAI 배포의 자격 증명을 사용하여 끌어오기 요청을 자동으로 열고, 파일을 리팩터링하고, 테스트를 작성할 수 있습니다.

필수 조건

요구 사항 세부 정보
운영 체제 macOS 12 이상, Ubuntu 20.04 이상/Debian 10 이상 또는 WSL2를 통한 Windows 11
Git(선택 사항, 권장) 기본 제공 끌어오기 요청 도우미용 2.23 이상
RAM 최소 4GB(8GB 권장)

Azure AI Foundry에서 모델 배포

  1. Azure AI Foundry로 이동하여 새 프로젝트를 만듭니다.
  2. 모델 카탈로그에서 추론 모델(예: gpt-5-codex, gpt-5또는 gpt-5-minigpt-5-nano)을 선택합니다.
  3. 모델 카탈로그에서 모델을 배포하려면 이 모델 사용을 선택하거나 Azure OpenAI 배포 창을 사용하는 경우 모델 배포를 선택합니다.
  4. 엔드포인트 URLAPI 키를 복사합니다.

Codex CLI 설치

터미널에서 다음 명령을 실행하여 Codex CLI를 설치합니다.

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

config.toml 만들기 및 구성

  1. Azure에서 Codex CLI를 사용하려면 config.toml 파일을 만들고 설정해야 합니다.

    config.toml 파일은 ~/.codex 디렉터리에 저장해야 합니다. config.toml 이 디렉터리 내에 파일을 만들거나 기존 파일이 이미 있는 경우 편집합니다.

    cd ~/.codex
    nano config.toml
    
  2. 아래 텍스트를 복사하여 v1 응답 API를 사용합니다. v1 API를 사용하면 더 이상 api-version을 전달할 필요가 없지만 경로에 /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. 이제 터미널에서 다음 명령 중 하나를 실행하여 Codex CLI 구성이 성공했는지 테스트합니다.

    Command 목적
    코덱스 대화형 TUI(터미널 사용자 인터페이스) 시작
    codex "초기 프롬프트" 초기 프롬프트를 사용하여 TUI 시작
    codex exec "초기 프롬프트" 비대화형 "자동화 모드"에서 TUI 프로그램 시작

Visual Studio Code에서 codex 사용

OpenAI Codex 확장을 사용할 때 Visual Studio Code 내에서 직접 Codex를 사용할 수도 있습니다.

  1. Visual Studio Code가 아직 없는 경우 macOSLinux용으로 설치할 수 있습니다.

  2. OpenAI Codex 확장을 설치합니다. 확장에서는 Codex CLI에 대해 구성된 config.toml 파일을 사용합니다.

  3. 새 터미널 세션에 있는 경우 AZURE_OPENAI_API_KEY를 위한 환경 변수를 설정합니다.

    export OPENAI_API_KEY="your-azure-api-key-here"
    
  4. 동일한 터미널 세션에서 VS Code를 시작합니다. (앱 시작 관리자에서 시작하면 API 키 환경 변수를 Codex 확장에서 사용할 수 없을 수 있습니다.)

    code .
    
  5. 이제 Visual Studio Code의 Codex를 사용하여 세 가지 승인 모드 간에 전환하면서 변경 내용을 채팅, 편집 및 미리 볼 수 있습니다.

승인 모드

승인 모드는 Codex와의 자율성 및 상호 작용의 양을 결정합니다.

승인 모드 Description
Chat 모델과 채팅하고 계획합니다.
에이전트 Codex는 작업 디렉터리에서 자동으로 파일을 읽고, 편집하고, 명령을 실행할 수 있습니다. Codex는 작업 디렉터리 외부의 활동에 대한 승인 또는 인터넷에 액세스해야 합니다.
에이전트(모든 권한) 단계별 승인 없이 에이전트 모드의 모든 기능 전체 액세스 모드는 잠재적인 위험을 완전히 이해하지 않은 채 사용해서는 안 되며, 제어된 샌드박스 환경에서 실행하는 등의 추가적인 보호 장치를 구현해야 합니다.

중요합니다

Codex 보안에 대한 OpenAI의 지침을 검토하는 것이 좋습니다.

AGENTS.md와 함께하는 지속적인 지침

파일을 사용하여 CodexAGENTS.md에 추가 지침 및 안내를 제공할 수 있습니다. Codex는 다음 위치에서 파일을 찾고 AGENTS.md 하향식으로 병합하여 개인 기본 설정, 프로젝트별 세부 정보 및 현재 작업에 대한 컨텍스트를 제공합니다.

  • ~/.codex/AGENTS.md– 개인화된 글로벌 지침.
  • AGENTS.md 리포지토리의 루트 – 공유 프로젝트 노트
  • AGENTS.md 현재 작업 디렉터리 – 하위 폴더/기능 세부 정보

예를 들어 Codex가 Azure AI Foundry Agents에 대한 코드를 작성하는 방법을 이해하도록 돕기 위해 Azure AI Agents SDK 설명서에서 파생된 다음 콘텐츠를 사용하여 프로젝트 루트에 만들 AGENTS.md 수 있습니다.

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

이전 예제에서 Python 코드 블록의 백틱은 적절한 렌더링을 허용하도록 이스케이프되었습니다. \(을)를 제거할 수 있습니다.

Codex CLI를 사용하여 실험

다음 초기 프롬프트를 사용하여 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

Codex는 CI(연속 통합) 파이프라인의 일부로 실행할 수 있습니다. 리포지토리의 비밀 저장소 AZURE_OPENAI_KEY 에 API 키를 저장하고 다음과 같은 작업을 추가하여 릴리스 전에 변경 로그를 자동으로 업데이트합니다.

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"

Troubleshooting

증상 해결 방법
401 Unauthorized 또는 403 Forbidden AZURE_OPENAI_API_KEY 환경 변수를 올바르게 내보냅니다. 키에 프로젝트/배포 액세스 권한이 있는지 확인합니다.
API 키를 문자열로 env_key에 직접 전달하지 않고 config.toml 파일에 전달하는지 확인합니다. 유효한 환경 변수를 전달해야 합니다.
ENOTFOUND, DNS error 또는 404 Not Found base_url에서config.toml 에 리소스 이름, 올바른 도메인을 사용하고 /v1를 포함하는지 확인하십시오.
예: 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 Code Codex 확장만 사용 Codex 확장을 사용하여 WSL 내부에서 VS Code를 실행하는 경우 확장은 VS Code를 시작한 터미널 셸이 아닌 로컬 창 호스트에서 API 키 환경 변수를 확인할 수 있습니다. 이 문제를 완화하려면 로컬 Windows 호스트에서도 환경 변수를 설정한 다음 WSL에서 새 터미널을 시작하고 VS Code를 시작합니다 code ..