只有在检查了即将发布的文件后,才算完成脱敏;而 AI 代理可以在本地通过几次调用完成此检查。将 GroupDocs.Redaction.Mcp 连接到 Claude Code、Cursor 或 GitHub Copilot 后,首先将脱敏后的副本以文本形式读取并搜索:
提取 case-file_redacted.pdf 的文本,并告诉我其中是否出现任何电子邮件地址。
预期没有。带有配置和故障排除的逐步指南请参见文档: How to verify that a redaction is complete。
为什么“工具运行了”不能作为证据?
因为一个没有错误的脱敏工具并不能说明模式、文件、许可证状态或数据隐藏的其他位置。未经过验证的脱敏只是一个声明,而不是控制。常见的错误方式并不离奇,失败类型很少:
- 数据被遮盖而未被删除。覆盖在文本上的不透明块仍然保留文本,阅读器可以复制出来。维基百科上关于脱敏的条目描述了 2005 年美国军方关于尼古拉·卡利帕里死亡的报告,该报告以 PDF 形式发布,遮挡的部分可以通过复制粘贴到文字处理器中恢复(另见BBC 新闻,2005 年 5 月 2 日)。
- 模式遗漏了变体:不同的分隔符、换行符、大小写不同。
- 步骤应用到了错误的文件,导致后续步骤撤销了之前的操作。
- 注释或文档属性仍然包含该人的姓名。
- 未授权的运行在达到替换上限时悄然停止。
验证的错误方式是什么?
询问代理“你把所有东西都处理了吗?”并接受“是”。代理没有新信息,它只是在总结自己的调用。第二种错误方式是验证你认为自己生成的文件。链式规则意味着完全有可能验证一个跳过了某一步的文档。
正确的做法是什么?四项检查
在你计划发布的确切文件上执行这些检查。
1. 读取脱敏副本的文本。 顶部的提示使用返回文本的工具完成此操作,例如 GroupDocs.Parser.Mcp 中的 extract_text(docs),该工具以 Docker 镜像形式提供。任何匹配都意味着模式遗漏了变体,或运行达到了评估上限。不要使用 redact_text 进行此检查:它报告的是已保存的文件,而不是计数,并且会写入另一个副本,因此一个看似干净的回复并不能证明什么。
2. 检查另外三个位置。 注释和属性不会出现在文本搜索中。GroupDocs.Annotation.Mcp 服务器使用 get_annotations 列出注释,每条记录包含页面和消息。
现在检查脱敏副本的注释并读取其文档属性。
为了对每个包进行更深入的属性检查,GroupDocs.Metadata.Mcp 服务器的 read_metadata 工具以 JSON 形式返回所有元数据属性,并且还能读取 EXIF、XMP 和 IPTC。这是跨服务器的循环:Redaction 服务器删除,第二个服务器读取回来。
3. 查看页面。 区域脱敏无法通过文本搜索验证。打开文档,或让代理使用 GroupDocs.Viewer.Mcp 的 render_page 工具渲染每一页,并确认每个框完全覆盖了其应覆盖的内容,且位于正确的页面上。
4. 确认生成该文件的运行的许可证状态。
脱敏服务器的许可证状态是什么?
如果答案是 evaluation,则脱敏被限制为四次替换。验证通常会显示这一点,但恰好有四个匹配的文档仍会通过检查却仍然错误。始终先检查许可证,再进行验证。get_license_status 回答第一个问题,get_document_info 在涉及区域脱敏时返回页数和尺寸。
示例会话(节选)
You: What is the license status of the redaction server?
Agent: -> get_license_status() mode: licensed
You: Extract the text of case-file_redacted.pdf and tell me whether any email address appears.
Agent: -> extract_text (Parser server) No email addresses in the extracted text.
You: Now check it for annotations and read its document properties.
Agent: -> get_annotations (Annotation server) no annotations
-> read_metadata (Metadata server) Author, Company: empty
You: Summarize what you redacted, in which file, and what the verification found.
如何保留证据?
验证记录(即使用的模式、生成的文件以及读取回来的结果)是脱敏已执行并检查的凭证。向代理请求该记录的摘要并与案件文件一起保存。这适合作为审计追踪,而不是对结果的认证。
验证无法告诉你的是什么?
它无法告诉你所使用的模式是否正确。上述内容表明你要求删除的内容已经不存在。决定应删除什么是你的判断,没有任何工具可以替你完成这一步。
评估模式的限制是什么?
每个进程只能处理一个文档、一次脱敏,且最多四次替换,并附带试用徽章。上限是演示限制;未授权的运行看似已脱敏,却仍可能包含数据,因此在信任任何验证之前请先检查 get_license_status。
- PDF 在 Linux 上。 在 Linux(包括 Docker 镜像)中,
redact_image_area和erase_metadata目前在 PDF 文件上会失败(PDF 引擎的图像处理依赖于System.Drawing,而 .NET 仅在 Windows 上支持);它们在 Word 文档上可用,redact_text在 PDF 上可用。请在 Windows 上使用dnx运行 PDF 区域脱敏和元数据擦除。
常见问题
我的脱敏 PDF 真正完成脱敏了吗? 只有在对脱敏副本进行文本读取后未发现任何被删除的值,注释和属性均为空,并且你检查了区域脱敏的情况下才算完成。检查全部四项通常只需几次调用。
AI 代理能检查脱敏 PDF 是否泄漏吗? 它可以读取文本、通过元数据服务器读取属性并渲染页面供你查看。但它无法判断你选择的模式是否正确。
元数据会在文本脱敏后保留吗? 会,除非你同时运行 erase_metadata。文本脱敏只改变文本内容,作者、公司和日期等属性是独立的。
深入了解
- 文档,权威操作指南: How to verify that a redaction is complete
- 文档中心: GroupDocs.Redaction MCP Server
- 入门指南: 3 ways to redact sensitive data with AI agents and MCP
- 相关: Enforce disclosure redaction policy with automated AI workflows using MCP
- 相关: Redacting scanned documents when there is no text to find
- 本地部署与安全模型: 3 architectures for AI document processing, and the one that keeps files inside your network
- 问答: GroupDocs Redaction forum
- 源代码: GroupDocs.Redaction.Mcp on GitHub