您可以在本地运行 GroupDocs.Metadata.Mcp 的 AI 代理,通过一次提示就删除元数据后再共享,但被剥离的文件并不自动等同于安全文件。提示如下:

从我的文档文件夹中的所有文件中剥除所有元数据,并告诉我您删除了哪些内容。

带有配置和故障排除的逐步版本请参见文档:在共享文档之前剥除元数据的方式

常见的错误做法是什么?

常见的做法是“剥离后直接发送”:执行一次删除,假设结果已干净,然后附上文件。这种做法会在三方面失效,且都不是 bug。每一种都是元数据删除意义的边界。

为什么原始文件仍然有风险?

remove_metadata 会从文档中删除元数据并将清理后的副本保存到存储中。它不会改写原始文件。原始文件仍然保留在磁盘上,若误附上错误的文件就会使整个操作失效。这类情况屡见不鲜:投标文件因邮件中附的是未清理的文件而在 Company 字段出现竞争对手名称。

解决办法在于流程:让代理为它生成的文件命名,并只发送该文件。

为什么 “没有元数据” 并不等同于 “没有隐藏内容”?

修订痕迹、批注、嵌入对象以及早期版本都位于文档正文中,而不是属性集合中。元数据工具无法删除非元数据的内容。对于批注和注释,文档指向 GroupDocs.Annotation.Mcp 服务器;对于内容层面的编辑则使用 GroupDocs.Redaction。元数据步骤应使用哪个服务器:Redaction 服务器的 erase_metadata 会清除已命名的文档属性字段(作者、标题、公司、关键字、日期等),而此服务器的 remove_metadata 按类别(gps、author、comments、company、dates、software、copyright、keywords、personal)剥离,并覆盖 EXIF、XMP 和 IPTC 包。有关隐藏文本和批注的处理,请参阅 使用 AI 代理对敏感数据进行 3 种编辑的方式

为什么未经授权的运行不可被信任?

在评估模式下,仅前 5 项文档属性可读写,且 XMP 与 EXIF 部分不可用。在评估模式下执行 “剥除全部” 的过程无法诚实地声称已删除所有内容,验证读取同样不完整:您只能确认一个被截断的列表。请先调用 get_license_status。在正式的预共享运行前,应用许可证文件或计量密钥,或使用免费 30 天临时许可证。

正确的做法:读取、剥离、验证?

使用循环,在每一步都调用工具,最后一步读取副本:

  1. 捕获。 对原始文件执行 read_metadata,记录其中的内容。
  2. 剥离。 remove_metadata 生成清理后的副本。若不指定 categories,它会删除所有可剥除的元数据,即文档属性、EXIF、XMP 与 IPTC 包等;结构上属于文档本身的内容不是元数据,仍会保留。若想保留标题和日期,可传入类别:gps、author、comments、company、dates、software、copyright、keywords 或 personal(覆盖人员、公司和位置的最佳集合)。
  3. 验证。 对清理后的文件执行 read_metadata,查看剩余内容。

第 3 步是人们常跳过的环节,它把 “我认为已经干净” 变成前后对比。可复用的提示如下:

在我从此文件夹发送任何内容之前:读取元数据,剥除它,验证副本是否干净,并为每个文件给出一行报告。

这相当于每个文件进行三次工具调用,并在最后生成一张表格,属于代理的常规工作,而人在截止日期前常会忘记这一步。

何时执行剥离:一次性还是每次?

将其视为检查点,而非清理项目。它防止的事故往往并不惊人:新闻稿的作者字段出现起草人姓名、合同的公司字段出现前雇主、现场照片附带坐标等。每一次都是普通文件在无人检查的情况下离开了文件夹。代理是理想的最后检查点,因为提问本身不耗资源。将此指令写入项目规则或复用的提示中,使读取、剥离和验证序列在每次处理出站文件夹时都自动运行,而不是仅在有人记起时才执行。

检查点仅在许可证状态已知的情况下有效。使用已授权或计量运行时,验证读取会看到完整的属性集合,且每个文件的一行报告可以作为可靠的声明。评估运行时,仅将报告视为工作流演练,不作其他用途。

示例会话(节选)

You:    Remove the author and company from tender-draft.pdf, keep title and dates, then verify.
Agent:  [calls read_metadata on tender-draft.pdf]            Author, Company, Title, dates found
Agent:  [calls remove_metadata: categories = author, company]  2 properties removed
Agent:  [calls read_metadata on the cleaned copy]            Title and dates remain; Author and Company absent
        Send the cleaned copy named in the remove step, not tender-draft.pdf.

此示例用于说明流程,并非实际截图。remove_metadata 会返回包含已删除属性数量的保存路径信息。

常见问题

我可以在发送 PDF 之前删除作者吗?
可以。让代理删除 author 类别,它会调用 remove_metadata 并保存清理后的副本。随后用第二次读取检查副本。

在将文档上传到 LLM 之前是否应删除元数据?
如果文档会离开您的机器,请先剥离一份副本,因为属性会随文件一起传输。使用 GroupDocs.Metadata.Mcp 时,剥离过程完全在本地完成。

剥离是否也会删除正文中的修订痕迹和批注?
不会。这些属于内容而非元数据。comments 类别指的是元数据中的批注属性,正文层面的批注和注释属于 Annotation 服务器,隐藏文本及其他内容层面的编辑则交由 Redaction 服务器处理。

深入了解