---
title: LanguageModelCapabilities
framework: foundationmodels
role: symbol
role_heading: Structure
path: foundationmodels/languagemodelcapabilities
---

# LanguageModelCapabilities

A set of capabilities that a language model provides.

## Declaration

```swift
struct LanguageModelCapabilities
```

## Overview

Overview Use this to declare what your model can do, like tool calling and guided generation: struct MyLanguageModel: LanguageModel {     var capabilities: LanguageModelCapabilities {         LanguageModelCapabilities(capabilities: [             .toolCalling,             .guidedGeneration,             .reasoning         ])     } } Apps can inspect capabilities ahead of time to detect what the model supports before performing the request: // Before prompting the model with a generable type, check whether it // supports guided generation. if selectedModel.capabilities.contains(.guidedGeneration) {     let response = try await session.respond(to: "...", generating: MySchema.self) } When a model doesn’t support a capability, the framework can refuse to dispatch incompatible requests to the executor and throw an LanguageModelError.unsupportedCapability(_:) error instead.

## Topics

### Creating an instance

- [init(capabilities:)](foundationmodels/languagemodelcapabilities/init(capabilities:).md)
- [LanguageModelCapabilities.Capability](foundationmodels/languagemodelcapabilities/capability.md)

### Inspecting model capabilities

- [contains(_:)](foundationmodels/languagemodelcapabilities/contains(_:).md)

## Relationships

### Conforms To

- [Sendable](swift/sendable.md)
- [SendableMetatype](swift/sendablemetatype.md)

## See Also

### Custom language model provider

- [Optimizing key-value caching in language model sessions](foundationmodels/optimizing-key-value-caching-in-language-model-sessions.md)
- [LanguageModel](foundationmodels/languagemodel.md)
- [LanguageModelExecutor](foundationmodels/languagemodelexecutor.md)
- [LanguageModelExecutorGenerationChannel](foundationmodels/languagemodelexecutorgenerationchannel.md)
- [LanguageModelExecutorGenerationRequest](foundationmodels/languagemodelexecutorgenerationrequest.md)
