Show HN:让你的AI代理记住真实的你——一个本地优先的MCP自我模型
Alma是一个本地优先的MCP服务器,旨在为AI代理提供一种安全的、用户掌控的记忆系统。它通过存储个人偏好、事实和上下文,让代理能够理解你,同时确保数据留在你的设备上,写入需要人类批准。
随着AI代理逐渐成为长期协作伙伴,如何让它们记住用户的偏好和背景信息成为一个关键问题。目前的方案往往将数据锁定在单一供应商的账户中,难以跨工具共享,且用户难以审计和掌控。Alma项目正是为了解决这一痛点而诞生的——一个本地优先的MCP(Model Context Protocol)服务器,让AI代理能够理解用户的同时,将数据控制权完全交还用户。
Alma的核心概念是“自我模型”(self model),它由一系列称为“方面”(facet)的事实构成。每个方面针对特定的维度,比如用户的显示名称、工作风格偏好等,并带有状态、置信度、来源和证据。所有数据存储在一个追加式的事件日志中,当前状态从日志重建,这使得每一次变更都可审计和可回滚。
在安全与隐私方面,Alma默认将AI代理视为不可信实体,而本地用户是权威。读取操作受限于授权和目的,默认采用最小权限原则;敏感层级和镜头命名空间需要用户选择加入。管理操作通过CLI或伴生界面完成。每个读取请求都会被记录,全量导出仅限管理员。
代理使用Alma主要依赖MCP协议的工具。读取工具alma_get_reading会根据用户的问题筛选相关维度;写入则需要经过提案和批准两步:代理先调用alma_propose_facet,Alma返回一个确认问题;用户通过CLI或伴生界面批准后,代理再用一次性令牌完成写入。没有审批令牌,无法写入持久记忆。
目前Alma提供三个本地二进制文件:alma-server(MCP服务器)、alma(CLI管理工具)和alma-companion(TUI界面)。所有组件共享同一数据存储,可通过环境变量覆盖路径。项目尚未发布打包版本,需从源码编译。Companion界面允许用户浏览确认方面、预览代理可见的读取内容、审核授权和审计事件。
Alma还注重可移植性:alma_export_bundle命令可将完整事件日志导出为JWS签名的紧凑型捆绑包,公钥嵌入头部,无需事先交换密钥即可验证,导入可回放到新存储。此外,用户可通过alma delete命令彻底清除本地数据,该操作仅限人类执行,不暴露为MCP工具。
协议方面,代码库中提供了JSON Schema和一致性测试套件。项目采用Rust编写,基于Apache-2.0许可。目前仍处于实验性阶段,API和行为可能更改,但它的方向——让AI代理的记忆真正属于用户——无疑是值得关注的。