Apple Foundation Models Skill
When to Use This Skill
Use this skill when you need help with:
- •On-device AI: Building iOS/macOS apps with on-device language models
- •SystemLanguageModel: Working with Apple's on-device LLM API
- •Guided Generation: Generating structured Swift types from prompts
- •Tool Calling: Extending model capabilities with custom tools
- •Prompting: Crafting effective prompts for on-device models
- •Safety: Implementing guardrails and handling sensitive content
- •Localization: Supporting multilingual AI features
This skill covers iOS 26.0+, iPadOS 26.0+, macOS 26.0+, and visionOS 26.0+.
Description
Use this skill when working with Apple's Foundation Models framework for on-device AI and LLM capabilities in iOS/macOS apps. Covers SystemLanguageModel, LanguageModelSession, guided generation, tool calling, and prompting patterns.
Quick Reference
Core Components
Advanced
- •
Transcript - •
Transcript.Entry - •
Transcript.Response - •
Transcript.ResponseFormat - •
Transcript.Segment - •
Transcript.StructuredSegment
Api Reference
- •
FoundationModels - •
GenerationID - •
SystemLanguageModel - •
SystemLanguageModel.Adapter - •
SystemLanguageModel.Guardrails - •
SystemLanguageModel.UseCase
Getting Started
- •
SystemLanguageModel.Availability
Guided Generation
- •
DynamicGenerationSchema - •
Generable - •
GenerationGuide - •
GenerationSchema - •
Guide
Localization
- •
LanguageModelFeedback
Prompting
- •
Instructions - •
InstructionsBuilder - •
InstructionsRepresentable - •
LanguageModelSession - •
LanguageModelSession.GenerationError - •
LanguageModelSession.ToolCallError - •
Prompt - •
PromptBuilder - •
PromptRepresentable - •
Transcript.Instructions - •
Transcript.Prompt
Tool Calling
- •
Tool
Key Concepts
Platform Support
- •iOS 26.0+
- •iPadOS 26.0+
- •macOS 26.0+
- •Mac Catalyst 26.0+
- •visionOS 26.0+
On-Device AI
All models run entirely on-device, ensuring privacy and offline capability.
Usage Guidelines
- •Check model availability before use
- •Define clear instructions for the model's behavior
- •Use guided generation for structured outputs
- •Implement tool calling for dynamic capabilities
- •Handle errors appropriately
Navigation
See the references/ directory for detailed API documentation organized by category:
- •
references/advanced.md- Advanced - •
references/api_reference.md- Api Reference - •
references/getting_started.md- Getting Started - •
references/guided_generation.md- Guided Generation - •
references/localization.md- Localization - •
references/prompting.md- Prompting - •
references/tool_calling.md- Tool Calling
Best Practices
- •Prompting: Be specific and clear in your prompts
- •Instructions: Define the model's behavior upfront
- •Safety: Enable guardrails for sensitive content
- •Localization: Check supported languages for your use case
- •Performance: Use prewarm() for better response times
- •Streaming: Use streamResponse() for real-time user feedback
Common Patterns
Basic Session
swift
let model = SystemLanguageModel(useCase: .general)
let session = LanguageModelSession(model: model)
let response = try await session.respond(to: Prompt("Your question"))
Guided Generation
swift
struct Recipe: Generable {
let title: String
let ingredients: [String]
}
let recipe = try await session.respond(
generating: Recipe.self,
prompt: Prompt("Create a pasta recipe")
)
Tool Calling
swift
struct WeatherTool: Tool {
func call(arguments: String) async throws -> String {
// Fetch weather data
}
}
let session = LanguageModelSession(
model: model,
tools: [WeatherTool()]
)
Reference Documentation
For complete API details, see the categorized documentation in the references/ directory.