3 poin oleh GN⁺ 2026-01-24 | 1 komentar | Bagikan ke WhatsApp
  • Codex CLI dirancang sebagai agen yang melakukan perubahan perangkat lunak berkualitas tinggi secara aman dan efisien di lingkungan lokal
  • Struktur intinya, agent loop, menghubungkan input pengguna, penalaran model, dan pemanggilan alat secara berulang untuk menjalankan pekerjaan yang bermakna
  • Dalam proses loop, penyusunan prompt, pengelolaan context window, dan prompt caching yang dihasilkan menjadi elemen kunci bagi performa dan stabilitas
  • Codex berkomunikasi dengan model melalui Responses API, dan setiap permintaan disusun sebagai payload JSON lengkap untuk mempertahankan operasi stateless
  • Struktur ini memungkinkan fitur tingkat lanjut seperti Zero Data Retention(ZDR), prompt caching, dan compaction otomatis, serta menjadi fondasi bagi perancangan agen skala besar

Ikhtisar agent loop Codex

  • Codex CLI beroperasi dengan berfokus pada struktur loop yang mengoordinasikan interaksi antara pengguna, model, dan alat
    • Menerima input pengguna lalu menyusun prompt untuk dikirim ke model
    • Jika model menghasilkan respons atau meminta tool call, agen mengeksekusinya lalu menambahkan hasilnya kembali ke prompt
    • Satu giliran berakhir ketika model tidak lagi melakukan tool call dan menghasilkan pesan assistant
  • Setiap giliran merupakan bagian dari conversation, dan pesan sebelumnya beserta riwayat tool call semuanya disertakan dalam prompt permintaan berikutnya
  • Karena panjang prompt dipengaruhi oleh batas context window model, Codex perlu mengelolanya

Struktur komunikasi Codex dengan Responses API

  • Codex CLI mengirim permintaan HTTP ke Responses API untuk inferensi model
    • Endpoint API berbeda sesuai konfigurasi, dan dapat digunakan di lingkungan OpenAI, ChatGPT, Azure, maupun lokal (LM Studio, Ollama, dll.)
  • Permintaan API disusun sebagai payload JSON, dengan bidang utama sebagai berikut
    • pesan system/developer: menetapkan konteks dasar model
    • instructions: daftar alat yang dapat dipanggil model
    • tools: definisi alat yang disediakan oleh Codex CLI, Responses API, atau pengguna (seperti server MCP)
    • input: daftar pesan yang mencakup riwayat percakapan dan informasi lingkungan
  • Codex membaca konfigurasi ~/.codex/config.toml serta AGENTS.md, file skills, dan lainnya di dalam proyek untuk menyisipkan instruksi pengguna dan informasi lingkungan secara otomatis

Penyusunan prompt dan penanganan event

  • Codex menyusun setiap pesan sebagai objek JSON (type, role, content) lalu mengirimkannya ke Responses API
  • Server membuat prompt model berdasarkan JSON ini dan mengembalikan respons melalui stream SSE(Server-Sent Events)
    • Event response.output_text.delta digunakan untuk output streaming
    • Event response.output_item.added ditambahkan ke input permintaan berikutnya untuk melanjutkan loop
  • Dirancang agar prompt sebelumnya menjadi prefix yang tepat dari prompt baru, sehingga prompt caching dapat dimanfaatkan

Optimasi performa: caching dan desain stateless

  • Codex tidak menggunakan previous_response_id, sehingga mempertahankan struktur permintaan stateless sepenuhnya
    • Hal ini memungkinkan dukungan pelanggan Zero Data Retention(ZDR) dan meminimalkan retensi data
  • Prompt caching menggunakan kembali prefix yang sama untuk membuat biaya sampling menjadi linear
    • Cache hit hanya terjadi saat ada kecocokan prefix yang persis sama pada prompt
    • Perubahan daftar alat, model, pengaturan sandbox, atau direktori kerja akan menyebabkan cache miss
  • Perubahan dinamis pada alat MCP dapat menyebabkan hilangnya cache, sehingga Codex mencerminkan perubahan melalui metode penyisipan pesan baru

Pengelolaan context window dan compaction otomatis

  • Saat percakapan menjadi panjang, dilakukan compaction percakapan untuk mencegah context window terlampaui
    • Awalnya ringkasan dilakukan manual dengan perintah /compact, tetapi kini secara otomatis menggunakan endpoint /responses/compact milik Responses API
    • Endpoint ini mengembalikan item type=compaction dan encrypted_content terenkripsi untuk menjaga pemahaman model
  • Codex secara otomatis menjalankan compaction ketika melebihi auto_compact_limit agar kesinambungan percakapan tetap terjaga

Kesimpulan dan arah berikutnya

  • Agent loop Codex adalah struktur inti yang mengintegrasikan inferensi model, tool call, caching, dan pengelolaan konteks
  • Struktur ini memungkinkan perancangan agen yang berperforma tinggi, stateless, dan berfokus pada keamanan
  • Pada artikel berikutnya, struktur internal Codex seperti arsitektur CLI, implementasi penggunaan alat, dan model sandboxing akan dibahas lebih lanjut

1 komentar

 
GN⁺ 2026-01-24
Komentar Hacker News
  • Hal terbaik dari tulisan blog ini adalah sama sekali tidak mengejutkan. Codex CLI bersifat open source, jadi kita bisa melihat bagian dalamnya tanpa perlu reverse engineering
    Komunikasi Eric Traut, pengembang yang dikenal lewat Pyright, juga sangat bagus. Ia aktif terlibat dalam issue dan PR
    Repositori GitHub

    • Saat Codex CLI diumumkan sebagai open source tahun lalu, aku benar-benar terkejut. Di dalamnya juga ada codex-rs yang di-port dari TypeScript ke Rust, jadi sangat berguna bagi siapa pun yang ingin mempelajari cara kerja agen coding
      Aku juga pernah berkontribusi beberapa perbaikan ke CLI dan terus mengikuti rilis serta PR untuk menambah wawasan
    • Sepertinya banyak orang tidak tahu bahwa Claude Code adalah perangkat lunak proprietari
    • Sejujurnya, menurutku alasan Claude Code tidak open source adalah karena kualitas kodenya terlalu buruk dan memalukan. Aku memakai langganan 200 dolar per bulan, tapi CLI-nya lambat dan sering rusak, jadi kemungkinan akan segera kubatalkan
    • Aku penasaran apakah Codex CLI hanya frontend yang memanggil logika jarak jauh, atau bisa berfungsi sepenuhnya secara offline. Aku juga ingin tahu apakah mereka menyediakan bobot dengan lisensi FLOW dan mendokumentasikan proses build-nya
  • Bagian yang menarik adalah bahwa compaction dilakukan sebagai “pesan terenkripsi yang mempertahankan pemahaman laten model”
    Saat melebihi auto_compact_limit, Codex otomatis memakai endpoint ini untuk merangkum konteks percakapan secara efisien

    • Endpoint compaction milik Codex termasuk yang terbaik di industri. Punya Claude hampir sangat buruk
    • Aku penasaran apakah endpoint compactor bisa dipakai secara mandiri. Kami punya loop agen khusus domain sendiri, dan performa milik Codex tampaknya bisa lebih baik daripada sistem kompresi kami sendiri
    • Aku juga ingin tahu apakah fitur ini bekerja pada model selain model OpenAI
  • Hal yang membuatku terkejut saat melihat ke dalam Codex adalah token reasoning dipertahankan di loop pemanggilan tool agen, tetapi dihapus setiap kali giliran pengguna berubah
    Jadi konteks bisa dipertahankan lintas beberapa giliran, tetapi sebagian konteks bisa hilang di antara permintaan pengguna yang saling berkaitan
    Aku biasanya menyuruh model mencatat progres, rencana, atau detail debug ke file Markdown agar berfungsi semacam snapshot di antara beberapa context window

    • Ini tergantung jalur API. Chat completions bekerja seperti yang kamu bilang, tetapi pada responses v1 API justru sebaliknya. Token reasoning tetap dipertahankan saat mengirim pesan berikutnya. Hanya saja mode xhigh menghabiskan konteks jauh lebih cepat
    • Tidak mempertahankan token reasoning justru mungkin keputusan yang baik. Kalau tidak, konteks yang tidak terlihat oleh pengguna bisa terus menumpuk dan berisiko membuat pemahaman model dan pengguna tidak selaras
    • Aku membuat Codex Reflect Skill yang merefleksikan percakapan sebelumnya untuk membangun konteks lewat sesi paralel
      Repositori GitHub
    • Menyimpan catatan bersama kode memang praktis, tetapi menimbulkan masalah di lingkungan tim atau saat mengerjakan banyak branch sekaligus. Eksperimen berikutnya yang ingin kucoba adalah memisahkan data ini ke daemon dengan penyimpanan eksternal, lalu mengaksesnya lewat klien CLI
    • Aku sering memakai agent-shell di emacs, dan itu menyimpan seluruh riwayat percakapan. Jadi aku bisa dengan mudah mengatakan “tolong lihat percakapan sebelumnya”. Yang menyimpan log bukan agen, melainkan emacs, jadi tidak perlu khawatir ada yang terlewat
  • Hal yang benar-benar kuinginkan di Codex adalah fitur checkpoint ala Copilot. Ada beberapa issue terkait di GitHub (#2788, #3585), tetapi tampaknya itu bukan prioritas tim

    • Gemini CLI sudah punya fitur ini
    • Tim Codex katanya menentukan prioritas berdasarkan jumlah upvote emoji di GitHub. Jadi kalau ada fitur yang kamu inginkan, pastikan untuk memberi upvote
  • Saat mengagregasi instruksi pengguna dalam loop agen, aku penasaran bagaimana mereka mengelola pemeliharaan konteks dalam percakapan multi-giliran. Aku juga ingin tahu apakah mereka pernah mencoba teknik penyesuaian dinamis ketika kebutuhan pengguna berubah

  • Aku suka Codex, tetapi terasa lebih lambat daripada antarmuka web ChatGPT. Saat ingin saling melempar ide dengan cepat, tetap lebih produktif menyalin-tempel di web
    Codex sering mulai mengubah kode yang salah, jadi loop umpan balik terasa lambat dan membuat frustrasi. Meski begitu, saat bekerja dengan baik hasilnya sangat bagus. Semoga suatu hari bisa secepat web sambil tetap mampu bekerja lokal

    • Di antarmuka web ChatGPT Plus, mode xhigh reasoning effort untuk model 5.2 tidak tersedia
  • Tidak terlalu baru, tetapi tetap tulisan yang bernilai. Akan bagus jika di CLI coding berbasis agen, loop atau histori bisa lebih mudah untuk direfleksikan. Aku pernah mencoba cara mengueri riwayat chat lewat MCP, tetapi tidak nyaman karena harus ditentukan secara eksplisit. Pembelajaran berkelanjutan tampaknya bisa menyelesaikan masalah seperti ini

  • Perilaku seperti ini juga bisa diamati lewat telemetri OTEL. Aku sering memakai headless codex exec, tetapi dukungan telemetri bawaannya kurang sehingga sulit untuk debugging
    Karena itu aku membuat codex-plus sendiri. Ini mengikuti antarmuka codex exec apa adanya, dibangun di atas TypeScript SDK, dan setelah eksekusi mengekspor log sesi ke kolektor OpenTelemetry jarak jauh agar bisa dianalisis dengan codex-plus-log-viewer

  • Bagian yang menjelaskan skill terasa aneh
    Tautan kode terkait
    Aku bertanya-tanya kenapa mereka tidak langsung mengekspos file, melainkan membuat model memintanya seperti file biasa

    • Itulah inti dari skill. Strukturnya dibuat agar hanya file yang relevan yang dibuka, sehingga pemakaian context window bisa dikurangi
  • Aku penasaran apakah ada yang benar-benar pernah memakai Codex CLI secara serius. Aku pernah mencoba ekstensi Codex untuk VSCode, Gemini CLI, dan Claude Code CLI, dan semuanya berantakan dari sisi performa.
    Tapi Codex CLI baru yang dibuat ulang dengan Rust performanya luar biasa. UX-nya juga sempurna, sampai detail kecil seperti shortcut pun ditangani dengan baik. Theo bilang mereka seharusnya fokus memperbaiki model daripada mengoptimalkan CLI, tapi setelah mencobanya aku sama sekali tidak setuju

    • Menurutku Codex CLI jauh lebih baik daripada Claude Code. Ia mengikuti instruksi dengan akurat dan tidak melakukan hal yang tidak diinginkan. Dengan langganan 20 dolar per bulan, model 5.2 codex high bisa dipakai dengan cukup longgar. Aku bekerja dengan model bioakustik SSL
    • OpenCode juga lebih cepat dan lebih stabil daripada CLI lain. Akhir-akhir ini aku lebih sering memakai Codex dan berencana membatalkan Claude Pro. Menarik bahwa OpenAI mendukung OpenCode secara resmi. Menyenangkan melihat sekarang ada beberapa opsi kompetitif
    • Codex memberi hasil yang konsisten lebih dari 95% untuk sebagian besar pekerjaan coding. Tetapi pada tugas yang tidak terstruktur seperti percakapan atau penulisan cerita, kadang keluarannya jadi aneh. Aku juga pernah melihatnya terjebak dalam loop saat git rebase. Aku pernah mencoba Aider, tapi hampir tidak berguna
    • Efisiensi memori dan CPU Codex CLI sangat bagus. Selain itu, karena open source kita bisa langsung memeriksa cara kerjanya. Aku masih kesal dengan pernyataan Theo
    • Masalah Codex saat ini adalah belum ada dukungan hook. Aku membuat alat yang memakai hook untuk mengurangi konsumsi token agen sebesar 30%. Lewat hook, perilaku agen yang tidak efisien bisa dikoreksi secara real time
      Tulisan terkait: Scribe Swebench Benchmark