Skip to content
EN

Familiar,给 iPhone 的原生个人 AI 工作台

Familiar 是我为 iPhone 开发的个人 AI 工作台。它以聊天为主要入口,让模型通过原生工具(日历、提醒、文档、地图、照片等)在设备上完成真实任务,把 iPhone 的系统能力转成一个可组合、可治理的执行面。

项目采用 BYOK 模式。用户使用自己的模型 API Key,模型请求从设备直接发送到所选 Provider,会话、附件和工具记录都保存在本机,不经过任何 Familiar 服务器。App 没有账户、没有订阅,也没有托管额度。

Familiar 图标

界面预览

聊天侧边栏
设置权限
存储工具

聊天 · 侧边栏 · 设置 · 权限 · 存储 · 工具

设计取舍

Familiar 从一开始就做了几个相反的取舍,来避开当时主流 AI App 的默认做法。

  • 不用 Linux 执行环境。Familiar 不引入 iSH 或 Linux 沙箱,执行面就是 iOS 原生框架本身。
  • 不依赖 Apple Intelligence。功能建立在 EventKit、Vision、MapKit、PDFKit、Photos 和 Foundation 这些公开系统能力上。
  • 坚持单 Agent。不从复杂多 Agent 编排开始,而是先做好一个能规划、能调用工具、能执行的主 Agent,用清晰的 Tools 扩展能力。
  • 本地优先。会话历史、附件和工具记录留在本机,文档在本机转换后才把转换后的文本发给模型。

这套取舍让产品的定位很清楚。Familiar 要做的是把手机本来就有的能力开放给 Agent。

单 Agent 与工具抽象

Familiar 的核心是一个单 Agent Runtime,它只认识三种东西,ToolDefinitionToolCallToolResult。Agent 循环有界运行,限制迭代次数、工具结果长度和上下文大小;重复的工具调用会被拒绝,一次写入在一次运行内只能提交成功一次。

Tool 是最核心的抽象。Calendar、Vision、PDF、Maps 在架构上都是注册在 Capability Registry 里的 Tool,每个工具小而正交、可组合。当前实现注册了八个工具,包括两个设备信息、两个只读 Web(搜索与抓取)和四个 EventKit 工具。新增 Apple Framework 或远程 MCP Server,主要通过 Adapter 接入,而不是改内核。

运行时用事件驱动界面。时间线直接渲染 Agent 事件(模型思考、工具进度、审批、成功与失败),而不是每个工具自己造一套 UI。

权限模型

Familiar 的安全边界由代码强制,不靠提示词约束。当前授权行为分五级。

操作默认行为
读取且低风险自动执行
可逆写入结构化确认,成功后提供进程内一次性 Undo
推断式写入结构化确认
敏感读取权限或策略
破坏性/财务类强确认

EventKit 的写入必须逐次展示目标日历、标题、时间、备注等字段,用户确认后才执行。模型不能用一句话绕过健康权限、删除确认或敏感数据策略。系统入口(Share Extension、App Intent、Deep Link)永远不会获得写入授权。

本地文档与语音

文档在进入模型前都在本机处理。Office、OpenDocument、RTF、EPUB、CSV 和 PDF 先复制到 App 私有目录,再由内置的 AnyDoc 引擎转换为 Markdown;扫描 PDF 在缺少文本层时用 Vision OCR 补识别。只有转换后的文本和文件名进入模型请求,原始字节、本地路径和 security-scoped URL 从不发送给 Provider。

图片处理也是 Tool,而不是固定管线,由 Agent 根据任务决定走 Vision OCR、条码识别还是多模态模型。

语音输入使用 Apple Speech 和 AVAudioEngine 生成可编辑的文字草稿,不保存原始录音。

系统入口

Familiar 从多个系统入口进入同一套草稿和 Runtime。Share Extension 把文本、网页链接或文档收进 App Group 收件箱;类型化 Deep Link 只恢复或预填上下文;Siri 与快捷指令提供 Ask FamiliarProcess with FamiliarOpen Familiar;受保护的本地 Spotlight 索引可以重新打开历史会话;桌面还有启动 Widget 和控制中心的 Control。

回答渲染使用内置的本地 WebKit,支持 Markdown、代码高亮、表格、引用、Mermaid、KaTeX、代码复制和安全外链。

Provider 支持

模型层通过简单的 Provider 抽象接入多家服务,每个 Provider 拥有独立的 Keychain 存储、端点和模型目录策略。

协议Providers
OpenAI ChatOpenAI、DeepSeek、Groq、xAI、OpenRouter、Qwen、Kimi、GLM、MiniMax、SiliconFlow、自定义 OpenAI-compatible
Anthropic MessagesAnthropic
Gemini generateContentGemini

技术架构

Familiar 正在向六层架构演进,包括系统入口层、Agent Runtime、Capability Registry、执行策略层、原生层和状态层。当前实现覆盖系统入口、有界顺序工具循环、EventKit 结构化审批、只读 Web、项目指令与文档资源、不可变输入上下文记录和 Run/Step 摘要持久化。

范围技术
UISwiftUI
本地持久化SwiftData
网络URLSession、SSE 流式
密钥iOS Keychain
富文本内置 WebKit,打包 Markdown、Mermaid 与 KaTeX 资源
原生工具EventKit
文档AnyDoc(Rust core)、PDFKit、Vision
语音输入Speech、AVFoundation
照片PhotosPicker
官网Vue 3、Vite、GitHub Pages

明确的边界

Familiar 明确不做当前阶段不必要的东西,包括 iPad 支持、账户系统、订阅或托管额度、Linux 执行环境、shell 或任意代码执行、多 Agent 编排、复杂 RAG 向量库、MCP Server(客户端可能后续加入),也不依赖 Core ML LLM 或 Apple Intelligence。Project 共享文档资源已经落地,Artifact、可写 Workspace 和可恢复执行是下一阶段能力。

链接

评论