“تغییر نام ACME Corp به Globex در این قرارداد” کاری سه ثانیه‌ای برای یک انسان و تله‌ای برای یک عامل هوش مصنوعی است. مسیر واضح، خواندن سند و نوشتن یک نسخه جدید است که سبک‌ها، حاشیه‌های جدول، سرصفحه‌ها و اطمینان مرورگر را که هیچ چیز دیگری جابه‌جا نشده است، از بین می‌برد. با اجرای محلی سرور GroupDocs.Editor MCP، Claude، Cursor یا Copilot به جای تایپ مجدد، فایل را ویرایش می‌کنند: کلمات را پیدا می‌کنند، در محل جایگزین می‌شوند، قالب‌بندی را حفظ می‌کنند و به شما می‌گویند چند مورد تغییر کرده است:

نام ACME Corp را به Globex Ltd در contract.docx تغییر دهید و قالب‌بندی را حفظ کنید.

نسخه گام‌به‌گام همراه با تنظیمات، پرامپت‌ها و عیب‌یابی در مستندات موجود است: How to edit documents with AI agents using MCP.

چه مشکلی هنگام بازنویسی فایل توسط مدل پیش می‌آید؟

یک مدل زبانی .docx را نگه نمی‌دارد؛ متن را نگه می‌دارد. وقتی از آن می‌خواهید “قرارداد را به‌روز کنید”، مسیر طبیعی این است که کلمات را بخواند، تغییر دهد و یک سند جدید از نسخه خود تولید کند. در این مسیر سه مورد از دست می‌روند.

قالب‌بندی. نام‌های طرف‌های برجسته، سرعنوان‌های شماره‌دار، خطوط شبکه جدول، عرض ستون‌های جدول هزینه، پاورقی با شماره صفحات: هیچ‌یک از این‌ها بخشی از متنی که مدل خوانده نیست، بنابراین مگر اینکه چیزی آن‌ها را بازسازی کند، زنده نمی‌مانند.

همه چیزهایی که از مدل خواسته نشده بود تا به آن‌ها دست بزند. بازتولید به این معنی است که هر جمله دوباره از طریق مدل می‌گذرد. یک بند می‌تواند «تمیز» شود، یک عدد قالب‌بندی شود، یا یک جمله حذف شود چون پنجره زمینه پر شده است. اکنون مرورگر باید کل سند را برای اطمینان از تغییر سه کلمه‌ای مقایسه کند.

ردپای حسابرسی. «من قرارداد را به‌روز کردم» همان پاسخ است چه مدل یک نام یا هفت نام را تغییر داده باشد. هیچ شمارشی وجود ندارد و راهی برای تشخیص ویرایش دقیق از ویرایش مطمئن نیست.

سرورهای ویرایش فقط‑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 استخراج کند، ویرایش کند و دوباره ذخیره کند. مقالهٔ round‑trip post به آن می‌پردازد.

فراخوان‌ها، به ترتیب

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.')

چرا این بیشتر از یک ترفند Word است

همان فراخوان بر روی یک کاربرگ، یک اسلاید، یک 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. پیکربندی هر مشتری در documentation hub موجود است. تغییرات در خود موتور در GroupDocs.Editor for .NET 26.6 release notes آمده است.

محدودیت‌های صادقانه

  • replace_text فقط درون یک‌دست قالب‌بندی مطابقت می‌دهد؛ عبارتی که بین سبک‌ها تقسیم شده پیدا نمی‌شود و شمارش آن نشان می‌دهد.
  • بدون تغییرات ردیابی شده و بدون نظرات: نتیجه یک نسخه ویرایش‌شده است، نه یک خط قرمز.
  • حالت ارزیابی: هر خروجی با یک خط بنر ارزیابی شروع می‌شود، کتاب‌کارهای ذخیره‌شده یک کاربرگ اضافه می‌گیرند و فقط دو کاربرگ یا اسلاید اول قابل ویرایش هستند. سرور سومین را رد می‌کند و دلیل را می‌گوید.
  • ویرایش PDF تبدیل به HTML یا Word قابل ویرایش و سپس بازگشت است؛ ویرایش در‑محل PDF وجود ندارد.

پرسش‌های متداول

آیا عامل فایل اصلی من را بازنویسی می‌کند؟
نه. هر ویرایش یک فایل جدید می‌نویسد، به‌صورت پیش‌فرض <name>_edited.<ext> یا با outputName که شما می‌دهید، در پوشه ذخیره‌سازی.

اگر متن در سند موجود نباشد چه می‌شود؟
چیزی نوشته نمی‌شود. سرور پاسخ می‌دهد «found no matches … No file was written.»، بنابراین عامل می‌تواند به شما بگوید به‌جای برگرداندن یک نسخه بدون تغییر.

آیا بدون نصب Word کار می‌کند؟
بله. سرور به‌صورت محلی با موتور GroupDocs.Editor اجرا می‌شود؛ نیازی به نصب Office یا بارگذاری نیست.

عمیق‌تر بروید