← 所有文章

Apple 即将开源 Foundation Models 框架

Apple 承诺将于今夏开源 Foundation Models 框架,让您在应用中调用的同一套 Swift API 也能运行在自己的服务器上。1 在 Platforms State of the Union 上,Apple 把这一举措说得很直白:“此外,我们还有一件大事。今年夏天晚些时候,该框架将开源。这样一来,您在应用中使用的同一套 Swift API 现在也能运行在您的服务器上,让您在任何部署 Swift 的地方都拥有一套完整的端到端 AI 工作流。”1 在这一宣布的同时,一个配套的 Swift 包于同一周登陆 GitHub,其中包含一个 Skills API、历史管理工具,以及一个把 Foundation Models 编程模型指向任意 chat-completions 端点的模型适配器。2 框架本身仍是今夏的一个承诺;而这个工具包现已上线。

Watch on Apple Developer ↗

开源宣布出现在 12:44 处。

简而言之

  • Apple 将“今年夏天晚些时候”开源 Foundation Models 框架,让同一套 Swift API 在服务器上运行,并为您带来“在任何部署 Swift 的地方都拥有的完整端到端 AI 工作流”。1 该框架目前尚未开源。
  • 一个独立的开源 Swift 包 FoundationModelsUtilities 已在 GitHub 上以 Apache-2.0 协议发布,支持 Apple 平台以及 Ubuntu 等部分 Linux 发行版。2
  • 该包提供了一个 Skills API:一个遵循 DynamicInstructions 协议的 Skills 类型,借助结果构建器(result builder)构建,能够即时地(just-in-time)把任务专属的指令注入会话记录,从而避免上下文污染并优化首字延迟(time-to-first-token)。2
  • 它还提供了历史管理的配置修饰符(丢弃已完成的工具调用、滚动窗口、摘要压缩),以及一个能与任何使用 chat completions REST API 的服务器通信的 ChatCompletionsLanguageModel2
  • 这个包是本届 WWDC 第三种 Skills 交付方式,前两种分别是 Xcode 工具链 Skills 和 Game Porting Toolkit Skills;该仓库将自身的模式描述为“正在涌现且尚处于实验阶段”。2

框架将于今夏开源

这条头条新闻是一个日期,而非一个可供下载的版本。在 State of the Union 大约 12:44 处,Apple 用两句话给出了时间表及其影响:“今年夏天晚些时候,该框架将开源。这样一来,您在应用中使用的同一套 Swift API 现在也能运行在您的服务器上,让您在任何部署 Swift 的地方都拥有一套完整的端到端 AI 工作流。”1 您已经在设备上通过 LanguageModelSession 调用的那个框架,将变成一个您也能在任何运行 Swift 的地方运行的东西,包括您自己掌控的服务器。

这带给您的是一种对称性。今年 Apple 一直在拓宽 Foundation Models 的指向范围:端侧模型、Private Cloud Compute,以及 Gemini 和 Claude 等第三方模型,Foundation Models 与 Private Cloud Compute 一文已对此作了介绍。开源框架则把这一覆盖范围向另一个方向延伸,彻底脱离了设备本身。正如该场演讲所说:“您已经看到 Foundation Models 框架如何连接第三方模型、Private Cloud Compute 和端侧模型。您拥有所需的灵活性,能为手头的任务选用合适的模型。”1 开源这一步意味着,一套编程模型横跨客户端与服务器,而不再是两套。

有一点需要精确把握:框架目前尚未开源。Apple 说的是“今年夏天晚些时候”,诚实的解读是这是一个附带了季节的承诺,今天并没有任何东西交付。下文所述的那个包是一个独立的产物,把两者混为一谈会夸大当下实际存在的内容。

已经上线的工具包

如今就能克隆下来的那部分是 FoundationModelsUtilities,一个在 GitHub 上以 Apache-2.0 协议发布的开源 Swift 包。2 它支持 Apple 平台以及 Ubuntu 等部分 Linux 发行版,这一点很重要,因为它预示了框架本身今夏将要走向的跨平台方向。2 如果您想在本地测试这条 Swift-on-Ubuntu 路径,只需创建一个 container machine 即可:在 Mac 上运行一个挂载了您代码库的持久化 Ubuntu 环境。该仓库把其内容描述为“正在涌现且尚处于实验阶段的模式”,因此应把这些 API 视为 Apple 走向何方的预览,而非一份冻结不变的契约。2

State of the Union 直接介绍了这个包:“我们正在推出一个全新的开源 Swift 包,它内置了大量预制工具,帮助您上手 skills 这类概念以及用于上下文管理的工具。”1 Apple 用一个真实的应用把这个具体例子落到了实处:“像 Tiimo 这样的任务管理应用可以使用这个包,引入一个能根据用户数据调整语气和推荐内容的 skill,向用户提供个性化的简报,帮助他们从容掌控自己的一天。”1 同一段话点明了其底层基础:“这个开源包中的这些工具,是用名为 Dynamic Profiles 的全新基础构件创建的。”1

三个组件承载着这一承诺,每一个都对应着 agentic Swift 应用中的一个真实问题。

基于 Dynamic Profiles 的 Skills API

第一个组件是 Skills API。这个包定义了一个遵循 DynamicInstructions 协议、借助结果构建器(result builder)构建的 Skills 类型,以及一个用于跟踪当前哪些 skill 处于激活状态的 SkillActivations 类型。2 您用一个 prompt 或 instructions 来初始化单个 Skill,当某个 skill 应当能在会话进行中被移除时,可以将其标记为 allowsDeactivation: true2

有意思的部分在于其目的。一个 skill 会即时地(just-in-time)把任务专属的指令加入 LanguageModelSession 的会话记录,从而避免会话记录被某一轮根本用不到的指令填满。2 由此带来两项具体收益:会话避免了上下文污染,并优化了首字延迟(time-to-first-token),因为一份更短、更相关的会话记录能让模型在开始响应前更快地处理完。2 Skills API 正是指令的即时注入机制,其作用范围被限定在它们真正重要的那一刻。

让这一切成为可能的,是 Dynamic Profiles。在第三天的回顾中,Swift Intelligence Frameworks 高级工程经理 Lori Hylan-Cho 把 skills 直接置于这个基础构件之上:“所以我们还有 Dynamic Profiles,它算是 skills 这类更高阶事物的一种基础技术,我们也把它作为一个包发布出来,这样人们既可以直接用它,也可以像 skills 那样构建自己的抽象。”3 这一表述很精确。Apple 把 skills 作为一个包发布出来,并且预期开发者要么使用这个包,要么在同一套 Dynamic Profiles 基础之上构建自己的抽象。

作为配置修饰符的历史管理

第二个组件负责处理上下文问题的另一半:一份在 agentic 循环运行时无限增长的会话记录。这个包提供了用于历史管理的配置修饰符,README 列出了三种策略。2 丢弃已完成的工具调用,会在某次工具调用的结果不再需要时,移除这些已完成调用的来回往返内容。滚动窗口策略只保留近期历史的一个有界片段,而非整份会话记录。摘要压缩则把较早的对话轮次压成更短的形式,使模型仍能在其上进行推理。2 每一种都是同一旋钮上的一个刻度:让会话记录保持信息量,又不至于膨胀到超出模型能高效处理的范围。

一场 WWDC 2026 实验室(Lab)补充了摘要修饰符的具体行为。以下内容转述自一份对 WWDC 2026 Coding Intelligence, Machine Learning & AI Group Lab 的本地转录录音,该专题小组描述了如何在每次 prompt 开始时检查会话记录的大小,一旦超过开发者设定的阈值,就把较早的历史折叠成一条单一的摘要条目,并从那里继续往下进行。6 该小组提出了两点对采用它很关键的看法。这个修饰符可与任何后端配合使用,而不仅限于 Apple 的模型,因为任何遵循该语言模型协议的东西都能免费继承这些工具。6 此外,该小组阐述了一条统领整个包的设计原则:任何内置于某个工具中的 prompt,包括摘要 prompt,都必须可被开发者覆盖,因此所附带的默认值是一个供您调整的起点,而非一个您只能接受的固定行为。6

chat-completions 适配器,那个不动声色的主角

第三个组件,正是那个默默做了最多事情的。ChatCompletionsLanguageModel 能与任何使用 chat completions REST API 的服务器通信,并可选地支持引导式生成(guided generation)。2 其含义重大:Foundation Models 编程模型,连同会话、工具、指令,都能指向任意 chat-completions 端点,而不仅限于 Apple 的模型。

最自然的搭配是一个本地组合。MLX-LM Server 在 Mac 上作为一个兼容 chat-completions 的 HTTP 服务器运行,在 Mac 上用 MLX 运行 Agentic AI 一文已对此作了介绍。把 ChatCompletionsLanguageModel 接到一个本地 MLX 服务器上,您就得到了由完全运行在自己硬件上的模型所驱动的 Foundation Models API 表面。换成指向一个云端端点,同一份代码就调用一个托管模型。正是这个适配器,把“Foundation Models”从一个指代 Apple 模型的名称,变成了一个您可以随心所欲地指向任何地方的编程模型。

这条“任意后端”的论点已经有了一个具名、且已发布的例子。Anthropic 发布了 ClaudeForFoundationModels,一个被描述为“面向 Apple Foundation Models 的 Claude 支持”的 Apache-2.0 包,它让 Claude 遵循该框架的语言模型协议,使得一个 LanguageModelSession 驱动它的方式,与驱动 Apple 端侧模型的方式完全相同。5 这正是被第三方落到实处的适配器模式:一个您今天就能克隆下来、实现了框架所暴露协议的实际后端。至于 Apple 自己,它点名了 Xcode 中针对 Anthropic、OpenAI 和 Google 的内置集成,State of the Union 还直接宣布了与 Google 的合作。就协议而言,每一种情形的要点都是一样的:框架定义接缝,而后端,无论是 Apple 的还是其他任何人的,都来填补它。

Token 计量,以及您正在对照管理的那些预算

历史管理之所以重要,正是因为预算很小,而今年框架给了您一种精确的方式,来看清您正在花掉其中多少。LanguageModelSession.Response 现在带有一个 usage 属性,这是 iOS 27(beta)中的新增内容,文档将其描述为“关于本次响应使用了多少 token 的信息”。4 您从已经拿到的那个响应上读取它,因此用量计量是随工作一同附带的,而不需要单独跑一遍测量。

一场 WWDC 2026 实验室(Lab)补足了文档未及之处的纹理细节。以下内容转述自一份对 WWDC 2026 Coding Intelligence, Machine Learning & AI Group Lab 的本地转录录音,该小组描述了 response.usage 会报告输入和输出的 token 数量、有多少 token 被缓存,以及对于一个推理模型,输出 token 中有多少用于推理、多少用于最终答案。6 该小组把 token 计量称为一项呼声很高的功能,并指出用于统计 token 数量和读取系统模型上下文大小的符号此前已落地于 iOS 26.4,而 response.usage 在今年补全了这幅图景。6

知道用量只有在您知道上限时才有用,而该实验室把这些上限说得很清楚。转述自同一份录音:端侧模型的上下文大小维持在 4096 个 token 不变,而且它是一个输入加输出共享的窗口:正如该小组所说,大约输入 4,000 个 token,就只剩下约 96 个留给响应。6 Private Cloud Compute 把上限提升到 32K,同样是一个跨输入和输出共享的预算。6 这些数字解释了历史管理修饰符为何配得上它们的位置。在一个 4096 个 token 的共享窗口上,一份不加约束地增长的会话记录不只是会变慢;它还会挤占响应所需的空间,而这恰恰是丢弃、滚动和摘要这几种策略所要防范的那种失败。

同一届 WWDC 的第三种 Skills 交付

Apple 在本届 WWDC 上以三种截然不同的方式交付了 skills,而这个工具包是第三种。Xcode 27 工具链捆绑了 SwiftUI agent skills,您用 xcrun agent skills export 把它们提取出来,Xcode 27 提供可随处导出的 Agent Skills 一文已对此作了介绍。Game Porting Toolkit 4 以 GitHub marketplace 中的 Claude Code 插件形式分发 Metal 和 MetalFX 移植 skills,Game Porting Toolkit 4:在 Mac 上进行 Agentic 游戏移植 一文已对此作了介绍。Foundation Models 工具包则添加了第三种形态:作为运行时代码的 Skill API,一个您在应用中组合的 Swift 类型,而不是一个您导出的 markdown 文件或一个您安装的插件。

这三种交付回答的是不同的问题。Xcode skills 和 GPTK 插件把 Apple 的专业能力分发给您运行的任意 agent。而工具包给了您一些构件,让您在自己的会话内、针对自己的数据、用自己的激活逻辑,去编写并激活 skills。Apple 既在交付精选的知识,也在交付构建您自己版本的机器,二者都建立在 Lori 所描述的同一套 Dynamic Profiles 基础之上。3

核心要点

对于构建 AI 功能的 Swift 开发者: - 为客户端与服务器共用一套编程模型做好规划。Foundation Models 框架将“今年夏天晚些时候”开源,因此您今天编写的 Swift API,正是届时将在服务器端运行的那些。1 应把它视为一项路线图上的承诺,而非当下已具备的能力。 - 现在就克隆 FoundationModelsUtilities,以预览 Skills API 和历史管理修饰符,但请把该仓库“正在涌现且尚处于实验阶段”的措辞读作一个信号:这套接口可能会变。2

对于管理上下文与成本的团队: - 借助 Skills API 即时注入任务专属的指令,从而减少上下文污染、改善首字延迟(time-to-first-token),而不是把每一条指令都预先塞进会话记录。2 - 运用历史管理修饰符(丢弃已完成的工具调用、滚动一个窗口,或进行摘要压缩),让长时间运行的 agentic 循环不至于超出模型的有效上下文。2

对于运行本地或第三方模型的开发者: - 使用 ChatCompletionsLanguageModel 把 Foundation Models 编程模型指向任意 chat-completions 端点,包括 Mac 上的本地 MLX-LM Server,从而让一套 API 表面驱动端侧、本地服务器或云端模型。2

常见问题

Foundation Models 框架今天开源了吗?

没有。在 WWDC 2026 上,Apple 表示该框架将“今年夏天晚些时候”开源,从而让同一套 Swift API 在服务器上运行,并带来“在任何部署 Swift 的地方都拥有的完整端到端 AI 工作流”。1 截至这一宣布之时,这是一个附带时间表的承诺,而非一个已发布的版本。GitHub 上那个独立的工具包,才是您现在就能使用的东西。2

FoundationModelsUtilities 包是什么?

FoundationModelsUtilities 是 GitHub 上的一个开源 Swift 包,以 Apache-2.0 协议授权,支持 Apple 平台以及 Ubuntu 等部分 Linux 发行版。2 它提供了一个 Skills API、历史管理的配置修饰符,以及一个 ChatCompletionsLanguageModel 适配器。该仓库把其内容描述为“正在涌现且尚处于实验阶段的模式”。2 这个包与框架是相互独立的;它并不是被开源的那个框架。

Skills API 是如何工作的?

这个包定义了一个遵循 DynamicInstructions 协议、借助结果构建器(result builder)构建的 Skills 类型,外加一个用于跟踪已激活 skill 的 SkillActivations 类型。2 您用一个 prompt 或 instructions 初始化一个 Skill,并可设置 allowsDeactivation: true。一个 skill 会即时地(just-in-time)把任务专属的指令注入 LanguageModelSession 的会话记录,从而避免上下文污染并优化首字延迟(time-to-first-token)。2 Skills 建立在 Dynamic Profiles 之上,Apple 把后者描述为面向 skills 这类更高阶事物的“一种基础技术”。3

我能用 Foundation Models 搭配非 Apple 模型吗?

可以,通过这个包的 ChatCompletionsLanguageModel,它能与任何使用 chat completions REST API 的服务器通信,并可选地支持引导式生成(guided generation)。2 您可以把它指向 Mac 上的本地 MLX-LM Server,或一个云端端点,从而让 Foundation Models 编程模型驱动 Apple 自家以外的模型。

这个包与 Apple 在 WWDC 2026 上的其他 skills 有何关系?

这个包是本届 WWDC 第三种 Skills 交付方式。Xcode 27 捆绑了您用 xcrun agent skills export 导出的 SwiftUI skills(详见关于 agent skills 导出的那篇文章),Game Porting Toolkit 4 则以 Claude Code 插件形式交付移植 skills(关于 GPTK 4 的那篇文章)。工具包的不同之处在于,它以运行时 Swift 代码的形式提供一个 Skill API,让您在自己的应用中组合,建立在 Dynamic Profiles 之上,从而让您能够编写并激活自己的 skills。2


开源这一步延伸了 Apple 今年朝着设备所构建出的同一种覆盖范围:Foundation Models 与 Private Cloud Compute 介绍了框架已经横跨的端侧、Private Cloud Compute 和第三方模型路径。同样这条“让 Foundation Models 超越 Swift 应用”的方向,也出现在 用 Python 调用 Foundation Models:fm CLI 一文中——在那里,同一个模型既能回应一条 shell 命令,也能在 Xcode 之外回应一个 Python LanguageModelSession。skills 策略贯穿整届 WWDC,从 Xcode 27 提供可随处导出的 Agent Skills 中的 Xcode 工具链,到 在 Mac 上用 MLX 运行 Agentic AI 中的本地模型搭配——在那里,MLX-LM Server 给了 ChatCompletionsLanguageModel 一个可供调用的 chat-completions 端点。整个系列的中心页面是 Apple 生态系统系列

参考资料


  1. Apple, WWDC 2026 session 102, Platforms State of the Union. 开源承诺(“Later this summer, the framework will be open source. So the same Swift APIs you use in your app can now run on your server too, giving you a complete end-to-end AI workflow anywhere you deploy Swift”)、包的介绍(“we’re introducing a new open source Swift package, loaded with pre-built tools to help you get started with concepts like skills and utilities for context management”)、Tiimo 示例、灵活性表述(“You’ve seen how the Foundation Models framework connects to third-party models, Private Cloud Compute, and the on-device model”)以及“these utilities from the open source package are created with new fundamental building blocks called Dynamic Profiles”这一陈述的来源。 

  2. Apple, foundation-models-utilities. 包名 FoundationModelsUtilities、Apache-2.0 协议、对 Apple 平台以及 Ubuntu 等部分 Linux 发行版的支持、“emerging and experimental patterns”的措辞、Skills API(遵循 DynamicInstructions、借助结果构建器构建的 Skills 类型,跟踪已激活 skill 的 SkillActivations,用 prompt 或 instructions 初始化的单个 Skill 对象,可选的 allowsDeactivation: true,以及即时的会话记录注入,从而避免上下文污染并优化首字延迟)、历史管理的配置修饰符(丢弃已完成的工具调用、滚动窗口策略以及摘要压缩),以及能与任何使用 chat completions REST API、并可选支持引导式生成的服务器通信的 ChatCompletionsLanguageModel 的来源。 

  3. Apple, WWDC 2026 session 398, Dub Dub Daily: Day 3. Lori Hylan-Cho 访谈的来源,这位 Swift Intelligence Frameworks 高级工程经理把 Dynamic Profiles 描述为“kind of a foundational technology for sort of higher order things like skills, which we’re also releasing as a package, so that people can use those or build their own abstractions like skills”。 

  4. Apple Developer Documentation: LanguageModelSession.Response.usage (iOS 27.0 beta). “Information about how many tokens were used by this response.” LanguageModelSession.Response 上的一个属性,为 iOS 27(beta)中的新增内容。 

  5. Anthropic, ClaudeForFoundationModels. Apache-2.0,被描述为“Claude support for Apple Foundation Models”。该包让 Claude 遵循 Foundation Models 框架的语言模型协议,使得一个 LanguageModelSession 驱动它的方式与驱动 Apple 端侧模型的方式完全相同。一个实现了框架语言模型协议的实际第三方后端。 

  6. Apple, WWDC 2026 lab 8121, Coding Intelligence, Machine Learning & AI Group Lab. 转述自一份对 WWDC 2026 Coding Intelligence, Machine Learning & AI Group Lab 的本地转录录音;Apple 未为这些实验室发布字幕,因此此处的措辞是转述,而非引文。该小组关于 response.usage 报告输入和输出 token、缓存 token,以及推理模型中推理与答案 token 之间划分的描述;把 token 计量称为一项呼声很高的功能的说法;用于统计 token 和读取上下文大小的符号已在 iOS 26.4 中到来的提示;端侧模型维持不变的 4096 个 token 输入加输出共享窗口(大约输入 4,000 个 token,留下约 96 个给响应)以及 Private Cloud Compute 上 32K 的共享预算;摘要修饰符在超过开发者设定的阈值后把较早历史折叠成单一条目、并可与任何后端配合使用;以及任何内置于该包的 prompt 都必须可被开发者覆盖这一设计原则的来源。 

相关文章

iOS 27 全面引入设备端 AI:Spotlight 与媒体

iOS 27 将设备端模型贯穿整个系统:SpotlightSearchTool 让 Core Spotlight 以 LLM 为基础,AVFoundation 则在设备上直接生成字幕。

3 分钟阅读

Private Cloud Compute 上的 Foundation Models

iOS 27 在 Private Cloud Compute 上新增了一个服务器规模的 Foundation Model,兼具端侧隐私,并提供一套协议让您接入自己的 LLM 提供方。

5 分钟阅读

AI代理技能需要行为审计,而不是通过率

AI代理技能可能会改变行为,而通过率保持不变。建立信任之前,行为审计会对比执行轨迹、声明能力和副作用。

2 分钟阅读