Bahasa Indonesia

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-sdk

Penggunaan

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-codex

Build 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.