#memory

十里
2周前
MCP 问世已有一段时间,在众多服务中,我最常用的只有 4 个,按使用频率排序分别是:Orchard、Memory、Exa、Chrome-DevTools。今天想和大家聊聊排在前两位的 Orchard 和 Memory。 Orchard 作为产品已经正式发布,只是没有像 Zipic 那样大力宣传,但我的使用频率却比 Zipic 高得多😄;Memory 则是我用 Golang 实现的记忆服务,已经开源。这两者配合,构建起了我的日常 AI 小助理。 说到理想中的助理,我脑海里浮现的当然是钢铁侠里的贾维斯。虽然现实还达不到那个高度,但我想围绕 Raycast AI 的生态先打好基础。目前我的期望很简单:它能帮我快速完成那些原本需要打开多个 app、操作多个步骤才能完成的任务,并且结合对我日常生活和工作的记录,给出更贴心的建议——这就足够了! Raycast Store 里有很多对接 Apple 原生 app 的扩展,后来 Raycast 推出了 AI Extension,让这些扩展具备了 AI 能力,大大延伸了可能性。但我发现这些扩展在性能和原生应用覆盖度上仍有局限。目前在我的小助理中,仅保留了 Web 搜索这一个 Raycast 扩展,其余的核心能力都由 Orchard 和 Memory 承担。 正是因为意识到了扩展的局限性——会出错、响应慢、覆盖的 App 不够全面,我决定自己开发 Orchard。Orchard 是一款 macOS 原生应用,目前能对接 10 类原生应用:提醒事项、日历、天气、地图、电话、通讯录、信息、邮件、音乐,以及时钟(主要用于获取实时时间)。 为什么取名 Orchard(果园)?这个名字寄托了我的愿景:就像在果园里轻松采摘各种果实一样,通过 Orchard 能够轻松获取 Apple App 的各种"果实"。它的图标是一个包裹——象征着果园为用户精心打包、寄送装满 Apple 应用能力的礼盒🎁。 有了这些信息源和管理工具,小助理的能力基本就到位了。特别要说的是时间——对助理来说,这是必不可少的。AI 本身没有实时时间概念,而我们的很多决策和判断都依赖时间因素,准确的时间信息是助理给出优质建议的前提。 虽然 Orchard 已经产品化,但 MCP 对普通用户来说还是过于技术化,有一定距离感。尽管我在 Orchard 中做了不少自动配置工作,试图降低使用门槛,但仍然跨越不了"用户教育"这道坎——这也是我一直没有大力宣传的主要原因。不是王婆卖瓜,我是真心觉得它好用,不过现在通过 AppleScript 控制的部分 app 略微不稳定😂(比如邮件),所以就先自己用着,慢慢打磨。反正能帮我提效增产,这波投入不亏😂! 另一个重要环节是记忆。当 AI 的上下文能自动包含记忆中的细节时,我们就会感受到那种"助理真懂我"的惊喜时刻!当然,记忆的应用场景远不止助理,还包括阅读笔记、闪念记录、专业领域知识积累等等。 使用 Memory 时,我最在意两点:性能和隐私(毕竟要像写日记一样记录工作生活)。一开始我用的是 MCP 官方推出的 Memory 服务(基于 JSONL)。出于好奇,我想试试开发一个 MCP 服务需要多久——没记错的话,在 AI 的帮助下,不到 3 小时就完成了基于知识图谱原理的 Golang 基础版本(同样采用 JSONL)。因为是本地文件存储,完美满足了隐私需求。 后来我持续优化,将底层存储从 JSONL 文件升级为 SQLite,并在后续优化了检索和处理逻辑。经过实际对比:对于常见的知识图谱操作(读取、搜索、运行期内存),SQLite 整体性能更优;若只关注启动速度和磁盘占用,JSONL 更轻量更快。目前的版本支持从 JSONL 到 SQLite 的自动迁移,并集成了 FTS5 全文搜索——当实体规模超过约 100 个时,SQLite 的优势尤为明显。所以现在我使用的是存储容量更大、性能更优的记忆服务。 欢迎体验免费版 Orchard: 也欢迎给我的 Memory 开源项目 Star: 之前有展示过 Orchard 的能力: - - - P.S. 借助 Codex/Claude Code 等编码 Agent,让它们使用 Chrome-DevTools,你一样能获得 AI Browser 能力——自动化地通过浏览器替你干活。