
前几天,MacRumors 分析师 Aaron 在推特上发了一条消息,把整个科技圈都逗乐了:Apple 在最新版的 Apple Support App(v5.13)里,居然把几个叫 CLAUDE.md 的文件打包进去了。这些文件不是普通文档,而是专门写给 Claude AI 看的内部开发指南。
更搞笑的是,Aaron 发帖没多久,Apple 就火速推了个紧急更新 v5.13.1,把这些文件全删了。感觉 Cupertino 那边有人一晚上没睡好。
泄露的文件到底写了啥?


我把其中最关键的 CLAUDE.md 内容整理了出来(另一个是关于共享 UI 组件库的,这里重点说聊天模块)。
文件标题直接点题:Chat - Conversational Support (Juno AI + Live Agents)
里面详细记录了这个聊天系统的技术实现:
- 实时消息用 AsyncStream 处理,而不是 App 其他地方常用的 Combine。每次访问都会新建 Stream,旧的就结束。
- 服务提供者用 Actor 来保证线程安全,支持并发消息处理。
- 设计了一个多后端协议
ChatViewModelServiceProvider,可以无缝切换三种模式:Juno AI(Apple 自家的对话助手)、真人 Apple 支持(ChatKit)、还有开发用的 Mock。ViewModel 层完全不知道当前用的是哪个后端。 - 大量条件编译:
#if JUNO_ENABLED、#if canImport(CCChatKit)、#if DEV_BUILD等等,有些文件还层层嵌套。 - 消息参与者分成三种角色:.client(用户)、.agent(真人支持)、.assistant(AI),按角色路由处理。
- 消息用
MessageGroup(带 UUID 的容器)包装,避免 SwiftUI ID 冲突(还特意提了内部 rdar 问题单)。 - 老的 CCChatKit 是回调式的,用 Task 包装桥接到 async/await。
- 会话持久化用 Keychain 保存 ChatInfo(方便重连),聊天记录临时缓存在 CachesDirectory 里。
https://x.com/aaronp613/status/2049986504617820551
https://news.ycombinator.com/item?id=47973378
原创文章,更多AI科技内容,微信搜索橙市 播客小程序
微信扫描下方的二维码阅读更多精彩内容

声明:本站所有文章,如无特殊说明或标注,均为橙市播客原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。如果你是AI总结,务必加上此版权说明