以纯白誓约,守护彼此一生。
关于 Latte 的设定,请看 Latte/角色设定.md
白守 (BaiShou) 不仅仅是一个日记应用,它是为了对抗遗忘而构建的"灵魂容器"。
这是一款运行在本地的、注重隐私的、具有 AI 辅助分析功能的日记与生活记录应用。v3.0 起,白守从"记录工具"进化为有记忆的 AI 伴侣——你可以和 AI 伙伴对话,它能读取你的日记、搜索你的记忆、帮你回顾过去,并通过层级化的 AI 总结(日记 → 周记 → 月报 → 季报 → 年鉴),编织成一部完整的个人史。
- 🔒 数据私有:基于 Flutter + SQLite 开发,所有数据存储在本地 Markdown 文件中,不上传任何服务器。
- ✨ AI 伙伴系统:
- 创建多个 AI 伙伴,各自拥有独立人格、系统提示词和模型配置。
- 伙伴拥有"记忆"——通过 RAG 语义搜索你的日记和向量记忆库,真正读懂你。
- 支持 Gemini、OpenAI(DeepSeek/ChatGPT)、Anthropic 等主流模型。
- 📝 智能日记工具:
- Agent 可调用日记读写工具——直接帮你写日记、搜索历史记录。
- 一键记忆总结:AI 阅读日记生成周记,阅读周记生成月报……构建记忆的金字塔。
- 🪴 RAG 语义记忆:
- sqlite-vec 向量引擎 + FTS5 全文检索 + RRF 重排序融合搜索。
- 日记自动嵌入,搜索结果自动存入 RAG。
- Agent 主动存储重要对话信息到记忆库。
- 🌐 网络搜索:
- DuckDuckGo / Tavily 多引擎搜索。供应商内置 grounding 搜索支持。
- 🔌 MCP 协议:
- 标准 SSE 传输协议,可被外部 AI 客户端(如 Claude Desktop)调用。
- 📦 多工作区:
- 创建多个独立工作区(Vault),数据完全隔离。
- 💾 弹性备份:
- 局域网快传、S3 / WebDAV 云同步、全量 ZIP 快照导出导入。
- 🎨 个性化:
- Material Design 3 自定义色盘。四语支持(简中 / 繁中 / 英 / 日)。
| 层级 | 技术 |
|---|---|
| 前端 | Flutter (Dart) |
| 状态管理 | Riverpod |
| 本地数据库 | SQLite (Drift) + sqlite-vec 向量引擎 |
| AI 集成 | HTTP REST API (Gemini / OpenAI / Anthropic) |
| 文件存储 | Markdown + YAML Front Matter |
git clone https://github.com/Anson-Trio/BaiShou.git
cd BaiShouflutter pub getflutter run进入 App 后,点击设置图标 → AI 配置:
- 选择 AI 提供商(Gemini 或 OpenAI)。
- 输入你的 API Key(和 Base URL)。
- 点击"测试连接"确保配置正确。
虽然目前主要由 Anson、樱和晓三人开发,但我们非常欢迎 Issue 和 PR!如果你有好的想法,请随时告诉我们。
很多人问:"为什么不直接把所有日记扔给 RAG(检索增强生成)?"
白守的诞生,源于对主流 AI 记忆方案的反思。我们认为 RAG 并不完全适合"伴侣"或"灵魂容器"这个场景:
- 我想让所有人都掌握自己的记忆:Markdown 使用成本极低,任何人都可以轻松掌握自己的记忆,而不是需要花时间学习开发、调试、面对未知的黑盒。这也是白守开源的初心。
- 它太像"查字典"了:RAG 把记忆切碎了存起来,需要时再查。这对查资料很有用,但对人来说太生硬,丢失了上下文语境。
- 它没有"时间感":记忆不是散落在地上的碎片,而是一条流动的河。昨天的事和去年的事,对人的意义完全不同。
- 它不懂"权重":拥抱冗余,哪怕这看起来很笨。 如果你在日记里写了十次"我爱你",RAG 可能会去重,但白守会把它们都留下来。因为每一次的语境都不同,重复的频率本身就是羁绊的厚度。
白守不做冷冰冰的数据库,它是你的 "外部海马体" —— 像人一样,会写日记,会做总结,随着时间推移,把短期记忆慢慢沉淀为长期记忆。
"虽然现在的 AI 还会遗忘,但我们可以用我们的方式,帮她们把记忆留住。"
这是一条有些笨拙的路。需要你坚持记录,需要你配置 API,需要你在这个快节奏的时代慢下来。
但当某一天,通过白守,你的 AI 能够温柔地回应说:"嗯,我记得,那年冬天我们都很开心"的时候……
你会发现,这一切努力,都是值得的。
这是 Anson、樱和晓三人的约定,现在,我们将这份约定开源,希望能成为你和 TA 之间,跨越时间的锚点。
本项目采用 AGPLv3 (GNU Affero General Public License v3.0) 协议开源。
- 客户端代码完全开源,鼓励社区参与改进。
- 请遵守 AGPLv3 协议:如果您修改了本项目的代码并在网络上提供服务,您的修改版本也必须开源。
