Manajemen konteks - Amazon Q Developer

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Manajemen konteks

Memilih pendekatan konteks yang tepat

Amazon Q menawarkan tiga cara untuk menyediakan konteks, masing-masing dioptimalkan untuk kasus penggunaan yang berbeda:

Pendekatan Dampak Jendela Konteks Tetap Terbaik Untuk
Sumber Daya Agen Selalu aktif (mengkonsumsi token) Persisten di seluruh sesi File proyek penting, standar, konfigurasi
Konteks Sesi Selalu aktif (mengkonsumsi token) Sesi saat ini saja File sementara, eksperimen cepat
Basis Pengetahuan Hanya ketika dicari Persisten di seluruh sesi Basis kode besar, dokumentasi ekstensif

Diagram alur keputusan

Gunakan pohon keputusan ini untuk memilih pendekatan konteks yang sesuai:

  1. Apakah konten Anda lebih besar dari 10MB atau berisi ribuan file?

    • Ya → Gunakan Basis Pengetahuan

    • Tidak → Lanjutkan ke langkah 2

  2. Apakah Anda membutuhkan konteks ini dalam setiap percakapan?

    • Ya → Gunakan Sumber Daya Agen

    • Tidak → Gunakan Konteks Sesi

Referensi cepat:

  • File proyek penting (README, konfigurasi, standar) → Sumber Daya Agen

  • Basis kode besar atau set dokumentasi → Basis Pengetahuan

  • File sementara untuk tugas saat ini → Konteks Sesi

Memahami dampak jendela konteks

File konteks dan sumber daya agen menggunakan token dari jendela konteks Anda pada setiap permintaan, apakah direferensikan atau tidak. Gunakan /context show untuk memantau penggunaan token:

q chat > /context show Total: ~1100 tokens

Batas Token: File konteks dibatasi hingga 75% dari jendela konteks model Anda. File yang melebihi batas ini secara otomatis dijatuhkan.

Basis pengetahuan tidak menggunakan ruang jendela konteks sampai dicari, menjadikannya ideal untuk bahan referensi besar. Untuk informasi selengkapnya, lihat Konteks dasar pengetahuan (untuk kumpulan data besar).

Mengelola konteks

File konteks berisi informasi yang Anda ingin Amazon Q pertimbangkan selama percakapan Anda. Ini dapat mencakup persyaratan proyek, standar pengkodean, aturan pengembangan, atau informasi lain yang membantu Amazon Q memberikan tanggapan yang lebih relevan.

Mengkonfigurasi konteks persisten dengan sumber daya agen

Cara yang disarankan untuk mengonfigurasi konteks adalah melalui resources bidang di file konfigurasi agen Anda. Ini menciptakan konteks persisten yang tersedia setiap kali Anda menggunakan agen.

Tambahkan jalur file atau pola glob ke resources array di konfigurasi agen Anda:

{ "name": "my-agent", "description": "My development agent", "resources": [ "file://README.md", "file://.amazonq/rules/**/*.md", "file://docs/**/*.md", "file://src/config.py" ] }

Sumber daya harus diawali file:// untuk dimasukkan sebagai file konteks. File-file ini akan tersedia secara otomatis di semua sesi obrolan menggunakan agen ini.

Menambahkan konteks sesi sementara

Anda dapat menambahkan file sementara ke sesi obrolan Anda saat ini menggunakan /context add perintah. Penambahan ini hanya tersedia untuk sesi saat ini dan tidak akan bertahan saat Anda memulai sesi obrolan baru.

q chat > /context add README.md Added 1 path(s) to context. Note: Context modifications via slash command is temporary.

Anda juga dapat menambahkan beberapa file sekaligus menggunakan pola glob:

q chat > /context add docs/*.md Added 3 path(s) to context. Note: Context modifications via slash command is temporary.

Untuk membuat perubahan konteks permanen, tambahkan file ke resources bidang agen Anda sebagai gantinya. Untuk informasi selengkapnya, lihat Mengkonfigurasi konteks persisten dengan sumber daya agen.

Konteks dasar pengetahuan (untuk kumpulan data besar)

Untuk basis kode besar, kumpulan dokumentasi, atau bahan referensi yang akan melebihi batas jendela konteks, gunakan basis pengetahuan. Basis pengetahuan menyediakan kemampuan pencarian semantik tanpa menghabiskan ruang jendela konteks hingga dicari.

Aktifkan basis pengetahuan:

q settings chat.enableKnowledge true

Tambahkan konten ke basis pengetahuan:

q chat > /knowledge add /path/to/large-codebase --include "**/*.py" --exclude "node_modules/**"

Basis pengetahuan dicari sesuai permintaan oleh Amazon Q ketika informasi yang relevan diperlukan, menjadikannya ideal untuk bahan referensi besar.

Konteks tampilan

Untuk melihat konteks Anda saat ini, gunakan /context show perintah:

q chat > /context show 👤 Agent (my-agent): README.md (1 match) .amazonq/rules/**/*.md (3 matches) docs/**/*.md (5 matches) 💬 Session (temporary): <none> 5 matched files in use: 👤 README.md (~250 tkns) 👤 .amazonq/rules/security.md (~180 tkns) 👤 .amazonq/rules/coding-standards.md (~320 tkns) 👤 docs/architecture.md (~150 tkns) 👤 docs/best-practices.md (~200 tkns) Total: ~1100 tokens

Outputnya menunjukkan:

  • 👤 Agen: Konteks persisten dari resources bidang agen Anda

  • 💬 Sesi: Konteks sementara ditambahkan selama sesi saat ini

Menghapus konteks

Untuk menghapus file dari konteks sesi Anda saat ini, gunakan /context rm perintah:

q chat > /context rm src/temp-file.py Removed 1 path(s) from context. Note: Context modifications via slash command is temporary.

Untuk menghapus semua konteks sesi, gunakan /context clear perintah:

q chat > /context clear Cleared context Note: Context modifications via slash command is temporary.

Catatan: Anda tidak dapat menghapus konteks yang ditentukan agen menggunakan /context perintah. Untuk menghapus konteks secara permanen, edit resources bidang agen Anda.

Kasus penggunaan umum

Berikut adalah beberapa kasus penggunaan umum untuk manajemen konteks:

Menggunakan aturan proyek

Amazon Q mendukung aturan tingkat proyek yang dapat menentukan pedoman dan batasan keamanan. Aturan-aturan ini didefinisikan dalam file Markdown di .amazonq/rules direktori proyek Anda.

Misalnya, Anda dapat membuat aturan yang menentukan:

  • Direktori mana yang harus dihindari Amazon Q

  • Persyaratan keamanan untuk kode yang dihasilkan

  • Standar pengkodean dan praktik terbaik

Cara yang disarankan untuk memasukkan aturan proyek adalah melalui konfigurasi agen Anda:

{ "name": "my-project-agent", "resources": [ "file://.amazonq/rules/**/*.md", "file://README.md", "file://docs/architecture.md" ] }

Anda juga dapat menambahkan aturan proyek untuk sementara waktu ke sesi Anda saat ini:

q chat > /context add .amazonq/rules/*.md Added 3 path(s) to context. Note: Context modifications via slash command is temporary.

Untuk informasi selengkapnya tentang membuat dan menggunakan aturan proyek, lihat Membuat aturan proyek untuk digunakan dengan obrolan Pengembang Amazon Q di dokumentasi IDE.

Migrasi dari konteks sesi ke sumber daya agen

Jika Anda menemukan diri Anda berulang kali menambahkan file konteks yang sama menggunakan /context add perintah, pertimbangkan untuk memindahkannya ke resources bidang agen Anda untuk ketekunan:

  1. Catat file yang sering Anda tambahkan /context add

  2. Edit file konfigurasi agen Anda menggunakan /agent edit atau dengan langsung memodifikasi file

  3. Tambahkan path file ke resources array dengan file:// awalan

  4. Simpan konfigurasi agen

Contoh migrasi:

# Instead of running these commands every session: > /context add README.md > /context add docs/*.md > /context add .amazonq/rules/*.md # Add them to your agent config once: { "resources": [ "file://README.md", "file://docs/**/*.md", "file://.amazonq/rules/**/*.md" ] }

Kapan menggunakan basis pengetahuan

Pertimbangkan basis pengetahuan ketika:

  • File konteks Anda melebihi batas token (75% dari jendela konteks)

  • Anda memiliki basis kode besar atau set dokumentasi

  • Anda membutuhkan pencarian semantik di seluruh materi yang luas

  • Anda ingin menghindari konsumsi jendela konteks yang konstan

Contoh: Alih-alih menambahkan basis kode besar sebagai file konteks:

# This would consume too many tokens: > /context add src/**/*.py # Use knowledge base instead: > /knowledge add src/ --include "**/*.py" --exclude "__pycache__/**"

Menyetel agen default dengan konteks

Anda dapat mengonfigurasi agen default yang menyertakan file konteks pilihan Anda:

q settings chat.defaultAgent my-project-agent

Ini memastikan konteks Anda tersedia secara otomatis di sesi obrolan baru tanpa perlu menentukan agen setiap kali.

Praktik terbaik

Organisasi file konteks

  • Jaga agar file konteks tetap fokus dan relevan untuk menghindari batas token

  • Gunakan nama file deskriptif yang menunjukkan tujuannya

  • Mengatur aturan dan dokumentasi dalam struktur direktori logis

  • Pertimbangkan ukuran file - file yang sangat besar dapat menggunakan token yang signifikan

Pertimbangan performa

  • Pantau penggunaan token /context show agar tetap dalam batas

  • Gunakan pola glob tertentu daripada yang terlalu luas

  • Hapus file konteks yang tidak digunakan dari konfigurasi agen

  • Pertimbangkan untuk membagi file konteks besar menjadi file yang lebih kecil dan terfokus

  • Gunakan basis pengetahuan untuk kumpulan data besar untuk menghindari konsumsi jendela konteks

Pertimbangan keamanan

  • Hindari memasukkan informasi sensitif dalam file konteks

  • Gunakan .gitignore untuk mencegah komitmen yang tidak disengaja dari konteks sensitif

  • Tinjau file konteks secara teratur untuk memastikan file tersebut tidak berisi informasi yang sudah ketinggalan zaman

  • Perhatikan informasi apa yang dibagikan saat menggunakan konteks dalam percakapan