关于 foundation-models
用于 Apple Foundation Models 框架的开发技能,帮助在设备端完成特定文本处理任务。内容包括摘要、提取、分类和生成,无需网络连接。
主要功能
- 01设备端文本处理
- 02摘要与信息提取
- 03分类与内容标记
- 04结构化输出指导
- 05流式生成指导
适用场景
- 01总结用户提供的内容
- 02从文本中提取关键信息
- 03对内容进行分类或标记
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ johnrogers/ claude-swift-engineering --skill foundation-models安装后在 Claude Code 中输入/foundation-models确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
references/getting-started.mdstreaming.mdstructured-output.mdtool-calling.mdtroubleshooting.md详细介绍
Foundation Models
Apple 的设备端 AI 框架,可访问一个拥有 30 亿参数的语言模型,用于摘要、信息提取、分类和内容生成。完全在设备上运行,无需网络。
概述
Foundation Models 可直接在设备上进行智能文本处理,无需与服务器往返通信、共享用户数据或依赖网络。核心原则:利用设备端 AI 执行特定、范围明确的任务(而非通用知识问答)。
参考资料加载指南
只要有一丝可能需要参考资料中的内容,就务必加载参考文件。 宁可掌握更多上下文,也不要错过模式或犯错。
| 参考资料 | 加载时机 |
|---|---|
| 入门指南 | 设置 LanguageModelSession、检查可用性、编写基本提示词 |
| 结构化输出 | 使用 @Generable 获取类型安全的响应、使用 @Guide 约束 |
| 工具调用 | 通过 Tool 协议集成外部数据(天气、联系人、MapKit) |
| 流式传输 | 使用 AsyncSequence 逐步更新 UI、使用 PartiallyGenerated 类型 |
| 故障排除 | 上下文溢出、护栏、错误、反模式 |
核心工作流
- 使用
SystemLanguageModel.default.availability检查可用性 - 创建可选带有指令的
LanguageModelSession - 选择输出类型:纯 String 或 @Generable 结构体
- 对较长的生成(>1 秒)使用流式传输
- 处理错误:上下文溢出、护栏、不支持的语言
模型能力
| 使用场景 | Foundation Models? | 替代方案 |
|---|---|---|
| 摘要 | 是 | - |
| 信息提取(关键信息) | 是 | - |
| 分类 | 是 | - |
| 内容标记 | 是(内置适配器) | - |
| 世界知识 | 否 | ChatGPT、Claude、Gemini |
| 复杂推理 | 否 | 服务端大模型 |
平台要求
- iOS 26+、macOS 26+、iPadOS 26+、visionOS 26+
- 支持 Apple Intelligence 的设备(iPhone 15 Pro+、M1+ iPad/Mac)
- 用户已选择启用 Apple Intelligence
常见错误
-
将 Foundation Models 用于世界知识 — 这个 30 亿参数的模型仅针对设备端任务训练。它不了解时事、具体事实或“X 是谁”。这类需求请使用 ChatGPT/Claude。提示词应限于:总结用户自己的内容、提取信息、分类文本。
-
阻塞主线程 — LanguageModelSession 调用必须在后台线程或异步上下文中运行。阻塞主线程会锁定 UI。务必使用
Task { }或后台队列。 -
忽略上下文溢出 — 模型的上下文有限。如果用户粘贴一份 50KB 的文档,调用可能会静默失败或截断内容。检查输入长度,并主动修剪或截断。
-
忘记检查可用性 — 并非所有设备都支持 Foundation Models。使用前请检查
SystemLanguageModel.default.availability。必须实现优雅降级。 -
忽略护栏 — 模型不会回答有害问题。不要试图绕过限制,而应设计符合安全准则的提示词。通常只需改写请求即可。