Codex SDK
Kontrol agen Codex lokal secara terprogram
Jika Anda menggunakan Codex melalui Codex CLI, ekstensi IDE, atau Codex cloud, Anda juga dapat mengontrolnya secara terprogram.
Gunakan SDK saat Anda perlu:
- Mengontrol Codex sebagai bagian dari pipeline CI/CD Anda
- Membuat agen sendiri yang dapat berinteraksi dengan Codex untuk menjalankan tugas rekayasa yang kompleks
- Mengintegrasikan Codex ke dalam alat dan alur kerja internal Anda sendiri
- Mengintegrasikan Codex ke dalam aplikasi Anda sendiri
Gunakan Codex SDK untuk thread Codex yang berfokus pada pemrograman. Jika Codex merupakan salah satu spesialis dalam alur kerja terorkestrasi yang lebih luas, jalankan Codex CLI sebagai server MCP dan orkestrakan dengan Agents SDK.
Jika Anda memiliki akses beta dan memerlukan pemindaian repositori atau perubahan dengan temuan keamanan dan cakupan yang terstruktur, gunakan Codex Security TypeScript SDK.
Pustaka TypeScript
Pustaka TypeScript memungkinkan aplikasi Anda memulai, melanjutkan, dan meneruskan kembali thread Codex lokal.
Gunakan pustaka di sisi server; pustaka ini memerlukan Node.js 18 atau yang lebih baru.
Instalasi
Untuk memulai, instal Codex SDK menggunakan npm:
npm install @openai/codex-sdkPenggunaan
Mulai thread dengan Codex dan jalankan menggunakan prompt Anda.
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);Panggil kembali run() untuk melanjutkan thread yang sama, atau lanjutkan kembali thread sebelumnya dengan memberikan ID thread.
// 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);Untuk detail selengkapnya, lihat repo TypeScript.
Pustaka Python
Python SDK mengontrol app-server Codex lokal melalui JSON-RPC. SDK ini memerlukan Python 3.10 atau yang lebih baru. Build SDK yang dipublikasikan menyertakan dependensi runtime Codex CLI dengan versi tetap.
Instalasi
Untuk menginstal SDK, jalankan:
pip install openai-codexBuild SDK yang dipublikasikan secara otomatis menggunakan runtime dengan versi tetapnya. Berikan CodexConfig(codex_bin=...) hanya saat Anda sengaja ingin menjalankannya dengan executable Codex lokal tertentu.
Selama Python SDK masih dalam versi beta, pip install openai-codex memilih build beta
terbaru yang dipublikasikan. Setelah rilis SDK stabil tersedia, gunakan
pip install --pre openai-codex untuk memilih build prarilis yang lebih baru.
Penggunaan
Mulai Codex, buat thread, dan jalankan prompt:
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)Gunakan AsyncCodex saat aplikasi Anda sudah berjalan secara asinkron:
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())Preset sandbox
Gunakan preset Sandbox yang sama saat membuat thread atau mengubah akses
sistem filenya untuk giliran berikutnya:
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)Preset yang tersedia:
Sandbox.read_only: Membaca file tanpa mengizinkan penulisan.Sandbox.workspace_write: Membaca file dan menulis di dalam workspace serta direktori akar yang dikonfigurasi agar dapat ditulis.Sandbox.full_access: Berjalan tanpa pembatasan akses sistem file.
Saat Anda menghilangkan sandbox=, app-server menggunakan pengaturan default yang telah dikonfigurasi. Sandbox
yang diberikan kepada run(...) atau turn(...) berlaku untuk giliran tersebut dan giliran berikutnya
dalam thread.
Untuk detail selengkapnya, lihat repo Python.