macOS 27 的 Apple Intelligence Report:查看你的 Mac 发送了什么数据
使用 macOS 27 的 Apple Intelligence Report,查看哪些 Siri AI 和 Writing Tools 请求被发送到了 Private Cloud Compute,学会读取其 JSON 并加以保护。
在 macOS 27 Golden Gate 中,Apple Intelligence 不再是可选项。无论你是否使用它,模型都会下载;Siri AI 已内置于 Spotlight;从你的 Mac 转交给 Apple 服务器处理的请求也比以往任何时候都多。对于「到底发送了什么」这个问题,Apple 的答案是大多数 Mac 用户从未打开过的一项功能:Apple Intelligence Report,它藏在「隐私与安全性」设置的最底部。它可以逐条展示你发送给 Private Cloud Compute 的文本以及收到的回复。但它也有一些怪癖,很容易导出一个空文件,很容易被误读,也很容易被泄露。本指南将说明如何开启它,让它真正记录一些内容;如何用 Mac 自带的工具读取它生成的 JSON;这份报告无法告诉你什么;以及为什么它最深的一层——加密证明(attestation)——其实是给安全研究人员看的,而不是给普通用户看的。
要点速览
- 该报告只记录 Private Cloud Compute 活动,且只有在你开启后才会记录。 在「系统设置」>「隐私与安全性」>「Apple Intelligence Report」中选择「最近 15 分钟」(默认值)或「最近 7 天」。Apple 提醒,如果自你更改时长设置以来没有发生任何 Private Cloud Compute 请求,报告可能是空的。
- 它包含你的真实文字内容。 根据 Howard Oakley 的分析,每条请求记录都包含完整的提示词(prompt)和模型的回复——例如你通过 Writing Tools 处理过的文本。请把导出的文件当作私人日记来对待。
- 它是一个 JSON 文件,可以用内置工具读取。 macOS 自带
jq;本指南中的几条命令可以把报告转换成一份易读的列表,展示哪个 App 在何时发送了什么,以及它是在设备上运行还是在云端运行。 - 它不是 Mac 上 AI 活动的完整日志。 Oakley 发现,设备端交互似乎只被记录在统一日志(unified log)中,而 Siri 对话则以文字记录的形式保存在全新的 Siri App 中。
- 证明数据(attestation data)是给研究人员看的。 报告的主体部分是为处理每条请求的服务器所生成的 Base64 编码证明包(attestation bundle)。Apple 的
pccvre工具可以解析它们,但需要在恢复模式下更改一项安全设置,而且 Oakley 认为,对普通用户来说,其结果「用处微乎其微」(precious little use)。
为什么这份报告在 macOS 27 上更重要
Apple Intelligence 把工作拆分到两个地方。简单任务在设备上运行,使用存储在你 Mac 上的模型。更大的任务则交给 Private Cloud Compute(PCC),也就是建立在 Apple 芯片之上的 Apple 服务器基础设施。Apple 针对 Mac 的隐私页面指出,「在 Private Cloud Compute 中处理的数据不会被存储,也不会向 Apple 开放访问。它仅用于完成你的请求,之后结果会被安全地返回到你的设备,且不会被保留」。
macOS 27 带来的三项变化,让这个承诺值得你亲自核实:
- 你再也无法完全关闭 Apple Intelligence。 正如 MacRumors 的报道所述,macOS 27 和 iOS 27 中移除了用于禁用它的开关。这一变化带来的存储成本,我们在 macOS 27 升级后占用 30 GB 磁盘空间一文中有详细说明。
- Siri AI 是一个全新的对话式客户端。 它已内置于 Spotlight,并拥有自己的 App。我们在 macOS 27 的 Siri AI 使用指南中介绍过如何使用它。更强的功能意味着更多请求会被发往 PCC。
- Home 也加入了列表。 Apple 的 macOS 27 发行说明写道,当 Home App 中的 Apple Intelligence 被启用时,「你的 HomeKit Secure Video 录像会在设备端以及通过 Private Cloud Compute 进行处理,以生成视频描述和支持搜索」(178858470)。同一份说明中还列出了一项针对 Home Intelligence 的 Apple Intelligence Report 记录问题的修复,即「部分发送到 Private Cloud Compute 的数据不会出现在报告中」(176056930)——这说明 Apple 本身也认为这类数据理应出现在报告里。
这份报告是唯一内置的、按请求记录发往 PCC 内容的记录。只要你在意隐私,就值得了解如何使用它。
Private Cloud Compute 承诺了什么,报告又能核实什么
要读懂这份报告,先弄清楚它究竟能帮你核实 Apple 的哪些承诺会更容易。2024 年 6 月 10 日,Apple 在其安全研究博客上发布 Private Cloud Compute 时,提出了五项核心要求:
| 要求 | Apple 的承诺 | 你的报告能帮你核实吗? |
|---|---|---|
| 对个人用户数据进行无状态计算 | 数据仅用于完成请求,不会被保留,也不会被 Apple 员工访问 | 否——这发生在服务器端 |
| 可强制执行的保障 | 保护措施通过技术手段强制执行,而不仅仅依赖政策 | 间接可以,通过证明(attestation) |
| 无特权运行时访问 | 不存在能让员工绕过隐私保护的接口,即便在发生事故时也不例外 | 否 |
| 不可定向性(Non-targetability) | 攻击者无法在不攻破整个系统的情况下单独定位某个用户的数据 | 部分可以——见下文关于中继的说明 |
| 可验证的透明度 | 研究人员可以核实实际运行的软件与 Apple 公开发布的内容是否一致 | 可以,通过证明包和 pccvre |
这套设计中的两个机制,解释了你在报告中会看到的大部分内容。
你的 Mac 会自行选择信任哪些服务器。 Apple 写道,设备只会将每条请求的负载密钥加密封装给「那些经过验证的度量值与公开透明度日志中某个软件发行版本相匹配的 PCC 节点的公钥」。换句话说,你的 Mac 会先对照一份公开、只能追加的软件发行版本列表,核实每个候选服务器的证明,然后才允许该服务器解密任何内容。privateCloudComputeRequests 中的证明包就是这一核实过程的证据,一条请求可以列出多个节点,因为密钥会被释放给每一个符合条件的节点。一条请求对应多条证明条目,并不意味着你的数据被处理了多份副本;它只意味着有多台服务器都有资格处理这条请求。
你的 IP 地址会对 Apple 隐藏。 根据同一篇文章,PCC 请求会经过一个「由第三方运营」的 OHTTP 中继,该中继「会在请求抵达 PCC 基础设施之前,隐藏设备的源 IP 地址」。这正是不可定向性要求的一部分。报告会显示请求本身以及处理它的节点,但不会显示中继——按照设计,中继本就在 Apple 的范围之外。
这份报告无法证明的是第一项和第三项承诺。服务器在回答之后是否真的丢弃了你的数据,取决于运行在其上的软件本身。证明只能告诉你,该软件与某个已公开发布的版本相匹配;而这个已发布版本是独立研究人员用 Apple 为搭载 Apple 芯片的 Mac 提供的虚拟研究环境(Virtual Research Environment)实际检查的对象。这种分工——你核实发送了什么,研究人员核实服务器运行了什么——才是理解这份报告的正确方式。
三个记录 AI 活动的地方
在开启任何设置之前,先了解一件事会有帮助:这份报告只是三种记录之一,每一种覆盖的范围都不同。Howard Oakley 于 9 月 22 日发布的详解文章对此做了梳理:
| 记录 | 覆盖内容 | 在哪里查看 |
|---|---|---|
| 统一日志(Unified log) | 设备端交互(似乎只有这里会记录) | Console App 或 log 命令;并非为日常阅读设计 |
| Siri App | Siri 对话的详细文字记录 | macOS 27 中全新的 Siri App |
| Apple Intelligence Report(AIR) | 由 Private Cloud Compute 处理的请求,包含提示词、回复和证明数据 | 系统设置 >「隐私与安全性」>「Apple Intelligence Report」 |
所以,如果你想知道「我对 Siri 说了什么」,打开 Siri App。如果想知道「哪些文本离开了我的 Mac,发送给了 Apple 的服务器」,答案就是这份报告。而如果想知道「设备端模型做了什么」,坦白说,目前并不存在一份友好易读的记录。
如何开启报告,让它真正记录内容
最常见的错误是导出报告后得到一个空文件。原因在于,报告只覆盖你选择的时间段,且从你做出选择的那一刻才开始计算。Apple 针对 macOS 27 的帮助页面写道:「如果自你更改时长以来没有发生任何 Private Cloud Compute 请求,报告可能是空的。」
按照以下顺序操作:
- 打开**「系统设置」,在侧边栏点击「隐私与安全性」**。
- 滚动到底部,点击**「Apple Intelligence Report」**。
- 选择报告时长:「最近 15 分钟」(默认值)或**「最近 7 天」。选择「关闭」**会停用报告。
- 现在照常使用 Apple Intelligence——用 Writing Tools 改写一段文字,向 Siri AI 提一个复杂问题,摘要一封长邮件。
- 返回同一个设置面板,点击**「导出活动」**。
- 选择保存位置并点击**「导出」**。文件名为
Apple_Intelligence_Report.json。
选择哪种时长,取决于你想了解什么:
- **「最近 15 分钟」**最适合做一次针对性测试。开启它,执行某一个具体操作,立即导出,你会得到一个较小、易读、且只包含你刚才那次操作的文件。
- **「最近 7 天」**最适合审计你的日常使用情况。设置好之后正常使用一周,再导出。预计会得到一个大得多的文件,其中大部分是证明数据。
Apple 的帮助页面建议用文本阅读器打开这个文件。这样做没问题,但这个文件本身并不是为肉眼阅读而设计的,这正是下一节的意义所在。
把导出的文件当作敏感数据处理
Oakley 对报告内容的解读很直白:报告中包含个人数据,例如「消息以及你在智能写作工具中输入的文字」。每条请求记录都包含完整的提示词(prompt)和模型的回复(response)。如果你曾用 Writing Tools 改写过一封私人邮件,那封邮件的文字就在这个文件里。
这意味着你需要这样对待它:
- 保存在私密的位置。 如果开启了「桌面与文稿」同步,你的桌面可能会同步到 iCloud Drive。考虑使用一个不参与同步的本地文件夹。
- 不要把它附加到支持请求中,也不要上传到在线 JSON 查看器。 如果你只想分享文件结构,请先移除提示词和回复(命令见下文)。
- 用完就删除。 把它移到「废纸篓」并清空。在时长范围内,报告可以随时再次导出。
- 记住时长设置是持久生效的。 如果你为了做一次审计把时长设为 7 天,事后要记得决定是保留这个设置还是改回去。
报告设置控制的是你的 Mac 会为你记录哪些内容供你查看。关闭它并不会阻止请求发往 PCC,它只是让 Mac 不再保留这些请求的列表。
JSON 内部是什么
这份报告有两个顶层部分。Oakley 的分析和 GitHub 上一个开源查看器的文档,在整体结构上是一致的:
modelRequests —— 每条发往模型的请求对应一个条目。每个条目包含以下字段:
| 字段 | 内容 |
|---|---|
timestamp | 请求发生的时间,以自 1970 年 1 月 1 日以来的秒数表示(含小数部分) |
identifier | 该请求的唯一 ID(一个 UUID) |
prompt | 发送给模型的完整文本 |
response | 模型的回复 |
model | 模型标识符,例如以 com.apple.fm.language.instruct_server_v2 开头的字符串 |
modelVersion | 模型版本 |
useCase | 该请求的用途 |
clientIdentifier | 发起请求的组件——对于 Writing Tools,Oakley 在 2024 年的分析中看到的是 com.apple.WritingTools.xpc.WritingToolsViewService |
executionEnvironment | 请求运行的位置:服务器端请求为 PrivateCloudCompute;Oakley 还提到 OnDevice 是另一个可能的值 |
privateCloudComputeRequests —— 由 PCC 处理的请求的元数据。Oakley 将其描述为大多数报告中「体量最大」的部分。其主要内容是经过 Base64 编码的证明包(attestation bundle)。每个证明包描述的是你的 Mac 愿意向其释放该请求加密密钥的一个 PCC 服务器节点。该 GitHub 查看器的文档还列出了诸如 requestId、nodeState、节点计数、attestationBundle、node、proxiedBy 和 assetHash 等字段,并将其中大多数视为不透明的技术值。
我们尚未能亲自导出一份 macOS 27 的报告——我们的测试 Mac 目前仍停留在 macOS Tahoe 26.5.2——因此上面的字段列表来自这两个信息来源,而非我们自己的文件。字段名称可能在不同系统版本之间发生变化。下一节的第一条命令会展示你自己的报告实际包含哪些内容;请以此为准,而不是这张表格。
用 jq 读取报告
macOS 自带 jq,一个命令行 JSON 处理工具。在我们的 Tahoe 测试 Mac 上,/usr/bin/jq --version 显示的是 jq-1.7.1-apple。如果你还通过 Homebrew 安装了 jq,两者对下面的命令都同样适用。
打开「终端」,cd 到你保存报告的文件夹,先从它的整体结构看起。
1. 查看报告包含哪些内容
jq 'keys' Apple_Intelligence_Report.json
jq '.modelRequests[0] | keys' Apple_Intelligence_Report.json
第一条命令列出顶层部分;你应该能看到 modelRequests 和 privateCloudComputeRequests。第二条命令列出第一条模型请求的字段。如果任一条命令报出关于 null 的错误,说明对应部分是空的——回去检查一下时长设置。
2. 统计请求数量
jq '{modelRequests: (.modelRequests | length), pccRequests: (.privateCloudComputeRequests | length)}' Apple_Intelligence_Report.json
对于只执行了几次 Writing Tools 操作的 15 分钟测试,两个数字都应该很小。该开源查看器的文档中展示的示例报告有 23 条模型请求和 18 条 PCC 请求。
3. 把每条请求列成时间线
jq -r '.modelRequests[] | [(.timestamp | floor | todate), .executionEnvironment, .clientIdentifier, .model] | @tsv' Apple_Intelligence_Report.json
这会逐行打印每条请求:时间(UTC)、运行位置、发起的组件、以及回答的模型。这是查看整体模式最快的方式。如果你想用本地时间,把 todate 替换成 strflocaltime("%Y-%m-%d %H:%M")。
4. 有多少在设备端运行,多少在云端运行
jq '[.modelRequests[].executionEnvironment] | group_by(.) | map({(.[0]): length}) | add' Apple_Intelligence_Report.json
结果是一个小对象,例如 {"PrivateCloudCompute": 12}。鉴于 Oakley 发现设备端交互似乎只被记录在统一日志中,如果报告里全部都是 PrivateCloudCompute,也不必感到意外。
5. 哪些 App 和组件发送了请求
jq -r '[.modelRequests[].clientIdentifier] | group_by(.) | map("\(length)\t\(.[0])") | .[]' Apple_Intelligence_Report.json
每一行是一个计数和一个客户端标识符。这可以回答诸如「Mail 是否把我的邮件发给 PCC 做摘要?」或「Writing Tools 使用服务器的频率有多高?」这类问题。
6. 读取被发送出去的文本内容
jq -r '.modelRequests[] | select(.executionEnvironment == "PrivateCloudCompute") | "\(.timestamp | floor | strflocaltime("%Y-%m-%d %H:%M")) \(.clientIdentifier)\n PROMPT: \((.prompt // "")[0:300])\n"' Apple_Intelligence_Report.json
这会打印每条发往 PCC 的提示词的前 300 个字符,连同它的时间和来源。这是查看报告最能说明问题的一种方式——也正是这份文件需要谨慎处理的原因。
7. 制作一份不含你文字内容的可分享副本
jq 'del(.modelRequests[].prompt, .modelRequests[].response)' Apple_Intelligence_Report.json > AIR-redacted.json
如果你想把报告的结构分享给开发者或论坛,就分享这个版本。它保留了时间戳、模型和运行环境,但移除了提示词和回复。分享前请检查一遍;如果未来版本的报告把文本放到了其他字段中,这条命令不会把它们一并移除。
逐字段解读单条记录
拿到时间线之后,挑一条记录完整读一遍。了解每个部分传达的信息会很有帮助:
model名称能告诉你任务的规模。 包含server字样的标识符——Oakley 举的例子包括com.apple.fm.language.instruct_server_v2,以及 2024 年的com.apple.fm.language.instruct_server_v1.text_summarizer——指的是服务器端模型。如果你原本预期在本地运行的某个请求显示的是服务器端模型,说明该功能这次使用了 PCC。clientIdentifier能告诉你是谁发起的请求。 它标明的是系统组件,而不一定是你当时使用的 App。Writing Tools 的请求都来自它自己的服务com.apple.WritingTools.xpc.WritingToolsViewService,无论你是在 Mail、Notes 还是第三方编辑器中调用它。所以如果你想知道自己当时用的是哪个 App,需要依靠时间戳和自己的记忆,而不是这个字段。useCase能告诉你这是哪类请求。 不同功能的取值各不相同;比较来自同一功能的多条记录,可以了解它们的样式。prompt能告诉你发送的范围有多大。 这里往往是最容易出现意外的地方。一次摘要请求可能包含的邮件线程内容比屏幕上显示的更多,一次改写也会包含整个选中内容,而不只是你当时想到的那一句。多读几条提示词,是校准每个功能实际发送了什么的最好方法。response是返回的内容。 它应该和你在屏幕上看到的一致。如果某条记录存在回复,但你从未见过这个结果——比如因为你取消了操作——说明这条请求仍然到达了服务器。
iPhone 和 iPad 上的同款报告
Apple 在 iPhone 和 iPad 上也提供同样的报告,位于「设置」>「隐私与安全性」>「Apple Intelligence Report」,这些设备的帮助页面对它的描述也是一致的。记录是按设备分开的:在你的 Mac 上导出的报告只会显示这台 Mac 发出的请求。如果你想全面审计自己使用 Apple Intelligence 的情况,需要在每台设备上分别导出同一时间段的报告。
我们用记录在案的字段名称构建了一个小样本文件,并使用 macOS 自带的 jq 测试了本节中的每一条命令。在真实报告中,证明部分会让文件变得很大,在文本编辑器里打开会很慢;而 jq 命令只读取你请求的那部分内容,不会有这个问题。

四种常见的误读
第一次打开报告的人往往会得出相同的错误结论。请避免以下几种:
- 「两个部分的条目数量应该一致。」 并不需要一致。
modelRequests列出的是发往模型的请求;privateCloudComputeRequests保存的是 PCC 元数据,主要是证明信息。该 GitHub 查看器文档中的示例报告有 23 条前者和 18 条后者。应按时间来匹配条目,而不是期望一一对应。 - 「证明条目越多,说明我的数据被发到了越多服务器。」 如前所述,你的 Mac 会把某条请求的密钥释放给每一个证明与已发布版本相匹配的节点。多条证明只说明有多个节点符合条件,而不是这条请求被处理了多份副本。
- 「模型名称能告诉我使用的是哪个产品。」 模型标识符描述的是 Apple 内部的模型和适配器,同一个模型可以服务于多个功能。要弄清楚自己当时在做什么,应使用
clientIdentifier和时间戳。 - 「报告里什么都没有,就说明什么都没离开我的 Mac。」 在你更改时长设置之后报告为空,只说明此后没有发生 PCC 请求。它无法说明更改之前那段时期的情况,也不包含 ChatGPT 等第三方服务。
这份报告无法告诉你什么
这份报告之所以有价值,正是因为它足够具体,但它的局限性同样具体:
- 设备端活动基本缺失。 按照 Oakley 的解读,设备端交互似乎只出现在统一日志中。这份报告并不是 Apple Intelligence 在你 Mac 上所做一切的完整记录。
- Siri 对话记录在别处。 Siri App 保留了你对话的文字记录;要回顾你对 Siri 说过什么,应该查看那里,而不是这份报告。
- 它显示的是发送了什么,而不是服务器上发生了什么。 这份报告能证明你的 Mac 向其证明被接受的服务器发送了请求。它无法显示这些服务器如何处理这些数据;那是 Apple 公开的安全设计和独立研究要解决的问题。
- 覆盖范围取决于该功能是否被正确接入。 macOS 27 发行说明中针对 Home Intelligence 记录缺失于报告的这项修复(176056930)说明,至少在预发布版本中,某些功能可能无法正常出现在报告里。
- 第三方 AI 不在其覆盖范围内。 这份报告只覆盖 Apple Intelligence 和 Private Cloud Compute。当你选择通过集成把内容发送给 ChatGPT 时,该请求受 OpenAI 的条款约束。我们在 ChatGPT Messages 插件与完全磁盘访问权限一文中探讨过 Mac 上 ChatGPT 的隐私问题。
深入探讨:证明与 pccvre
证明包是让 Private Cloud Compute 不仅仅停留在承诺层面的关键部分。Apple 在其安全研究博客中描述的设计是:你的设备只会把请求发送给能够以密码学方式证明自己正在运行 Apple 已公开供检查的软件的 PCC 节点。你报告中的证明包,就是这些证明的凭据。
Apple 提供了一个用于解析它们的工具。Oakley 在 9 月 24 日的后续文章中引用了 Apple 的说法:「你可以使用 pccvre 的 attestation 子命令,对来自 Apple Intelligence Report 的证明包进行解析、规范化和验证。」这个工具位于:
ls -l /System/Library/SecurityResearch/usr/bin/pccvre
在我们的 Tahoe 26.5.2 Mac 上它已经存在。但运行它在一台普通 Mac 上并不会有太大进展。在我们的机器上,pccvre --help 和 pccvre attestation --help 都立刻停止运行,并给出以下信息:
allow-research-guests is currently disabled; Please go to recovery and run 'csrutil allow-research-guests enable'
这就是限制所在。要使用 pccvre,你必须启动进入「恢复模式」,并更改一项系统完整性保护选项:
csrutil allow-research-guests enable
你可以在正常会话中用以下命令查看当前状态:
csrutil allow-research-guests status
在我们的 Mac 上,该命令报告 Allow Research Guests status: disabled,同时 csrutil status 显示 System Integrity Protection status: enabled。Oakley 指出,Apple 警告启用研究访问权限「可能会暴露额外的攻击面」。他是在一台安全设置被更改过的 macOS 27 虚拟机中完成这项工作的,而不是在自己的主力 Mac 上;他通过运行 sudo pccvre --help 同意了相关许可提示,并用如下形式的命令解析了一个证明包:
pccvre attestation parse [--debug] [--input-format <input-format>] \
[--request-index <request-index>] [--attestation-index <attestation-index>] \
[--bundle-version <bundle-version>] [--output-format <output-format>] \
[--output <output>] <file>
他的结论值得完整引用:单个证明包的 JSON 输出达到 53 KB,其中只有少量可辨识的、关于交易安全性的词语,「其余绝大部分都是 Base64 编码的数据,并非供人阅读,而是给安全研究人员看的」。他写道,就目前的形态而言,AIR「对我们来说用处微乎其微」(precious little use)。
由此我们得出的建议是:不要为了阅读自己的报告,就在日常使用的 Mac 上启用研究访问权限(research guests)。 提示词和回复文本——也就是你真正能读懂的部分——用 jq 就能读取,完全不需要更改任何安全设置。把证明验证工作留给在虚拟机中工作的研究人员,这正是 Apple 的 Virtual Research Environment 存在的意义。
二十分钟完成一次实用的隐私审计
如果你想知道自己日常使用 Apple Intelligence 时都发送了什么内容给 Apple,这里有一套专注的流程:
- 把报告时长设为「最近 15 分钟」。 这样能得到一个干净的时间窗口。
- 一次只做一件事。 用 Writing Tools 改写一段文字。向 Siri AI 提一个需要用到你个人上下文的问题。在 Mail 中摘要一段长邮件线程。如果你使用 Home Intelligence,试一次搜索。
- 每完成一个操作就导出一次,并运行 jq 一节中的第 3 条命令。你就能逐个操作地看到,每一次是否到达了 PCC,以及是哪个组件发送的。
- 用第 6 条命令读取提示词内容。 检查发送到服务器的文本是否比你预期的更多——比如说,一次摘要发送的其实是整个邮件线程,而不只是可见的那条消息。
- 决定要做出什么改变。 如果某个功能发送的内容超出了你的接受范围,就对敏感材料停止使用该功能。在 macOS 27 上你无法整体关闭 Apple Intelligence,但你可以选择不在机密文档上调用 Writing Tools。
- 删除导出的文件,并把时长设置调整为你希望保留的状态。
这也是在工作中平息「某个功能到底是不是『设备端』运行」这类争论的好办法。报告显示什么就是什么,没人需要靠猜测。
给管理员的建议
管理 Mac 设备的组织面临的是一个略有不同的问题:不是「我发送了什么」,而是「我们的用户可能发送什么」。这份报告是一个按用户、按 Mac 提供的工具,因此它不是一种面向整个设备群的审计机制,但在你制定策略时,它是一个有用的验证步骤:
- 用它来验证策略决策。 在通过 MDM 允许或限制某项功能之前,先在一台带有代表性数据的测试 Mac 上运行上文的二十分钟审计,看看哪些组件会访问 PCC。
- 记住存储成本现在是固定的。 由于 macOS 27 上的 Apple Intelligence 无法再被完全禁用,每台 Mac 都会下载这些模型。请参照我们的 macOS 27 存储指南提前规划。
- 把导出的报告当作用户数据来对待。 如果你要求用户为某项调查导出报告,其中会包含他们的文字内容。请按处理邮件内容同样的规则来处理它。
关于影响受管理设备群的更广泛的 macOS 27 变化,请参阅我们的 macOS 27 管理员检查清单。

常见问题排查
导出的报告是空的
问题:Apple_Intelligence_Report.json 不包含任何请求,或者 jq 报出 null 部分。
解决方法:报告只覆盖你上次更改时长设置之后发生的 PCC 请求。设置好时长后,使用一个真正会访问 PCC 的功能(对一段较长文字执行一次 Writing Tools 改写是个可靠的测试),然后再次导出。如果你只使用了设备端功能,空报告就是预期结果。
我在「隐私与安全性」中找不到 Apple Intelligence Report
问题:列表中没有这一项。
解决方法:它位于「隐私与安全性」面板的最底部,权限列表下方;请向下滚动。它只出现在支持 Apple Intelligence 的 Mac 上。如果你的 Mac 上 Apple Intelligence 本身就不可用,请参阅 Apple Intelligence 不可用或呈灰色的解决方法。
jq 提示「Cannot iterate over null」
问题:某条命令运行到一半失败。
解决方法:命令预期存在的那个部分在你的报告中并不存在,或者某些条目缺少某个字段。运行 jq 'keys' 和 jq '.modelRequests[0] | keys' 查看真实结构,然后调整字段名称。在字段后加上 // empty——例如 .prompt // empty——可以跳过缺失的值,而不是导致失败。
时间戳看起来不对
问题:时间相差好几个小时。
解决方法:todate 打印的是 UTC 时间。改用 strflocaltime("%Y-%m-%d %H:%M") 可以得到你的本地时区时间。原始值是自 1970 年 1 月 1 日以来的秒数,含小数部分,因此需要先用 floor 取整。
文件太大,打不开
问题:一份七天期的报告有好几 MB,会让文本编辑器卡死。
解决方法:那是证明数据造成的。不要用编辑器打开它;改用 jq 命令,它只会读取你所请求的那部分内容。第 7 条命令可以生成一份不含提示词和回复、体积小得多的副本。
pccvre 提示 research guests 已被禁用
问题:任何 pccvre 命令都会停止,并显示「allow-research-guests is currently disabled」的信息。
解决方法:这是设计使然。启用它需要进入恢复模式,并削弱一项安全边界。如果你是安全研究人员,请像 Oakley 那样在虚拟机中操作。否则,跳过证明这一层即可;阅读你的提示词和回复并不需要它。
常见问题
macOS 上的 Apple Intelligence Report 是什么?
它是由 Private Cloud Compute 处理的 Apple Intelligence 请求记录,位于「系统设置」>「隐私与安全性」中。你可以选择 15 分钟或 7 天的时长,然后将其导出为 Apple_Intelligence_Report.json。
为什么我的 Apple Intelligence Report 是空的?
它只包含你更改时长设置之后发生的 Private Cloud Compute 请求。请先设置时长,使用一个会访问云端的功能,例如对较长段落使用 Writing Tools,然后再导出。
报告是否包含我的真实文字内容?
是的。每条请求记录都包含发送给模型的提示词以及模型的回复。请对导出的文件保密,不要上传到在线查看器,并在用完后删除。可以使用 jq 的脱敏命令来安全地分享其结构。
关闭报告能阻止数据发送到 Apple 的服务器吗?
不能。这项设置只控制你的 Mac 是否保留 Private Cloud Compute 请求的记录供你查看。只要某个功能需要,请求仍然会发送到 Private Cloud Compute。
我能看到设备端模型做了什么吗?
没有直观的方式。根据 Howard Oakley 的分析,设备端交互似乎只被记录在统一日志中。Siri 对话则以文字记录的形式保存在 Siri App 中。
报告中的证明包(attestation bundle)是什么?
它们是密码学证据,描述了你的 Mac 同意向其发送每条请求的 Private Cloud Compute 服务器。Apple 的 pccvre 工具可以解析它们,但需要在恢复模式下启用 research guests,其输出是面向安全研究人员的。
使用第三方查看器来查看这份报告安全吗?
只有那种完全在本地运行、且代码可供检查的查看器才安全。GitHub 上的这个开源查看器声称不会发出任何网络请求。即便如此,最安全的做法仍然是在自己的 Mac 上使用 jq,不需要任何额外软件。
结语
Apple Intelligence Report 是 macOS 27 目前能提供的、最接近「AI 使用回执」的东西。它并不会告诉你一切——设备端活动和 Siri 对话记录在别处,证明层是写给研究人员看的——但它确实会以明文形式,展示哪些内容离开了你的 Mac、发往了 Private Cloud Compute,以及返回了什么。测试之前先开启它,及时导出,用 jq 而不是文本编辑器来阅读,并把这个文件当作私人数据对待。既然 Apple Intelligence 现在已经无法被关闭,知道如何检查它就是次优的应对之道。
相关阅读:如何在 Mac 上使用 Siri AI · macOS 27 Siri AI 等待名单 · macOS 27 升级后占用 30 GB 磁盘空间
