Setiap obrolan baru dimulai dengan agen yang telah melupakan dokumen Anda. Ia dapat membaca ulang dokumen tersebut, dengan biaya waktu dan konteks, atau ia dapat berkonsultasi dengan sesuatu yang mengingat. GroupDocs.Search.Mcp menyimpan indeks teks penuh bernama di disk, secara lokal, yang bertahan antar sesi dan restart kontainer, sehingga Claude Desktop, Cursor atau Copilot memulai setiap sesi dengan dokumen proyek yang sudah dapat dicari dan memperbaruinya dengan satu panggilan ketika file berubah:

Saya mengedit beberapa kontrak. Segarkan indeks kontrak, lalu beri tahu saya kontrak mana yang menyebutkan penalti sekarang.

Versi langkah demi langkah dengan konfigurasi dan pemecahan masalah ada di dokumentasi: How to keep a document index current as files change.

Apa arti “memory” bagi sebuah agen?

Dalam praktiknya, dua hal: keadaan yang bertahan di luar percakapan, dan cara murah untuk menjaga keadaan itu tetap benar. Riwayat obrolan gagal pada keduanya: ia berakhir dengan sesi, dan tidak ada yang memperbaruinya ketika dokumen berubah. Indeks pencarian lebih cocok untuk dokumen. Ia berada di disk di samping mereka, menjawab “file mana yang mengatakan X” tanpa memuatnya, dan dapat diperbarui secara inkremental.

session 1    add_to_index --> index "contracts" --+
                                                 |  kept on disk in
session 2    search, get_text_fragments <--------+  /data/.groupdocs-search-
             (nothing is re-read)                    index/contracts
files edit   update_index --> re-reads changed, added, deleted files only
new project  create_index {"indexName":"legal-2026"} --> a separate index

Bagaimana proses penyegaran bekerja?

update_index membandingkan indeks dengan file di disk dan membaca ulang hanya yang berubah. Berikut adalah apa yang dikembalikan server dalam pengujian kami, setelah satu kontrak ditambahkan klausa penalti di antara dua panggilan:

-> get_index_info {"indexName":"contracts"}
<- { "documentCount": 5, "indexedPaths": [ "contracts" ],
     "documentsWithErrors": [], "status": "Ready" }

-> update_index {"indexName":"contracts"}
<- Index 'contracts' updated: 0 added, 1 updated, 0 removed;
   5 document(s) in the index.

-> search {"query":"penalty","indexName":"contracts"}
<- documentsFound 3, including the edited initech-nda.docx

Hitungan tersebut memberi tahu Anda apa yang terjadi: satu file dibaca ulang, tidak ada yang lain yang tersentuh. File yang dihapus hilang pada panggilan yang sama.

Mengapa satu indeks per proyek?

Karena korpus terpisah membutuhkan jawaban terpisah. Pertanyaan tentang kontrak tahun ini tidak boleh menampilkan draf tahun lalu, dan dokumen klien tidak boleh bercampur dengan klien lain. Nama indeks murah:

-> create_index {"indexName":"legal-2026"}
<- Index 'legal-2026' created. Add documents with add_to_index
   (indexName: 'legal-2026').

Setiap indeks adalah folder di bawah /data/.groupdocs-search-index, dan get_index_info tanpa nama akan menampilkan semuanya. Anda jarang perlu create_index secara eksplisit, karena add_to_index membuat indeks pada penggunaan pertama, tetapi memberi nama secara sengaja adalah yang mengubah “sebuah indeks” menjadi “memori proyek ini”.

Satu aturan tentang penghapusan

Mesin menghapus jalur yang ditambahkan, bukan file individual di dalamnya. Server menyatakan hal itu secara jelas ketika Anda mencoba:

-> remove_from_index {"documentPath":"contracts/hooli-supply-terms.txt",...}
<- Removal failed for 'contracts/hooli-supply-terms.txt':
   'contracts/hooli-supply-terms.txt' is inside the indexed folder
   'contracts'. GroupDocs.Search removes whole indexed paths only: ...

Jadi rancanglah untuk itu: jika Anda mengharapkan menghapus bagian dari korpus nanti, seperti tahun, klien, atau draf, indeks bagian tersebut sebagai jalur terpisah (contracts/2025, contracts/2026) dan masing‑masing dapat dihapus secara terpisah. Menghapus file di disk dan menjalankan update_index juga menghapusnya.

Menjaga agar tetap terkini tanpa diminta

create_index (optional)
      |
      v
add_to_index ---> search ---> get_text_fragments
      ^              ^
      |              |  get_index_info: counts, paths, status
update_index  (files changed on disk)
      |
remove_from_index  (only a path that was given to add_to_index)

Tiga cara praktis untuk membuat penyegaran otomatis:

  1. Dalam instruksi agen. Sebuah baris di CLAUDE.md atau AGENTS.md, “panggil update_index untuk indeks proyek ini sebelum menjawab jika file mungkin telah berubah”, membuat agen melakukannya di awal sesi.
  2. Menurut jadwal. Otomatisasi yang mendukung MCP dapat memanggil update_index setiap malam; ketika sedikit yang berubah, panggilan tersebut cepat.
  3. Setelah penyalinan massal. Satu panggilan akan mengambil setiap file yang ditambahkan.

Indeks juga bertahan melalui upgrade: indeks yang dibangun oleh GroupDocs.Search 22.7 hingga 26.8 dikonversi pada penggunaan pertama, dengan cadangan yang disimpan di sampingnya.

Apa yang diputuskan agen, dan apa yang dilakukan indeks

apa yang diputuskan agen apa yang dilakukan indeks
indeks mana yang menjadi tempat pertanyaan menyimpan setiap indeks bernama di foldernya masing‑masing
kapan file mungkin telah berubah membaca ulang hanya file yang berubah, ditambahkan, dan dihapus
kata mana yang dicari, dan varian apa yang dicoba mencocokkan kata, frasa, rentang; melaporkan istilah yang ditemukan
seberapa banyak konteks yang dikutip mengembalikan bagian dengan jumlah kata yang diminta di sekitarnya
apa yang diberitahukan kepadamu tidak ada: ia mengembalikan hitungan, jalur, dan teks, tidak pernah kesimpulan

Pem​isahan ini disengaja. Penilaian tetap pada model, dan fakta yang menjadi dasar pemikirannya berasal dari alat yang outputnya dapat Anda inspeksi.

Batasan jujur

  • Dalam mode evaluasi sebuah indeks menyimpan maksimal 100 dokumen dan pencarian mengembalikan maksimal 10. Panggil get_license_status sebelum mengandalkan indeks sebagai sumber kebenaran.
  • Indeks bertahan hanya jika /data (atau volume indeks) adalah folder host yang dipasang; jika tidak, ia menghilang bersama kontainer.
  • Indeks berisi teks dokumen: lindungi dan buanglah seperti dokumen.
  • Hanya Docker; di Linux tambahkan --user "$(id -u):$(id -g)" agar kontainer dapat menulis indeks.

FAQ

Apakah agen mengingat dokumen saya antar sesi?
Dengan indeks yang persisten, ya: indeks tetap di disk dan sesi berikutnya mencarinya tanpa membaca ulang apa pun.

Apakah saya perlu membangun ulang indeks ketika file berubah?
Tidak. update_index membaca ulang hanya file yang berubah, ditambahkan, dan dihapus.

Apakah saya dapat memisahkan indeks dari dokumen read-only?
Ya. Pasang dokumen read-only, pasang folder yang dapat ditulis di /index, dan atur GROUPDOCS_MCP_INDEX_PATH=/index.

Selami lebih dalam