【Terjemahan】 Rekayasa Konteks: Jangan Mengisi Jendela Terlalu Penuh! Gunakan Empat Langkah "Menulis, Menyaring, Mengompres, dan Mengisolasi", Waspadai Interferensi Toksik yang Membingungkan, Jaga Kebisingan di Luar Jendela — Pelajari AI Perlahan 170
Pendahuluan
- Batasan agen AI tidak hanya ditentukan oleh ukuran model, tetapi juga oleh keterampilan dalam “manajemen konteks.” Ini seperti mengonfigurasi memori untuk CPU, yang menentukan kedalaman dan efisiensi pemikiran agen.
- Jendela konteks bukan tempat sampah: Kelebihan informasi dapat “menyuntik racun”, mengganggu, dan membingungkan penilaian AI. Ketepatan jauh lebih penting daripada volume.
- Para ahli menggunakan empat prinsip “Menulis, Menyaring, Mengompres, dan Mengisolasi” untuk mengelola konteks AI, memanfaatkan “memori” yang terbatas di tempat yang tepat, mencapai pengurangan biaya dan peningkatan efisiensi.
- Persaingan di masa depan adalah persaingan efisiensi sistem. Menggunakan arsitektur multi-agen untuk “mengisolasi” tugas, agar setiap agen dapat berfungsi secara maksimal dalam jendela kecilnya, adalah kunci untuk membangun sistem tugas kompleks.
Ringkasan Inti
Agen (Agent) tidak bisa melaksanakan tugas tanpa konteks (Context). Apa yang disebut “rekayasa konteks” adalah seni dan ilmu menambahkan informasi yang tepat ke dalam jendela konteks agen di setiap langkah tugasnya. Artikel ini akan merangkum strategi rekayasa konteks yang diterapkan oleh agen utama saat ini, menjadi beberapa pola umum.

Rekayasa Konteks (Context Engineering)
Seperti yang dikatakan Andrej Karpathy, model bahasa besar (LLM) seperti “sistem operasi baru.” LLM adalah CPU, sementara “jendela konteks” adalah RAM, berfungsi sebagai memori kerja model. Seperti kapasitas RAM yang terbatas, jendela konteks LLM juga menghadapi kendala saat mengolah berbagai sumber konteks. Salah satu tugas inti sistem operasi adalah mengelola penggunaan RAM CPU yang efisien, dan “rekayasa konteks” berperan dalam hal yang sama. Karpathy merangkum hal ini dengan sangat baik:
Rekayasa konteks adalah “… seni dan ilmu yang cermat dalam mengisi jendela konteks agar tepat pada langkah berikutnya (perhitungan).”

Saat membangun aplikasi LLM, kita perlu mengelola jenis konteks apa saja? Konsep umum dari rekayasa konteks mencakup beberapa jenis konteks yang berbeda:
- • Instruksi (Instructions) – Prompt, memori, contoh dengan sedikit sampel, deskripsi alat, dll.
- • Pengetahuan (Knowledge) – Fakta, memori, dll.
- • Alat (Tools) – Informasi umpan balik dari pemanggilan alat.
Rekayasa Konteks untuk Agen
Tahun ini, dengan peningkatan kemampuan LLM dalam penalaran dan pemanggilan alat, minat terhadap agen semakin meningkat. Agen menyelesaikan tugas dengan bergantian memanggil LLM dan alat, khususnya unggul dalam menangani tugas kompleks yang berjalan lama.

Namun, tugas jangka panjang dan umpan balik pemanggilan alat yang terus bertambah berarti agen seringkali menghabiskan banyak token. Ini dapat menyebabkan berbagai masalah: melebihi kapasitas jendela konteks, yang mengarah pada lonjakan biaya dan keterlambatan, bahkan menurunkan kinerja agen. Drew Breunig telah menggarisbawahi dengan jelas bahwa konteks yang terlalu panjang dapat menyebabkan masalah performa dengan beberapa cara berikut:
- • Racun Konteks (Context Poisoning): Ketika informasi tersesat (khayalan) masuk ke dalam konteks.
- • Gangguan Konteks (Context Distraction): Ketika terlalu banyak informasi konteks mengaburkan pengetahuan pelatihan model asli.
- • Kebingungan Konteks (Context Confusion): Ketika informasi konteks yang tidak relevan mempengaruhi respons model.
- • Konflik Konteks (Context Clash): Ketika bagian-bagian dalam konteks saling bertentangan.
Menghadapi masalah ini, perusahaan Cognition AI menekankan pentingnya rekayasa konteks:
“Rekayasa konteks” … sebenarnya adalah tugas utama bagi para insinyur dalam membangun agen AI.
Perusahaan Anthropic juga menegaskan bahwa:
Agen biasanya perlu melakukan ratusan putaran percakapan, yang mengharuskan kita mengadopsi strategi manajemen konteks yang hati-hati.
Lalu, bagaimana pengembang masa kini menghadapi tantangan ini? Saya merangkum metode yang ada menjadi empat kategori — Menulis (Write), Menyaring (Select), Mengompres (Compress), dan Mengisolasi (Isolate) — dan masing-masing akan saya jelaskan dengan contoh.

Menulis Konteks (Write Context)
Menulis konteks berarti menyimpan informasi di luar jendela konteks, untuk digunakan saat agen melaksanakan tugas.
Tambalan (Scratchpads)
Manusia sering mencatat dan mengingat beberapa hal saat menyelesaikan masalah, untuk digunakan kembali di masa depan. Agen juga semakin memiliki kemampuan ini! Menggunakan “tambalan” untuk mencatat adalah cara untuk menyimpan informasi selama agen melaksanakan tugas. Inti dari ide ini adalah menyimpan informasi di luar jendela konteks, tetapi tetap dapat diakses oleh agen kapan saja. Sistem penelitian multi-agen dari Anthropic memberikan contoh yang jelas:
“Peneliti utama” terlebih dahulu mempertimbangkan metode penyelesaian masalah dan menyimpan rencananya ke dalam “memori” untuk memelihara konteks, karena jika jendela konteks melebihi 200.000 token, bisa jadi terputus, dan menyimpan rencana sangatlah penting.
Ada berbagai cara untuk mengimplementasikan tambalan. Ini bisa berupa pemanggilan alat sederhana, seperti menulis file; atau bisa juga berupa field dalam objek status runtime yang tetap sama sepanjang sesi. Terlepas dari cara mana yang digunakan, tambalan memungkinkan agen menyimpan informasi berguna untuk menyelesaikan tugas dengan lebih baik.
Memori (Memories)
Menggunakan tambalan membantu agen dalam menyelesaikan tugas dalam satu sesi, tetapi terkadang agen perlu mengingat hal-hal dari beberapa sesi yang berbeda. Model Reflexion memperkenalkan gagasan untuk merenungkan setelah setiap aksi agen dan menggunakan kembali memori yang dihasilkan sendiri. Model Generative Agents dapat secara berkala menyintesis memori dari kumpulan umpan balik agen di masa lalu.
Konsep-konsep ini telah diterapkan dalam produk populer seperti ChatGPT, Cursor, dan Windsurf. Semua memiliki mekanisme untuk secara otomatis menghasilkan memori jangka panjang berdasarkan interaksi pengguna dengan agen.

Menyaring Konteks (Select Context)
Menyaring konteks berarti membawa informasi yang diperlukan ke dalam jendela konteks, untuk membantu agen melaksanakan tugas.
Tambalan (Scratchpad)
Mekanisme untuk menyaring konteks dari tambalan tergantung pada cara implementasinya. Jika ia adalah sebuah alat, agen hanya perlu menggunakan panggilan alat untuk membacanya. Jika merupakan bagian dari status runtime agen, pengembang bisa memilih untuk mengekspos beberapa bagian dari status pada setiap langkah. Ini memberikan kontrol yang lebih baik dalam menyediakan konteks tambalan pada LLM di putaran berikutnya.
Memori (Memories)
Jika agen dapat menyimpan memori, mereka juga memerlukan kemampuan untuk menyaring memori yang relevan dengan tugas saat ini. Ini sangat berguna karena beberapa alasan: agen dapat memilih contoh dengan sedikit sampel (memori situasi) untuk belajar pola perilaku yang diharapkan; dapat memilih instruksi (memori program) untuk mengarahkan perilakunya sendiri; atau memilih fakta (memori semantis) untuk memberikan konteks yang relevan bagi tugas.

Salah satu tantangan besar adalah memastikan memori yang disaring adalah relevan. Beberapa agen populer hanya menggunakan sebagian kecil file yang tetap, yang selalu dimuat ke dalam konteks. Sebagai contoh, banyak agen kode menggunakan file untuk menyimpan instruksi (memori program), atau kadang-kadang menyimpan contoh (memori situasi). Claude Code menggunakan CLAUDE.md, sementara Cursor dan Windsurf menggunakan file aturan.
Namun, jika agen menyimpan sejumlah besar fakta atau hubungan (seperti jenis “memori semantis”), maka penyaringan menjadi lebih rumit. ChatGPT adalah contoh yang baik, yang menyimpan dan menyaring dari sejumlah besar memori eksklusif pengguna.
Embedding vektor dan/atau grafik pengetahuan adalah teknik umum untuk mengindeks memori, untuk mendukung penyaringan. Meskipun demikian, penyaringan memori tetap penuh tantangan. Di AI Engineer World Expo, Simon Willison berbagi contoh di mana ada kesalahan dalam penyaringan memori: ChatGPT mengambil informasi lokasi dari memorinya dan secara tidak sengaja menyuntikkannya ke dalam gambar yang dimintanya. Pengambilan memori yang tidak terduga atau yang tidak diinginkan ini dapat menyebabkan beberapa pengguna merasa bahwa jendela konteks “tidak lagi milik mereka sendiri”!
Alat (Tools)
Agen perlu menggunakan alat, tetapi jika terlalu banyak alat yang disediakan, mereka mungkin merasa terbebani. Ini sering terjadi karena deskripsi alat dapat tumpang tindih, yang menyebabkan model bingung saat memilih alat mana yang akan digunakan. Salah satu pendekatan adalah menerapkan RAG (Pengambilan Diperkuat Generatif) pada deskripsi alat, untuk mencari alat yang paling relevan untuk tugas berdasarkan kesamaan semantik. Beberapa penelitian terbaru menunjukkan bahwa pendekatan ini dapat meningkatkan akurasi pemilihan alat hingga 3 kali lipat.
Pengetahuan (Knowledge)
Pengambilan Diperkuat Generatif (RAG) merupakan topik besar yang bisa menjadi tantangan inti dalam rekayasa konteks. Agen kode adalah salah satu contoh terbaik penerapan RAG dalam aplikasi produksi skala besar. Varun dari Windsurf sangat baik dalam merangkum beberapa tantangan yang dihadapi:
Mengindeks kode ≠ Pengambilan konteks… Apa yang kami lakukan adalah menganalisis kode melalui AST (pohon sintaksis abstrak) dan memotongnya di sepanjang batas-batas yang memiliki makna semantik… Namun dengan pertumbuhan ukuran repositori kode, pencarian embedding vektor sebagai metode heuristik pencarian menjadi tidak dapat diandalkan… Kami harus bergantung pada kombinasi berbagai teknik, seperti grep/pencarian file, pencarian berbasis grafik pengetahuan, dan… langkah penyortiran ulang, di mana konteks diurutkan berdasarkan relevansi.
Mengompres Konteks (Compress Context)
Mengompres konteks berarti hanya menyimpan token yang diperlukan untuk tugas yang dijalankan.
Ringkasan Konteks (Context Summarization)
Interaksi agen mungkin melintasi ratusan putaran, menggunakan alat yang menghabiskan banyak token. Merangkum adalah cara umum untuk menghadapi tantangan ini. Jika Anda pernah menggunakan Claude Code, Anda mungkin sudah melihat aplikasi nyata dari ini. Ketika penggunaan jendela konteks melebihi 95%, Claude Code akan menjalankan “kompresi otomatis”, merangkum seluruh jejak interaksi antara pengguna dan agen. Proses kompresi atas jejak agen ini dapat menggunakan berbagai strategi, seperti ringkasan rekursif atau ringkasan berlapis.

Menambahkan langkah ringkasan dalam desain agen juga bermanfaat. Misalnya, ini bisa digunakan untuk memproses kembali beberapa pemanggilan alat (terutama alat pencarian yang banyak menghabiskan token). Misalnya, perusahaan Cognition mencatat bahwa merangkum di batas tempat agen beralih dapat mengurangi konsumsi token selama proses transfer pengetahuan. Jika perlu menangkap peristiwa atau keputusan tertentu, ringkasan mungkin lebih menantang. Untuk itu, Cognition menggunakan model yang disesuaikan, yang menunjukkan bahwa langkah ini mungkin memerlukan banyak kerja.
Pemangkasan Konteks (Context Trimming)
Ringkasan biasanya menggunakan LLM untuk mengekstrak bagian konteks yang paling relevan, sedangkan pemangkasan lebih seperti menyaring atau “memangkas” konteks, seperti yang disebutkan oleh Drew Breunig. Ini dapat menggunakan aturan heuristik berbasis kode keras, seperti menghapus pesan yang lebih lama dari daftar pesan. Drew juga menyebutkan Provence, yang merupakan alat pemangkas konteks yang dilatih untuk tugas tanya jawab.
Mengisolasi Konteks (Isolating Context)
Mengisolasi konteks berarti membagi konteks untuk membantu agen melaksanakan tugas.
Multi-agen (Multi-agent)
Salah satu cara paling populer untuk mengisolasi konteks adalah dengan menyebarkannya ke beberapa subagen. Salah satu motif dari perpustakaan Swarm milik OpenAI adalah “pemisahan fokus”, di mana sebuah tim agen menangani sub-tugas. Setiap agen memiliki set alat, instruksi, dan jendela konteks yang independen sendiri.

Sistem penelitian multi-agen dari Anthropic memberikan bukti kuat untuk hal ini: beberapa agen dengan konteks independen menunjukkan kinerja yang lebih baik daripada satu agen tunggal, sebagian besar karena jendela konteks setiap subagen dapat fokus pada sub-tugas yang lebih sempit. Seperti yang tercantum dalam blog mereka:
Subagen bekerja secara paralel dengan jendela konteks masing-masing, sembari menjelajahi berbagai aspek masalah.
Tentu saja, multi-agen juga menghadapi tantangan, termasuk konsumsi token (misalnya, Anthropic melaporkan bahwa konsumsi token mereka 15 kali lipat dari percakapan), perlu adanya rekayasa prompt yang cermat untuk merencanakan pekerjaan subagen, serta masalah koordinasi antar subagen.
Pengisolasian Konteks Melalui Lingkungan (Context Isolation with Environments)
Proyek Deep Research dari HuggingFace menunjukkan contoh menarik lainnya dalam pengisolaan konteks. Kebanyakan agen menggunakan pemanggilan alat API, yang mengembalikan objek JSON (parameter alat), kemudian disalurkan ke alat (seperti API pencarian) untuk mendapatkan umpan balik (seperti hasil pencarian). HuggingFace menggunakan CodeAgent, yang langsung mengeluarkan kode yang menyertakan pemanggilan alat yang diperlukan. Kode ini kemudian dijalankan dalam lingkungan sandbox. Konteks tertentu yang kembali dari pemanggilan alat (misalnya, nilai kembali) kemudian dikirim kembali ke LLM.

Ini memungkinkan konteks dipisahkan dari LLM dalam lingkungan. Hugging Face mencatat bahwa ini adalah cara yang sangat baik untuk mengisolasi objek yang menghabiskan banyak token:
Code Agents dapat menangani status dengan lebih baik… perlu menyimpan gambar/audio/data lain untuk referensi di masa depan? Tidak masalah, cukup alokasikan sebagai variabel, dan Anda dapat menggunakannya nanti.
Status (State)
Perlu dicatat bahwa objek status runtime agen juga merupakan cara baik untuk mengisolasi konteks. Ini berfungsi dengan cara yang mirip dengan sandbox. Objek status bisa dirancang dengan pola (Schema, seperti model Pydantic), yang mencakup field yang dapat ditulis ke dalam konteks. Salah satu field dalam pola (seperti messages) dapat diekspos ke LLM di setiap interaksi agen, tetapi pola juga dapat mengisolasi informasi di field lainnya untuk digunakan dengan lebih selektif.
Kesimpulan
Pola rekayasa konteks agen masih terus berkembang, tetapi kita dapat merangkum metode umum menjadi empat kategori — Menulis, Menyaring, Mengompres, dan Mengisolasi:
- • Menulis konteks berarti menyimpan informasi di luar jendela konteks, untuk digunakan saat agen melaksanakan tugas.
- • Menyaring konteks berarti membawa informasi yang diperlukan ke dalam jendela konteks, untuk membantu agen melaksanakan tugas.
- • Mengompres konteks berarti hanya menyimpan token yang diperlukan untuk tugas yang dijalankan.
- • Mengisolasi konteks berarti membagi konteks untuk membantu agen melaksanakan tugas.
Memahami dan menerapkan pola-pola ini adalah pekerjaan inti dalam membangun agen yang efisien saat ini.






