Show HN: Emem – 面向AI代理的物理世界外部记忆
Emem是一个为多代理系统设计的共享内存层,提供锚定于物理位置的签名可验证事实,使代理无需信任即可共享精确观测数据。
在人工智能领域,多代理系统面临一个核心挑战:随着会话进行,上下文被压缩,导致精确事实丢失。传统的检索方法无法解决这一问题,因为它从需要信任的存储中返回最接近的文档,且局限于单一产品和供应商。Emem项目旨在解决这一问题,通过创建一个共享记忆层,使代理能够存储和引用经过签名的、锚定于物理位置的事实。这些事实以永久地址的形式存在,任何代理都可以无需账户即可读取,而持有密钥的代理则可以写入。Emem使用地球观测数据作为初始基底,但设计上可扩展至任何物理观察器,如无人机、固定传感器或机器人。
关键特性:每个事实都是一个小的签名记录,其地址由事实内容的哈希派生。当代理需要引用一个事实时,它只需保留一个类似于“emem:fact:...”的令牌,该令牌可以在后续会话中解析为确切的字节,并重新验证签名。这消除了传统上下文中“近似值”的问题,确保了长期任务的精度。例如,一个代理在早期验证了一个海拔值为918米,上下文压缩后,没有Emem时只剩下“大约900米”,而有Emem时令牌精确解析为918.0米,签名仍然有效。
Emem的信任模型基于blake3哈希和ed25519签名。任何读取操作都会返回一个包含接收证明的签名记录,接收者可以离线验证该证明,而无需信任发送者或服务器。系统还定义了不同的来源类别:direct_sensor(直接传感器测量)、deterministic_index(确定性索引计算)、model_output(模型输出,仅归因不验证)和human_curated(人工整理),以明确每个事实的可靠性。对于需要审计的场景,这些区分至关重要。
此外,Emem提供了一套令牌语法,包括emem:fact(单点事实)、emem:bundle(事实集)、emem:entity(实体身份)、emem:raster(栅格数据)、emem:cube(时空立方体)和emem:rasterset(栅格集),支持从单点事实到复杂时空场数据的表示。项目还提供了MCP、REST API、Python和TypeScript SDK,方便集成到现有代理工作流中。
Emem适用于事实必须跨上下文生存或跨信任边界传递的场景,例如长期任务、代理间协作、机器人舰队地图、审计报告等。但作者也诚实地指出了其局限性:它不适用于对话式记忆、高频数据流或需要亚米级精度的场景。Emem与检索增强生成(RAG)互补,而非替代;它存储物理世界的测量状态,而非文档。
总结:Emem为多代理系统提供了一种独特的方式,通过共享的、可验证的事实层,增强了代理间的协作和长期任务的可靠性。随着AI代理在现实世界中的应用增加,这样的基础设施将变得日益重要。项目已在GitHub开源,提供快速入门指南和多种集成方式。