“Which of our contracts carry a termination penalty?” terdengar seperti tugas untuk agen AI, dan memang demikian, tetapi bukan dengan membaca kontrak. Agen yang membuka setiap file untuk menjawabnya menghabiskan konteksnya pada 297 dokumen yang tidak relevan dan masih harus mempercayai bahwa ia memperhatikan klausul dalam tiga lainnya. Dengan GroupDocs.Search.Mcp yang berjalan secara lokal di Docker, Claude Desktop, Cursor, atau Copilot mengindeks folder sekali, menanyakan ke indeks kontrak mana yang cocok, dan hanya membaca klausul tersebut:
Kontrak mana yang menyebutkan penalti terminasi? Kutip klausul untuk masing-masing.
Versi langkah demi langkah dengan konfigurasi dan pemecahan masalah ada di dokumentasi: Cara mengajukan pertanyaan di seluruh folder kontrak dengan agen AI.
Apa yang salah ketika agen membaca semuanya?
Tiga hal, dalam urutan bahaya yang meningkat. Ini lambat dan mahal: setiap kontrak melewati jendela konteks, setiap kali Anda bertanya. Ia kehabisan ruang: setelah beberapa lusin dokumen panjang, yang pertama keluar dari jendela atau disarikan, dan ringkasan adalah tempat klausul hilang. Dan ia gagal secara diam-diam: “Saya menemukan dua kontrak dengan penalti terminasi” terdengar sama apakah agen memeriksa semua 300 atau hanya menelusuri 40. Tidak ada dalam balasan yang memberi tahu Anda yang mana.
Indeks menghilangkan masalah pertama dan mengungkapkan yang ketiga. Pertanyaan “file mana yang berisi kata-kata ini” memiliki jawaban pasti, dan alat pencarian mengembalikannya dengan jumlah yang dapat Anda periksa.
Seperti apa urutan yang tepat?
Indeks sekali, cari, lalu baca yang cocok. Berikut apa yang dikembalikan server dalam pengujian kami, terhadap lima kontrak sintetis: dua dengan klausul penalti, dan satu NDA yang menyebutkan kedua kata tetapi mengecualikan penalti.
-> add_to_index {"documentsPath":"contracts","indexName":"contracts"}
<- Indexed 'contracts' into index 'contracts': 5 document(s) added,
5 in the index.
-> search {"query":"termination penalty","indexName":"contracts"}
<- { "documentsFound": 0,
"hint": "Unquoted words separated by spaces do not match. Search the
phrase as \"termination penalty\", or combine the words with
AND / OR, e.g. termination AND penalty." }
-> search {"query":"termination AND penalty","indexName":"contracts"}
<- documentsFound 3: acme-master-services-agreement.pdf,
globex-consulting-agreement.docx, initech-nda.docx
-> get_text_fragments {"query":"\"termination penalty\"",...}
<- === contracts/acme-master-services-agreement.pdf ===
…a termination penalty of three monthly fees applies, payable
within 30…
=== contracts/globex-consulting-agreement.docx ===
…Early termination penalty: the Client pays 50 percent of the fees…
Apa yang diajarkan tiga hasil tersebut?
Kueri pertama terlewat, dan server menjelaskan mengapa.
Dalam GroupDocs.Search, kata yang dipisahkan spasi tanpa kutipan tidak cocok sebagai frasa. Alih-alih mengembalikan nol kosong, server menambahkan hint yang menjelaskan perbaikan, dan agen memperbaiki diri pada panggilan berikutnya. Ini adalah kesalahan pertama kali yang paling umum, dan ditangani dalam respons itu sendiri.
AND menemukan tiga, frasa menemukan dua.
AND dievaluasi per dokumen. NDA Initech berisi kedua kata dalam kalimat “There is no fee and no penalty associated with termination of this NDA”. Model yang hanya membaca hasil pencarian akan menghitungnya; membaca bagian tersebut, ia melaporkan NDA secara terpisah sebagai kontrak yang secara eksplisit mengecualikan penalti. Perbedaan itu adalah nilai keseluruhan panggilan ketiga.
Format tidak menjadi masalah.
Kecocokan datang dari PDF dan DOCX, dan kontrak TXT berada di indeks yang sama. Mesin mengindeks 82 format, sehingga folder yang tumbuh selama lebih dari sepuluh tahun dengan berbagai alat dapat menjawab satu kueri.
Panggilan, secara berurutan
user agent Search MCP server
| "Which contracts mention a termination penalty?" |
|---------------->| |
| |-- add_to_index (once) ------------------>|
| |-- search {"query":"termination AND |
| | penalty"} -------------------->|
| |<- 3 files --------------------------------|
| |-- get_text_fragments {"query": |
| | "\"termination penalty\""} ----------->|
| |<- the two clauses, with context ----------|
|<- "Acme: 3 monthly fees (12.3). Globex: 50% of remaining |
| fees. Initech NDA: explicitly no penalty." |
Setelah pengindeksan pertama, setiap pertanyaan baru memerlukan dua panggilan terlepas berapa banyak kontrak yang ada. “Kontrak mana yang memiliki klausul force majeure?” adalah "force majeure". “Sewa mana yang otomatis diperpanjang?” adalah renewal OR renews, dan bagian tersebut mengatakan “renews automatically for 12 months unless notice is given”. Klausul tentang periode pemberitahuan adalah terminat? AND notice, di mana ? mewakili satu karakter dan cocok dengan terminate.
Di mana manusia tetap berada dalam siklus
Ini bukan tinjauan kontrak, dan tidak seharusnya berpura-pura menjadi demikian. Indeks menemukan dan mengutip teks; agen merangkum apa yang dikutipnya. Dua kebiasaan menjaga kejujurannya. Minta kutipan dengan setiap klaim, sehingga ringkasan yang salah terlihat di samping kalimat yang salah dibaca. Dan minta juga hampir cocok, “daftar kontrak yang menyebutkan kata-kata tanpa klausul”, karena itulah tempat penilaian pembaca paling penting.
Batasan jujur
- Dalam mode evaluasi, sebuah indeks menampung maksimal 100 dokumen dan pencarian mengembalikan maksimal 10, dan setiap respons menyebutkan hal itu. Panggil
get_license_statussebelum menjalankan yang sebenarnya, karena jawaban yang dibatasi terlihat lengkap. - Kontrak yang dipindai tanpa lapisan teks diindeks hanya berdasarkan properti file; tidak ada OCR.
- Pencarian teks penuh mencocokkan kata: agen harus menggunakan kosakata kontrak, atau mencoba varian.
- Menghapus satu file dari folder yang diindeks tidak didukung; hapus folder dan tambahkan kembali apa yang Anda inginkan.
FAQ
Dapatkah agen AI mencari semua kontrak saya tanpa mengunggahnya?
Ya. Indeks dibangun dan dicari dalam sebuah kontainer di mesin Anda; hanya klausul yang dikutip agen yang mencapai model.
Berapa banyak kontrak yang dapat ditangani?
Berlisensi, sebanyak yang dapat ditampung oleh disk dan memori Anda; indeks dibangun sekali dan diperbarui secara inkremental. Mode evaluasi berhenti pada 100 per indeks.
Mengapa pencarian saya untuk dua kata tidak menghasilkan apa pun?
Kata tanpa kutipan tidak cocok sebagai frasa. Kutip, "termination penalty", atau gabungkan kata dengan AND; hint server mengatakan hal yang sama.
Selami lebih dalam
- Dokumentasi, panduan kanonik: Cara mengajukan pertanyaan di seluruh folder kontrak dengan agen AI
- Pusat dokumentasi: GroupDocs.Search MCP Server
- Mulai di sini: Apakah Anda memerlukan basis data vektor untuk mengajukan pertanyaan tentang folder dokumen?
- Terkait: Jawaban berlandaskan dari file Anda: kutip bagian, bukan memori model
- Terkait: grep tidak dapat membaca PDF: berikan agen coding Anda indeks dokumen
- Terkait: Cari arsip email Anda dengan agen AI: PST, MSG, EML dan lampirannya
- Terkait: Memori proyek untuk agen AI: satu indeks per proyek, tetap terkini
- Model on-premise dan keamanan: 3 arsitektur untuk pemrosesan dokumen AI, dan yang menjaga file di dalam jaringan Anda
- Pertanyaan: GroupDocs Search forum
- Sumber: GroupDocs.Search.Mcp on GitHub