2329 文字
12 分
WWDC 2026 Foundation Models まとめ — モデルが差し替え可能な部品になった話(スライドはClaude Designで作った)
この記事について

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キーは焼かない)。
  • 画像入力・OCRToolBarcodeReaderTool・Spotlight RAGが組み込み。Core AIでQwen / Mistral / SAM3などの任意OSSモデルをオンデバイス実行できる。
  • Python SDKと fm chat CLI、Linux対応でiOS外からも同じモデルを叩ける。
  • Dynamic Profilesで1セッション内に .light / .moderate / .deep のreasoningを切り替えながらモデルとツールを差し替えできる。
  • オンデバイス無料、Small Business Programは月間アクティブ200万未満ならPCC無償、コンテキストは 4096→8192(新端末)/ PCC 32768に拡大。

はじめに#

Foundation Models — Apple's in-app AI strategy just changed

去年の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 プロトコルが幹#

protocol LanguageModelを幹に複数バッキングがぶら下がる

全ての変更の幹はここ一本。LanguageModel というSwiftプロトコルが新設され、これに準拠するモデルなら何でも LanguageModelSession のバックに置ける、という設計になった^1 ^2。

つまりセッション側のロジックは1度書けば、その下に差し込むモデル(バッキング)を後から差し替えできる。スライドのキャッチコピーで言う conformance, not dependency(依存ではなく準拠)の意味はここにある。

コードで見る差し替え — Swift 1行#

Same session API — change one line

セッションの組み立ては従来どおり。違うのはモデル生成の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)#

Anthropic / GoogleのSwift Packageを経由、OAuth+Keychainで認証

ClaudeとGeminiは公式Swiftパッケージとしてプロトコル実装が配布される^3。GeminiはFirebase Apple SDK経由で接続。

セキュリティ周りはAppleが明示的にガイドラインを出している。

  • 認証はOAuth + Keychainで扱う
  • APIキーをバイナリに焼かない

Swift Package Manager経由で組み込むので、ダウンストリームのコードは触らずに済む。トークン使用量はキャッシュ・reasoning込みでAPI側がトラックする。

ここまでの整理 — 2025 → 2026#

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・OCRTool・BarcodeReaderTool・Spotlight search

入力面の拡張も大きい。

  • Image input: テキストと並べて画像を渡せる。オンデバイスで推論されるのでネットワークラウンドトリップなし
  • Vision-backed tools: OCRToolBarcodeReaderTool がモデルから直接呼べる
  • Spotlight search tool: ローカルRAGを2行ほどで実装できる。ベクトルDBも埋め込みのセットアップも要らない

つまり、自分のアプリのために検索インフラを組もうとしていた人にとっては、OS側が既にそれを持っていた、という話になる。

Core AI — 任意のOSSモデルをオンデバイス実行#

Any open model, on device. Foundation Models → Core AI → Apple Silicon

Foundation ModelsがHigh-level(多くの開発者がここで満足する層)なら、Core AIはLow-levelの脱出ハッチに当たる。任意のオープンモデル(Qwen, Mistral, SAM3 …)をApple Silicon上で動かせる。

AOTコンパイル + PyTorch → Apple Siliconの変換ツーリングがついていて、OSS実装として CoreAILanguageModelMLXLanguageModel(Neural Engine / GPU向け)が提供される。

階層的に書くとこう。

階層用途
Foundation ModelsHigh-level、ほとんどの開発者はここで足りる
Core AILow-level、任意モデル・フルコントロール
Apple SiliconNeural Engine / GPU

Python SDK / fm chat / Linux#

Python SDKでSwiftの外からも同じモデルを呼べる、Linuxにも対応

ここが個人的にいちばん意外だった拡張。

  • Python SDKが公開され、Swiftの外側からも同じオンデバイスモデルを叩ける
  • macOS 27に fm chat CLIがプリインストール^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セッション内のモード切替#

One session, many minds. session.historyを保ったままprofileを分岐

エージェント的なワークフロー向けのプリミティブが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 on-device, <2M Small Business, 4096→8192/32768コンテキスト

最後にコストの話。

  • オンデバイス: $0、ネットワーク不要
  • Small Business Program: 月間アクティブ200万未満なら、新世代モデルのPCCファーストタイムダウンロードがクラウドAPIコスト不要^2
  • コンテキストサイズ: Systemは 4096→8192(macOS/iOS 27の新端末)、PCCは 32768 まで

「個人開発者がオンデバイスで作り、必要な所だけPCCやClaude / Geminiに回す」という戦術が、コスト面でも素直に成立するようになった。


このスライドはClaude Designで作った#

ここからメタ。記事に貼った11枚のスライドはClaude Designでゼロから生成した。

制作フロー

  1. ブリーフ(読者像・伝えたい核・各スライドのメッセージ)をClaude Codeで固める
  2. Claude Designに渡して、デザインしてもらう
  3. PDFにエクスポート
  4. Mac側でPDF → PNG → WebPに変換

良かった点

  • 1スライド1メッセージで要素を絞れた。文章では曖昧になりがちな「何が新しいか」を構造で説明できる
  • 対比構造(2025↔2026、High↔Low、profileの分岐)を図で可視化できる。これはMarkdownだけでは苦しい

注意点

  • 画像形式のエクスポートが選べず、必ずPDFを経由する
  • 生成物のファクトチェックは必須。実例として、Claude Designが生成した文言の中に xcode-select --beta 27 という存在しない誤コマンドが入っていて、検証フェーズで削除した。技術記事向けに使うなら、生成 → 公式ドキュメント・セッション動画で照合 → 修正、というループは省略できない

リサーチで原稿の中身を作り込んでからDesignに渡す、という順序が質に効いた。デザインから入ると見栄えはついても中身がブレる。


まとめ — モデルは差し替え可能な部品になった#

The model is now a swappable part. fm chatで触り始められる

ポイントを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までに変わり得る。実装前には公式ドキュメントで最終確認を。


参考文献#

  1. WWDC26 Session 241 — Foundation Modelsフレームワーク全体像 https://developer.apple.com/wwdc26
  2. WWDC26 Session 319 — LanguageModelSession / Dynamic Profiles / ContextOptions https://developer.apple.com/wwdc26
  3. WWDC26 Session 339 — Third-party model integrations(Claude / Gemini) https://developer.apple.com/wwdc26
  4. WWDC26 Session 334 — Foundation Models CLI(fm chat)と Python SDK https://developer.apple.com/wwdc26
WWDC 2026 Foundation Models まとめ — モデルが差し替え可能な部品になった話(スライドはClaude Designで作った)
https://yurudeep.com/posts/aicoding/2026/20260613/
作者
ひらノルム
公開日
2026-06-13
ライセンス
CC BY-NC-SA 4.0