Agent skill

Foundation Models On Device

by xu-xiang in xu-xiang/everything-claude-code-zh

Apple FoundationModels 框架,用于设备端大语言模型(LLM)—— iOS 26+ 中的文本生成、配合 @Generable 的引导式生成、工具调用以及快照流式传输。

MITAuto-check passedMobile

Install Foundation Models On Device

skills CLI
$ npx skills add xu-xiang/everything-claude-code-zh --skill foundation-models-on-device -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install xu-xiang/everything-claude-code-zh foundation-models-on-device --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/xu-xiang/everything-claude-code-zh.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/foundation-models-on-device .claude/skills/foundation-models-on-device && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
foundation-models-on-device
GitHub stars
2k
Token cost
~1.4k tokens
SKILL.md length
173 words
Files
1
Skills in repo
78
Repo updated
First seen
Licence
MIT

At a glance

Apple FoundationModels 框架,用于设备端大语言模型(LLM)—— iOS 26+ 中的文本生成、配合 @Generable 的引导式生成、工具调用以及快照流式传输。

  • Works in 5 steps: 定义一个 Generable 类型 → 请求结构化输出 → 定义一个工具(Tool) → …
  • Mobile work in your project
  • SKILL.md covers 何时激活, 核心模式 —— 可用性检查, 核心模式 —— 基础会话 and 核心模式 —— 使用 @Generable 的引导式生成, plus 6 more sections
  • Instructions only: no scripts, shell commands, URLs or credentials in SKILL.md

What it does

Foundation Models On Device is an agent skill from xu-xiang/everything-claude-code-zh. Apple FoundationModels 框架,用于设备端大语言模型(LLM)—— iOS 26+ 中的文本生成、配合 @Generable 的引导式生成、工具调用以及快照流式传输。

Its SKILL.md is about 1.4k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.

It sits in Mobile. It works with iOS. The repository describes itself as: everything-claude-code 中文翻译项目:完整的 Claude Code 配置集合(agents, skills, hooks, commands, rules, MCPs)。源自 Anthropic 黑客松获胜者的实战配置,助力中文工程师高效理解与使用 Claude Code。 The licence is MIT.

When your agent uses it

  • Mobile work in your project

Example prompts

  • “/foundation-models-on-device”

Workflow steps

5 steps, taken from the step headings in SKILL.md.

  1. 定义一个 Generable 类型
  2. 请求结构化输出
  3. 定义一个工具(Tool)
  4. 创建带有工具的会话
  5. 处理工具错误

What it can do on your machine

Read from SKILL.md and the folder at commit dfbf946. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    No scripts in the folder and no shell commands in SKILL.md (its code samples are swift).

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Foundation Models On Device loads about 1.4k tokens when it runs. Until then it costs about 30 tokens; SKILL.md has 173 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~30
When it runs · the whole SKILL.md, loaded when a task matches
~1.4k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from xu-xiang/everything-claude-code-zh at commit dfbf946, republished under its MIT licence (© xu-xiang). 173 words, ~1,383 tokens.

Download SKILL.mdSave it as .claude/skills/foundation-models-on-device/SKILL.md (or your agent's skills folder).
name
foundation-models-on-device
description
Apple FoundationModels 框架,用于设备端大语言模型(LLM)—— iOS 26+ 中的文本生成、配合 @Generable 的引导式生成、工具调用以及快照流式传输。

FoundationModels:设备端大语言模型 (iOS 26)

使用 FoundationModels 框架将 Apple 的设备端语言模型集成到应用中的模式。涵盖文本生成、使用 @Generable 的结构化输出、自定义工具调用以及快照流式传输 —— 全部在设备端运行,以支持隐私保护和离线使用。

何时激活

  • 使用 Apple Intelligence 在设备端构建 AI 驱动的功能
  • 在不依赖云端的情况下生成或总结文本
  • 从自然语言输入中提取结构化数据
  • 为特定领域的 AI 操作实现自定义工具调用
  • 流式传输结构化响应以实现实时 UI 更新
  • 需要隐私保护的 AI(数据不离开设备)

核心模式 —— 可用性检查

在创建会话(Session)之前,请务必检查模型的可用性:

swift
struct GenerativeView: View {
    private var model = SystemLanguageModel.default

    var body: some View {
        switch model.availability {
        case .available:
            ContentView()
        case .unavailable(.deviceNotEligible):
            Text("设备不符合 Apple Intelligence 的使用条件")
        case .unavailable(.appleIntelligenceNotEnabled):
            Text("请在设置中启用 Apple Intelligence")
        case .unavailable(.modelNotReady):
            Text("模型正在下载或尚未就绪")
        case .unavailable(let other):
            Text("模型不可用:\(other)")
        }
    }
}

核心模式 —— 基础会话

swift
// 单轮:每次创建一个新会话
let session = LanguageModelSession()
let response = try await session.respond(to: "去巴黎旅游哪个月份比较好?")
print(response.content)

// 多轮:复用会话以保留对话上下文
let session = LanguageModelSession(instructions: """
    你是一个烹饪助手。
    请根据食材提供食谱建议。
    建议要保持简短且实用。
    """)

let first = try await session.respond(to: "我有鸡肉和米饭")
let followUp = try await session.respond(to: "那素食选择呢?")

提示词指令(Instructions)的关键点:

  • 定义模型的角色(“你是一个导师”)
  • 指定要做什么(“帮助提取日历事件”)
  • 设置风格偏好(“尽可能简短地回答”)
  • 添加安全措施(“对于危险请求,请回答‘我无法提供帮助’”)

核心模式 —— 使用 @Generable 的引导式生成

生成结构化的 Swift 类型,而不是原始字符串:

1. 定义一个 Generable 类型
swift
@Generable(description: "关于猫的基本个人资料信息")
struct CatProfile {
    var name: String

    @Guide(description: "猫的年龄", .range(0...20))
    var age: Int

    @Guide(description: "关于猫性格的一句话简介")
    var profile: String
}
2. 请求结构化输出
swift
let response = try await session.respond(
    to: "生成一只可爱的待领养小猫",
    generating: CatProfile.self
)

// 直接访问结构化字段
print("名字: \(response.content.name)")
print("年龄: \(response.content.age)")
print("简介: \(response.content.profile)")
支持的 @Guide 约束
  • .range(0...20) —— 数字范围
  • .count(3) —— 数组元素计数
  • description: —— 生成的语义引导

核心模式 —— 工具调用

允许模型调用自定义代码以执行特定领域任务:

1. 定义一个工具(Tool)
swift
struct RecipeSearchTool: Tool {
    let name = "recipe_search"
    let description = "搜索匹配给定术语的食谱并返回结果列表。"

    @Generable
    struct Arguments {
        var searchTerm: String
        var numberOfResults: Int
    }

    func call(arguments: Arguments) async throws -> ToolOutput {
        let recipes = await searchRecipes(
            term: arguments.searchTerm,
            limit: arguments.numberOfResults
        )
        return .string(recipes.map { "- \($0.name): \($0.description)" }.joined(separator: "\n"))
    }
}
2. 创建带有工具的会话
swift
let session = LanguageModelSession(tools: [RecipeSearchTool()])
let response = try await session.respond(to: "帮我找一些意面食谱")
3. 处理工具错误
swift
do {
    let answer = try await session.respond(to: "寻找番茄汤的食谱。")
} catch let error as LanguageModelSession.ToolCallError {
    print(error.tool.name)
    if case .databaseIsEmpty = error.underlyingError as? RecipeSearchToolError {
        // 处理特定的工具错误
    }
}

核心模式 —— 快照流式传输

使用 PartiallyGenerated 类型为实时 UI 流式传输结构化响应:

swift
@Generable
struct TripIdeas {
    @Guide(description: "未来旅行的想法")
    var ideas: [String]
}

let stream = session.streamResponse(
    to: "有哪些令人兴奋的旅行点子?",
    generating: TripIdeas.self
)

for try await partial in stream {
    // partial: TripIdeas.PartiallyGenerated (所有属性均为 Optional)
    print(partial)
}
SwiftUI 集成
swift
@State private var partialResult: TripIdeas.PartiallyGenerated?
@State private var errorMessage: String?

var body: some View {
    List {
        ForEach(partialResult?.ideas ?? [], id: \.self) { idea in
            Text(idea)
        }
    }
    .overlay {
        if let errorMessage { Text(errorMessage).foregroundStyle(.red) }
    }
    .task {
        do {
            let stream = session.streamResponse(to: prompt, generating: TripIdeas.self)
            for try await partial in stream {
                partialResult = partial
            }
        } catch {
            errorMessage = error.localizedDescription
        }
    }
}

关键设计决策

决策原理
设备端执行隐私性 —— 数据不离开设备;支持离线工作
4,096 Token 限制设备端模型约束;跨会话分块处理大数据
快照流式传输(而非增量)对结构化输出友好;每个快照都是一个完整的局部状态
@Generable 宏结构化生成的编译时安全性;自动生成 PartiallyGenerated 类型
每个会话单次请求isResponding 防止并发请求;如果需要,创建多个会话
response.content(而非 .output)正确的 API —— 始终通过 .content 属性访问结果

最佳实践

  • 始终在创建会话前检查 model.availability —— 处理所有不可用的情况
  • 使用 instructions 来引导模型行为 —— 它们的优先级高于提示词(Prompts)
  • 在发送新请求前检查 isResponding —— 会话每次处理一个请求
  • 访问 response.content 获取结果 —— 而非 .output
  • 将大型输入分成块 —— 4,096 Token 限制适用于指令 + 提示词 + 输出的总和
  • 使用 @Generable 进行结构化输出 —— 比解析原始字符串具有更强的保证
  • 使用 GenerationOptions(temperature:) 来调整创意程度(越高越有创意)
  • 使用 Instruments 进行监控 —— 使用 Xcode Instruments 分析请求性能

应避免的反模式

  • 在未先检查 model.availability 的情况下创建会话
  • 发送超过 4,096 Token 上下文窗口的输入
  • 尝试在单个会话上进行并发请求
  • 使用 .output 而非 .content 来访问响应数据
  • 在 @Generable 结构化输出可行时解析原始字符串响应
  • 在单个提示词中构建复杂的、多步骤的逻辑 —— 请拆分为多个针对性强的提示词
  • 假设模型始终可用 —— 设备资格和设置各不相同

何时使用

  • 针对隐私敏感型应用的设备端文本生成
  • 从用户输入中提取结构化数据(表单、自然语言命令)
  • 必须离线工作的 AI 辅助功能
  • 逐步显示生成内容的流式 UI
  • 通过工具调用(搜索、计算、查找)执行特定领域的 AI 操作

© xu-xiang, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

Just SKILL.md in skills/foundation-models-on-device of xu-xiang/everything-claude-code-zh.

Open the folder on GitHubat commit dfbf946

Compare with similar skills

Foundation Models On Device next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Foundation Models On Device compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Foundation Models On Device this skillxu-xiang/everything-claude-code-zh2k—~1.4kAutomated safety check: PassMIT
Hig Project Contextraintree-technology/hig-doctor1435 repos~1.2kAutomated safety check: PassMIT
Hig Components Contentraintree-technology/hig-doctor1435 repos~1.3kAutomated safety check: PassMIT
Discover iOS KeysPoomSmart/MGKeys238—~1.4kAutomated safety check: PassMIT
Argent Metro Debuggerbbplayer-app/BBPlayer1.2k—~3.4kAutomated safety check: PassMIT
iOS Simulator Skilln0an/VivaDicta1301 repos~2.5kAutomated safety check: PassMIT

Similar skills

  • Hig Project Context

    raintree-technology/hig-doctor

    Create or update a shared Apple design context document that other HIG skills use to tailor guidance.

    143 GitHub starsUsed in 5 repos~1.2k tokens
    MobileAuto-check passed
  • Hig Components Content

    raintree-technology/hig-doctor

    Apple Human Interface Guidelines for content display components.

    143 GitHub starsUsed in 5 repos~1.3k tokens
    MobileAuto-check passed
  • Discover iOS Keys

    PoomSmart/MGKeys

    Discover and map new MobileGestalt keys for a new iOS version in MGKeys.

    238 GitHub stars~1.4k tokensUpdated 22 days ago
    MobileAuto-check passed
  • Argent Metro Debugger

    bbplayer-app/BBPlayer

    Debug a JS runtime via CDP using argent debugger tools. An agent skill from bbplayer-app/BBPlayer.

    1.2k GitHub stars~3.4k tokensUpdated 3 days ago
    MobileAuto-check passed
  • iOS Simulator Skill

    n0an/VivaDicta

    21 production-ready scripts for iOS app testing, building, and automation.

    130 GitHub starsUsed in 1 repo~2.5k tokens
    MobileAuto-check passed
  • Theming

    Code-with-Beto/skills

    Scaffold a unified, cross-platform color theme system into an Expo Router app.

    140 GitHub stars~2.5k tokensUpdated 3 mo ago
    MobileAuto-check passed

More from xu-xiang/everything-claude-code-zh

All 78 skills in this repo
  • Configure Ecc

    xu-xiang/everything-claude-code-zh

    Everything Claude Code 的交互式安装程序 — 引导用户选择并安装技能和规则到用户级或项目级目录,验证路径,并可选择优化已安装文件。

    2k GitHub starsUsed in 1 repo~2.1k tokens
    Auto-check passed
  • Continuous Learning V2

    xu-xiang/everything-claude-code-zh

    基于本能(Instinct)的学习系统,通过钩子(hooks)观察会话,创建带有置信度评分的原子本能,并将其演化为技能(Skills)、命令(Commands)或智能体(Agents)。v2.1 版本增加了项目作用域(project-scoped)的本能,以防止跨项目污染。

    2k GitHub stars~2.1k tokensUpdated 7 mo ago
    Auto-check passed
  • API Design

    xu-xiang/everything-claude-code-zh

    生产级 API 的 REST API 设计模式,包括资源命名、状态码、分页、过滤、错误响应、版本控制和速率限制. An agent skill from xu-xiang/everything-claude-code-zh.

    2k GitHub stars~2.7k tokensUpdated 7 mo ago
    Auto-check passed
  • Backend Patterns

    xu-xiang/everything-claude-code-zh

    后端架构模式、API 设计、数据库优化以及适用于 Node.js、Express 和 Next.js API 路由的服务端最佳实践。

    2k GitHub stars~3.2k tokensUpdated 7 mo ago
    Auto-check passed
  • Backend Patterns

    xu-xiang/everything-claude-code-zh

    后端架构模式、API 设计、数据库优化以及 Node.js、Express 和 Next.js API 路由的服务端最佳实践。

    2k GitHub stars~3.1k tokensUpdated 7 mo ago
    Auto-check passed
  • Backend Patterns

    xu-xiang/everything-claude-code-zh

    后端架构模式、API 设计、数据库优化以及针对 Node.js、Express 和 Next.js API 路由的服务端最佳实践。

    2k GitHub stars~3.2k tokensUpdated 7 mo ago
    Auto-check passed

Works with

Categories

Questions about Foundation Models On Device

What does Foundation Models On Device do?

Apple FoundationModels 框架,用于设备端大语言模型(LLM)—— iOS 26+ 中的文本生成、配合 @Generable 的引导式生成、工具调用以及快照流式传输。. Foundation Models On Device is an agent skill from xu-xiang/everything-claude-code-zh.

When should I use Foundation Models On Device?

Foundation Models On Device fits situations like: mobile work in your project.

How do I install Foundation Models On Device in Claude Code?

Run `npx skills add xu-xiang/everything-claude-code-zh --skill foundation-models-on-device -a claude-code`. Or copy the skill folder (skills/foundation-models-on-device in xu-xiang/everything-claude-code-zh) into .claude/skills/foundation-models-on-device in your project. Claude Code loads it when a task matches its description.

How do I install Foundation Models On Device in Codex?

Run `npx skills add xu-xiang/everything-claude-code-zh --skill foundation-models-on-device -a codex`. Or copy the skill folder (skills/foundation-models-on-device in xu-xiang/everything-claude-code-zh) into .agents/skills/foundation-models-on-device in your project. Codex loads it when a task matches its description.

Can I use Foundation Models On Device in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add xu-xiang/everything-claude-code-zh --skill foundation-models-on-device -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/foundation-models-on-device, .gemini/skills/foundation-models-on-device, .github/skills/foundation-models-on-device and .opencode/skills/foundation-models-on-device in your project.

What does Foundation Models On Device need to run?

SKILL.md names no scripts, command-line tools or credentials: Foundation Models On Device is instructions for the agent only.

Does Foundation Models On Device access the network?

SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.

Is Foundation Models On Device safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Foundation Models On Device use?

Foundation Models On Device is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Foundation Models On Device use?

About 1.4k tokens (SKILL.md is roughly 5.5k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Foundation Models On Device?

Skills that share tags, products or a category with Foundation Models On Device: Hig Project Context (raintree-technology/hig-doctor, 143 stars), Hig Components Content (raintree-technology/hig-doctor, 143 stars), Discover iOS Keys (PoomSmart/MGKeys, 238 stars) and Argent Metro Debugger (bbplayer-app/BBPlayer, 1.2k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Foundation Models On Device?

xu-xiang (a GitHub user) maintains it in xu-xiang/everything-claude-code-zh, which has 1,978 GitHub stars. The repository holds 78 skills in this directory. The repository was last updated on March 5, 2026.

Source: xu-xiang/everything-claude-code-zh on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.