Show HN:Memharness – AI代理的双时态记忆,单个SQLite文件
Memharness 是一个开源的 AI 代理记忆库,基于 SQLite 实现双时态、可溯源的事实存储。它支持时间旅行查询(如“过去某个时刻相信什么”)、事实修正链、来源追溯,并且完全无网络依赖,适合需要审计和会话独立性的场景。
Memharness 是一个专为 AI 代理设计的长期记忆库,采用单个 SQLite 文件存储双时态、附带来源的事实。与大多数将记忆视为字符串集合的方案不同,Memharness 结合了三种关键语义:双时态(事实的世界时间与学习时间分离)、修正链(保留历史记录而非覆盖)以及每个事实的完整来源(包括谁、何时、何处)。
这使得代理能够回答诸如“你三月一号相信什么?”、“在我纠正你之前你相信什么?”以及“你为什么相信这个?”等问题。存储层是完全确定性的,不依赖任何 LLM 或网络调用;所有数据均通过标准的 MCP 协议暴露给 AI 代理。
Memharness 并非适用于所有场景。如果代理的记忆规模小且稳定,能轻松放入上下文窗口,那么使用 CLAUDE.md 文件或直接填充历史记录更为简单。但当历史数据超出上下文窗口、需要审计追踪、需要按来源批量删除(如 GDPR 要求)或者信念随时间变化时,Memharness 的价值便得以体现。
与同类产品(如 mem0、Zep、Letta 等)相比,Memharness 的独特优势在于其确定性、可审计的存储层,而非自动事实提取服务。它不提供自动从对话中提取事实的功能,而是在写入路径上保持无模型状态,由客户端决定什么值得记忆。
项目以 npm 包形式发布,包含核心 TypeScript 库(@memharness/core)、MCP 服务器(@memharness/mcp)以及可选的嵌入模型(@memharness/embed)。快速集成只需一个命令,例如在 Claude Code 中添加 MCP 服务器。首次运行时,记忆文件自动在 ~/.memharness/memory.db 创建。
Memharness 提供了七个核心工具:remember(存储原子事实)、recall(按时间点查询当前信念)、revise(修正信念并保留历史)、diff(查看时间范围内的变更)、why(查看事实的完整来源和修正链)、forget(按 ID 或来源删除)以及 stats(统计信息)。
在开发方面,项目强调正确性:通过随机化属性测试(每次提交运行 10,000 个随机序列)确保 recall 的 as_of 查询与事件日志重放结果一致。基准测试显示,在 10 万条事实规模下,大部分查询的 p95 响应时间约 1.3 毫秒。
Memharness 采用 Apache-2.0 许可证,完全开源。