この記事についてClaude(Anthropic)との共同編集により作成されました。
要約
- 2025まで「Appleのモデルか、なし」だったiOSのAI戦略が、2026では
LanguageModelプロトコルを軸とした抽象化レイヤ+複数バッキングに変わった。モデルは差し替え可能な部品になった。- コードは
LanguageModelSession経由でモデル非依存に書き、System / Private Cloud Compute / Claude / Gemini / Core AI / MLXを1行で差し替えできる。- ClaudeとGeminiは公式Swiftパッケージで一級市民として組み込み。GeminiはFirebase Apple SDK、認証は OAuth + Keychain(バイナリにAPIキーは焼かない)。
- 画像入力・
OCRTool・BarcodeReaderTool・Spotlight RAGが組み込み。Core AIでQwen / Mistral / SAM3などの任意OSSモデルをオンデバイス実行できる。- Python SDKと
fm chatCLI、Linux対応でiOS外からも同じモデルを叩ける。- Dynamic Profilesで1セッション内に
.light/.moderate/.deepのreasoningを切り替えながらモデルとツールを差し替えできる。- オンデバイス無料、Small Business Programは月間アクティブ200万未満ならPCC無償、コンテキストは 4096→8192(新端末)/ PCC 32768に拡大。
はじめに

去年のWWDC 2025では「On-device 3Bモデルか、サードパーティを自分で繋ぐか」しかなかったiOSのAI戦略が、WWDC 2026で根本的に変わった。
フレームワーク名は2025と同じFoundation Modelsだが、中身は別物に近い。一言でいうと、モデルが差し替え可能な部品になった、というのが今回の核だ。
この記事は二段構えにしている。
- 本題: WWDC 2026でFoundation Modelsが具体的にどう変わったかの技術まとめ
- 後半のメタ: 添えてあるスライド11枚をClaude Designで作った制作記録
技術記述・APIシンボル名はWWDC26の公式セッションで検証済み^1 ^2 ^3 ^4。ただしベータ時点の情報なので、APIシンボルはGAまでに変わる可能性がある。実装前には公式ドキュメントで最終確認してほしい。
LanguageModel プロトコルが幹

全ての変更の幹はここ一本。LanguageModel というSwiftプロトコルが新設され、これに準拠するモデルなら何でも LanguageModelSession のバックに置ける、という設計になった^1 ^2。
つまりセッション側のロジックは1度書けば、その下に差し込むモデル(バッキング)を後から差し替えできる。スライドのキャッチコピーで言う conformance, not dependency(依存ではなく準拠)の意味はここにある。
コードで見る差し替え — Swift 1行

セッションの組み立ては従来どおり。違うのはモデル生成の1行だけだ。
import FoundationModels
// On-device — 無料、ネットワーク不要let model = SystemLanguageModel()// Private Cloud Compute// let model = PrivateCloudComputeLanguageModel()// Custom Core AI モデル// let model = try await CoreAILanguageModel(resourcesAt: modelURL)// OSS MLXモデル (HuggingFace)// let model = MLXLanguageModel(modelID: "mlx-community/my-model")
let session = LanguageModelSession(model: model)let response = try await session.respond(to: "...")print(response.content)オンデバイスで作り、重いクエリだけクラウドに回す — 書き換えではなく依存差し替えで実現できる、というのがこの一連のAPIの眼目。
サードパーティの frontier モデル(Claude / Gemini)

ClaudeとGeminiは公式Swiftパッケージとしてプロトコル実装が配布される^3。GeminiはFirebase Apple SDK経由で接続。
セキュリティ周りはAppleが明示的にガイドラインを出している。
- 認証はOAuth + Keychainで扱う
- APIキーをバイナリに焼かない
Swift Package Manager経由で組み込むので、ダウンストリームのコードは触らずに済む。トークン使用量はキャッシュ・reasoning込みでAPI側がトラックする。
ここまでの整理 — 2025 → 2026

ここで一度、全体像を整理しておく。
2025のFoundation Modelsは「Appleのオンデバイス3Bモデルか、なし」の二択だった。サーバーモデルやOSSモデルはスコープ外で、エンジンも固定。
2026では同じ名前のフレームワークが抽象化レイヤとして再設計され、その下に複数のバッキング — System(オンデバイス)、Private Cloud Compute(PCC)、Core AI(任意OSS)、MLX、Claude、Gemini — が差し替え可能な状態でぶら下がる構図になった。スライドの言葉を借りるなら、Apple’s engine だったものが the front door for AI in your app になった。
マルチモーダル & 組み込みツール

入力面の拡張も大きい。
- Image input: テキストと並べて画像を渡せる。オンデバイスで推論されるのでネットワークラウンドトリップなし
- Vision-backed tools:
OCRToolとBarcodeReaderToolがモデルから直接呼べる - Spotlight search tool: ローカルRAGを2行ほどで実装できる。ベクトルDBも埋め込みのセットアップも要らない
つまり、自分のアプリのために検索インフラを組もうとしていた人にとっては、OS側が既にそれを持っていた、という話になる。
Core AI — 任意のOSSモデルをオンデバイス実行

Foundation ModelsがHigh-level(多くの開発者がここで満足する層)なら、Core AIはLow-levelの脱出ハッチに当たる。任意のオープンモデル(Qwen, Mistral, SAM3 …)をApple Silicon上で動かせる。
AOTコンパイル + PyTorch → Apple Siliconの変換ツーリングがついていて、OSS実装として CoreAILanguageModel と MLXLanguageModel(Neural Engine / GPU向け)が提供される。
階層的に書くとこう。
| 階層 | 用途 |
|---|---|
| Foundation Models | High-level、ほとんどの開発者はここで足りる |
| Core AI | Low-level、任意モデル・フルコントロール |
| Apple Silicon | Neural Engine / GPU |
Python SDK / fm chat / Linux

ここが個人的にいちばん意外だった拡張。
- Python SDKが公開され、Swiftの外側からも同じオンデバイスモデルを叩ける
- macOS 27に
fm chatCLIがプリインストール^4。ターミナルから即座にモデルに話しかけられる - フレームワークがLinuxでも動くようになった(小さい注記、大きい射程)
サーバー側の前処理やCI上で同じモデルを使えるという意味で、これまでの「iOS専用フレームワークだから扱いにくい」という反論を1つ消した形だ。
import foundationmodels as fm
model = fm.SystemLanguageModel()session = fm.LanguageModelSession( model=model)
resp = session.respond("...")print(resp.content)Dynamic Profiles — 1セッション内のモード切替

エージェント的なワークフロー向けのプリミティブがDynamic Profiles。1つのセッション履歴を保ったまま、instructions・tools・モデルを宣言的に切り替えられる^2。
たとえば、軽いtriageはSystemで .light、深いreasoningはPCCで .deep、という使い分けが session.history を共有したまま実現できる。reasoning levelは ContextOptions(reasoningLevel:) で .light / .moderate / .deep の3段階を指定する。
なお、スライド中の profile: triage / profile: reason は説明用の例示で、Apple公式のサンプル名ではない。公式ドキュメントで探さないように注意。
コスト構造

最後にコストの話。
- オンデバイス: $0、ネットワーク不要
- Small Business Program: 月間アクティブ200万未満なら、新世代モデルのPCCファーストタイムダウンロードがクラウドAPIコスト不要^2
- コンテキストサイズ: Systemは 4096→8192(macOS/iOS 27の新端末)、PCCは 32768 まで
「個人開発者がオンデバイスで作り、必要な所だけPCCやClaude / Geminiに回す」という戦術が、コスト面でも素直に成立するようになった。
このスライドはClaude Designで作った
ここからメタ。記事に貼った11枚のスライドはClaude Designでゼロから生成した。
制作フロー
- ブリーフ(読者像・伝えたい核・各スライドのメッセージ)をClaude Codeで固める
- Claude Designに渡して、デザインしてもらう
- PDFにエクスポート
- Mac側でPDF → PNG → WebPに変換
良かった点
- 1スライド1メッセージで要素を絞れた。文章では曖昧になりがちな「何が新しいか」を構造で説明できる
- 対比構造(2025↔2026、High↔Low、profileの分岐)を図で可視化できる。これはMarkdownだけでは苦しい
注意点
- 画像形式のエクスポートが選べず、必ずPDFを経由する
- 生成物のファクトチェックは必須。実例として、Claude Designが生成した文言の中に
xcode-select --beta 27という存在しない誤コマンドが入っていて、検証フェーズで削除した。技術記事向けに使うなら、生成 → 公式ドキュメント・セッション動画で照合 → 修正、というループは省略できない
リサーチで原稿の中身を作り込んでからDesignに渡す、という順序が質に効いた。デザインから入ると見栄えはついても中身がブレる。
まとめ — モデルは差し替え可能な部品になった

ポイントを1枚に圧縮するとこうなる。
- The spine: 抽象化レイヤがモデルを「差し替える依存」にした
- The play: オンデバイスで作り、必要な所だけPCC / Claude / Geminiに回す
- Coming: フレームワークは2026夏オープンソース化予定
fm chat を叩いてオンデバイスモデルに話しかけてみるところから始めると感じが掴みやすい。
# Xcode 27 beta + CLI tools$ fm chat# talk to the on-device model公式リソースは developer.apple.com/wwdc26 の「What’s new in the Foundation Models framework」を起点に各セッションへ。APIシンボルはベータ時点のもので、GAまでに変わり得る。実装前には公式ドキュメントで最終確認を。
参考文献
- WWDC26 Session 241 — Foundation Modelsフレームワーク全体像 https://developer.apple.com/wwdc26
- WWDC26 Session 319 — LanguageModelSession / Dynamic Profiles / ContextOptions https://developer.apple.com/wwdc26
- WWDC26 Session 339 — Third-party model integrations(Claude / Gemini) https://developer.apple.com/wwdc26
- WWDC26 Session 334 — Foundation Models CLI(
fm chat)と Python SDK https://developer.apple.com/wwdc26