Memahami Rekayasa Konteks: Panduan LLM Cerdas

Rekayasa konteks merepresentasikan perubahan signifikan dalam kecerdasan buatan, beralih dari prompt individual dan beralih ke konstruksi ekosistem informasi komprehensif di sekitar large language model (LLM). Seiring aplikasi AI berevolusi dari chatbot dasar menjadi agen canggih yang mampu mengeksekusi tugas-tugas rumit dan multi-step, kualitas keluaran model semakin bergantung pada informasi yang diberikan. Oleh karena itu, rekayasa konteks telah menjadi penting untuk menciptakan aplikasi AI yang andal dan kuat yang memberikan pengalaman pengguna yang mengesankan.

Pergeseran Paradigma: Dari Prompt ke Sistem

Fokusnya bergeser dari membuat prompt individual ke membangun secara sistematis ekosistem informasi yang lengkap di sekitar large language model (LLM). Seiring aplikasi AI berkembang dari chatbot sederhana menjadi agen cerdas yang mampu melakukan tugas-tugas kompleks dan multi-step, kualitas keluaran model menjadi semakin bergantung pada kualitas informasi yang diberikan. Para pemimpin industri dan para peneliti AI menyadari pentingnya pergeseran ini, menekankan perlunya memberikan LLM konteks yang komprehensif untuk memecahkan tugas secara efektif. Rekayasa konteks melibatkan seni dan ilmu mengisi context window dengan informasi yang tepat, memungkinkan model untuk membuat keputusan yang akurat.

Argumen utamanya yaitu kegagalan sebagian besar agen cerdas berasal dari kekurangan konteks daripada kegagalan model. Pernyataan ini mendefinisikan ulang tantangan inti dari rekayasa AI, mengalihkan perhatian dari model tuning ke pengembangan sistem pendukung informasi. Memahami dan menguasai rekayasa konteks telah menjadi prasyarat untuk membangun aplikasi AI yang andal dan robust.

Mendefinisikan Rekayasa Konteks

Rekayasa konteks bukan hanya versi yang disempurnakan dari prompt engineering; ini adalah disiplin rekayasa tingkat sistem yang unik yang berfokus pada penciptaan sistem penyampaian informasi dinamis, daripada sekadar optimalisasi masukan teks.

Rekayasa konteks dapat didefinisikan sebagai disiplin rekayasa yang berfokus pada perancangan dan pembangunan sistem dinamis yang menyediakan LLM dengan informasi dan peralatan yang diperlukan untuk menyelesaikan tugas dengan benar, dalam format yang tepat, dan pada waktu yang tepat.

Komponen Utama:

  • "Merancang dan membangun sistem dinamis": Hal ini menekankan bahwa rekayasa konteks adalah aktivitas rekayasa, berfokus pada arsitektur sistem daripada sekadar kata-kata. Konteks adalah keluaran dari sistem yang berjalan sebelum panggilan LLM utama. Insinyur perlu membangun alur data, modul memori, dan mekanisme pengambilan informasi untuk mempersiapkan memori kerja LLM.
  • "Informasi dan peralatan yang benar": Meliputi fakta, data, konten knowledge base (melalui RAG), dan preferensi pengguna. Peralatan mengacu pada kemampuan seperti antar muka API, fungsi, atau database query. Menyediakan pengetahuan dan kemampuan sangat penting untuk tugas-tugas rumit.
  • "Format yang benar, pada waktu yang tepat": Menyoroti pentingnya presentasi dan pengaturan waktu informasi. Ringkasan yang ringkas sering kali lebih baik daripada data mentah, dan skema peralatan yang jelas lebih efektif daripada instruksi yang kurang jelas. Menyediakan konteks sesuai permintaan sangat penting untuk menghindari mengganggu model dengan informasi yang tidak relevan.
  • "Menyelesaikan tugas dengan andal": Ini adalah tujuan utama dari rekayasa konteks. Ini mengubah aplikasi AI menjadi sistem yang andal yang secara konsisten dapat menghasilkan keluaran berkualitas tinggi. Dengan manajemen konteks yang tepat, keluaran menjadi lebih konsisten, mengurangi halusinasi, dan mendukung workflow agen cerdas siklus panjang dan kompleks.

Evolusi dari Prompt Engineering menuju Rekayasa Konteks

Meskipun rekayasa konteks dan prompt engineering bertujuan untuk mengoptimalkan keluaran LLM, namun keduanya berbeda dalam cakupan, sifat, dan tujuan. Perbandingan tingkat sistem menyoroti perbedaan-perbedaan ini:

  • Cakupan: Prompt engineering berfokus pada optimalisasi interaksi atau rangkaian teks tunggal, sedangkan rekayasa konteks berfokus pada seluruh ekosistem informasi, yang mencakup seluruh siklus hidup tugas.
  • Dinamisme: Prompt biasanya bersifat statis, sedangkan konteks dihasilkan secara dinamis berdasarkan tugas dan berkembang selama interaksi.
  • Komposisi Masukan: Prompt engineer membangun masukan di sekitar query pengguna, sedangkan context engineer melihat query pengguna hanya sebagai salah satu bagian dari "paket konteks" yang lebih besar yang mencakup instruksi sistem, dokumen yang diambil, keluaran peralatan, dan riwayat percakapan.
  • Analogi: Jika prompt seperti satu baris dalam sebuah drama, konteks adalah set, latar belakang cerita, dan naskah seluruh film, yang bersama-sama memberikan kedalaman dan makna.

Tabel di bawah ini selanjutnya membandingkan keduanya:

Prompt Engineering vs. Rekayasa Konteks

Dimensi Prompt Engineering Rekayasa Konteks
Cakupan Interaksi tunggal, rangkaian masukan tunggal Workflow agen cerdas utuh, ekosistem informasi penuh
Sifat Statis atau semi-statis, berbasis templat Dinamis, dirakit dalam waktu nyata, berkembang seiring tugas
Tujuan Memandu LLM untuk memberikan jawaban berkualitas tinggi Memberdayakan LLM untuk menyelesaikan tugas-tugas rumit terus-menerus dengan andal
Produk Inti Templat prompt yang dioptimalkan, set instruksi Alur data, sistem RAG, modul memori, manajer status
Keterampilan Inti Linguistik, penalaran logis, desain instruksi Arsitektur sistem, rekayasa data, pengembangan perangkat lunak
Analogi Inti Mengajukan pertanyaan yang tepat Membangun perpustakaan yang komprehensif untuk seorang peneliti

Mendefinisikan Ulang Rekayasa AI

Pergeseran dari prompt engineering ke rekayasa konteks ini membentuk kembali peran AI engineer. Prompt engineering berfokus pada penyempurnaan rangkaian masukan, yang membutuhkan keterampilan dalam linguistik dan logika. Namun, ketika tugasnya menjadi membangun sistem yang secara dinamis merakit masukan ini dari database, API, dan memori, keterampilan inti bergeser ke rekayasa perangkat lunak dan arsitektur sistem.

Framework seperti LangChain dan LlamaIndex populer karena mendukung rekayasa konteks, menawarkan pola arsitektur untuk membangun sistem perakitan konteks dinamis, seperti Chains, Graphs, dan Agents.

Munculnya rekayasa konteks menandai pergeseran dalam pengembangan AI dari bidang yang berpusat pada model dan niche menjadi disiplin rekayasa perangkat lunak yang mainstream. Tantangan utamanya bukan hanya model itu sendiri tetapi seluruh application stack yang dibangun di sekitarnya.

Konteks: Diseksi dan Prinsip

Bagian ini merinci komponen "konteks" dan menguraikan prinsip-prinsip untuk manajemen yang efektif.

Mendekonstruksi Context Window

Context window adalah total informasi yang dapat "dilihat" atau "diingat" oleh model saat menghasilkan respons. "Paket konteks" lengkap adalah jumlah dari semua informasi yang diberikan.

  • Instruksi/ System Prompt: Lapisan dasar ini mendefinisikan perilaku model, menetapkan peran, gaya, aturan, batasan, dan tujuan model tersebut.
  • User Prompt: Pertanyaan atau instruksi tugas langsung yang memicu agen cerdas.
  • Riwayat Percakapan/Memori Jangka Pendek: Pertukaran sebelumnya memberikan konteks langsung, yang dikelola melalui pemangkasan atau peringkasan karena keterbatasan context window.
  • Memori Jangka Panjang: knowledge base persisten yang mencatat informasi yang dipelajari dari interaksi, seperti preferensi pengguna, ringkasan proyek, atau fakta yang secara eksplisit diberitahukan untuk diingat.
  • Informasi yang Diambil/RAG: Guna mengatasi knowledge cutoff dan memastikan respons berbasis fakta, sistem secara dinamis mengambil informasi yang relevan dari sumber pengetahuan eksternal.
  • Peralatan yang Tersedia: Mendefinisikan skema dan deskripsi fungsi yang dapat dipanggil atau peralatan built-in, memberi model kekuatan untuk bertindak, bukan hanya mengetahui.
  • Keluaran Peralatan: Hasil dari panggilan peralatan harus disuntikkan kembali ke dalam konteks agar model dapat digunakan dalam penalaran dan tindakan selanjutnya.
  • Skema Keluaran Terstruktur: Mendefinisikan format keluaran yang diharapkan (seperti Skema JSON) untuk memandu hasil terstruktur dan dapat diprediksi.

Framework "LLM sebagai Sistem Operasi"

Analogi ini memberikan framework teoretis yang solid untuk memahami dan mempraktikkan manajemen konteks.

  • LLM sebagai CPU, Context Window sebagai RAM: Analogi ini memposisikan context window sebagai sumber daya yang terbatas dan berharga. Rekayasa konteks seperti manajemen OS, yang secara efisien memuat informasi yang tepat pada waktu yang tepat ke dalam memori kerja.

  • Konteks Kernel vs. Konteks Pengguna: Framework ini membagi konteks menjadi dua lapisan; mirip dengan kernel space dan user space.

    • Konteks Kernel: Merepresentasikan keadaan agen cerdas yang dikelola, variabel, dan persisten. Ini mencakup blok memori inti dan sistem file yang dapat diamati oleh LLM, tetapi hanya dapat dimodifikasi melalui "panggilan sistem" yang dikendalikan.
    • Konteks Pengguna: Merepresentasikan "user space" atau message buffer, tempat interaksi dinamis terjadi. Ini mencakup pesan pengguna, respons asisten, dan panggilan ke peralatan "program pengguna" yang tidak memiliki hak istimewa.
  • Panggilan Sistem dan Peralatan Kustom: Perbedaan ini mengklarifikasi bagaimana agen berinteraksi dengan keadaan internal dan dunia eksternalnya. Panggilan sistem memodifikasi konteks kernel, mengubah keadaan persisten agen, sementara peralatan kustom membawa informasi eksternal ke dalam konteks pengguna.

Prinsip-Prinsip Panduan Rekayasa Konteks

Rekayasa konteks yang efektif mengikuti prinsip-prinsip inti, yang diturunkan dari praktisi, untuk membangun sistem agen cerdas yang andal.

  • Konteks yang Berkelanjutan dan Komprehensif: Juga dikenal sebagai "Lihat Semuanya," prinsip ini mengharuskan agen memiliki akses ke riwayat operasional lengkapnya, termasuk interaksi pengguna sebelumnya, keluaran panggilan peralatan, proses pemikiran internal, dan hasil sementara.
  • Hindari Paralelisme yang Tidak Terkoordinasi: Mengizinkan beberapa sub-agen atau sub-tugas untuk bekerja secara paralel tanpa konteks bersama yang terus diperbarui hampir pasti mengarah pada inkonsistensi keluaran, tujuan yang saling bertentangan, dan kegagalan.
  • Konteks Dinamis dan Berkembang: Konteks seharusnya bukan blok informasi statis. Konteks tersebut harus dirakit dan dikembangkan secara dinamis berdasarkan kemajuan tugas, memperoleh atau memperbarui informasi saat runtime.
  • Cakupan Kontekstual Penuh: Model harus dilengkapi dengan semua informasi yang mungkin dibutuhkannya, bukan hanya pertanyaan pengguna terbaru. Seluruh paketmasukan (instruksi, data, riwayat, dll.) harus dirancang dengan cermat.

Strategi Manajemen Konteks:

Ini melibatkan penyimpanan informasi di luar context window langsung untuk penggunaan di masa mendatang, membangun kemampuan memori agen.

  • Scratchpad: Digunakan untuk menyimpan memori jangka pendek di dalam sesi.
  • Sistem Memori: Digunakan untuk membangun memori jangka panjang lintas sesi.

Memilih: Mengambil Konteks:

Ini melibatkan penarikan informasi yang tepat dari penyimpanan eksternal ke dalam context window pada waktu yang tepat.

  • Memilih dari Memori/Scratchpad: Agen harus dapat secara efektif melakukan query memori dan scratchpad yang dipertahankannya ketika perlu mengingat pengetahuan masa lalu.
  • Memilih dari Peralatan: Ketika agen memiliki banyak peralatan yang tersedia, efisien untuk menerapkan teknik RAG ke deskripsi peralatan itu sendiri, secara dinamis mengambil dan menyediakan hanya peralatan yang paling relevan berdasarkan tugas saat ini.
  • Memilih dari Pengetahuan: Ini adalah fungsi inti dari Retrieval-Augmented Generation (RAG), secara dinamis memperoleh informasi faktual dari knowledge base eksternal guna meningkatkan kemampuan menjawab model.

Meringkas: Mengoptimalkan Konteks:

Ini melibatkan pengurangan jumlah token yang digunakan dalam konteks dengan tetap mempertahankan informasi inti.

  • Peringkasan: Menggunakan LLM untuk meringkas riwayat percakapan, dokumen, atau keluaran peralatan yang panjang, mengekstrak informasi penting.
  • Trimming: Menggunakan aturan heuristik untuk memotong kembali konteks, seperti sekadar menghapus putaran dialog paling awal ketika riwayat percakapan terlalu panjang.

Mengisolasi: Mempartisi Konteks:

Ini melibatkan dekomposisi konteks menjadi bagian-bagian yang berbeda untuk meningkatkan fokus model dan mengelola kompleksitas tugas.

  • Sistem Multi-Agen: Tugas-tugas besar dapat dibagi di antara beberapa sub-agen, masing-masing dengan konteks, peralatan, dan instruksi khusus yang terisolasi.
  • Lingkungan Sandbox: Operasi yang menghabiskan sejumlah besar token dapat dijalankan di lingkungan yang terisolasi, hanya mengembalikan hasil kunci akhir ke konteks LLM utama.

Arsitektur Memori Tingkat Lanjut

Memori adalah kunci untuk membangun agen cerdas yang dapat belajar dan beradaptasi. Komponen utama mencakup memori jangka pendek melalui buffer riwayat dialog dan scratchpad, dan memori jangka panjang untuk persistensi dan personalisasi.

  • Teknik Implementasi:

    • Pembuatan Memori Otomatis: Sistem dapat secara otomatis menghasilkan dan menyimpan memori berdasarkan interaksi pengguna.
    • Mekanisme Refleksi: Agen dapat merefleksikan sendiri perilakunya dan hasilnya setelah menyelesaikan tugas, mensintesis pelajaran yang dipelajari ke dalam memori baru.
    • Peringkasan Dialog: Secara teratur meringkas percakapan masa lalu dan menyimpan ringkasan sebagai bagian dari memori jangka panjang.
  • Memori Terstruktur (Temporal Knowledge Graph): Arsitektur memori yang lebih canggih yang menyimpan tidak hanya fakta tetapi juga hubungan antara fakta dan timestamp untuk setiap bagian informasi.

Retrieval-Augmented Generation (RAG): Landasan Rekayasa Konteks

RAG adalah teknik inti untuk "memilih" pengetahuan eksternal dalam rekayasa konteks, menghubungkan LLM ke knowledge base eksternal. Sistem RAG yang khas memiliki tiga tahap:

  1. Pengindeksan: Dokumen dibagi menjadi chunk semantik, kemudian diubah menjadi vektor high-dimensional menggunakan model embedding. Vektor dan teks sumber ini disimpan di vector database.
  2. Pengambilan: Pengguna mengubah query menjadi vektor dengan model embedding yang sama dan mencari vector database untuk vektor dekat lainnya dengan query yang serupa.
  3. Generasi: Sistem menggabungkan query asli dan text chunk terkait menjadi prompt, kemudian mengirimkannya ke LLM untuk menghasilkan jawaban yang sesuai.

Strategi Pengambilan dan Pemeringkatan Tingkat Lanjut

Arsitektur RAG dasar seringkali membutuhkan strategi yang lebih kompleks untuk meningkatkan kualitas pengambilan di dunia nyata. Menggabungkan pencarian semantik dengan indeks kata kunci dan pemeringkatan sangat penting untuk meningkatkan kualitas pencarian. Pengambilan informasi kontekstual Anthropic akan meningkatkan konteks LLM.

  • Pencarian Hibrida: Menggabungkan pencarian semantik (berdasarkan vektor) dan pencarian kata kunci untuk memanfaatkan kekuatan pelengkap.
  • Pengambilan Kontekstual: Menggunakan LLM untuk menghasilkan ringkasan singkat dari konteks setiap blok teks.
  • Pemeringkatan Ulang: Menambahkan langkah pemeringkatan ulang, menggunakan model yang lebih kuat untuk mengurutkan ulang hasil berdasarkan relevansi.

RAG vs. Fine-tuning: Framework Keputusan Strategis

Memilih antara RAG dan fine-tuning adalah keputusan utama. Pilihan tergantung pada persyaratan proyek.

  • Keunggulan RAG:

    • Cocok untuk integrasi pengetahuan real-time
    • Mengurangi halusinasi dengan memberikan fakta yang dapat diverifikasi
    • Memungkinkan perusahaan menjaga data hak milik di dalam database internal yang aman
  • Keunggulan Fine-tuning:

    • Terbaik untuk mengajarkan model perilaku, gaya bicara, atau terminologi khusus yang baru
    • Dapat menyelaraskan keluaran model dengan citra merek organisasi
  • Pendekatan Hibrida: Untuk mendapatkan kinerja terbaik dengan model, Anda harus menggunakan fine-tuning untuk kinerja dan RAG untuk akurasi.

Optimalisasi dan Pemfilteran Konteks

Bahkan dengan menggunakan mekanisme pengambilan yang kuat, mengelola context window dan menghindari kegagalan umum, Anda masih akan menemukan kesalahan.

Failure mode umum:

  • Peracunan Konteks: Ketika kesalahan faktual yang tampak disajikan, itu akan merusak seluruh sistem dari titik itu dan seterusnya.
  • Gangguan Konteks: Model terganggu ketika disajikan dengan informasi yang tidak relevan.
  • Kebingungan Konteks: Informasi konteks dapat sangat membebani model yang mengarahkannya menjauh dari jawaban yang benar.
  • Benturan Konteks: Model menjadi bingung dengan informasi yang bertentangan dan dapat menghasilkan jawaban yang kontradiktif.

Solusi:

Insinyur perlu mengadopsi teknik pemfilteran untuk mengurangi kegagalan ini. Memastikan memori kerja model penuh dengan informasi yang sangat relevan dan teroptimasi sepenuhnya menjadi penting untuk praktik dan teori.

Rekayasa Konteks dalam Praktik: Studi Kasus

Menganalisis aplikasi yang berbeda memberikan pemahaman yang lebih mendalam tentang nilai dan implementasi rekayasa konteks.

Asisten Pemrograman AI

  • Masalahnya: Upaya awal pada pemrograman AI seringkali kacau, mengandalkan prompt yang kurang jelas dengan sedikit pemahaman tentang basis kode yang lebih besar.
  • Solusinya: Perlakukan dokumentasi proyek, panduan kode, pola desain, dan persyaratan seperti sumber daya rekayasa lainnya.

Pencarian Perusahaan dan Manajemen Pengetahuan

  • Masalahnya: Mesin pencari perusahaan tradisional mengandalkan pencocokan kata kunci, gagal memahami maksud pengguna, peran pekerjaan, atau alasan pencarian mereka.
  • Solusinya: Bangun sistem pencarian cerdas menggunakan konteks untuk memahami setiap pencarian.

Dukungan Pelanggan Otomatis

  • Masalahnya: LLM umum tidak menyadari spesifikasi produk, kebijakan pengembalian, atau riwayat pelanggan, yang mengarah pada respons yang tidak akurat atau tidak membantu.
  • Solusinya: Gunakan chatbot berbasis RAG, sistem yang mengambil informasi dari knowledge base perusahaan, untuk memastikan bantuan yang akurat, personal, dan up-to-date.

Mesin Rekomendasi yang Dipersonalisasi

  • Masalahnya: Sistem rekomendasi tradisional berjuang untuk memahami maksud pengguna yang segera dan spesifik, menghasilkan rekomendasi generik.
  • Solusinya: Rekayasa konteks menggunakan RAG untuk membuat pengalaman lebih percakapan.

Mengurangi Kekurangan Mendasar Large Language Model

Rekayasa konteks adalah sarana utama untuk mengatasi dua kekurangan LLM mendasar: halusinasi dan knowledge cutoff.

Melawan Halusinasi

  • Masalahnya: Ketika LLM tidak yakin atau tidak memiliki pengetahuan yang relevan, mereka cenderung membuat informasi masuk akal tetapi tidak benar.

  • Solusinya: Rekayasa Konteks, terutama RAG, adalah strategi yang paling efektif.

    • Berikan Dasar Faktual: Dengan memberikan dokumen yang dapat diverifikasi dari sumber tepercaya selama menjawab, halusinasi dapat dihindari secara efektif.
    • Kejujuran "Saya tidak tahu.": Untuk menjadi transparan, tunjukkan kepada model untuk menampilkan "Saya Tidak Tahu" ketika tidak ada informasi yang tersedia.