“Which of our contracts carry a termination penalty?” נשמע כמו משימה עבור סוכן AI, וזה אכן כך, אך לא על ידי קריאת החוזים. סוכן שפותח כל קובץ כדי לענות על כך מוציא את ההקשר שלו על 297 מסמכים לא רלוונטיים ועדיין צריך לסמוך שהוא שם לב לסעיף בשלושת האחרים. עם GroupDocs.Search.Mcp הפועל מקומית ב‑Docker, Claude Desktop, Cursor או Copilot מאנדקסים את התיקייה פעם אחת, שואלים את האינדקס אילו חוזים תואמים, וקוראים רק את הסעיפים:
איזה מהחוזים שלי מזכיר קנס סיום? צטט את הסעיף עבור כל אחד.
הגרסה שלב‑אחר‑שלב עם תצורה ופתרון בעיות נמצאת בתיעוד: איך לשאול שאלות על תיקייה של חוזים עם סוכן AI.
מה קורה כשסוכן קורא את הכל?
שלושה דברים, בסדר עולה של סכנה. זה איטי ויקר: כל חוזה עובר דרך חלון ההקשר, בכל פעם שאתה שואל. המקום נגמר: אחרי כמה עשרות מסמכים ארוכים, הראשונים יוצאים מהחלון או מסוכמים, והסיכום הוא המקום שבו סעיף נעלם. והוא נכשל בשקט: “מצאתי שני חוזים עם קנס סיום” נשמע אותו דבר אם הסוכן בדק את כל 300 או רק קרא בקיצור 40. שום דבר בתשובה לא אומר לך אילו.
אינדקס מסיר את הבעיה הראשונה ומחשוף את השלישית. השאלה “אילו קבצים מכילים את המילים האלה” מקבלת תשובה מדויקת, וכלי חיפוש מחזיר אותה עם ספירה שאתה יכול לבדוק.
איך נראית הרצף הנכון?
אינדקס פעם אחת, חיפוש, ואז קריאת ההתאמות. הנה מה שהשרת החזיר במבחן שלנו, נגד חמישה חוזים סינתטיים: שניים עם סעיף קנס, וחוזה NDA אחד שמזכיר את שתי המילים אך מונע קנס.
-> 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…
מה שלוש התוצאות מלמדות?
השאילתה הראשונה החמיצה, והשרת הסביר למה. ב‑GroupDocs.Search, מילים מופרדות ברווחים ללא מרכאות אינן תואמות כצירוף. במקום להחזיר אפס גרידא, השרת מצרף hint שמסביר את התיקון, והסוכנים מתקנים את עצמם בקריאה הבאה. זו ההחמצה הנפוצה ביותר בפעם הראשונה, והיא מטופלת בתגובה עצמה.
AND מצא שלושה, הצירוף מצא שניים. AND מוערך לפי מסמך. ה‑NDA של Initech מכיל את שתי המילים במשפט “There is no fee and no penalty associated with termination of this NDA”. מודל שקורא רק את תוצאת החיפוש היה סופר אותו; קריאת הקטע מדווחת על ה‑NDA בנפרד כחוזה שמוציא במפורש את הקנס. ההבדל הזה הוא הערך המלא של הקריאה השלישית.
הפורמטים לא היו חשובים. ההתאמות הגיעו מ‑PDF ו‑DOCX, וחוזה TXT ישב באותו אינדקס. המנוע מאנדקס 82 פורמטים, כך שתיקייה שצמחה במשך עשר שנים של כלים שונים משיבה על שאילתה אחת.
הקריאות, לפי סדר
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." |
לאחר האינדקס הראשון, כל שאלה חדשה עולה שני קריאות ללא קשר למספר החוזים. “Which contracts have a force majeure clause?” הוא "force majeure". “Which leases renew automatically?” הוא renewal OR renews, והקטע אומר “renews automatically for 12 months unless notice is given”. סעיף על תקופות הודעה הוא terminat? AND notice, כאשר ? מייצג תו אחד ומתאים ל‑terminate.
היכן שהאדם נשאר במעגל
זה אינו סקירת חוזים, והוא לא צריך להעמיד פנים שהוא כן. האינדקס מוצא ומצטט טקסט; הסוכן מסכם את מה שהוא ציטט. שני הרגלים שומרים על היושר. בקש את הציטוט עם כל טענה, כך שסיכום שגוי יהיה גלוי לצד המשפט שהקרא בטעות. ובקש גם את הקרובים למפספסים, “רשום חוזים שמזכירים את המילים ללא הסעיף”, כי שם שיפוט הקורא הוא החשוב ביותר.
מגבלות כנות
- במצב הערכה אינדקס מחזיק לכל היותר 100 מסמכים וחיפוש מחזיר לכל היותר 10, וכל תגובה מציינת זאת. קרא
get_license_statusלפני ריצה אמיתית, כי תשובה מוגבלת נראית שלמה. - חוזים סרוקים ללא שכבת טקסט מאונדקסים רק לפי מאפייני הקובץ; אין OCR.
- חיפוש טקסט מלא תואם מילים: סוכן צריך להשתמש במילון של החוזה, או לנסות וריאנטים.
- הסרת קובץ אחד מתיקייה מאונדקסת אינה נתמכת; יש להסיר את התיקייה ולהוסיף בחזרה את מה שאתה רוצה.
שאלות נפוצות
האם סוכן AI יכול לחפש בכל החוזים שלי ללא העלאתם?
כן. האינדקס נבנה ונחפש במכולה במחשב שלך; רק הסעיפים שהסוכן מצטט מגיעים למודל.
כמה חוזים הוא יכול להתמודד איתם?
בגרסה מורשית, כמה שהדיסק והזיכרון שלך מאפשרים; האינדקס נבנה פעם אחת ומתעדכן באופן אינקרמנטלי. מצב הערכה נעצר ב‑100 לכל אינדקס.
למה החיפוש שלי לשתי מילים לא החזיר תוצאות?
מילים ללא מרכאות אינן תואמות כצירוף. צטט אותן, "termination penalty", או חבר את המילים עם AND; hint של השרת אומר את אותו הדבר.
להעמיק יותר
- תיעוד, מדריך קנוני: איך לשאול שאלות על תיקייה של חוזים עם סוכן AI
- מרכז תיעוד: GroupDocs.Search MCP Server
- התחלה כאן: האם אתה צריך מסד נתונים וקטורי כדי לשאול שאלות על תיקייה של מסמכים?
- קשור: תשובות מבוססות קבצים: צטט את הקטע, לא את זיכרון המודל
- קשור: grep לא יכול לקרוא PDF: תן לסוכן הקוד שלך אינדקס מסמכים
- קשור: חפש בארכיון האימיילים שלך עם סוכן AI: PST, MSG, EML והקבצים המצורפים בפנים
- קשור: זיכרון פרויקט לסוכני AI: אינדקס אחד לכל פרויקט, מתעדכן באופן שוטף
- מודל פריסה וביטחון: 3 ארכיטקטורות לעיבוד מסמכי AI, והזו ששומרת קבצים בתוך הרשת שלך
- שאלות: GroupDocs Search forum
- מקור: GroupDocs.Search.Mcp on GitHub