2026 年 6 月的 WWDC26 把 Siri AI 定义成「全新一代 Siri」:它能读屏幕、搜个人上下文、跨 App 办事,也能去网上补世界知识。到 9 月,iOS 27 进入正式发布窗口,开发者已经能在 beta 里测 App Intents 和 App Schemas。很多团队仍把这件事理解成「Siri 更会聊天了」。真正变的是入口——用户可以不点开你的图标,也能让系统级 Agent 找到你的对象、执行你的动作。没接这一层,App 在 Siri、Spotlight 和跨 App 工作流里会变成看不见的孤岛。本文不复述 WWDC 片单,只回答一个排期问题:第三方 App 现在该接什么、先接哪一层、怎么验收。
为什么 iOS 27 才真正改变 App 开发
旧方式和新方式的冲突很具体。旧方式是 UI 优先:用户打开 App,点按钮,走完你设计的导航。新方式是 Intent 优先:用户对系统说话或点 Spotlight 结果,Siri AI 选中你的 AppEntity 和 App Intent,必要时再打开界面。Shortcuts 短语、有限的 SiriKit 域、以及「先唤醒再打开」的旧路径还在,但已经不够。Siri AI 要的是系统已经认识的类别——日历事件、消息、媒体、导航会话——而不是你自己发明的唤醒词表。
这件事现在才变成排期优先级,有三个原因。第一,Apple Intelligence 的下一代架构把「读屏幕、搜个人上下文、跨 App 办事」收成同一条 Agent 链路,第三方不再只是锦上添花的 Shortcuts 动作。第二,WWDC26 把 App Schemas、IndexedEntity、IntentValueQuery、Interaction Donation 和 OwnershipProvidingEntity 连成可测试的接入面,不再是概念片。第三,2026 年 9 月用户侧仍按语言和地区分阶段开放:英文会先进入 beta;欧盟的 iOS / iPadOS 初期不可用,Mac / Watch / Vision Pro 在支持语言下可用;中国大陆仍在走监管。开发可以先做,上线文案必须按地区拆开,不能写成「全球用户打开 iOS 27 就能喊你的 App」。
设备门槛也要写进验收:Siri AI 和 Apple Intelligence 落在 iPhone 16 及更新机型、iPhone 15 Pro / Pro Max,以及 M1 及更新的 iPad 和 Mac 等组合上。团队如果还在用旧设备做「能不能喊到 Siri」的演示,测到的是能力缺口,不是产品失败。Xcode、模拟器和真机回归仍然绑在 macOS 上;团队打包机怎么选,见 Xcode Cloud 与远程 Mac 对比。
Siri AI、App Intents、AI Agent 怎么分层
把三个词摊平并列,排期一定乱。按系统实际调用顺序分成四层,缺一层就只剩演示。
| 层 | 你交付什么 | 系统拿它做什么 | 缺了会怎样 |
|---|---|---|---|
| 实体 | AppEntity:这是什么、如何标识、哪些属性可展示 | 理解对象类别,做选择、确认和结果卡片 | Siri 只能打开 App,说不清「哪一条」 |
| 动作 | 对齐 App Schema 的 AppIntent,按域分组 | 用自然语言选中可执行动作,处理澄清 | 只有自定义短语,跨 App 工作流接不上 |
| 发现 | IndexedEntity / Spotlight,或 IntentValueQuery | 按语义或结构化条件找到对象 | 用户必须精确说出内部 ID 或先打开 App |
| 上下文与信任 | 上屏感知、Interaction Donation、OwnershipProvidingEntity | 接着屏幕上的对象做,并在副作用前确认 | Agent 要么瞎猜,要么对共享数据误操作 |
Siri AI 是系统 Agent:它负责语言、澄清、确认,以及要不要跳出 App 去网上补知识。你的 App 不是再训练一个私有 Siri,而是成为这个 Agent 的工具面。这和云端模型里的 Function Calling 同构——模型选工具,运行时执行副作用——但协议换成了 App Intents,执行位置在用户设备上的你的进程里。协议对照见 Function Calling 是什么。
发现层不要一刀切。播放列表、本地日程、用户自己的草稿,适合 IndexedEntity 写入 Spotlight 语义索引,Siri 可以按意思找,而不只是关键字。曲库、商品、远端日历这种体量大、在服务器或更新很快的数据,用 IntentValueQuery 接收系统给的结构化检索,避免把整库提前灌进设备。iOS 17 的系统搜索 schema 在 27 里改名为 .system.searchInApp:即使用户只是说「在某某 App 里找跑步歌单」,也可以落到你自己的搜索页,而不只是系统结果卡片。
上屏感知让 Agent 看见当前界面上的对象;Interaction Donation 则告诉系统「用户刚才在 UI 里做了什么」。Siri 和 Shortcuts 路径系统已经知道,不必再捐一次。捐多了系统可能忽略。对会改数据、尤其是已经分享给别人的实体,用 OwnershipProvidingEntity 标明所有权,让 Siri 在更新公开事件时强制确认。默认实体被当成私人的,系统可能跳过确认——这不是优惠,是风险。
import AppIntents
import CoreSpotlight
struct EventEntity: AppEntity, IndexedEntity {
static var typeDisplayRepresentation: TypeDisplayRepresentation = "Event"
static var defaultQuery = EventQuery()
var id: String
var title: String
var startDate: Date
var displayRepresentation: DisplayRepresentation {
DisplayRepresentation(title: "\(title)")
}
}
struct OpenEventIntent: AppIntent {
static var title: LocalizedStringResource = "Open Event"
@Parameter(title: "Event")
var event: EventEntity
@MainActor
func perform() async throws -> some IntentResult {
NavigationManager.shared.open(event)
return .result()
}
}
// After a local write, keep Spotlight's semantic index in sync
try await CSSearchableIndex.default().indexAppEntities([event])
这段代码不是完整工程。它只固定三件事:对象有稳定 id 和展示名;打开动作吃实体而不是自由文本;本地写入后立刻同步 Spotlight。Schema 对齐、自定义对话、ShowsSnippetView、以及 ProvidesDialog 的完整句和辅助句,放到第二个迭代,不要和「能不能被找到」绑在同一张卡里。
核心对比:系统 Agent 还是自建工具
真正差异在于入口,而不是模型谁更强。第三方 App 现在同时面对四条路,字段必须对齐,才能做决定。
| 路径 | 入口 | 执行能力 | 上下文 | 适合人群 |
|---|---|---|---|---|
| App Intents + App Schemas | Siri、Spotlight、Shortcuts、部分系统卡片 | 打开、创建、更新、跨 App 传递;副作用在你的进程 | 实体、上屏对象、个人上下文、语义索引 | 要出现在 iOS 27 系统 Agent 里的消费级 / 效率 App |
| Shortcuts 短语 / 旧自动化 | 快捷指令 App、部分锁屏与小组件 | 用户自己编排的动作链 | 弱语义,靠短语和参数槽 | 已有 Shortcuts 用户、内部工具、过渡期兼容 |
| SiriKit 旧域 | 历史上开放的有限域 | 域内固定意图 | 域白名单,难扩展到任意对象 | 已在旧域里的语音、支付、出行等,作兼容而不是主路径 |
| 自建 LLM Function Calling | 你的聊天 UI / 服务端 Agent | 任意私有 API、数据库、电脑使用 | 你自己的会话记忆和工具目录 | 需要出 Apple 设备、接内网或非苹果模型的产品 |
四条路可以叠加,不要互斥。系统 Agent 覆盖「用户已经在 iPhone 上、用自然语言办事」;自建 Agent 覆盖「用户在浏览器、桌面或你们自己的机器人里」。把 App Intents 当成 Apple 生态的工具 schema,把云端 Function Calling 当成跨平台工具 schema,两套目录要对同一份业务动作,避免 iOS 能改日程、Web 却改不了。
场景怎么选
| 如果你是 | 就选 | 理由 |
|---|---|---|
| 日历 / 待办 / 笔记,对象主要在本机 | AppEntity + Schema + IndexedEntity | Siri 要按意思找到「下周二的评审」,不是精确标题 |
| 电商 / 媒体目录很大、数据在服务器 | 少量索引 + IntentValueQuery + searchInApp | 不能把全站 SKU 灌进 Spotlight |
| 即时通讯 / 协作,动作有社交副作用 | Schema 动作 + Donation + 所有权确认 | 发消息、改共享事件必须让用户看见确认卡 |
| 已有 Shortcuts 重度用户 | 保留 Shortcuts,把同一 Intent 接到 Schema | 旧入口不断,新入口复用同一 perform() |
| 核心价值在 Windows / Web / 内网 API | 自建 Function Calling 为主,iOS 只接只读实体 | 系统 Agent 到不了你的内网;先别承诺跨端同一套口令 |
| 欧盟 iOS 用户很多,或中国大陆是主市场 | 把 Siri 入口当成增强,主路径仍是 UI | 2026 年 9 月这些地区的用户侧能力仍被政策切开 |
推荐组合
A — 独立开发者 / 垂直效率 App: 选一个 Schema 域(日历、笔记或媒体)做深。一个实体、两个动作(打开 + 创建)、本地索引、Shortcuts 里先跑通,再进 Siri。自定义 ShowsSnippetView 可以第二迭代。真机用最低支持的 iPhone 16 或 15 Pro 做验收,不要只靠模拟器语音。
B — 小型产品团队: 实体层和动作层分开排期。第一张卡:对象能被 Spotlight 语义搜到,打开能落到正确详情。第二张卡:创建 / 更新走 Schema,带确认。第三张卡:上屏感知和 UI Donation。测试顺序固定为 App Intents 单测 → Shortcuts 形状 → Spotlight 索引 → Siri 端到端。CI 用同一台或同一镜像的 Mac 跑 Intent 测试,避免「我电脑能喊到、打包机喊不到」。
C — 企业或多端: iOS 系统 Agent 只暴露只读查询和低风险打开;写操作走你们已审计的 API 网关和自建 Agent。共享日历、对外文档必须实现所有权状态。账号与交付边界见 帮助中心,节点月费见 Mac mini 定价。需要常驻 Xcode 与回归机时,看 M6 Mac mini 是否适合开发者。
常见误区
- 把 Siri AI 当成聊天框皮肤: 只加对话 UI、不建实体,用户问「把刚才那个订单改到周五」时系统没有任何对象可抓。
- 用自定义短语代替 Schema: 短语能骗过 Shortcuts 演示,跨 App 和上屏上下文对不上系统已经认识的域。
- 把整库塞进 Spotlight: 索引膨胀、隐私面变大、重索引把前台卡死。远端数据走 IntentValueQuery。
- UI 路径不捐、或捐得太勤: 系统学不到「这个联系人常用你的 App」;乱捐会被忽略,还会污染确认策略。
- 按全球用户承诺口令能力: 忽略英语优先、欧盟 iOS 初期不可用、中国大陆监管未完成。演示环境和商店文案必须分区。
落地步骤:7 步
- 列出用户会口头完成、且带副作用的 5 个动作,删掉「打开设置页」这种没有对象的空动作。
- 为每个对象写
AppEntity:稳定 id、标题、关键日期或状态,DisplayRepresentation带得上图和副标题。 - 把打开和创建对齐到对应 App Schema;
perform()只做导航或写入,语言和澄清留给系统。 - 本地实体写入 Spotlight,并实现增删改后的索引更新;远端列表改用 IntentValueQuery。
- 在详情页补上屏标识;UI 里真正发送、创建、开始导航时做 Interaction Donation。
- 对写操作和公开实体打开确认,先在 Shortcuts 验证参数形状,再在 Siri 做端到端,最后用 App Intents Testing 锁业务逻辑。
- 把 Xcode、最低支持真机和回归脚本放到可复现的 Mac 节点,会话结束能清 DerivedData,避免本机缓存冒充通过。
FAQ
iOS 27 的 Siri AI 已经对所有语言开放了吗?
没有。截至 2026 年 9 月,面向用户仍按语言和地区分阶段开放,英文会先进入 beta;欧盟的 iOS / iPadOS 初期不可用,中国大陆仍在走监管。开发接入可以先做,商店与市场承诺必须按地区拆开。
没接 App Intents,Siri 还能打开我的 App 吗?
能打开图标,但很难理解对象、跨 App 执行,或根据屏幕继续操作。没有实体和 Schema,App 在 Siri 和 Spotlight 里仍是孤岛。
App Intents 和 Shortcuts 是不是同一件事?
不是。Shortcuts 是用户可编排的入口;App Intents 是系统可调用的协议。Siri AI 要 Schema 对齐后的 Intent,而不是再堆唤醒词。
所有内容都要写进 Spotlight 索引吗?
本地、稳定、用户私有的实体应该索引。体量大、在服务器或更新很快的数据,用 IntentValueQuery,避免把整库灌进设备。
第三方 App 要自己训练一个 Siri 模型吗?
不需要。自然语言、澄清和确认由系统处理。你交付可执行的实体、动作、索引新鲜度和权限边界。
总结
iOS 27 的 Siri AI 会改变 App 开发,但改的是入口和协议,不是把每个页面重做成聊天窗口。先描述实体和 Schema 动作,再补索引、上屏和确认;Shortcuts 与自建 Function Calling 是叠加,不是替代。 按地区写清用户侧能力,按 7 步把验收落到真机和可复现的 Mac 上。远程节点从 租用页 和 定价页 查看,账户问题走 帮助中心。