從 3 個月迭代到完整開源:Open Minis 的進化之路

2026 年 7 月,Open Minis 創辦人 Ethan Wang 在 X 上宣布完整開源 iOS 和 Android 程式碼。這條推文迅速引爆開發者社群——"possibly the best Agent app on your phone",經過 3-4 個月的密集迭代,這款應用已服務數萬使用者的日常工作流程。

截至 2026 年 8 月,Open Minis 在 GitHub 上已收穫 3,900+ Star,457 Fork,成為手機端 AI Agent 領域最受關注的開源專案。MacStories 的 Federico Viticci 評價其為"the most impressive indie app I've seen in a while",知乎評測稱其「在很大程度上實現甚至局部超越了 Apple Intelligence」。

Open Minis 不是又一個 ChatGPT 套殼應用。它的核心差異化在於:給 AI 模型一台真正的電腦——一個執行在手機上的完整 Linux 環境,加上瀏覽器自動化、裝置深度整合和可擴展的技能系統。

為什麼端側 AI Agent 是下一個戰場

雲端 Agent 的天花板

當前主流的 AI Agent 框架——無論是 DeerFlow、CrewAI 還是 AutoGen——都執行在雲端伺服器上。這種架構有幾個根本性限制:

  1. 隱私邊界:使用者的健康資料、行事曆、通訊錄、相片必須上傳到雲端才能被 Agent 處理
  2. 延遲問題:每次互動都需要網路往返,無法做到即時回應
  3. 離線不可用:飛機上、捷運裡、訊號差的區域,Agent 完全癱瘓
  4. 成本線性增長:每個使用者的每次呼叫都消耗雲端算力,規模越大成本越高

端側 Agent 的結構性優勢

Open Minis 代表的端側 AI 架構解決了上述所有問題:

維度 雲端 Agent Open Minis(端側)
資料隱私 資料離開裝置 全部本機處理
延遲 100-500ms 網路往返 <10ms 本機呼叫
離線能力 完全不可用 核心功能可用
裝置整合 需額外 API 對接 原生深度整合
成本模型 按 token 線性增長 一次性開發,邊際成本趨零
系統權限 受限於 API 範圍 完整裝置能力

這不是說雲端 Agent 沒有價值——複雜的推理任務、大規模資料處理仍然需要雲端算力。但對於日常個人助理場景,端側 Agent 在隱私、延遲和使用者體驗上有結構性優勢。

核心架構解析:iOS 與 Android 雙端實現

整體架構

Open Minis 的程式碼庫結構清晰:

src/ios/          iOS 應用(Swift / SwiftUI)+ Share Extension + Widget + File Provider
src/android/      Android 應用(Kotlin / Compose)+ JNI 原生程式碼
src/shared/       雙平台共享資源
deps/             原生依賴建構腳本和供應商來源
docs/specs/       架構與介面規範
scripts/          根檔案系統準備和開發者工具

專案採用 GPLv3 授權條款,因為連結了 GPLv3 的 iSH(iOS)和 GPLv2 的 PRoot(Android)。

核心創新:裝置內 Linux 沙箱

Open Minis 最核心的技術突破是在手機內執行一個完整的 Linux 環境。這不僅是簡單的終端模擬器,而是一個功能完整的沙箱作業系統。

iOS 端:基於 iSH 專案的 ARM64 fork。iSH 實現了 Linux 使用者態模擬,在 iOS 上執行 Alpine Linux。Agent 可以安裝軟體包、執行腳本、操作真實檔案。

Android 端:基於 PRoot 的使用者空間 chroot。PRoot 無需 root 權限即可建立隔離的 Linux 環境,同樣執行 Alpine Linux。

建構過程相當複雜——首次建構需要 30-60 分鐘,因為所有原生依賴都從來源編譯:

# iOS 建構順序很重要:FFmpeg 連結 LAME
./deps/build_lame.sh          # LAME 3.100 靜態庫
./deps/build_ffmpeg.sh        # FFmpeg 6.1.2 framework bundles
./deps/build_ish.sh           # iSH 核心庫
./deps/prepare_alpine_rootfs.sh   # Alpine aarch64 minirootfs

# Android 需要 NDK r28+
./deps/build_proot.sh && ./scripts/prepare_android_sandbox.sh

技能系統(Skills)

Open Minis 的技能系統是其可擴展性的核心。一個 Skill 是一個包含 SKILL.md 檔案的資料夾——包含指令、可選腳本、參考資料和資產。

關鍵設計決策:Open Minis 不要求專門為它編寫技能。為 Claude Code、Codex、OpenClaw 或 Hermes Agent 建構的技能通常可以直接在 Minis 中執行。針對 Minis 工具適配的技能執行得更好——因為它們可以直接存取 Linux shell、裝置整合和原生卸載。

# 範例 SKILL.md 結構
---
name: health-analyzer
description: 分析健康資料並生成報告
triggers: [健康, 運動, 睡眠]
---

## 指令
當使用者詢問健康資料時:
1. 透過 HealthKit/Google Fit API 取得資料
2. 在 Linux 沙箱中執行分析腳本
3. 生成 Markdown 格式報告

## 腳本
- scripts/analyze.py: 資料分析主腳本
- scripts/export_health.sh: 資料匯出工具

技能儲存庫 OpenMinis/MinisSkills 已收錄 TTS、搜尋、媒體下載、健康分析、雲端 API 等多種技能。

裝置整合層

Open Minis 將裝置能力暴露為 Agent 可呼叫的工具:

整合項目 iOS 實現 Android 實現
健康資料 HealthKit Google Fit / Health Connect
行事曆 EventKit Android Calendar Provider
提醒事項 Reminders AlarmManager
通訊錄 Contacts framework ContactsContract
智慧家居 HomeKit 待實現
藍牙 CoreBluetooth BluetoothAdapter
剪貼簿 UIPasteboard ClipboardManager
捷徑 Shortcuts app 待實現

這種深度整合意味著 Agent 不只是聊天——它可以真正操作使用者的裝置。拍照辨識食物並記錄營養資料、從 Telegram 群組提取任務並寫入提醒事項、將網頁內容整理到行事曆事件。

原生卸載(Native Offloads)

重計算或平台特定的工作被卸載到原生程式碼,而不是在沙箱內執行。這包括:

  • 媒體處理:FFmpeg 和 LAME 編譯為原生 framework,MP3 編碼、影片轉碼直接在原生層完成
  • 分詞:cppjieba 中文分詞庫編譯為原生庫
  • 數學渲染:KaTeX 原生渲染
  • 語音辨識:RealTimeCutVADLibrary 實現即時語音活動偵測

這種混合架構讓 Open Minis 在保持沙箱安全性的同時,不犧牲效能關鍵路徑的效率。

端側 AI 的技術挑戰與解決方案

挑戰 1:模型推理的算力限制

手機端無法執行 70B 參數的大模型。Open Minis 的解決方案是 Bring Your Own Model(BYOM)

  • 支援 Claude、GPT、Gemini 等主流提供商
  • 使用者自帶 API Key 或帳號登入
  • 推理在雲端完成,但資料透過裝置本機處理

這不是純粹的"on-device inference",而是"on-device orchestration"——Agent 的編排邏輯在本機,推理可以借用雲端算力。這種務實的架構平衡了能力和可行性。

挑戰 2:記憶體與儲存管理

Linux 沙箱需要額外的記憶體和儲存空間。Open Minis 的策略:

  • Alpine Linux minirootfs:最小化根檔案系統,只包含必要工具
  • 按需安裝:Agent 可以在沙箱內 apk add 安裝所需軟體包
  • 工作空間隔離:不同任務使用獨立的工作空間,透過 minis://workspace/ 定址

挑戰 3:電池與熱管理

持續的 Agent 活動會消耗電池並產生熱量。Open Minis 透過以下方式緩解:

  • 原生卸載:重計算走原生程式碼,比沙箱內執行更高效
  • 背景限制:iOS 和 Android 的系統限制自然防止過度背景活動
  • 使用者控制:使用者可以設定 Agent 的活動權限和觸發條件

挑戰 4:安全沙箱逃逸

在裝置上執行完整 Linux 環境帶來安全風險。Open Minis 的多層防禦:

  • 使用者態模擬:iSH 和 PRoot 都不需要核心權限,無法直接存取硬體
  • 檔案系統隔離:沙箱的檔案系統與主系統隔離
  • 網路權限控制:Agent 的網路存取受應用權限約束
  • 開源審計:完整程式碼開源,安全社群可以審查

與雲端 Agent 的比較

特性 DeerFlow CrewAI Open Minis
執行環境 雲端伺服器 雲端伺服器 手機裝置
程式語言 Python Python Swift/Kotlin
多 Agent 協作 ✅ 支援 ✅ 核心特性 ❌ 單 Agent
裝置整合 ❌ 無 ❌ 無 ✅ 深度整合
離線能力 ❌ 不可用 ❌ 不可用 ✅ 核心功能可用
隱私保護 ❌ 資料上雲 ❌ 資料上雲 ✅ 本機處理
複雜推理 ✅ 強 ✅ 強 ⚠️ 依賴外部模型
部署複雜度 中等 中等 高(需編譯原生依賴)

Open Minis 不是要取代雲端 Agent 框架,而是在個人助理場景下提供更優解。對於需要多 Agent 協作、大規模資料處理的場景,DeerFlow 或 CrewAI 仍是更好的選擇。

開源程式碼結構深度分析

iOS 端架構

src/ios/
├── Minis.xcodeproj/          # Xcode 專案配置
├── Minis/                    # 主應用
│   ├── App/                  # 應用入口和生命週期
│   ├── Views/                # SwiftUI 視圖
│   ├── Models/               # 資料模型
│   ├── Services/             # 業務邏輯服務
│   ├── Agent/                # Agent 核心邏輯
│   │   ├── Runtime/          # 執行時環境
│   │   ├── Tools/            # 工具定義
│   │   └── Skills/           # 技能載入器
│   └── Integrations/         # 裝置整合
│       ├── HealthKit/
│       ├── Calendar/
│       └── Shortcuts/
├── MinisShare/               # Share Extension
├── AgentWidgetExtension/     # Widget
└── MinisFileProvider/        # File Provider

iOS 端使用 Swift 6.0 和 SwiftUI,目標版本 iOS 26.2。專案包含多個 target:主應用、Share Extension(用於接收其他應用的分享)、Widget 和 File Provider。

Android 端架構

src/android/
├── app/                      # 主應用模組
│   ├── src/main/
│   │   ├── java/             # Kotlin 程式碼
│   │   │   └── app/openminis/
│   │   │       ├── ui/       # Compose UI
│   │   │       ├── agent/    # Agent 核心
│   │   │       ├── sandbox/  # PRoot 沙箱管理
│   │   │       └── tools/    # 工具和裝置整合
│   │   └── jni/              # JNI 原生程式碼
│   └── build.gradle.kts
└── buildSrc/                 # 建構配置

Android 端使用 Kotlin 和 Jetpack Compose,JDK 17。JNI 層處理 PRoot 沙箱的原生互動。

跨平台共享

src/shared/ 包含雙平台共享的資源,但核心邏輯是各平台獨立實現的。這種「共享資源、獨立邏輯」的策略比跨平台框架(如 React Native 或 Flutter)更適合需要深度系統整合的應用。

開發者如何基於 Open Minis 建構自己的手機 Agent

快速開始

# 複製儲存庫(包含子模組)
git clone --recurse-submodules https://github.com/OpenMinis/OpenMinis.git
cd OpenMinis

# iOS 建構
./deps/build_lame.sh && ./deps/build_ffmpeg.sh
./deps/build_ish.sh && ./deps/prepare_alpine_rootfs.sh
open src/ios/Minis.xcodeproj

# Android 建構
./deps/build_proot.sh && ./scripts/prepare_android_sandbox.sh
cd src/android && ./gradlew :app:assembleDebug

自訂技能開發

  1. 建立技能資料夾,包含 SKILL.md
  2. 定義觸發條件和指令
  3. 可選添加腳本和參考資料
  4. 提交到 MinisSkills 儲存庫

建構設定

首次建構前需要複製配置範本:

cp src/ios/Configs/ProviderCustomization.xcconfig.example \
   src/ios/Configs/ProviderCustomization.xcconfig

cp src/android/app/provider-customization.properties.example \
   src/android/app/provider-customization.properties

留空即可編譯執行——API Key 方式的登入不需要任何自訂配置。

實際使用場景和使用者體驗

根據社群回饋和官方文件,Open Minis 的高頻使用場景:

營養追蹤:拍照辨識食物,估算卡路里和巨量營養素,自動寫入 Apple Health。

晨間簡報:Shortcuts 觸發 Minis 取得 X 時間軸,生成摘要,合成語音,作為鬧鐘播放。

任務提取:從 Telegram 群組拉取訊息,提取 bug 和行動項目,去重後寫入 Apple Reminders。

筆記管理:掛載 Obsidian vault,研究、清理並寫回 Markdown 筆記。

行事曆事件:透過 iOS Share Sheet 分享任何內容到 Minis,自動建立包含時間和地點的行事曆事件。

使用者評價普遍積極——「這可能是近幾年用過的最好的 app,每天都會用它來探索新的可能」,「很棒的產品!體驗絲滑!」。

侷限性和未來方向

當前侷限

  1. 不接受 PR:儲存庫是私有開發樹的鏡像,不接受 Pull Request,只能透過 Issue 回饋
  2. 首次建構複雜:30-60 分鐘的編譯時間,多個原生依賴需要按順序建構
  3. 非純端側推理:仍依賴雲端模型 API,不是真正的 on-device inference
  4. 平台差異:部分功能(如 HomeKit、捷徑)僅 iOS 支援,Android 端功能較少
  5. GPLv3 授權條款:對商業使用有限制

未來方向

  • 更多原生卸載:將更多重計算遷移到原生程式碼
  • Android 功能補齊:HomeKit 對應物、捷徑替代方案
  • 技能生態擴展:更多社群貢獻的技能
  • 多 Agent 協作:可能引入類似 DeerFlow 的多 Agent 架構
  • 端側小模型支援:整合 Phi-3、Gemma 等小型本機模型

總結評價

Open Minis 代表了手機端 AI Agent 的成熟架構。它不僅是簡單的模型包裝器,而是一個完整的端側計算平台——給 AI 一台真正的電腦,讓它能操作檔案系統、瀏覽網頁、整合裝置能力。

優勢: - 真正的端側 Agent,隱私和延遲優勢明顯 - 深度裝置整合,超越聊天機器人的範疇 - 可擴展的技能系統,相容現有 Agent 生態 - 完整開源,社群可審計和貢獻

不足: - 建構複雜度高,新手門檻較陡 - 仍依賴雲端模型,不是純端側推理 - 不接受 PR 的開源模式有些非常規

適合誰: - 重視隱私的個人 AI 助理使用者 - 想深度定製手機 Agent 的開發者 - 對端側 AI 架構感興趣的研究者

Open Minis 證明了一件事:在 AI 時代,技術設計和程式碼不再是產品優勢所在。最好的 Agent 來自於與使用者的緊密回饋迴路——他們的期望和報告才是收斂於產品的力量。 這也是為什麼團隊選擇完整開源——讓社群共同塑造產品的未來。


參考連結: - GitHub 儲存庫:https://github.com/OpenMinis/OpenMinis - 官方網站:https://openminis.app - 技能儲存庫:https://github.com/OpenMinis/MinisSkills - AwesomeMinis:https://github.com/OpenMinis/AwesomeMinis