Skip to content

Latest commit

 

History

History
310 lines (237 loc) · 14.9 KB

File metadata and controls

310 lines (237 loc) · 14.9 KB

一款开源、本地优先的 AI 日记。不是让你坐下来写长篇日记,而是随手记录生活碎片,让 AI 自动整理。

English | 简体中文

Release License Stars

官网 · App Store · Google Play · Discord

Memex 是什么?

Memex 是一款开源、本地优先的 AI 日记应用,支持 iOS 和 Android。它和传统日记应用的思路完全不同 — 不要求你坐下来写长篇日记,而是让你随手记录生活碎片(文字、照片、语音),通过多 Agent 协作的 AI 系统自动整理为结构化卡片,构建知识库,发现洞察,并通过 AI 角色提供陪伴。

这里说的"本地优先"是指: 你的记录、卡片和知识都保存在你的设备上。没有 Memex 服务器存储你的日记。你自带大模型服务商(OpenAI、Claude、Gemini、DeepSeek 等),你的请求直接从手机发送到那个服务商 — 我们永远看不到你的数据。可选的 Memex AI 服务仅用于代理模型请求,不用于存储日记。

Important

Star 关注我们 — 第一时间收到 GitHub 新版本通知 ⭐

Star Us

功能

🤖 AI 自动整理

  • Memex Agent 编排:一个对话 Agent 协调专门的 Skill 和子 Agent,分别处理时间线卡片、PKM 入库、日程更新、知识洞察、诊断、评论、记忆整理、媒体处理和陪伴聊天。
  • 自动识别记录内容,生成最匹配的卡片形式:
    • 生活与效率(任务、习惯、事件、时长、进度)— 记录待办、习惯打卡、日程与目标
    • 知识与媒体(文章、片段、引用、链接、对话)— 记录笔记、参考资料与对话内容
    • 人物与地点(联系人、地点)— 记录人际关系与位置信息,支持地图预览
    • 数据与指标(指标、评分、交易、规格表)— 记录测量数据、评价与消费
    • 视觉(图集)— 用图片留存珍贵时刻
Readme-Zh-Scene02-CardShowcase.mp4
  • 自动打标签、实体提取、关联关系链接
  • AI 对话助手,可针对任意卡片或主题展开讨论

💡 知识与洞察

  • 基于 P.A.R.A 方法论的知识组织(项目、领域、资源、归档)
  • 洞察卡片,跨记录发现关联模式:
    • 图表类(趋势、柱状、雷达、气泡、构成比例、进度环)— 可视化数据规律、分布与目标进展
    • 叙事类(高亮、对比、总结)— 提炼关键结论、呈现前后变化、生成周期性回顾
    • 时空类(地图、路线、时间线)— 还原事件发生的地点与时间脉络
    • 图集 — 以照片形式唤起视觉记忆
Readme-Zh-Scene03-InsightShowcase.mp4

🤝 AI 陪伴

  • 创建拥有独特个性的 AI 角色,陪伴你的日记生活
  • 自动评论:角色会对你的新时间线卡片做出反应 — 像一个一直关注你的朋友
  • 1v1 聊天:和角色进行真实对话,它能从你的卡片和知识库中了解你的生活
  • 持久记忆:角色在评论和聊天两个场景中维护长期记忆 — 它会和你一起成长
  • 兼容 SillyTavern:支持导入角色卡(V2 JSON + PNG),包含人设、世界书和示例对话

📝 纯文本与数据自由

  • 一键文档入库:AI 自动整理后,所有的记录都会形成一系列相互关联的 Markdown 文件,自动帮你一键完成日记与文档的入库操作。
  • 伴随 AI 共同进化:为什么坚持用 Markdown?因为 AI 的能力在不断飞跃,唯有最纯粹的原始文本记录,才能跨越时空,真正跟上它进化的脚步。未来随着大模型的进一步提升,基于你沉淀的这些记录,系统能够源源不断地为你挖掘出全新的体验与深层洞察。
  • 绝对的去留自由:拒绝平台锁定,我们将选择权完全还给你。如果你将来觉得我们的产品不够好用,随时可以一键导出所有的记录为 Markdown 文件,零成本、无缝迁移到任何一款笔记产品中去。

🔒 隐私与本地优先

  • 所有数据存储在本地(文件系统 + SQLite)
  • 应用锁(生物识别认证)
  • 无云端依赖,数据不会离开你的设备

📂 存储与备份

  • 支持 iCloud Drive、设备存储(自定义文件夹)与应用存储
  • 一键完整备份 / 恢复

🔗 支持多种 LLM 提供商

提供商 API 类型 备注
Google Gemini Gemini API gemini-3.5-flash、gemini-3.1-pro-preview 等
Google Gemini OAuth(无需 API Key) 使用 Google 账号登录,非官方支持,风险自负
OpenAI Chat Completions / Responses API gpt-5.5、gpt-5.4 等
ChatGPT OAuth(无需 API Key) 使用 OpenAI 账号登录,非官方支持,风险自负
Anthropic Claude Claude API 直接 API 访问
AWS Bedrock Bedrock Claude 适合 AWS 用户
Memex AI 托管模型访问 可选账号制模型访问;日记数据仍保存在本地
Kimi(月之暗面) OpenAI 兼容 kimi-k2.5、kimi-k2 等
阿里云(通义千问) OpenAI 兼容 qwen3.5-plus、qwen3-coder 等
火山引擎(豆包) OpenAI / Responses 兼容 doubao-seed-2-0-pro-260215、doubao-seed-1-8-251228 等
智谱 GLM OpenAI 兼容 glm-5v-turbo、glm-4.6v
DeepSeek OpenAI 兼容 deepseek-v4-flash、deepseek-v4-pro
MiniMax Anthropic 兼容 MiniMax-M2.5、MiniMax-M1
小米 MIMO Anthropic 兼容 mimo-v2.5、mimo-v2-omni 等
OpenRouter OpenAI 兼容 通过一个 API 访问多个提供商
Ollama OpenAI 兼容(本地) 在本地设备上运行模型

安装

配置 LLM

Memex 需要配置一个模型服务来驱动 AI 功能。首次启动后:

  1. 点击头像 → 模型配置
  2. 选择 API 类型(Gemini / OpenAI / Claude / DeepSeek / Memex AI / Ollama 等)
  3. 根据服务商要求填入 API Key 和 Base URL、使用 OAuth 登录,或连接可选的 Memex AI 服务
  4. 不同 Agent 可以独立配置不同的模型

配置位置上下文

Memex 可以选择性地把当前城市、区县和街区上下文附加给 Agent 对话。该能力只使用设备 GPS,不使用 IP 定位。

  1. 打开「个人中心」→「设置」→「定位」。
  2. 开启「为对话附加当前位置」。
  3. 选择逆地理编码服务商:
    • OpenStreetMap / Nominatim 不需要 API Key。
    • 高德地图需要 API Key。
  4. 如需使用高德地图,请在高德开放平台创建应用,开通 Web 服务 API,复制 Key,并填写到「高德地图 API Key」中。
  5. 按需选择上下文粒度和位置新鲜度。

本地运行高德逆地理编码 live test 时,请通过环境变量传入 Key,不要提交到仓库:

AMAP_GEOCODING_TEST_KEY=your_key flutter test test/data/services/geocoding_service_test.dart

🧩 自定义 Agent 系统

Memex 不只是一个记录应用 — 它是一个让你能够在手机上构建自己 AI Agent 的平台。

Memex 内部工作流使用的 skill host 基础设施也开放给自定义 Agent。你可以把 Agent 接入本地事件,给它配置 skill 和工具,并决定它以内联方式执行,还是作为后台任务运行。

你可以构建什么

  • 🎯 自由创建 Agent — 取个名字,选择宿主类型(Pure 纯净模式),一个新 Agent 即刻就绪。
  • 事件驱动触发 — 选择 Agent 何时激活:新时间线卡片保存后、卡片评论发布后、卡片 UI 配置更新后,或本地数据变更时。
  • 🧠 独立 LLM 配置 — 每个 Agent 可以使用不同的模型。
  • 📝 自定义系统提示词 — 通过自定义 System Prompt 塑造 Agent 的人格、专业领域和输出格式。
  • 📂 Skill — Memex 采用开放的 Agent Skills 标准。每个 Agent 从 SKILL.md 文件读取行为定义 — 一个包含指令、脚本和资源的文件夹,Agent 按需发现和使用。
  • 🗂️ 工作目录 — 每个 Agent 能够单独配置工作区。文件读写和目录列表都限定在该目录内。
  • 🚀 JavaScript 脚本执行 — Skill 可以运行 JavaScript 代码,包括 fetch() 发起 HTTP 请求。调用外部 API、转换数据、抓取网页内容 — 一切都在你的设备上本地运行。
  • 🔗 Agent 间依赖链 — 通过 dependsOn 定义执行顺序,构建复杂工作流。Agent B 等待 Agent A 完成后再启动。
  • 🔄 同步 & 异步执行模式 — 根据工作流需要,选择同步执行(内联阻塞)或异步执行(排队为后台任务)。
  • 🔁 自动重试与可配置上限 — 异步 Agent 在失败时自动重试,重试次数可配置。

自定义 Agent 系统

你创建的每一个 Agent 都是一等公民 — 它接入同一个事件总线,使用同一套工具系统,拥有与内置 Agent 完全相同的能力。唯一的限制是你的想象力。

💡 了解更多 Skill 格式: Agent Skills 是由 Anthropic 最初开发的开放标准,用于封装 Agent 能力。访问该网站了解如何编写 SKILL.md 文件和设计 Agent 行为。

社区贡献

欢迎提交 Bug、产品建议、文档改进、本地化、模型提供商适配和聚焦的小型代码贡献。发起大型 PR 前,请先阅读 CONTRIBUTING.md 并通过 Issue 讨论方向。

Issue 会帮助我们判断社区需求,但不代表功能一定会实现。

路线图

  • 更完整的视频和文件附件工作流
  • 定期刷新洞察 — 周期性重新分析记录,发现新关联
  • Agent Soul — 自定义 Agent 的行为风格与个性
  • 个性化定制 — 自由选择知识管理方法论(不限于 P.A.R.A)、标签规则、对话角色人设与卡片样式
  • 可扩展输入源与触发时机 — 自由扩展输入源与触发条件
  • 扩展市场 & 插件架构 — Agent、卡片模板、角色配置的云端市场,一键安装,热重载生效

开发

从源码构建

环境要求

  • Flutter SDK ≥ 3.6.0
  • Xcode(iOS 开发)
  • Android Studio(Android 开发)

安装依赖

git clone https://github.com/memex-lab/memex.git
cd memex
flutter pub get

iOS 额外步骤:

cd ios && pod install && cd ..

运行

flutter run --flavor globalDev

Android 本地开发优先使用 globalDev / cnDev,它们有独立包名和应用数据。global / cn 是 Stable 构建,globalEarly / cnEarly 是 Android Early 构建。

架构

技术栈

层级 技术
框架 Flutter (Dart ≥ 3.6)
平台 iOS、Android
数据库 Drift (SQLite)
状态管理 Provider + MVVM
LLM Gemini、OpenAI、Claude、Bedrock、Memex AI、Kimi、通义千问、豆包、智谱 GLM、DeepSeek、MiniMax、MIMO、OpenRouter、Ollama
Agent 框架 dart_agent_core

项目结构

lib/
├── agent/          # 多 Agent 系统
│   ├── super_agent/              # 对话编排 Agent 与子 Agent
│   ├── skills/                   # 时间线卡片、PKM、洞察、日程、记忆技能
│   ├── comment_agent/            # 角色评论
│   ├── companion_agent/          # 1v1 陪伴聊天
│   ├── memory/                   # 长期记忆服务
│   ├── pure_skill_host_agent/    # 自定义 Pure skill host
│   └── memex_skill_host_agent/   # 自定义 Memex-aware skill host
├── data/           # 数据仓库与服务
├── db/             # Drift 数据库定义
├── domain/         # 领域模型
├── l10n/           # 国际化(中文/英文)
├── llm_client/     # LLM 客户端抽象层
├── ui/             # 展示层 (MVVM)
└── utils/          # 工具类

数据流

用户输入(文字/图片/语音/分享文件)
    ↓
资源准备(语音转写、文档文本抽取、图片编码、元数据)
    ↓
Memex Agent 编排
    ↓
按需使用特定 Skill 或子 Agent:
  - timeline_card → Cards YAML + UI 配置
  - pkm → P.A.R.A Markdown 知识库
  - schedule → 日程状态
  - knowledge_insight → 跨记录洞察卡片
    ↓
后台任务:
  - 角色评论
  - 长期记忆整理
  - 事件驱动的自定义 Agent
    ↓
本地存储(文件系统 + SQLite)

参与贡献

欢迎贡献代码。请先开 Issue 讨论你想要的改动。

  1. Fork 本仓库
  2. 创建特性分支 (git checkout -b feature/amazing-feature)
  3. 提交更改 (git commit -m 'Add amazing feature')
  4. 推送分支 (git push origin feature/amazing-feature)
  5. 发起 Pull Request

Star History

Memex Star History Chart

许可证

本项目基于 GPL-3.0 许可证开源 — 详见 LICENSE 文件。