港行 Mac mini 和 MacBook Air 更新 macOS 27 后装好了 Apple Foundation Model 那个 3B 模型,但是无法对话。修好之后 Xcode 27 RC 又无法与 Apple Foundation Model 交互。探查问题后写个备忘。
TL;DR
结论
- 故障直接原因为 Apple 服务端限流(
PrivateCloudComputeError Code=32033)。 - 限流由 OHTTP IP 泄漏引发——
waitlist.issuer.apple.com与inference.issuer.apple.com命中 Surge 默认直连规则(DIRECT),直接暴露中国 IP,然后被标记CN-GMT+8地区码,并中断了与 Apple Private Cloud Compute 的握手(private_relay_origin_incomplete_handshake)。 - Surge 配置文件补全了 8 条缺失的 PCC 盲签名与 OHTTP 中继域名,我的 Surge 专用
Siri AI策略组从日本/香港节点切换到了美国节点。 - Siri「无法处理」连接 Xcode,因其无法调用 Xcode 外挂的 App Action Intent(模型组件交互)。Xcode 27 RC 未注册对应 App Intent(
AttributionViewHelper: no provider matched)。Xcode 代码补全、AI 功能走独立的端侧专用模型,与外部 Siri AI App 解耦。 - Apple Foundation Model 呈现「数据本地 ↔ 控制联网」的特性。上下文与推理留在本地,本地抓包未见提示词联网;但可用性受云端风控约束,存在限额与缓存调用上限。约 3B 参数配合量化和动态 LoRA 加载调度,实现了极低的系统负载与快速响应。
- 最主要的探查工具:Surge-cli、SkyBlue997/enableMacosAI
Surge 最终路由
DOMAIN-SUFFIX,issuer.apple.com,"Siri AI",extended-matching
DOMAIN,mask-api.icloud.com,"Siri AI",extended-matching
DOMAIN,mask-h2.icloud.com,"Siri AI",extended-matching
DOMAIN,mask.apple-dns.net,"Siri AI",extended-matching
DOMAIN,mask-api.fe.apple-dns.net,"Siri AI",extended-matching
DOMAIN-SUFFIX,apple-relay.cloudflare.com,"Siri AI",extended-matching
DOMAIN-SUFFIX,apple-relay.fastly-edge.com,"Siri AI",extended-matching
DOMAIN-SUFFIX,apple-relay.apple.com,"Siri AI",extended-matching
如果你只是找一个答案,看到此处可以结束了。
甚至可以把 TL;DR 直接贴给 Agent,让它帮你完成。
引用

Apple Private Cloud Compute(下文的 PCC)
“Private Cloud Compute enforces verifiable transparency. The client device validates the cryptographically attested hardware and software state of the PCC node before transmitting any user data.”
来源:Apple Security Research: Private Cloud Compute,Architecture Overview。
SkyBlue997/enableMacosAI 诊断
“32001/32033: RATE_LIMITED(Apple 服务端限流)… 停止重复点击,等 RetryAfter 指定时间;不要删除证明库。”
来源:SkyBlue997/enableMacosAI,pcc-diagnose.sh。
Surge extended-matching 规则
“
来源:Surge · Domain Rules,extended-matching:除请求主机名外,同时匹配 TLS SNI 与 HTTP Host /:authority,用于客户端直接连接 IP 等情况下补充域名识别,降低漏匹配。”extended-matching。
系统一手 log
2026-09-14 20:47:08.212 networkserviceproxy: sent RTC report {
eventType = Mosaic;
"label_privacy-proxy-ohttp-relay" = "https://apple-relay.fastly-edge.com:443/apple?targetHost=ropes.apple.com&targetPath=/prod";
"label_privacy-proxy-report-reason-code" = 3019;
"label_privacy-proxy-report-reason-description" = "private_relay_origin_incomplete_handshake";
"label_privacy-proxy-report-region" = "CN-GMT+8";
name = "privacy_proxy_ohttp_failure";
type = counter;
}
2026-09-14 20:47:08.211 privatecloudcomputed: sendRopesRequest pccError=Error Domain=PrivateCloudComputeError Code=32033
排查过程
Apple Intelligence 使用资格
Mac mini、MacBook Air 运行 macOS 27.0 RC (Build 26A428)。港行电脑原生支持 Apple Intelligence,无需内核伪装驱动(即关 SIP、改 kext)。
系统配置文件读取结果:
defaults read -g AppleLanguages返回首选语言en-US。OS_ELIGIBILITY_DOMAIN_SIRI_MODE状态值为4(可用)。OS_ELIGIBILITY_DOMAIN_GREYMATTER状态值为4(可用)。nvram boot-args空,没有包含破坏 AMFI 完整性的调试参数。- 端侧模型资产安装完成
/System/Library/AssetsV2/com_apple_MobileAsset_UAF_FM_GenerativeModels。
手里的台式机和笔记本都具备完整的使用资格与离线推理条件。故障是 Apple 的 IP 区域限制。
日志探查
执行 /usr/bin/log show 过滤进程 privatecloudcomputed、networkserviceproxy 与 generativeexperiencesd。
日志看到三项连续报告:
networkserviceproxy发起 OHTTP 盲签 Token 获取请求Requesting 51 tokens from waitlist.issuer.apple.comRequesting 51 tokens from inference.issuer.apple.com- 握手失败
Network.NWError Code=-9816 UserInfo={NSDescription=<private>}
错误码对应 TLS 连接非正常中断。 - 苹果中继域名
apple-relay.fastly-edge.com针对目标源站ropes.apple.com返回private_relay_origin_incomplete_handshake,请求被记录来自CN-GMT+8地区。
Surge 路由命中审计
执行 surge-cli rule match 测试匹配规则:
surge-cli rule match inference.issuer.apple.com
# 返回: DOMAIN-SUFFIX,apple.com,"苹果服务" -> Policy: DIRECT
surge-cli rule match waitlist.issuer.apple.com
# 返回: DOMAIN-SUFFIX,apple.com,"苹果服务" -> Policy: DIRECT
surge-cli rule match mask-api.icloud.com
# 返回: RULE-SET iCloud.list,"iCloud" -> Policy: DIRECT
鉴权域名全部直连。设备暴露了中国 IP,Apple 服务端被地域拦截。
策略组选中状态核验
执行 surge-cli policy-group get "Siri AI"。
输出显示组内选中策略为当前我的美国节点。
修复实施
规则补齐
编辑 Surge 配置文件。在 Siri AI 规则块追加 8 条域名规则。其中 extended-matching 扩展匹配会额外检查连接中的域名线索,提升规则命中率,避免只按初始目标判断而出现漏匹配,对 Apple 系统一些隐晦的网络请求很有用:
DOMAIN-SUFFIX,issuer.apple.com,"Siri AI",extended-matching
DOMAIN,mask-api.icloud.com,"Siri AI",extended-matching
DOMAIN,mask-h2.icloud.com,"Siri AI",extended-matching
DOMAIN,mask.apple-dns.net,"Siri AI",extended-matching
DOMAIN,mask-api.fe.apple-dns.net,"Siri AI",extended-matching
DOMAIN-SUFFIX,apple-relay.cloudflare.com,"Siri AI",extended-matching
DOMAIN-SUFFIX,apple-relay.fastly-edge.com,"Siri AI",extended-matching
DOMAIN-SUFFIX,apple-relay.apple.com,"Siri AI",extended-matching
路由策略绑定
执行 CLI 命令重载配置并锁定策略:
surge-cli reload
surge-cli policy-group set "Siri AI" "Proxy"
surge-cli flush dns
复核规则命中:
surge-cli rule match inference.issuer.apple.com
# 返回: DOMAIN-SUFFIX,issuer.apple.com,"Siri AI" -> Policy: Proxy
surge-cli rule match mask-api.icloud.com
# 返回: DOMAIN,mask-api.icloud.com,"Siri AI" -> Policy: Proxy
所有 PCC 鉴权、签名、中继流量测试后全走束至美国家宽节点。
进程清理
执行进程重置,清空挂起的连接:
killall -9 networkserviceproxy
killall -9 privatecloudcomputed
让 Agent 查数据库 attestationstore_v3/db.sqlite,维持原样。证明 pool 保留已有节点,避免后续请求产生重启后超时。
机制说明
Private Cloud Compute 依靠双层隔离保障隐私(*下图由 Agent 辅助生成):
- 盲签 Token:客户端借助 RSA Blind Signatures 向
issuer.apple.com申领 Token。Token 鉴权的服务仅校验客户端订阅资格,不接触请求正文。发牌端点若走中国 IP 直连,Apple 会直接拒绝发放有效 Token。 - OHTTP 中继:客户端将计算请求使用 PCC 公钥加密,发往 CDN(Fastly / Cloudflare)。CDN 可以获知客户端 IP,但无法解密内容。
- PCC 服务器:服务器
ropes.apple.com接收来自中继转发的密文拿到数据包,但无法获知客户端真实 IP。 - 服务器限流:连续失败会触发服务端限流,返回
Code=32033。限流由服务端维护,客户端需等数分钟,反复重试会延长限流周期。
Xcode 27 RC 意图异常与代码智能排查
现象
系统基础模型修复后,对 Siri 说「连接 Xcode 探查代码」,回答「无法处理」。此时其他聊天均能正常响应。
通过 /usr/bin/log show 过滤 assistantd 进程,抓到问题:
2026-09-14 21:08:42 assistantd: AttributionViewHelper: no provider matched, all providers returned supportsAttribution=false providerCount=2
2026-09-14 21:08:42 assistantd: ResponseFactory: No AceViews were created. Returning SAUIAddViews with empty views array.
意图分流与接口缺失
NLRouter(自然语言路由器)识别到应用操作意图,将「连接 Xcode」判定为 App Action Intent(应用控制动作),而不是发往通用文本聊天问答或 ChatGPT。
系统随即在 App Intents 注册表中寻找能承接该动作的 Provider:
- 检查 Xcode 27 RC 内部结构,仅发现编译期组件
IDEIntentBuilderEditor.ideplugin,没有为外部 SiriKit 或 App Intents 框架注册任何运行时控制接口。 - 匹配结果为
no provider matched。Siri 找不到对应动作的执行方,触发无响应兜底逻辑,返回「无法处理」(能被 Siri 为了普通用户的「UX」的简短状态回吐气死,还以为网络又有问题)。
独立代码模型与组件安装
Xcode 的代码智能并不通过系统的 Siri 联动(Siri 语音、Finder、Spotlight、Siri AI 聊天 App),二者在系统内完全解耦。
读取本机 Xcode 偏好设置:
defaults read com.apple.dt.Xcode DVTTextEnablePredictiveCompletion
# 返回: 0
defaults read com.apple.dt.Xcode IDE_CA_Daily_LanguageModel
# 返回: "enabled,notInstalled"
配置显示 IDE_CA_Daily_LanguageModel 状态为 enabled,notInstalled,Predictive Code Completion(预测代码补全)组件处于关闭状态(0)。
Xcode 依赖应用内独立的 Predictive Code Completion Model(预测代码补全模型,约 2.5 GB),完全运行于编辑器内部,写代码时通过 Tab 键触发。如果发现 Xcode 没有任何补全提示,需要进入应用手动下载模型:

路径为 Xcode → Settings → Components → Predictive Code Completion。下载完成后,代码预测补全才会开始工作。
Apple Foundation Model 与苹果智慧的体感

排查完整个网络与进程后,对常驻在 macOS 里的这个 Apple Foundation Model(AFM)的 3B 小模型有一个大概的体感。在桌面操作系统里塞进一个不影响日常续航的常驻智能体,这种软硬件结合的架构设计算得上克制和高效。
开源社区部署端侧小模型时,7B 模型常驻显存往往吃掉 6 GB 以上。
AFM 有 3B 参数,量化到 4-bit 以下后,常驻内存压在 2.6 GB 到 3.2 GB 之间。它的运行非常高效:基础端侧模型只有一套,遇到文本摘要或应用意图路由时,动态加载几十 MB 的轻量 LoRA 模块。计算的 Graph 直接跑在果硅的神经引擎上,推理时不抢占 CPU 和 GPU,能效比非常高,基本感觉不到运行时的系统占用和发热。
但这个模型不能等同于 llama.cpp 或 Ollama 那类完全离线的开源模型——还是在某种程度上为了合规进行联网的意图嗅探。
计算与上下文确实留在了本地芯片,但使用权限被云的权限审计绑住。CloudSubscriptionFeatures 维持单日 2000 次的调用限额与到期时间戳(feature id: cloud.llm.v2, limit: 2000, limitUnits: PER_DAY)。generativeexperiencesd 定期发起服务可用性探测(Making server availability check),本地缓存窗口仅维持约数百秒。FeatureAccessAgent 逐项向苹果服务端同步权限状态,networkserviceproxy 在后台预取 OHTTP 盲签 Token,modelcatalogd 获取模型资产集时也需要服务端完成一致性比对(set-lock)。
本地探查确认,用户输入与模型生成的数据不上传云端,隐私层面没有泄漏提示词。但这套能力的使用权属于受控租约。一旦网络节点触发风控或设备合规状态被撤回,端侧推理就会中断。它不是一个「完全隐私」的、归用户所有的独立本地模型。
原始日志证据清单
Verbatim Log Records
# Siri 意图分流与 Xcode Provider 缺失现场
assistantd: AttributionViewHelper: no provider matched, all providers returned supportsAttribution=false providerCount=2
assistantd: ResponseFactory: No AceViews were created. Returning SAUIAddViews with empty views array.
# Xcode 本地代码预测模型状态读取
defaults read com.apple.dt.Xcode DVTTextEnablePredictiveCompletion -> 0
defaults read com.apple.dt.Xcode IDE_CA_Daily_LanguageModel -> enabled,notInstalled
# 配额与 TTL 租约
networkserviceproxy: [com.apple.CloudSubscriptionFeatures:client] <CloudFeature: 0x74e6c9c300> feature id: cloud.llm.v2, canUse: true, limit: 2000, limitUnits: PER_DAY, accessToken: pVqVl0M1, ttl: 1789390545.0
# 服务端可用性周期探测与 600 秒缓存
generativeexperiencesd: [com.apple.CloudSubscriptionFeatures:objc] +[CSFAvailability currentAvailabilityWithCompletionHandler:]_block_invoke Making server availability check.
generativeexperiencesd: [com.apple.CloudSubscriptionFeatures:daemon.cache] expiration: 2026-09-14 12:55:45 +0000 time until expiry: 600.784319
# 细粒度功能权限探针
FeatureAccessAgent: Fetching feature ai.apps.image-playground ignoreCache false allowStale false
# 后台预取 OHTTP 盲签名令牌
networkserviceproxy: +[NSPCoreData triggerProactiveTokenFetch:lowerTokenCountThreshold:] called with null tokenStatsArray
networkserviceproxy: activated 23 tokens for Fastly_OHTTP_Relay
# 动态模型一致性加锁
modelcatalogd: [com.apple.ModelCatalog:Daemon] acquireCoherenceToken: sets requested: <private>
modelcatalogd: [com.apple.ModelCatalog:Daemon] successful set-lock
