“Rename ACME Corp to Globex in this contract” הוא משימה של שלוש שניות לאדם ופח עבור סוכן AI. הנתיב הברור – לקרוא את המסמך ולכתוב אחד חדש – זורק את העיצובים, גבולות הטבלאות, הכותרות ואת הביטחון של הסוקר שלא השתנה דבר אחר. עם השרת GroupDocs.Editor MCP פועל מקומית, Claude, Cursor או Copilot עורכים את הקובץ במקום להקליד אותו מחדש: הם מוצאים את המילים, מחליפים אותן במקום, שומרים על העיצוב, ומספרים לך כמה שונו:

החלף את ACME Corp ב‑Globex Ltd ב‑contract.docx ושמור על העיצוב.

הגרסה שלב‑אחר‑שלב עם הגדרות, פקודות ופתרון בעיות נמצאת בתיעוד: כיצד לערוך מסמכים עם סוכני AI באמצעות MCP.

מה קורה כשמודל משכתב את הקובץ?

מודל שפה אינו מחזיק קובץ .docx. הוא מחזיק בטקסט. כשאתה מבקש ממנו “לעדכן את החוזה”, הנתיב הטבעי הוא לקרוא את המילים, לשנות אותן וליצור מסמך חדש מהעתק שלו. שלושה דברים אובדים בדרך.

עיצוב. שמות צדדים מודגשים, כותרות ממוספרות, קווי רשת בטבלאות, רוחבי העמודות בטבלת העמלות, כותרת תחתונה עם מספרי העמודים – כל אלה אינם חלק מהטקסט שהמודל קורא, ולכן אינם נשארים אלא אם מישהו בונה אותם מחדש.

כל מה שהמודל לא נדרש לגעת בו. רגנרציה משמעותה שכל משפט עובר שוב דרך המודל. סעיף יכול “להתסדר”, מספר יכול להתעדכן, משפט יכול להימחק מכיוון שהחלון הקונטקסטואלי התמלא. הסוקר צריך כעת לבצע diff לכל המסמך כדי לסמוך על שינוי של שלוש מילים בלבד.

שביל הבדיקה. “עדכנתי את החוזה” הוא אותו תגובה בין אם המודל שינה שם אחד ובין אם שבעה. אין ספירה, ואין דרך להבדיל בין עריכה זהירה לעריכה בטוחה.

שרתי העריכה של DOCX שכבר קיימים פתרו את הבעיה הראשונה עבור Word. השניים האחרים, וכל פורמט שאינו Word, עדיין פתוחים.

איך נראה עריכה ממוקדת?

שתי קריאות. נלכדו מ‑GroupDocs.Editor.Mcp גרסה 26.10.0 נגד הסכם שירות סינתטי שבו “ACME Corp” מופיע שבע פעמים:

-> get_document_info {"file":{"filePath":"contract.docx"}}
<- { "family": "WordProcessing", "pageCount": 1, "canEdit": true,
     "canSaveTo": [ "docx", "doc", "rtf", "odt", "pdf", "md", ... ] }

-> replace_text {"file":{"filePath":"contract.docx"},
                 "find":"ACME Corp","replace":"Globex Ltd","wholeWord":true}
<- Replaced 6 occurrence(s) of 'ACME Corp' in 'contract.docx'
   Saved to: …/contract_edited.docx

-> replace_text {"file":{"filePath":"contract.docx"},
                 "find":"Initech","replace":"Globex Ltd"}
<- Text replacement found no matches for 'Initech' in 'contract.docx'.
   No file was written.

העותק הערוך שומר על שם הצד המודגש, על סגנונות הכותרות ועל טבלת העמלות. המקור נשאר ללא שינוי; התוצאה היא קובץ חדש, contract_edited.docx, בתיקיית האחסון.

למה שש ולא שבעה?

זהו הפרט שכדאי לקרוא פעמיים. הפעם השביעית של “ACME Corp” נמצאת בסעיף ההודעות, כאשר “ACME” מודגש בכתב נטוי ו-" Corp" אינו מודגש. בקובץ אלו שני ריצות עיצוב, ו‑replace_text תואם רק בתוך ריצה אחת. הוא לא ניחש ולא מיזג את הסגנונות כדי לאלץ התאמה; הוא דיווח על שש, והפעם השביעית עדיין “ACME Corp”.

זהו ההתנהגות שאתה רוצה מכלי שמעריך חוזים. ספירה נמוכה מהצפוי היא איתות לבדוק; כתיבה “שלמה” בשקט איננה. הסוכן יכול להמשיך עם הנתיב השני שהשרת מציע: לחלץ את החלק כ‑HTML, לערוך אותו ולשמור בחזרה. הפוסט הסיבוב החוזר מכסה זאת.

הקריאות, בסדר

user              agent                        Editor MCP server
 |  "Rename ACME Corp to Globex Ltd in contract.docx"          |
 |---------------->|                                           |
 |                 |-- get_document_info {"file":...} -------->|
 |                 |<- WordProcessing, 1 page, canEdit --------|
 |                 |-- replace_text {"find":"ACME Corp",       |
 |                 |     "replace":"Globex Ltd",               |
 |                 |     "wholeWord":true} ------------------->|
 |                 |<- "Replaced 6 occurrence(s) ...           |
 |                 |    Saved to: .../contract_edited.docx" ---|
 |<- "6 changed; one more is split across formatting - check  |
 |    the notices clause. The original is kept."               |
      (a find that matches nothing: 'No file was written.')

למה זה יותר משטריק וורד

הקריאה אותה ניתן להשתמש בגיליון עבודה, שקף, PDF או קובץ טקסט. בבדיקה שלנו, "worksheet": 1 החליף את הספק בגיליון הסיכום של התקציב והשאיר את שני הגיליונות האחרים ללא שינוי; "slide": 1 עשה זאת באותו אופן במצגת ביקורת. "format": "pdf" עורך וממיר בקריאה אחת, כך ש-“תתקן את השם ותשלח לי PDF” הוא שלב אחד. "regex": true מטפל בתבניות כגון מחרוזות גרסה.

לפני העריכה, get_document_info מודיע לסוכן מה הוא מתמודד איתו: המשפחה, מספר העמודים, גיליונות העבודה או השקפים, האם הקובץ מוגן בסיסמה, ולאילו פורמטים ניתן לשמור. סוכן זהיר קורא זאת תחילה, ואתה יכול לבקש זאת ממנו.

הגדרה

dnx GroupDocs.Editor.Mcp --yes

עם GROUPDOCS_MCP_STORAGE_PATH שמצביע על התיקייה שהסוכן רשאי לערוך, או תמונת Docker ghcr.io/groupdocs-editor/editor-net-mcp. תצורת לקוח‑פרטית נמצאת ב-מרכז התיעוד. מה שהשתנה במנוע עצמו מתועד ב-הערות השחרור של GroupDocs.Editor for .NET 26.6.

מגבלות כנות

  • replace_text תואם רק בתוך ריצה אחת של עיצוב; ביטוי שמפוצל בין סגנונות לא יימצא, והספירה תציג זאת.
  • אין שינויי מעקב ואין תגובות: התוצאה היא עותק ערוך, לא קו אדום.
  • מצב הערכה: כל פלט מתחיל בשורת באנר הערכה, חוברות עבודה שנשמרו מקבלות גיליון נוסף, ורק שני הגיליונות או השקפים הראשונים ניתנים לעריכה. השרת דוחה את השלישי ומסביר מדוע.
  • עריכת PDF היא המרה ל‑HTML או Word ניתנים לעריכה והחזרה; אין עריכה ישירה של PDF במקום.

שאלות נפוצות

האם הסוכן יכתוב על הקובץ המקורי שלי?
לא. כל עריכה כותבת קובץ חדש, <name>_edited.<ext> כברירת מחדל או בשם outputName שתציין, בתיקיית האחסון.

מה קורה אם הטקסט אינו נמצא במסמך?
שום דבר לא נכתב. השרת משיב “found no matches … No file was written.”, ולכן הסוכן יכול ליידע אותך במקום להחזיר עותק ללא שינוי.

האם זה עובד ללא התקנת Word?
כן. השרת פועל מקומית עם מנוע GroupDocs.Editor; אין צורך בהתקנת Office ואין צורך בהעלאה.

להעמיק יותר