Русский

Codex SDK

Codex SDK

Программное управление локальными агентами Codex

Если вы используете Codex через Codex CLI, расширение IDE или облачный сервис Codex, то также можете управлять им программно.

Используйте SDK, когда вам необходимо:

  • Управлять Codex как частью конвейера CI/CD
  • Создать собственного агента, который сможет взаимодействовать с Codex для выполнения сложных инженерных задач
  • Встроить Codex в собственные внутренние инструменты и рабочие процессы
  • Интегрировать Codex в собственное приложение

Используйте Codex SDK для автоматизации задач программирования, включая задания в CI. Используйте сервер приложений Codex, чтобы создавать собственные клиенты, которые обрабатывают аутентификацию, историю бесед, подтверждения и потоковые события агента.

Команда codex mcp-server и отдельный исполняемый файл codex-mcp-server удалены. Для существующих интеграций используйте сервер приложений Codex.

Если у вас есть доступ к бета-версии и вам необходимо сканировать репозитории или изменения с получением структурированных результатов анализа безопасности и сведений о покрытии, используйте Codex Security TypeScript SDK.

Библиотека TypeScript

Библиотека TypeScript позволяет приложению запускать, продолжать и возобновлять локальные потоки Codex.

Используйте библиотеку на стороне сервера; для неё требуется Node.js 18 или более поздней версии.

Установка

Для начала установите Codex SDK с помощью npm:

npm install @openai/codex-sdk

Использование

Создайте поток с Codex и запустите его с вашим запросом.



const codex = new Codex();
const thread = codex.startThread();
const result = await thread.run(
  "Make a plan to diagnose and fix the CI failures"
);

console.log(result.finalResponse);

Снова вызовите run(), чтобы продолжить работу в том же потоке, или возобновите прошлый поток, указав его ID.

// running the same thread
const result = await thread.run("Implement the plan");

console.log(result.finalResponse);

// resuming past thread

const threadId = "<thread-id>";
const thread2 = codex.resumeThread(threadId);
const result2 = await thread2.run("Pick up where you left off");

console.log(result2.finalResponse);

Дополнительные сведения см. в репозитории TypeScript.

Библиотека Python

Python SDK управляет локальным app-server Codex через JSON-RPC. Для него требуется Python 3.10 или более поздней версии. Опубликованные сборки SDK включают закреплённую зависимость среды выполнения Codex CLI.

Установка

Чтобы установить SDK, выполните:

pip install openai-codex

Опубликованные сборки SDK автоматически используют закреплённую среду выполнения. Передавайте CodexConfig(codex_bin=...) только в том случае, если намеренно хотите использовать конкретный локальный исполняемый файл Codex.

Python SDK доступен в виде стабильного выпуска. pip install openai-codex устанавливает последнюю стабильную версию. Используйте pip install --pre openai-codex, чтобы явно перейти на более новые предварительные сборки.

Использование

Запустите Codex, создайте поток и выполните запрос:

from openai_codex import Codex, Sandbox

with Codex() as codex:
    thread = codex.thread_start(
        model="gpt-5.6-terra",
        sandbox=Sandbox.workspace_write,
    )
    result = thread.run("Make a plan to diagnose and fix the CI failures")
    print(result.final_response)

Используйте AsyncCodex, если ваше приложение уже работает асинхронно:

import asyncio

from openai_codex import AsyncCodex


async def main() -> None:
    async with AsyncCodex() as codex:
        thread = await codex.thread_start(model="gpt-5.6-terra")
        result = await thread.run("Implement the plan")
        print(result.final_response)


asyncio.run(main())

Предустановки песочницы

Используйте те же предустановки Sandbox при создании потока или изменении доступа к файловой системе для последующего хода:

from openai_codex import Codex, Sandbox

with Codex() as codex:
    thread = codex.thread_start(sandbox=Sandbox.workspace_write)
    thread.run("Make the requested change.")
    review = thread.run("Review the diff only.", sandbox=Sandbox.read_only)

Доступные предустановки:

  • Sandbox.read_only: чтение файлов без разрешения на запись.
  • Sandbox.workspace_write: чтение файлов и запись в рабочей области и настроенных корневых каталогах с разрешением на запись.
  • Sandbox.full_access: запуск без ограничений доступа к файловой системе.

Если параметр sandbox= не указан, app-server использует настроенное значение по умолчанию. Песочница, переданная в run(...) или turn(...), применяется к этому и последующим ходам в потоке.

Дополнительные сведения см. в репозитории Python.