AI‑агент может проверять собственные аннотации, просматривая страницу, которую он только что разметил. С помощью GroupDocs.Annotation.Mcp LLM в Claude, Cursor или GitHub Copilot аннотирует документ, запрашивает у сервера отрисовку страницы в формате PNG с включённой аннотацией и оценивает, правильно ли размещена аннотация. Сервер выполняет работу локально; запрос состоит из одного предложения:

Выделите пункт об оплате на странице 2, а затем покажите мне эту страницу.

Подробная пошаговая инструкция с настройкой и устранением неполадок находится в документации: Как позволить AI‑агенту видеть страницу документа, которую он аннотировал.

Примечание: generate_pages_preview в настоящее время не работает с PDF‑файлами в Linux, включая Docker‑образ; см. раздел Честные ограничения, прежде чем использовать его.

Почему агент, который не может видеть свой вывод, ошибочно сообщает об успехе?

Большинство инструментов для работы с документами работают только в режиме записи. Агент вызывает их и сообщает «выполнено», потому что вызов вернул результат. Для аннотации такое утверждение может быть ложным без какого‑либо сообщения об ошибке: вызов завершился успешно, но выделение оказалось на неверном абзаце. Координаты x и y — это координаты в документе, и агенту, которому сказано выделить «пункт об оплате», придётся угадывать, где этот пункт находится, если ему ничего не подсказать.

Разница между «я добавил выделение» и «выделение находится на пункте об оплате». Полезно только второе утверждение, и только просмотр страницы может его подтвердить.

Как агент рендерит изображение аннотированной страницы и проверяет его?

Инструменты образуют короткий цикл.

  1. add_annotation записывает аннотацию и сохраняет contract_annotated.pdf. Исходный файл не изменяется.
  2. generate_pages_preview рендерит страницы этого файла в PNG‑изображения, включая аннотации, и возвращает их inline. Параметр pages можно задать как 2, 1-3 или 1,3,5. Если его опустить, будет возвращена страница 1.
  3. Агент смотрит на изображение. Если выделение охватывает неверный текст, update_annotation меняет его сообщение, позицию или размер без полного повторения процесса.

Превью возвращает один текстовый блок, описывающий, что было отрисовано, а затем отдельный блок изображения для каждой страницы. За один вызов можно отрисовать не более пяти страниц.

Установите GROUPDOCS_MCP_OUTPUT_PATH в папку, отличную от папки хранилища, перед тем как цепочкой выполнять правки над полученным файлом. При значении по умолчанию (вывод попадает в папку хранилища) второй вызов записи завершается ошибкой being used by another process; при отдельной папке вывода add_reply, update_annotation и remove_annotations над полученным файлом выполняются успешно. В Docker‑образе передайте -e GROUPDOCS_MCP_OUTPUT_PATH=/data/output. Сеанс ниже предполагает эту настройку, поэтому полученный файл находится в output/.

Что требуется агенту для работы?

  • Клиент, способный отображать изображения. Claude Desktop умеет это делать. Терминальный клиент может лишь сообщать, что изображение вернулось. Инструмент работает одинаково в обоих случаях; просто изображения могут не отображаться.
  • Модель, принимающая визуальный ввод. Изображения полезны только модели, которая может принимать изображения.
  • Небольшой диапазон страниц. Рендеринг — самая ресурсоёмкая операция на этом сервере. Запрашивайте только нужную страницу, а не файл из пятидесяти страниц.

Какие другие применения имеет предварительный просмотр?

  • Определить место перед аннотированием. Сначала отрендерьте страницу, позвольте модели прочитать её, а затем разместите аннотацию, используя полученные координаты вместо догадок.
  • Проверить слияние. После import_annotations в переработанный черновик превью покажет, находятся ли импортированные заметки там, где им следует быть.
  • Показать результат рецензенту в чате без открытия файла.
  • Обнаружить бейдж оценки. В режиме оценки на каждую страницу накладывается пробный бейдж, который виден на отрендеренном изображении.

Пример сеанса (сокращённый)

Это иллюстрация, построенная на основе задокументированного поведения инструментов, а не захваченный скриншот. Предполагается платформа, где рендерер превью работает с PDF‑файлами, например Windows с dnx.

You:   Highlight the payment clause on page 2 of contract.pdf, then show me the page.

Agent: [calls add_annotation: type=highlight, page=2, x=100, y=250,
        text="Payment clause"]
       Added highlight annotation to contract.pdf on page 2.
       [calls generate_pages_preview on output/contract_annotated.pdf, pages="2"]
       (image: page 2, rendered with the highlight)
       The highlight sits on the "Delivery" paragraph, one block above the
       payment clause. Moving it down.
       [calls get_annotations, then update_annotation: y=330]
       Updated annotation 1 in output/contract_annotated.pdf.
       (The agent passes the saved file name from each result to the next call.)

Где происходит рендеринг и что покидает машину?

Движок создаёт PNG‑файл на вашей машине. Затем изображение передаётся вашему провайдеру модели так же, как любой другой контент сообщения, поэтому при использовании облачной модели превью отправляет картинку этой страницы. Для конфиденциальных документов используйте локально развернутую модель.

Честные ограничения

  • Превью в Linux. generate_pages_preview в настоящее время не работает с PDF‑файлами в Linux, включая Docker‑образ (TypeInitializationException для Gdip: System.Drawing.Common не поддерживается на платформах, отличных от Windows); Word и другие офисные документы рендерятся, а в Windows с dnx рендерится любой формат. Остальные десять инструментов не затронуты.
  • Режим оценки. Пробный бейдж наносится в верхнюю часть каждой страницы аннотированного файла и превью. Проверьте get_license_status перед тем как полагаться на вывод.
  • Приблизительное размещение остаётся приблизительным. Превью позволяет модели заметить неверно размещённую аннотацию; оно не преобразует догадочные координаты в точные.
  • Текстовая модель не может проверять. Она всё равно получает текстовый блок, но не может сказать, как выглядит страница.

Часто задаваемые вопросы

Может ли AI проверить, где комментарий оказался на странице? Да, если модель принимает изображения. Агент рендерит аннотированную страницу с помощью generate_pages_preview и анализирует картинку, затем при необходимости корректирует аннотацию через update_annotation.

Как показать агенту аннотированную страницу PDF? Попросите страницу по номеру, например: «Отрисуй страницы 1‑3 аннотированного контракта, чтобы я мог проверить комментарии». Агент передаст pages как 1-3, и PNG‑изображения вернутся inline.

Почему превью не работает в моём Docker‑контейнере? Для PDF‑файлов инструмент падает в Linux, включая Docker‑образ, с ошибкой инициализации типа Gdip. Word и другие офисные документы рендерятся, а в Windows с dnx каждый формат отрисовывается.

Углубиться