亲友团AI · 去中心化 · 端到端加密 · 本地智能 · 插件丰富
让你的数据,真正属于你。

写在前面的话:

你的手机,还是你的吗?

曾经,QQ、微信、钉钉……让我们和家人、同事、朋友靠得更近。

现在呢?

每天睁开眼,几十个群聊红点——工作群、家长群、购物群、砍价群……你不敢退,也不敢静音,生怕错过重要消息。可翻看半天,99%都是广告、拼团、投票、养生谣言。

你精心拍的家庭照片,想和爸妈分享,却被压缩成一堆模糊的像素。发个大文件,提示“超过100M无法发送”。想找一张去年的合影,聊天记录早被自动清理。

更可怕的是,你的聊天记录、通讯录、位置信息,都在别人的服务器上。你说了什么、买了什么、和谁联系——这些本该属于你的隐私,却成了别人眼里的数据金矿

朋友圈里,十条有五条是广告。你屏蔽了一个,又冒出三个。

这些看似带来便利的APP,早已从一个工具,变成了一个沉重的包袱


是时候,把通讯工具变回工具了。

为此,作者设计一个基于本地智能体的全新APP,亲友团AI

它只有一个简单的目标:让你和真正重要的人,干干净净地联系。

没有广告,没有营销号

亲友团AI里没有朋友圈,没有公众号,没有视频号。只有你的家人、亲友、同事——那些你主动添加、真实存在的人。你不会收到任何陌生人消息,也不会看到任何一条广告。

你的数据,只属于你

我们没有一个中心服务器。你的所有聊天记录、照片、文件,都只存在你的手机里。点对点加密传输,连我们都看不到,更别说卖给广告商。你和家人的每一次通话,都是真正的私密。

真实身份,无需备注

微信加好友后,你还要手动改备注、输电话、填公司。在亲友团AI,扫一扫二维码,对方真实姓名和手机号自动同步到你通讯录。谁是谁,一目了然。再也不怕“换了手机联系人全没了”。

想用的功能,自己装

亲友团AI只保留最核心的通讯能力。如果你想买票、比价、订酒店,去插件市场下载就行——就像给手机装App一样。用完就关,不占内存,也不后台偷跑。所有插件都在本地沙箱运行,安全可控。

即使没网,也能联系

在野外、地下室、地铁里,只要你们在同一局域网,或者蓝牙范围内,就能发消息、传文件。亲友团AI会帮你自动建立连接。


亲友团AI,不是一个要取代谁的巨无霸。

它只是想还你一个干净的、私密的、真正属于你和亲友的空间。

如果你也厌倦了每天在广告和垃圾信息里翻找家人的消息,如果你还在乎那点珍贵的隐私,如果你想让通讯工具变回工具——

亲友团AI。
从今天起,只和重要的人,说重要的话。

————————

以下是完整的详细技术方案和源代码(任何人都可以免费使用)

亲友团AI 详细技术方案

1. 引言

1.1 背景与目标

亲友团AI是一款完全去中心化、隐私优先、本地智能的私密社群通讯工具。它旨在替代传统即时通讯软件(如微信)在家庭、亲友、同事等小范围群体中的使用,消除中心服务器带来的隐私泄露风险、广告骚扰、功能冗余等问题。核心目标包括:

  • 零信任架构:无中心服务器,所有数据仅存储于用户设备。

  • 真实身份社交:使用真实姓名和手机号作为唯一标识,加好友自动同步信息,无需手动备注。

  • 模块化功能:基础APP仅包含通讯与核心智能,扩展功能通过插件市场按需安装。

  • 端到端安全:所有通信加密,身份基于公钥体系,防冒充防篡改。

  • 本地智能体:端侧AI理解用户指令,执行购票、购物、搜索等任务,保护隐私。

1.2 设计原则

  • 去中心化:不依赖任何中心服务器,使用P2P网络实现所有功能。

  • 隐私计算:用户数据本地处理,不上传云端;AI推理在端侧完成。

  • 模块化:核心与插件解耦,插件运行于沙箱,保证系统安全。

  • 易用性:扫码加好友、自动同步信息,降低使用门槛。


2. 总体架构

2.1 分层架构图

                        表现层(UI)                              
│  ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ │
│  │ 聊天界面     │ │ 联系人列表  │ │ 插件市场UI  │ │ 设置界面     │ │
│  └─────────────┘ └─────────────┘ └─────────────┘ └─────────────┘ │
├─────────────────────────────────────────────────────────────────┤
│                        应用逻辑层                                │
│  ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ │
│  │ 联系人管理  │ │ 消息管理    │ │ 群组管理    │ │ 状态同步    │ │
│  └─────────────┘ └─────────────┘ └─────────────┘ └─────────────┘ │
│  ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ │
│  │ 本地智能体  │ │ 插件管理器  │ │ 搜索服务    │ │ 自动化规则  │ │
│  └─────────────┘ └─────────────┘ └─────────────┘ └─────────────┘ │
├─────────────────────────────────────────────────────────────────┤
│                        核心服务层                                │
│  ┌─────────────────────┐ ┌─────────────────────────────────────┐ │
│  │ 身份与密钥管理      │ │ P2P通信引擎(libp2p)                │ │
│  └─────────────────────┘ └─────────────────────────────────────┘ │
│  ┌─────────────────────┐ ┌─────────────────────────────────────┐ │
│  │ 加密存储(SQLCipher)│ │ 插件沙箱(WebAssembly/JS)          │ │
│  └─────────────────────┘ └─────────────────────────────────────┘ │
├─────────────────────────────────────────────────────────────────┤
│                        基础设施层                                │
│  ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ │
│  │ 操作系统    │ │ 网络栈      │ │ 文件系统    │ │ 安全硬件    │ │
│  │ (Android/iOS/...) │ (TCP/UDP)│ │            │ │ (Keystore)  │ │
│  └─────────────┘ └─────────────┘ └─────────────┘ └─────────────┘ │

2.2 技术栈选型

层次 技术组件 说明
UI层 Flutter 3.x 跨平台,一套代码覆盖移动端和桌面端
状态管理 Riverpod / Bloc 响应式状态管理
P2P通信 libp2p (Go-IPFS或Rust-libp2p封装) 提供NAT穿透、DHT、加密传输、多路复用
本地数据库 SQLCipher (SQLite加密扩展) 加密存储联系人、消息、元数据
文件存储 分块加密 + 文件系统 大文件分块存储,每个块AES-256-GCM加密
密钥管理 Android Keystore / iOS Keychain 存储私钥,永不导出
端侧AI TensorFlow Lite / MediaPipe 运行意图识别、语音识别、文本生成模型
插件沙箱 Wasmtime (WebAssembly) + QuickJS 插件运行于隔离环境,通过API与核心交互
浏览器自动化 Puppeteer (headless Chromium) 用于购票、比价等需要模拟浏览器的插件
网络辅助 STUN/TURN (coturn) 公共STUN服务器,用户可自建TURN中继

3. 核心模块详细设计

3.1 身份与密钥管理

3.1.1 用户身份生成
  • 首次启动时,生成Ed25519密钥对(长期身份密钥)。

  • 私钥使用设备安全硬件存储(Android Keystore / iOS Keychain),并绑定用户生物认证(指纹/面容)或锁屏密码。

  • 公钥哈希作为用户唯一ID(peer_id)。

  • 同时生成一组用于X3DH的带密钥(Signed Prekey、One-time Prekeys),定期轮换。

3.1.2 真实身份绑定
  • 用户输入真实姓名、手机号。

  • 手机号验证:通过短信验证码(点对点通道)或物理碰一碰(蓝牙/NFC)验证。短信验证使用公共短信网关?不,去中心化下可借用第三方服务,但这不是核心依赖;也可让用户通过其他已信任的亲友代为验证(信任传递)。

  • 真实姓名和手机号用私钥签名后存储于本地,交换时通过加密通道发送给对方,对方用公钥验证签名确保未被篡改。

3.1.3 联系人表结构(SQLCipher)
CREATE TABLE contacts (
    peer_id TEXT PRIMARY KEY,          -- 公钥哈希
    public_key BLOB NOT NULL,           -- 原始公钥
    name TEXT NOT NULL,                 -- 真实姓名
    phone TEXT,                          -- 手机号
    avatar BLOB,                         -- 头像图片(可选)
    added_time INTEGER NOT NULL,         -- 添加时间戳
    group_id TEXT NOT NULL,               -- 所属分组ID(外键)
    custom_note TEXT,                     -- 自定义备注(如“爸爸”)
    permission_flags INTEGER DEFAULT 0,   -- 权限位:0x01可见状态,0x02可见手机号...
    last_seen_address TEXT,                -- 最近已知网络地址(IP:port)
    online_status INTEGER DEFAULT 0,       -- 0离线 1在线 2未知
    last_heartbeat INTEGER DEFAULT 0,       -- 最后心跳时间
    FOREIGN KEY(group_id) REFERENCES groups(id)
);

3.2 通讯与状态同步

3.2.1 P2P连接建立
  • 使用libp2p作为底层通信库,支持TCP、WebRTC、QUIC等多种传输。

  • 每个节点启动时,通过STUN获取公网地址(/ip4/x.x.x.x/tcp/yyyy),并发布到DHT(分布式哈希表)作为对等点地址。

  • 添加好友时,通过二维码交换临时地址,双方直接连接;后续可通过DHT查找对方最新地址。

3.2.2 消息传输协议
  • 消息格式:protobuf 或 CBOR 序列化,包含消息ID、类型、内容、时间戳、发送者签名。

  • 加密:每条消息使用会话密钥(通过X3DH协商,派生自长期密钥和临时密钥)进行AEAD加密(AES-256-GCM)。

  • 可靠传输:基于libp2p的Stream复用,提供有序可靠传输;文件传输可分块使用独立的流。

3.2.3 离线消息处理
  • 当目标节点离线时,发送方将消息持久化到本地“待发送队列”。

  • 对方上线后,通过状态更新通知发送方,发送方尝试重传。

  • 若双方同时离线,可利用中间在线节点暂存?这引入中心化风险,因此不采用;可让发送方周期性重试(指数退避),直到超时(默认7天)删除。

3.2.4 在线状态检测(去中心化)
  • 每个节点每隔30秒向所有在线联系人发送签名心跳(包含递增序列号)。

  • 节点收到心跳后,更新本地联系人状态为在线,记录last_heartbeat

  • 若超过3分钟未收到某联系人心跳,则标记为离线。

  • 状态变更时,可发送通知(可选),但不强求,因为UI可轮询本地数据库。

优化:对于群组规模较大(>50人),改用Gossip协议传播状态,减少O(n²)消息量。

3.3 分组与权限管理

  • 分组表:

    sql语句:
    
    CREATE TABLE groups (
        id TEXT PRIMARY KEY,       -- UUID
        name TEXT NOT NULL,         -- 分组名称
        type TEXT DEFAULT 'custom', -- preset/custom
        permission_flags INTEGER DEFAULT 0, -- 默认权限
        created_time INTEGER
    );
  • 预设分组:家人、亲友、单位、朋友,系统创建,不可删除。

  • 权限控制:每个联系人的权限由permission_flags字段控制(位掩码),也支持分组默认权限。权限包括:

    • 允许查看在线状态

    • 允许查看手机号

    • 允许查看真实姓名

    • 允许向我发起群聊

    • 允许自动下载文件

  • 当联系人有冲突时,以联系人独立权限为准。

3.4 本地智能体(基础版)

3.4.1 架构
  • 基于TensorFlow Lite运行多个模型:

    • 语音识别:whisper.cpp 或 WeNet 端侧模型,将用户语音指令转为文本。

    • 意图识别:BERT-tiny 模型,识别用户意图(如“提醒”“购票”“搜索”)。

    • 实体抽取:抽取时间、地点、人物等实体。

    • 文本生成:Gemini Nano 或 Phi-2 端侧模型,用于生成回复、总结。

  • 模型文件存储在应用私有目录,初次启动时下载(用户可选择仅Wi-Fi下载)。

  • 所有推理在后台线程执行,不影响UI。

3.4.2 功能实现
  • 提醒设置:识别聊天中的时间事件,调用系统日历API添加提醒(需用户确认)。

  • 自动化规则:用户可配置IFTTT风格规则(如“当位置到家时,给家人发消息”),基于系统广播(地理位置变化)触发。

  • 简单问答:基于本地知识库(联系人信息、聊天记录向量化)回答关于亲友的问题(如“妈妈的生日是什么时候”)。

3.5 互联网搜索(基础版)

  • 使用公开搜索引擎API(如DuckDuckGo HTML API)或自建代理(但需服务器,故不采用)。实际实现可集成本地爬虫,但效率低。

  • 替代方案:用户可配置自定义搜索模板(如https://html.duckduckgo.com/html/?q={query}),APP发起HTTP请求并解析结果。

  • 搜索结果在本地渲染,不经过任何中间服务器。

  • 搜索历史可选加密存储。


4. 插件市场设计

4.1 插件包格式

  • 插件以.qap(Qinyou App Package)为后缀,实际为ZIP压缩包。

  • 包含文件:

    • manifest.json:插件元数据(名称、版本、作者、权限声明、入口文件)

    • main.js:插件主逻辑(JavaScript)

    • icon.png:插件图标

    • wasm/:可选WebAssembly模块

    • assets/:资源文件

4.2 插件清单示例(manifest.json)

{
  "id": "com.qinyouai.ticket",
  "name": "购票助手",
  "version": "1.0.0",
  "author": "亲友团官方",
  "permissions": [
    "network",
    "contacts:read",
    "calendar:write",
    "payment"
  ],
  "entry": "main.js",
  "wasm": ["ocr.wasm"],
  "description": "查询和购买机票、火车票、电影票"
}

4.3 插件沙箱与API

  • 插件运行于隔离环境:使用QuickJS(轻量JS引擎)或Wasmtime(WebAssembly)执行。

  • 核心暴露API给插件,通过RPC调用:

    • qy.api.sendMessage(peerId, content):发送消息

    • qy.api.getContacts():获取联系人列表(需权限)

    • qy.api.httpRequest(url, options):发起HTTP请求(需网络权限)

    • qy.api.storage.get(key) / set(key, value):插件私有存储

    • qy.api.pay(amount, description):调起支付(需用户生物认证)

    • qy.api.ui.showCustomView(view):在聊天区域显示自定义UI

  • 所有API调用经过权限检查,若插件未声明权限则拒绝。

4.4 插件分发与更新

  • 插件市场:插件列表由社区维护,但无中心服务器。可采用以下方案:

    • 每个插件发布者生成一个插件包,签名后上传到IPFS(星际文件系统)或通过P2P网络共享。

    • 插件市场本身是一个特殊的群组,用户订阅后接收插件更新通知。

    • 用户点击安装时,从IPFS或P2P网络下载插件包,验证发布者签名(信任模型基于社交网络:可信任亲友推荐的插件)。

  • 更新机制:插件开发者可发布新版本,通过群组广播更新通知,APP自动下载更新(用户可配置自动/手动)。

4.5 插件示例实现

4.5.1 购票插件
  • 利用本地浏览器自动化(Puppeteer headless)访问票务网站。

  • 但移动端无法直接运行Chromium,可改用轻量级浏览器引擎(如WebView),在插件沙箱外启动一个单独进程运行自动化脚本。

  • 支付通过调用qy.api.pay,跳转系统支付框架。

4.5.2 比价插件
  • 使用qy.api.httpRequest访问电商网站API(需解析HTML,可使用Cheerio在插件内解析)。

  • 商品信息展示使用插件自定义UI组件(基于Flutter渲染或HTML/CSS)。


5. 安全与隐私

5.1 加密体系

  • 身份密钥:Ed25519,用于签名所有消息和身份认证。

  • 会话密钥:通过X3DH协议协商,使用Curve25519椭圆曲线,提供完美前向安全。

  • 消息加密:AES-256-GCM,每个消息使用独立随机nonce。

  • 文件加密:每个文件分块(如1MB),每块随机生成密钥,使用AES-256-GCM加密,密钥通过消息通道发送(用会话密钥加密)。

  • 本地存储:数据库使用SQLCipher(256-bit AES),密钥派生自用户锁屏密码+随机盐,存储于KeyStore。

5.2 身份认证与防冒充

  • 所有消息必须包含发送者签名(Ed25519),接收方用本地存储的公钥验证。

  • 添加好友时,双方交换公钥并通过物理方式(扫码)确认,防止中间人攻击。

  • 联系人信息更新(如手机号变更)需要签名,且需原手机号验证(通过短信或已有信任链)。

5.3 隐私保护机制

  • 零数据收集:APP不收集任何分析数据。

  • 权限最小化:插件权限由用户授予,且运行时沙箱隔离。

  • 匿名搜索:搜索请求可通过Tor或用户自配代理转发(可选)。

  • 敏感信息脱敏:在UI显示手机号时,默认部分掩码(如138****1234),点击可展开。

5.4 支付安全

  • 不存储任何支付密码或银行卡信息。

  • 支付时调起系统支付(Apple Pay / Google Pay)或第三方支付SDK(支付宝/微信),通过Intent传递商品信息,支付结果通过回调返回。

  • 支付授权需用户生物认证。


6. 数据存储

6.1 数据库设计(SQLCipher)

  • 主要表

    • contacts:联系人信息

    • groups:分组信息

    • messages:消息记录(含群聊)

    • files:文件元数据

    • pending_outbox:待发送消息队列

    • plugin_data:插件私有数据(JSON)

    • settings:用户设置

  • 所有敏感字段(如消息内容)在存入前加密(使用AES-256-GCM,密钥来自数据库主密钥)。

6.2 文件存储

  • 文件存储路径:/storage/emulated/0/Android/data/com.qinyouai/files/(Android)或沙盒目录(iOS)。

  • 文件分块:例如每块1MB,块文件名为{file_id}_{chunk_index}.enc

  • 元数据:记录总块数、每块哈希、加密密钥(加密后存入数据库)。

  • 自动清理:可设置自动清理超过一定时间的文件(如30天)。

6.3 备份与迁移

  • 用户可在设置中导出加密备份包(.qbak),包含数据库文件和文件目录的加密归档。

  • 备份密码由用户设定,使用Argon2id派生密钥加密。

  • 恢复时,导入备份包,输入密码解密,覆盖当前数据。


7. 网络通信细节

7.1 NAT穿透策略

  • 使用libp2p的AutoNAT和Hole Punching机制。

  • 每个节点定期通过STUN服务器获取公网地址,并更新到DHT。

  • 当两个节点无法直连时,尝试利用第三方节点进行中继(TURN),中继流量加密,用户可自建TURN服务器。

  • 备选方案:WebRTC的ICE框架,集成了STUN/TURN。

7.2 DHT(分布式哈希表)

  • 用于存储节点当前公网地址(键为peer_id,值为multiaddress)。

  • 使用libp2p的Kademlia DHT实现。

  • DHT网络需要初始引导节点,可内置几个公共引导节点(由社区维护),也可通过用户已添加的亲友逐步引导。

7.3 离线消息存储

  • 待发送消息队列表结构:

    CREATE TABLE pending_messages (
        id INTEGER PRIMARY KEY,
        target_peer_id TEXT NOT NULL,
        message BLOB NOT NULL,   -- 已加密消息
        created_time INTEGER,
        retry_count INTEGER DEFAULT 0,
        next_retry_time INTEGER
    );

    后台服务定期扫描待发送消息,对在线目标尝试发送,成功后删除;失败则更新next_retry_time(指数退避)。

8. 用户界面与交互设计要点

8.1 主要界面

  • 首页:聊天列表,置顶常用联系人,显示最后消息时间和未读计数。

  • 联系人:分组列表,每个分组可展开收缩;联系人头像旁显示在线状态。

  • 扫一扫:相机扫码,展示自己二维码,历史记录。

  • 插件市场:插件列表,分类,安装/卸载按钮。

  • 设置:账号管理、隐私设置、网络设置、备份恢复、关于。

8.2 交互细节

  • 加好友流程:扫码后弹出对方真实姓名和手机号(掩码),确认后选择分组,一键完成。

  • 插件集成:已安装插件会在聊天输入框上方显示快捷入口(如“订票”“比价”),点击拉起插件界面。

  • 状态指示:联系人列表绿点/灰点,群聊中成员列表旁显示状态。

8.3 设计规范

  • 色彩:主色调暖橙(#FF7F50),辅助色清新绿(#2ECC71),背景白色,字体深灰。

  • 图标:统一线性风格,圆角设计。

  • 动效:适度,如扫一扫成功时的震动反馈,消息发送动画。


9. 性能与优化

9.1 电量优化

  • 心跳间隔自适应:根据用户活跃度和网络状态调整,如屏幕关闭时延长心跳间隔。

  • 后台服务使用WorkManager(Android)和BGTaskScheduler(iOS),限制频率。

  • 文件传输仅在前台或充电时进行。

9.2 内存与存储

  • 消息分页加载,每次加载20条。

  • 图片缩略图缓存,原图按需下载。

  • 定期清理过期的临时文件和待发送队列中的超时消息。

9.3 网络优化

  • 使用Protocol Buffers减少消息体积。

  • 文件传输启用断点续传,分块校验。

  • 多路复用,减少连接建立开销。

10. 开发与部署

10.1 开发环境

  • IDE:Android Studio / Xcode / VS Code

  • 语言:Dart (Flutter), Rust (libp2p桥接), Kotlin/Swift (平台特定代码)

  • 构建工具:CocoaPods (iOS), Gradle (Android)

10.2 测试策略

  • 单元测试:测试核心逻辑(如加密、数据库)。

  • 集成测试:模拟P2P网络,测试多设备通信。

  • 真机测试:覆盖不同品牌、Android/iOS版本。

10.3 分发渠道

  • 官网和开源网站提供APK和IPA下载(企业签名或TestFlight)。

  • 应用商店上架(可能因去中心化性质需特殊说明)。


11. 未来扩展

  • 多设备同步:通过P2P同步消息历史和联系人,实现手机、平板、电脑多端登录。

  • 端到端加密群组音视频通话:基于WebRTC的P2P通话。

  • 分布式身份验证:结合区块链或DID,实现更灵活的身份恢复。

  • AI模型联邦学习:在保护隐私的前提下,通过P2P交换模型梯度,提升智能体能力。

  • 插件开发工具:提供可视化插件构建器,降低开发门槛。


12. 总结

本方案详细描述了亲友团AI的技术架构与实现路径。通过采用libp2p、端侧AI、插件沙箱等前沿技术,构建了一个完全去中心化、隐私安全、可扩展的通讯平台。用户将重获数据主权,享受纯净的亲友沟通体验。方案可行且具有前瞻性,期待各位大佬将其转化为现实作品。

13.附件:亲友团AI —— 模块化功能清单

一、设计理念

亲友团AI采用模块化架构,基础核心APP仅包含最必要的通讯与身份管理功能,确保轻量、安全、易用。所有扩展功能(如购票、购物等)均通过插件市场按需下载安装,用户可自由组合所需能力,同时保持隐私数据完全本地化。


二、基础核心功能(安装即用)

1. 身份与账户管理

  • 真实身份注册:首次启动时,用户输入真实姓名、手机号,APP生成Ed25519公私钥对,私钥加密存储于设备安全区域(Keystore/Keychain)。

  • 手机号验证:通过短信验证码(点对点加密通道,无需服务器)或物理碰一碰验证,确保手机号真实性。

  • 个人二维码:动态生成加密二维码(含公钥哈希、真实姓名哈希、临时网络地址、签名、时间戳),用于添加好友。

  • 个人资料:可编辑头像、额外联系方式(如邮箱),真实姓名和手机号为不可修改的信任根。

2. 联系人管理(基于真实身份)

  • 扫一扫加好友

    • 扫描对方二维码,发起P2P加密连接请求。

    • 对方同意后,自动交换真实姓名、手机号、头像。

    • 双方各自选择将对方归入分组(预设/自定义),无需手动备注。

  • 联系人列表:按真实姓名显示,支持搜索、字母索引。

  • 联系人详情:显示真实姓名、手机号、分组、添加时间、共享权限设置。

  • 黑名单:屏蔽特定联系人,不再接收其消息和状态更新。

3. 分组管理

  • 预设分组:家人、亲友、单位、朋友(不可删除,可重命名)。

  • 自定义分组:用户可创建任意名称的分组(如“读书会”“项目A”),最多支持50个分组。

  • 分组权限

    • 每个分组可独立设置权限:是否允许查看我的在线状态、是否允许查看我的手机号、是否允许向我发起群聊等。

    • 支持批量移动联系人至其他分组。

4. 通讯功能

  • 点对点聊天

    • 文本消息(支持表情、富文本)。

    • 图片/视频发送(自动压缩,原图可选)。

    • 文件传输(任何格式,支持断点续传,分块加密)。

    • 语音消息(录制发送,自动转文字可选)。

    • 消息已读/未读状态(基于P2P回执)。

  • 群组聊天

    • 创建群组(最多50人),群成员必须互为好友。

    • 群公告、群文件共享。

    • 群聊消息同步基于Gossip协议,保证最终一致性。

  • 在线状态感知

    • 联系人列表显示实时在线状态(绿点/灰点)。

    • 状态更新基于签名心跳广播(默认30秒一次),超时自动标记离线。

5. 本地智能体(基础版)

  • 语音唤醒:通过本地语音识别(whisper.cpp)唤醒智能体。

  • 简单意图识别:理解常见指令,如“提醒我明天开会”“给妈妈发消息说我晚点到”。

  • 自动化规则:预设规则引擎,支持条件触发(如“到家时自动给家人发消息”)。

  • 本地日历集成:从聊天中识别日期事件,添加至本地日历(需用户确认)。

6. 互联网搜索(基础版)

  • 文本搜索:通过搜索引擎公开API(可匿名化)查询信息,返回网页标题和摘要。

  • 图片搜索:以图搜图,基于本地图片或拍照搜索。

  • 视频搜索:按关键词搜索视频平台内容,返回视频链接(需用户手动跳转观看)。

  • 搜索隐私设置:可开启“无痕模式”,不保存搜索历史。

7. 隐私与安全

  • 端到端加密:所有消息、文件传输使用X3DH+Noise协议加密。

  • 本地加密存储:数据库(SQLCipher)和文件分块加密,密钥派生自用户设备密码+随机盐。

  • 权限管理:严格控制APP对系统权限的访问(如位置、通讯录仅在使用时询问)。

  • 数据备份与恢复:支持导出加密数据包(需用户设置备份密码),用于迁移到新设备。

8. 设置与辅助

  • 网络设置:STUN/TURN服务器配置(可自定义,默认使用公共节点)。

  • 通知设置:消息提醒、声音、振动自定义。

  • 存储管理:查看缓存文件大小,清理过期文件。

  • 帮助与反馈:内置使用指南,问题反馈通道(通过P2P发送给开发者?需设计)。


三、插件市场(扩展功能)

1. 插件市场入口

  • 在APP首页或侧边栏设有“插件市场”图标。

  • 插件列表按分类展示(购票、购物、生活服务、工具等),支持搜索。

2. 插件下载与安装

  • 插件以签名包形式发布(类似于APK,但运行于沙箱环境)。

  • 点击安装,APP验证插件签名(防止篡改),提示所需权限(如“访问网络”“读取联系人信息”),用户确认后下载。

  • 插件存储在应用私有目录,运行在独立的JavaScript沙箱(或WebAssembly环境)中,无法直接访问系统数据,只能通过API调用基础功能。

3. 插件管理

  • 已安装插件列表:显示插件名称、版本、大小、权限。

  • 启用/禁用:可临时关闭插件而不卸载。

  • 卸载:彻底删除插件及其数据。

  • 更新:当插件有新版本时,提示用户更新(需重新授权)。

4. 官方插件示例

4.1 购票插件
  • 功能

    • 机票/火车票查询、比价、预订。

    • 电影票选座、购买。

    • 酒店预订。

  • 实现:基于本地浏览器自动化(Headless Chromium)访问各大票务网站,或调用官方API(如有)。

  • 权限:需要网络访问、读取联系人信息(用于填充乘机人)、读取日历(添加行程)、支付权限。

4.2 购物插件
  • 功能

    • 多平台商品比价。

    • 降价监控与提醒。

    • 一键复购常购商品。

    • 智能导购(根据用户偏好推荐)。

  • 实现:爬取电商平台公开数据(遵守robots.txt),使用本地模型分析用户评论。

  • 权限:网络访问、读取联系人信息(用于收货人)、支付权限。

4.3 生活服务插件
  • 功能

    • 外卖点餐(根据口味推荐)。

    • 打车服务(预估价格、叫车)。

    • 天气查询(实时天气、空气质量)。

  • 实现:调用公开API或爬取服务页面。

  • 权限:网络访问、位置信息(可选)。

4.4 办公协作插件
  • 功能

    • 文档协作(实时编辑本地文档,P2P同步)。

    • 任务看板(创建任务,分配给群组成员)。

    • 会议提醒(集成日历,发起语音会议)。

  • 实现:基于CRDT算法实现多端同步,无需服务器。

  • 权限:网络访问、读取联系人、文件读写。

5. 插件开发SDK(面向开发者)

  • 提供JavaScript/TypeScript SDK,封装基础API:

    • 通讯API:发送消息、获取联系人列表。

    • 存储API:读写插件私有存储空间。

    • 网络API:发起HTTP请求(需用户授权)。

    • UI API:在聊天窗口中插入自定义界面。

  • 插件签名机制:开发者需注册并获得签名证书(通过P2P网络验证,去中心化)。


四、功能关系图

text

┌─────────────────────────────────────────────────────────────┐
│                    亲友团AI 基础核心                         │
├─────────────────────────────────────────────────────────────┤
│ 身份管理 │ 联系人管理 │ 分组管理 │ 通讯功能 │ 基础智能体    │
│ 隐私安全 │ 互联网搜索 │ 设置辅助 │ 插件市场入口            │
└─────────────────────────────────────────────────────────────┘
                              │
                              ▼
                    ┌─────────────────┐
                    │    插件市场      │
                    ├─────────────────┤
                    │ 购票插件 │ 购物插件 │ 生活服务插件 │ ... │
                    │ 办公插件 │ 工具插件 │ 自定义插件      │
                    └─────────────────┘
                              │
                              ▼
                    ┌─────────────────┐
                    │   插件运行沙箱   │
                    │ (JS/Wasm 隔离)  │
                    └─────────────────┘

五、版本规划

版本 包含功能
v1.0(基础版) 身份管理、扫一扫加好友、分组管理、点对点通讯、群聊、在线状态、基础搜索、隐私安全
v1.1 插件市场上线,提供官方购票插件(测试版)
v1.2 增加购物插件、生活服务插件
v1.3 开放插件SDK,支持第三方开发者上传插件
v2.0 增强智能体能力,插件支持自动化任务编排

六、总结

亲友团AI通过模块化设计,实现了 “核心轻量,功能按需” 的产品理念。基础APP聚焦于真实身份社交和隐私通讯,插件市场则让用户自由扩展生活服务能力,所有功能均在本地运行,数据完全自主可控。这种设计既保证了核心体验的纯粹性,又为未来生态发展留下无限可能。

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐