“Переименовать ACME Corp в Globex в этом контракте” — задача на три секунды для человека и ловушка для ИИ‑агента. Очевидный путь — прочитать документ и написать новый, при этом теряются стили, границы таблиц, заголовки и уверенность проверяющего, что ничего больше не изменилось. С запущенным локально сервером GroupDocs.Editor MCP, Claude, Cursor или Copilot редактируют файл вместо того, чтобы перепечатывать его: они находят нужные слова, заменяют их на месте, сохраняют форматирование и сообщают, сколько замен было выполнено:
Переименовать ACME Corp в Globex Ltd в contract.docx и сохранить форматирование.
Пошаговая версия с настройкой, подсказками и устранением неполадок находится в документации: Как редактировать документы с помощью ИИ‑агентов, используя 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, отредактировать её и сохранить обратно. Об этом рассказывает пост о круговом проходе.
Вызовы, в порядке следования
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. Конфигурация для каждого клиента находится в центре документации. Что изменилось в самом движке, описано в примечаниях к выпуску GroupDocs.Editor for .NET 26.6.
Честные ограничения
replace_textищет только внутри одного фрагмента форматирования; фраза, разбитая стилями, не будет найдена, и счётчик отразит это.- Нет отслеживаемых изменений и комментариев: результат — отредактированная копия, а не сравнение.
- Режим оценки: каждый вывод начинается со строки‑баннера оценки, сохранённые книги получают дополнительный лист, и только первые два листа или слайда можно редактировать. Сервер отклоняет третий и объясняет причину.
- Редактирование PDF — это конверсия в редактируемый HTML или Word и обратно; прямое редактирование PDF в месте не поддерживается.
FAQ
Перезапишет ли агент мой оригинальный файл?
Нет. Каждое редактирование записывает новый файл, <name>_edited.<ext> по умолчанию или outputName, который вы укажете, в папку хранилища.
Что произойдёт, если текста нет в документе?
Ничего не будет записано. Сервер отвечает «found no matches … No file was written.», поэтому агент может сообщить вам об этом, а не возвращать неизменённую копию.
Работает ли это без установленного Word?
Да. Сервер работает локально на движке GroupDocs.Editor; установка Office и загрузка файлов не требуются.
Углубиться
- Документация, канонический how‑to: Как редактировать документы с помощью ИИ‑агентов, используя MCP
- Центр документации: GroupDocs.Editor MCP Server
- Смежные статьи: Переименовать сторону во 40 контрактах, не трогая форматирование
- Смежные статьи: Заполнять Word‑формы из таблицы с помощью ИИ‑агента, локально
- Смежные статьи: Редактировать один лист, сохранять книгу: хирургические правки с HTML‑круговым проходом
- Смежные статьи: Редактировать PDF с ИИ‑агентом? Сначала превратить в Word, локально
- О модели развертывания и безопасности: 3 архитектуры для AI‑обработки документов, и та, что держит файлы внутри вашей сети
- Вопросы: Форум GroupDocs Editor
- Исходный код: GroupDocs.Editor.Mcp на GitHub · NuGet package