[开源] Magi:一个本地桌面 Agent,把你的碎片活动沉淀为白盒记忆

大家好,开源一个自己折腾的桌面端 AI Agent 项目: Magi 。 GitHub Repo: Github 。 为什么要做 Magi ? 开发这个项目的念头,起因于去年尝试做的一款日记应用。当时期望通过对日记进行行为与情感分析,让 AI 刻画出用户画像,从而提供更有温度的交互。推进过程中遇到了...
[开源] Magi:一个本地桌面 Agent,把你的碎片活动沉淀为白盒记忆
[开源] Magi:一个本地桌面 Agent,把你的碎片活动沉淀为白盒记忆

大家好,开源一个自己折腾的桌面端 AI Agent 项目:Magi

GitHub Repo:Github

为什么要做 Magi ?

开发这个项目的念头,起因于去年尝试做的一款日记应用。当时期望通过对日记进行行为与情感分析,让 AI 刻画出用户画像,从而提供更有温度的交互。推进过程中遇到了明显的瓶颈:大部分用户根本不会主动表达日常操作习惯。日记能留存生活中的“大事”,对“稀松平常的小事”无能为力。

今天又加班到了凌晨 1 点,其实完全没我啥事,就硬等前端把接口调完。不过靠我精湛的摸鱼技巧,在公司爽看了 3 集 MyGO ,还听了好久周杰伦的新专。

这段平凡的经历,几个月后你或许还记得当晚的加班。至于期间看了什么剧、听了什么歌、当时的情绪状态,往往会彻底遗忘。

Magi 的核心目标正是解决这一痛点。它作为一个桌面 Agent ,通过接入浏览器记录、媒体播放、照片库、日历、Git 提交等外部传感器数据,将这些被动产生的操作痕迹,汇聚成用户个人的长期记忆时间线。

长期记忆能力

为什么不能直接使用向量库?

很多系统所谓的长期记忆,最后都变成了“把记录切块丢进向量库”。在桌面端高频传感器场景下,这种做法会带来灾难性的后果。

以一个中度使用的开发者为例,每天的 API 对话、终端操作、网页浏览记录、媒体访问记录可达 3000 条。如果全量存入并做索引:

  • 原始记录体积预估:22GB - 66GB / 年
  • 带来后果:本地存储成本爆炸,且在回答“我现在住在哪里”等问题时,极易召回 AI 自己曾经的错误推测(回音室污染)。

五层生命周期的本地记忆架构

要支撑海量被动数据的摄入并保持检索的可用性,Magi 在本地构建了一个五层( L0-L4 )生命周期的记忆架构。

  • L0 工作记忆:维持当前对话和任务的临时状态。

  • L1 事件记忆:将对话、终端命令、日历、Git 提交等碎片信息,规范化为带有来源和时间戳的底层事实证据。

  • L2 知识记忆:从 L1 中提取出实体、状态和关系。系统严格区分用户明确表达的事实与 AI 推测的结果,避免相互污染。

  • L3 摘要反思记忆:按天/周对海量碎片进行降采样和总结压缩。

  • L4 技能记忆:记录工具调用的成功率与报错特征,具备错误路径熔断机制,让 Agent 积累做事经验。

目前这套记忆检索链路在 LongMemEval 评测集上跑到了 87.2% 的准确率。关于整个记忆的构建思路,我也写了一篇文字这博客里。

赋予 Agent 真实的“生命感”

在这个记忆底座之上,为了让 Magi 真正像一个“伴侣”运作,交互层创新性实现了两个机制:

1. 告别机械对答的自然节奏回复 传统大模型的回复是严格的 1 对 1 同步模式。Magi 增加了一个后置的切片链路,会将长段的回复拆解,模拟真人的输入停顿,按多段、有延迟的异步方式发送给用户,大幅降低“机器感”。

2. 动态人格跃迁及深层人格 Agent 的人格设定支持深度自定义,并与记忆系统的 L2 状态层打通。当底层观察到用户处于高压或焦虑状态时,即使是偏向“搞笑”的人设,也会自动平滑跃迁至温和安抚状态。随着互动时间的拉长和特定里程碑的触发,还会解锁深层的人格维度。

产品状态与相关链接

在产品形态上,Magi 提供了一个开箱即用的桌面客户端。所有应用数据和记忆数据库默认保存在本地。除了正常的 LLM API 调用,系统没有任何外部数据上报逻辑。

项目目前处于 Beta 阶段,核心的记忆分层链路和基础传感器均已完整跑通,提供开箱即用的 macOS 安装包。由于系统的复杂性,实际运行中可能会遇到一些预料之外的 Bug 。如果你在体验中发现任何问题,欢迎随时在 GitHub 提交 Issue ,我会第一时间跟进修复。

对 Agent 底层逻辑或记忆架构感兴趣的 V 友,欢迎下载体验并查阅源码。期待各位的 Issue 和 PR 。

相关链接

来源: V2EX - 技术查看原文