WWDC Quick Look 💓 By SwiftGGTeam
What's new in Shortcuts

What's new in Shortcuts

观看原视频

Highlight

Shortcuts 新增三种自动化触发器(截图、键盘连接/断开、通知)、Use Model 动作支持查看模型转录调试、以及 Storage 持久化存储,让 App 内容能与 Apple Intelligence 深度协作,实现跨设备带状态记忆的自动化。

核心内容

自动化不再藏在角落

以前设置 Shortcuts 自动化,需要跳转到独立的自动化标签页,和动作编辑割裂开。iOS 26 把自动化直接嵌进了 Shortcuts 编辑器,和动作列表平级展示。(01:15

新增三种触发器:

  • 截图自动化:保存截图时触发
  • 键盘自动化:外接键盘连接或断开时触发
  • 通知自动化:收到指定 App 的推送时触发

通知自动化的场景最直接。假设你做了一个外卖 App,骑手接近时推送”骑手 John 还有 5 分钟到达”。用户可以在 Shortcuts 里配置:当收到这个 App 的推送且包含”arriving”时,自动打开玄关灯。(01:51

这里对开发者有个隐性要求:推送文案必须包含具体的主语、动词和可操作数据。如果推送写的是”您有一条新消息”,用户没法设置关键字过滤,自动化就形同虚设。

Use Model 动作能看”病历”了

Use Model 动作让大语言模型直接在 Shortcuts 里运行。iOS 26 的模型更强,还能联网获取最新信息。(03:28

但模型输出不对时,以前只能猜。现在可以在 Use Model 动作后加一个 Show Content 动作,选择 Transcript 属性,就能看到模型实际接收到的原始数据。(05:11

举个例子:Soup Chef App 用 Use Model 根据用户口味偏好选汤。第一次运行,模型选了鸡肉玉米汤——菜单上最温和的选项,而用户想要辣的。查看 Transcript 发现,传给模型的 Soup Entity 只有名字和是否在售,没有配料信息,模型只能靠名字猜辣度。(04:54

给 SoupEntity 加上 ingredients 属性后,模型准确选了冬阴功汤。

Storage 给 Shortcuts 装上记忆

Storage 是 iOS 26 最重磅的新能力。它让 Shortcuts 能在多次运行之间保存数据,还支持 iCloud 跨设备同步。(06:59

Shortcuts 编辑器里新增了 Storage 视图,可以创建、查看、编辑存储值。还能创建全局值,跨多个 Shortcuts 共享——适合存 API Key 这类通用配置。(07:08

三个动作操控 Storage:

  • Get Value:读取存储值
  • Set Value:写入存储值
  • Add to List:向列表追加元素

一个实际案例:每天推送一个赛车技术冷知识。Use Model 是确定性的,不加干预会重复输出。用 Storage 存”Previous Facts”列表,每次运行先读取历史,传给模型要求避开已有内容,再把新结果追加存回去。(07:49

另一个案例:Soup of the Day Shortcut 经常连续几天推荐同一碗汤。用 Storage 记录近期选择,传给模型作为排除条件,实现”不重复推荐”。(08:53

跨设备同步对 Entity ID 有硬性要求。iPhone 存的 Soup Entity,iPad 读取时必须识别为同一个实体。如果 ID 是设备本地生成的,换设备就失效。解决方案是用后端数据库的稳定 ID,比如数据库行 ID。(10:07

详细内容

为 LLM 优化 App Entity

06:12

SoupEntity 的完整定义:

import AppIntents

struct SoupEntity: AppEntity, Identifiable {
    static var typeDisplayRepresentation = TypeDisplayRepresentation(
        name: "Soup",
        numericFormat: "\(placeholder: .int) soups"
    )
    static var defaultQuery = SoupEntityQuery()

    var id: Soup.ID

    @Property var name: String

    @Property(title: "Available Today")
    var isAvailableToday: Bool

    @Property(title: "Ingredients")
    var ingredients: String

    var displayRepresentation: DisplayRepresentation {
        DisplayRepresentation(title: "\(name)", subtitle: SoupStore.description(for: id))
    }
}

关键点:

  • typeDisplayRepresentation 定义了 Entity 在 Shortcuts 和 Siri 中的显示名称和复数格式
  • defaultQuery 关联查询类,让 Find Soups 动作能检索这个 Entity
  • id 必须是跨设备稳定的标识符,这里用后端数据库的 Soup.ID
  • @Property(title: "Ingredients")title 会出现在 Transcript 中,帮助 LLM 理解字段含义
  • ingredients 存储”配料名 + 每份量”的字符串,让 LLM 能根据成分推断辣度
  • displayRepresentation 控制 Entity 在 UI 中的展示,包含标题和副标题

调试 Use Model 的 Transcript

05:11

在 Shortcuts 编辑器中的操作步骤:

  1. 添加 Use Model 动作,配置 Prompt 和输入数据
  2. 在其后添加 Show Content 动作
  3. 将 Show Content 的输入设为 Use Model 输出的 Transcript 属性
  4. 运行 Shortcut,查看 Transcript 中每个 Entity 的结构化表示

Transcript 里能看到每个 Soup Entity 被序列化后的完整属性列表。如果某个关键属性缺失或值不对,就能定位问题。比如第一次运行时 Transcript 里没有 ingredients 字段,模型只能根据名字推断,导致选了不辣的汤。

Storage 的使用模式

08:11

带记忆的 Soup of the Day Shortcut 的数据流:

Get Value("Previous Soups")          // 读取历史选择
  -> Use Model(prompt: "从以下汤中选一个辣的,
                       避开这些历史选择: \(previousSoups)",
               context: availableSoups)
  -> Add to List(newSoup, previousSoups)  // 新选择追加到列表
  -> Set Value("Previous Soups", updatedList)  // 写回 Storage
  -> Order Soup(newSoup)               // 执行下单

关键点:

  • Get Value 首次运行时若键不存在,返回空值,Shortcut 需处理这种情况
  • Add to List 输出包含新元素的新列表,原列表不变
  • Set Value 覆盖写入,实现状态更新
  • 存储值通过 iCloud 同步,所有登录同一 Apple ID 的设备共享
  • Entity 存储时只存 ID 和暴露的属性,读取时由 App Intent 根据 ID 重新解析

核心启发

1. 给 AI 助手加上”口味记忆”

做什么:做一个 Shortcut,记录用户每次的反馈(“太辣""太淡”),用 Storage 存成偏好档案,下次让 Use Model 参考历史反馈推荐。

为什么值得做:大多数推荐系统没有用户反馈闭环,Storage 让 Shortcuts 能低成本实现个性化。

怎么开始:在 App Entity 里加一个 @Property var userRating: Int,每次推荐后让用户打分,用 Set Value 存到 Storage。

2. 通知驱动的智能家居联动

做什么:健身 App 在训练结束时推送”今日训练完成,消耗 300 千卡”。用户配置通知自动化,触发 Shortcut 自动调暗客厅灯光、打开放松音乐。

为什么值得做:通知自动化把 App 从”信息推送者”变成”场景触发器”,拓展了 App 的系统集成深度。

怎么开始:确保推送文案包含明确的动词和数值(如”completed""300 calories”),方便用户设置关键字过滤。

3. 跨设备的阅读进度同步

做什么:阅读类 App 把当前阅读位置存为 App Entity,用户用一个 Shortcut 在 iPhone 上标记”稍后继续”,在 iPad 上运行另一个 Shortcut 直接跳转到该位置。

为什么值得做:Storage 的跨设备同步让 Shortcuts 成了轻量级状态同步通道,无需自建后端。

怎么开始:Entity ID 用书籍 ISBN + 章节号,确保各设备一致。Get Value 读取存储的 Entity ID,通过 App Intent 打开对应页面。

4. 每日 AI 生成的个性化日报

做什么:用 Storage 存用户关注的股票列表、天气城市、日程关键词。每天早上一键运行 Shortcut,Use Model 根据这些数据生成一段自然语言的晨间摘要。

为什么值得做:把多个数据源聚合后用 LLM 生成连贯文本,Storage 解决了”数据源配置”的持久化问题。

怎么开始:用全局 Storage 存配置数据,Get Value 读取后传给 Use Model,Prompt 里指定输出格式。

5. 防止 LLM 重复的创意写作助手

做什么:写作 App 提供一个 Shortcut,用 Use Model 根据主题生成写作灵感。Storage 记录已生成的灵感,避免重复。

为什么值得做:确定性 LLM 在相同 Prompt 下容易输出相似内容,Storage 实现了简单的”去重记忆”。

怎么开始:Storage 存灵感标题列表,每次生成前传给模型作为排除条件,生成后追加存回。

关联 Session

评论

GitHub Issues · utterances