当你让 AI 代理对扫描页进行脱敏,而文本脱敏找不到任何可替换的内容时,说明该页并不干净,缺少可搜索的文本层。要在本地对扫描件进行脱敏,代理会使用 redact_image_area 按坐标覆盖区域,而不是匹配单词。将 GroupDocs.Redaction.Mcp 与 Claude Desktop 或 Cursor 连接后,请求如下所示:

用黑色方框覆盖 scan.png 的底部三分之一。

带有配置和故障排除的逐步版本请参见文档:How to redact scanned documents and images with an AI agent.

为什么文本脱敏在扫描件上找不到任何内容?

扫描件是文档的图片。上面的文字是像素,正则表达式没有可匹配的对象。redact_text 在扫描页上找不到可替换的内容,而找不到并不等同于没有敏感信息。将仅图像文件的空结果视为“没有文本层”,然后切换工具。照片、印章以及数字合同背面的扫描签名页也同理。

哪个工具可以覆盖页面的某个区域?

redact_image_area 用实色方框覆盖页面的矩形区域,永久隐藏其下的图像内容,例如人脸、签名和印章。它接受以像素为单位的 x、y、width 和 height,相对于页面左上角测量,并可选 color(默认黑色,或十六进制值如 #FF0000)。该工具没有页面参数,只需提供文件和矩形,因此请打开输出文件确认方框的位置。由于数值是像素,选择矩形前需要先了解图像或页面的尺寸。

如何获取坐标?

先获取页面尺寸。get_document_info 返回文件类型、页数以及每页的宽高,从而把“底部三分之一”转换为具体数值。

scan.png 有多大?

然后把区域告诉代理:

用黑色方框覆盖 scan.png 的底部三分之一。

如果要定位特定元素(如签名或人脸),需要知道其位置。有两种实用方式。可以在任意查看器中打开页面自行读取坐标。也可以让代理使用返回页面图像的服务器渲染页面:GroupDocs.Viewer.Mcp 的 render_page 工具将单页渲染为 PNG 并内联返回,GroupDocs.Annotation.Mcp 服务器可以返回页面预览(其预览工具目前在 Linux 和 Docker 中对 PDF 文件失效;Word 等 Office 文档可以渲染,在 Windows 上使用 dnx 时所有格式均可渲染)。具备视觉能力的模型随后可以估算方框位置,你在脱敏执行前确认即可。

对于文本和扫描混合的文档怎么办?

带有扫描签名页的数字合同需要同时使用两种工具,而 redact_image_area 不能通过参数针对单独的页面。请将两部分分开处理:先脱敏文本,再把扫描页视为图像进行区域脱敏。

脱敏 contract.docx 中的电子邮件地址,然后告诉我下一步应使用哪个已保存的文件。

随后用肉眼检查最终输出的每一页。

典型的扫描脱敏工作流是怎样的?

可行的顺序是:读取页面尺寸 → 确定区域 → 覆盖 → 查看结果。如果区域不明显,先渲染页面让具备视觉能力的模型提出方框。将提议和最终坐标保存在对话记录中,便于审阅案件文件的人看到覆盖了什么以及原因。按区域脱敏本意就是粗暴:只覆盖一个矩形,别无他物。

该服务器会读取图像中的文字吗(OCR)?

不会。GroupDocs.Redaction.Mcp 只负责脱敏,不会识别图像中的文字。这保证行为可预测,因为不会有置信阈值悄悄判断模糊的名字不是名字。如果你的工作流需要从扫描件中提取文字,请先使用专门的工具提取,再判断哪些是敏感信息,最后按区域脱敏。服务器无法告诉你名字在图片中的具体位置。

示例会话(节选)

You:    How big is scan.png?
Agent:  -> get_document_info(file: scan.png)
        The image is 1200 x 1600 pixels.
You:    Cover the bottom third of scan.png with a black box.
Agent:  -> redact_image_area(file: scan.png, x: 0, y: 1067, width: 1200, height: 533, color: Black)
        Saved the output file. Please open it and check that the box covers the area.

如何检查区域脱敏?

检查输出的每一页,而不仅仅是你指定的那一页。若区域少了 20 像素,则说明脱敏失败,返回的文本也不会提示。这是唯一一个无法通过重新运行模式自动验证的情况:检查只能靠肉眼或代理能看到的渲染预览。验证相关内容已在单独的文章中讨论,见 Trust no redaction you haven’t verified。

评估模式有哪些限制?

未授权时,服务器每次进程只能处理一个文档且只能进行一次脱敏,最多 4 次替换,并附带试用徽章。对于扫描件,这意味着只能放置一个方框:需要三个覆盖区域的页面只能得到一个方框,仍然看起来已被处理。请先运行 get_license_status。此上限仅用于试用工具,不适用于正式工作。

  • PDF on Linux. 在 Linux(包括 Docker 镜像)上,redact_image_area 和 erase_metadata 目前在 PDF 文件上会失败(PDF 引擎的图像处理依赖 System.Drawing,而 .NET 仅在 Windows 上支持);两者在 Word 文档上可用,redact_text 在 PDF 上可用。请在 Windows 上使用 dnx 进行 PDF 区域脱敏和元数据擦除。

FAQ

Can an AI agent redact a scanned document?
是的,使用区域脱敏。通过 redact_image_area 覆盖你定义的矩形,因为没有文本可供模式匹配。

Can Claude remove a signature from a scanned image?
Claude 可以在已知签名位置后驱动脱敏,无论该位置是来自查看器还是渲染的页面预览。服务器随后用实色方框覆盖该矩形。

How do I black out a region in a scan or image automatically?
将文件和矩形提供给代理,它会调用 redact_image_area。该工具没有页面参数,请用肉眼检查结果的每一页。

Why does text redaction change nothing on my scan?
扫描件或图像只有像素,没有文本,因此没有可替换的内容。请使用区域脱敏,并用肉眼检查结果。

深入了解