Codex SDK
Программное управление локальными агентами Codex
Если вы используете Codex через Codex CLI, расширение IDE или облачный сервис Codex, то также можете управлять им программно.
Используйте SDK, когда вам необходимо:
- Управлять Codex как частью конвейера CI/CD
- Создать собственного агента, который сможет взаимодействовать с Codex для выполнения сложных инженерных задач
- Встроить Codex в собственные внутренние инструменты и рабочие процессы
- Интегрировать Codex в собственное приложение
Используйте Codex SDK для ориентированных на программирование потоков Codex. Если Codex выступает одним из специалистов в более широком оркестрируемом рабочем процессе, запустите Codex CLI как сервер MCP и управляйте им с помощью Agents SDK.
Если у вас есть доступ к бета-версии и вам необходимо сканировать репозитории или изменения с получением структурированных результатов анализа безопасности и сведений о покрытии, используйте 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 выбирает последнюю
опубликованную бета-сборку. После выхода стабильной версии SDK используйте
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.