An AI 代理可以通过查看它刚刚标注的页面来验证自己的标注。使用 GroupDocs.Annotation.Mcp,Claude、Cursor 或 GitHub Copilot 中的 LLM 对文档进行标注,请求服务器将页面渲染为包含标注的 PNG,并判断标注位置是否正确。服务器在本地完成工作;提示语只有一句话:
Highlight the payment clause on page 2, then show me the page.
逐步的配置和故障排除版本在文档中: How to let an AI agent see the document page it annotated.
注意:generate_pages_preview 目前在 Linux 上(包括 Docker 镜像)处理 PDF 文件会失败;请在构建前查看 Honest limits。
为什么无法看到输出的代理会错误地报告成功?
大多数文档工具都是写入式的。代理调用它们后只会说“完成”,因为调用返回了。对于标注来说,这种说法可能是错误的,却没有任何错误信息显示:调用成功,但高亮标记位于错误的段落。坐标 x 和 y 是文档坐标,若让代理高亮“付款条款”,它必须自行猜测该条款所在位置,除非有其他信息指示。
区别在于“我添加了一个高亮”和“高亮位于付款条款”。只有第二种说法有意义,只有查看页面才能验证它。
代理如何渲染带标注的页面图像并进行检查?
这些工具形成一个简短的循环。
add_annotation写入标注并保存为contract_annotated.pdf。原始文件保持不变。generate_pages_preview将该文件的页面渲染为 PNG 图像,标注已嵌入,并以内联方式返回。pages参数可设为2、1-3或1,3,5。如果省略,则返回第 1 页。- 代理查看图像。如果高亮覆盖了错误的文本,
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 文件的平台上运行,例如使用 dnx 的 Windows。
你: 在 contract.pdf 的第 2 页高亮付款条款,然后展示该页。
代理: [calls add_annotation: type=highlight, page=2, x=100, y=250,
text="Payment clause"]
已在 contract.pdf 第 2 页添加高亮标注。
[calls generate_pages_preview on output/contract_annotated.pdf, pages="2"]
(图像:第 2 页,已渲染高亮标注)
高亮位于“Delivery”段落上方一个块的位置,而不是付款条款。将其向下移动。
[calls get_annotations, then update_annotation: y=330]
已在 output/contract_annotated.pdf 中更新注释 1。
(代理将每次调用返回的文件名传递给下一次调用。)
渲染在哪里运行,哪些内容会离开机器?
引擎在你的机器上生成 PNG。随后图像会像其他消息内容一样传输到模型提供商,因此在使用云托管模型时,预览会将该页的图片发送出去。对于敏感文档,请使用本地部署的模型。
诚实的限制
- Linux 上的预览。
generate_pages_preview目前在 Linux 上(包括 Docker 镜像)处理 PDF 文件会失败(Gdip的TypeInitializationException:System.Drawing.Common在非 Windows 平台上不受支持);Word 和其他 Office 文档可以渲染,在 Windows 使用dnx时所有格式均可渲染。其他十个工具不受影响。 - 评估模式。 在评估模式下,试用徽章会被盖在标注文件和预览的每页顶部。使用输出前请检查
get_license_status。 - 近似放置仍保持近似。 预览只能让模型发现标注位置错误;它不会把猜测的坐标转换为精确坐标。
- 仅文本模型无法检查。 仅文本模型仍然只能收到文本块,无法判断页面的实际外观。
常见问题
AI 能够检查评论落在页面的哪个位置吗?
可以,只要模型接受图像输入。代理使用 generate_pages_preview 渲染带标注的页面并检查图片,必要时使用 update_annotation 调整标注。
如何为代理预览带标注的 PDF 页面?
按页码请求,例如“渲染标注合同的第 1‑3 页,以便我检查评论”。代理会将 pages 设置为 1-3,PNG 会以内联方式返回。
为什么预览在我的 Docker 容器中失败?
对于 PDF 文件,工具在 Linux(包括 Docker 镜像)上会因 Gdip 类型初始化错误而失败。Word 和其他 Office 文档可以渲染,在 Windows 使用 dnx 时所有格式均可渲染。
深入了解
- 文档,权威操作指南: 如何让 AI 代理看到它标注的文档页面
- 文档中心: GroupDocs.Annotation MCP Server
- 从这里开始: AI 审阅直接写入文档,而非聊天记录
- 相关: 使用 MCP 强制审阅工作流的自动化标注线程
- 相关: 使用 MCP 从文档集合中提取所有评论的 3 种方法
- 其他服务器: GroupDocs.Viewer.Mcp 渲染任何文档的页面: 多模态代理需要像素,而不仅是文本
- 本地部署与安全模型: AI 文档处理的 3 种架构,以及保持文件在网络内部的方案
- 提问: GroupDocs Annotation 论坛
- 源码: GroupDocs.Annotation.Mcp 在 GitHub 上