Bekerja dengan proyek besar

Kelola codebase besar di Bob Shell. Pahami optimasi context window, penanganan file, dan praktik terbaik untuk proyek skala enterprise.

Batas konteks pada proyek besar

Bob menggunakan large language model yang memiliki context window terbatas. Ini adalah jumlah teks maksimum (diukur dalam token) yang dapat diproses Bob sekaligus. Jika konteks terlalu besar, Bob mungkin tidak dapat memahami permintaan kamu atau menghasilkan respons yang akurat.

Context window mencakup:

  • System prompt (instruksi untuk Bob)
  • Riwayat percakapan
  • Konten file yang kamu sertakan dalam prompt chat kamu
  • Output perintah atau alat yang digunakan Bob

Strategi untuk mengelola konteks

  1. Jadilah spesifik: Saat merujuk ke file atau kode, gunakan jalur file dan nama fungsi yang spesifik. Hindari referensi samar seperti "file utama."
  2. Referensikan file secara tepat: Sertakan file tertentu dalam prompt chat kamu menggunakan jalurnya (misalnya, src/components/MyComponent.tsx), atau referensikan commit hash untuk mengarahkan Bob ke status Git tertentu.
  3. Pecah tugas: Bagi tugas besar menjadi subtask yang lebih kecil dan lebih mudah dikelola. Ini membantu menjaga fokus konteks.
  4. Rangkum bila diperlukan: Jika kamu perlu merujuk ke sejumlah besar kode, pertimbangkan untuk merangkum bagian yang relevan dalam prompt kamu daripada menyertakan seluruh kode.
  5. Prioritaskan riwayat terbaru: Bob secara otomatis memadatkan pesan lama dalam riwayat percakapan untuk tetap dalam context window. Perhatikan hal ini dan sertakan ulang konteks penting bila diperlukan.
  6. Kelola penggunaan alat MCP: Kamu dapat menonaktifkan dan mengaktifkan alat tertentu dalam layanan MCP untuk hanya menggunakan yang kamu butuhkan, mengurangi konsumsi konteks dari definisi alat yang tidak digunakan.
  7. Gunakan subagent atau subtask untuk pekerjaan yang terisolasi: Untuk pekerjaan besar yang mandiri, pertimbangkan menggunakan subagent atau subtask. Keduanya berjalan di context window terpisah mereka sendiri, menjaga sesi terminal utama tetap ramping. Lihat Alat untuk detail tentang spawn_subagent dan start_subtask.

Contoh: Refactor file besar

Jika kamu perlu melakukan refactor pada file TypeScript besar (src/components/MyComponent.tsx), berikut pendekatan yang efektif:

  1. Dapatkan gambaran awal:
    List the functions and classes in src/components/MyComponent.tsx
  2. Targetkan fungsi tertentu:
    Refactor the `processData` function in src/components/MyComponent.tsx to use async/await instead of Promises.
  3. Buat perubahan iteratif: Buat perubahan kecil dan bertahap, tinjau dan setujui setiap langkah.

Dengan memecah tugas dan memberikan konteks yang spesifik, kamu dapat bekerja secara efektif dengan file besar dalam batas context window.

Bagaimana topik ini?