Pertama, apa itu context window? Dan gimana kaitannya dengan ngoding lebih efektif pakai Cursor? Supaya lebih jelas, large language model (LLM) adalah model kecerdasan buatan yang dilatih untuk memprediksi dan menghasilkan teks dengan mempelajari pola dari dataset berskala besar. LLM menjalankan tool seperti Cursor dengan memahami input kamu dan menyarankan kode atau teks berdasarkan apa yang pernah dilihat sebelumnya. Token adalah input dan output dari model-model ini. Token adalah potongan teks—sering berupa fragmen kata—yang diproses LLM satu per satu. Model nggak membaca seluruh kalimat sekaligus; model memprediksi token berikutnya berdasarkan token-token sebelumnya. Buat melihat gimana sebuah teks ditokenisasi, kamu bisa pakai tokenizer seperti yang ini. Tokenizer

Apa itu konteks?

Saat kita menghasilkan saran kode di Cursor, “konteks” merujuk pada informasi yang diberikan ke model (dalam bentuk “input tokens”) yang lalu dipakai model untuk memprediksi informasi berikutnya (dalam bentuk “output tokens”). Ada dua jenis konteks:
  1. Konteks intent menjelaskan apa yang pengin kamu dapat dari model. Misalnya, system prompt biasanya berfungsi sebagai instruksi tingkat tinggi tentang bagaimana kamu pengin model berperilaku. Sebagian besar “prompting” yang dilakukan di Cursor adalah konteks intent. “Ubah tombol itu dari biru jadi hijau” adalah contoh intent yang dinyatakan; ini bersifat preskriptif.
  2. Konteks state menggambarkan keadaan dunia saat ini. Ngasih Cursor pesan error, log konsol, gambar, dan potongan kode adalah contoh konteks yang terkait dengan state. Ini bersifat deskriptif, bukan preskriptif.
Dua jenis konteks ini bekerja bareng dengan menjabarkan state saat ini dan state yang diinginkan ke depan, sehingga Cursor bisa ngasih saran ngoding yang berguna.

Memberikan konteks di Cursor

Semakin relevan konteks yang kamu kasih ke model, semakin berguna hasilnya. Kalau konteks yang dikasih di Cursor kurang, model akan coba nyelesain tanpa info yang relevan. Ini biasanya berujung pada:
  1. Halusinasi ketika model mencoba melakukan pattern matching (padahal nggak ada pattern) sehingga hasilnya jadi nggak terduga. Ini sering kejadian di model seperti claude-3.5-sonnet kalau konteksnya kurang.
  2. Agent yang mencoba ngumpulin konteks sendiri dengan nyari di codebase, baca file, dan manggil tools. Model yang kuat dalam penalaran (kayak claude-3.7-sonnet) bisa cukup jauh dengan strategi ini, dan ngasih konteks awal yang tepat bakal nentuin arahnya.
Kabar baiknya, Cursor dibangun dengan kesadaran konteks sebagai inti dan didesain supaya butuh intervensi minimal dari pengguna. Cursor otomatis menarik bagian-bagian dari codebase kamu yang diperkirakan relevan oleh model, seperti file saat ini, pola yang mirip secara semantik di file lain, dan info lain dari sesi kamu. Namun, karena ada banyak sumber konteks yang bisa ditarik, secara manual nentuin konteks yang kamu tahu relevan buat tugasnya adalah cara yang efektif buat ngarahin model ke arah yang tepat.

Simbol @

Cara paling gampang buat ngasih konteks eksplisit adalah pakai simbol @. Ini pas banget kalau kamu udah tahu persis file, folder, website, atau potongan konteks lain yang mau kamu masukin. Semakin spesifik, semakin bagus. Berikut cara bikin konteks jadi lebih presisi:
SymbolExampleUse caseDrawback
@code@LRUCachedFunctionKamu tahu fungsi, konstanta, atau simbol mana yang relevan dengan output yang lagi kamu buatButuh banyak pengetahuan tentang codebase
@filecache.tsKamu tahu file mana yang harus dibaca atau diedit, tapi belum pasti di bagian manaBisa ngeikutin banyak konteks yang nggak relevan buat tugasnya, tergantung ukuran file
@folderutils/Semua atau mayoritas file di dalam sebuah folder relevanBisa ngeikutin banyak konteks yang nggak relevan buat tugasnya
Context Menu

Rules

Anggep rules sebagai memori jangka panjang yang pengin kamu atau anggota tim lain bisa akses. Nangkep konteks spesifik domain, termasuk workflow, formatting, dan konvensi lainnya, adalah titik awal yang bagus buat nulis rules. Rules juga bisa dibuat dari percakapan yang sudah ada dengan pakai /Generate Cursor Rules. Kalau kamu pernah punya percakapan panjang bolak-balik dengan banyak prompt, kemungkinan ada beberapa directive atau rules umum yang bakal berguna buat dipakai lagi nanti. Rules

MCP

Model Context Protocol adalah lapisan ekstensi yang memungkinkan kamu memberi Cursor kemampuan untuk menjalankan tindakan dan mengambil konteks eksternal. Tergantung setup pengembangan kamu, kamu mungkin ingin memanfaatkan jenis server yang berbeda, tapi dua kategori yang kami lihat paling berguna adalah:
  • Dokumentasi internal: mis., Notion, Confluence, Google Docs
  • Manajemen proyek: mis., Linear, Jira
Kalau kamu sudah punya tooling untuk mengakses konteks dan menjalankan tindakan lewat API, kamu bisa membangun server MCP untuk itu. Berikut panduan singkat cara membangun server MCP. MCP

Pengumpulan konteks mandiri

Salah satu pola ampuh yang banyak pengguna pakai adalah membiarkan Agent menulis tool berumur pendek yang bisa dijalankan untuk mengumpulkan lebih banyak konteks. Ini sangat efektif dalam alur kerja human-in-the-loop, di mana kamu meninjau kode sebelum dieksekusi. Misalnya, menambahkan statement debugging ke kode, menjalankannya, lalu membiarkan model memeriksa output akan memberinya akses ke konteks dinamis yang nggak bisa disimpulkan secara statis. Di Python, kamu bisa melakukan ini dengan meminta Agent untuk:
  1. Menambahkan statement print(“debugging: …”) di bagian kode yang relevan
  2. Menjalankan kode atau test menggunakan terminal
Agent akan membaca output terminal dan memutuskan langkah berikutnya. Inti idenya adalah memberi Agent akses ke perilaku runtime yang sebenarnya, bukan cuma kode statis. Self-Gathering Context

Ringkasan

  • Konteks adalah dasar pengodean AI yang efektif, terdiri dari intent (apa yang kamu mau) dan state (apa yang sudah ada). Menyediakan keduanya membantu Cursor membuat prediksi yang akurat.
  • Gunakan konteks yang terarah dengan simbol @ (@code, @file, @folder) untuk membimbing Cursor secara presisi, alih-alih hanya mengandalkan pengumpulan konteks otomatis.
  • Abadikan pengetahuan yang berulang dalam rules untuk dipakai seluruh tim, dan perluas kemampuan Cursor dengan Model Context Protocol untuk menyambungkan sistem eksternal.
  • Konteks yang kurang memadai bisa memicu halusinasi atau inefisiensi, sementara terlalu banyak konteks yang tidak relevan akan mengaburkan sinyal. Cari keseimbangan yang pas untuk hasil optimal.