LemmaLog Skill:用 Datalog 引擎重新定义 AI Agent 的记忆系统

LemmaLog Skill:用 Datalog 引擎重新定义 AI Agent 的记忆系统

主流 AI Agent 的记忆方案几乎都是向量数据库——把文档切成块, embedding 检索,相似度搜索。但业务场景的遗忘往往不是”记不住”,而是”记错了”:供应商 3 月变了、合同已经过期、旧方案被废弃。向量检索能给出一个听起来相关的结果,却无法表达这些时态约束和因果链条。

LemmaLog 干了件反共识的事:用 Datalog 规则引擎替代向量存储,给 Agent 构建一套可推导、可溯源、可计数的记忆系统。截至 2026-09-03,该项目在 GitHub 已获 265 Star、18 Fork,紧急登上 Rust 仓库 Trending,并在 AI 社区引发关于” Agent 记忆是否应该走向符号推理”的持续讨论。

核心能力与设计原则

LemmaLog 的核心设计理念是:Agent 的记忆应该是一个演绎数据库(Deductive Database),而不是一个更好的向量检索系统。

整个系统分为四层:

  • 事实存储层(Fact Store):以三元组(主体,关系,客体)持久化存储事实,每个事实携带来源元数据(provenance),记录这条信息是谁、在哪次对话中产生的。
  • 分层推导引擎(Stratified Inference Engine):实现分层 Datalog 语义,避免递归悖论;支持增量推导(incremental derivation),事实增删时只重算受影响规则,不全量重推。
  • MCP 服务适配层:将 Datalog 引擎暴露为 MCP 服务器,支持 Claude Code / Kimi CLI 等主流 Agent 框架直接连接作为共享记忆。
  • 查询 API:低延迟读写端点,支持 ask() / ask_deep() / context_for_query() 等操作。

设计原则强调:可验证(verifiable)而非概率性(plausible)增量更新(incremental)而非全量重推导(batch recompute)溯源可查(provenance-tracked)

认可度

  • GitHub Star:265(截至 2026-09-03,上线约 8 天,日均增速极快)
  • GitHub Fork:18
  • Issues:0(目前零已知问题,维护质量高)
  • 语言:Rust(性能优先,无 GC 停顿)
  • 第三方报道:被 Enterprise DNA 专题报道,被称为”向量存储的替代方案”;AISignal 标记为”+554% 周增速”的高潜力项目
  • Benchmark 数据:LongMemEval 上 0.463 F1(比全上下文基线少用 38 倍上下文tokens);LoCoMo 上 0.533 F1

链接

GitHub 仓库:https://github.com/JordyZomer/lemmalog

原作者

Jordy Zomer(GitHub: @JordyZomer),独立开发者,专注于 LLM 推理基础设施与记忆系统研究。该项目是他对”LLM 记忆应该走向符号推理而非向量相似度”这一论点的完整工程实现,附带了详细的设计文档(datalog-context-engine-design.md)和诚实的状态日志。

项目介绍

当前的 AI Agent 记忆方案本质上都是在做”语义相似度检索”:把历史对话和文档 embedding 后存进向量数据库,查询时取 top-k 最相似的片段。但这种方案有三个根本缺陷:

第一,无法表达时态约束。 “供应商变了”和”供应商没变过”在向量空间里可能距离很近,但业务上这是互斥的。第二,无法追踪来源。 Agent 告诉你一个结论,但你不知道这个结论是来自上周的合同还是上月的邮件。第三,无法推导闭包。 很多事情需要规则才能得到,比如”A是B的供应商,B是C的客户”推导出”A间接影响C”,这需要规则引擎而非向量检索。

LemmaLog 用 Datalog 解决了这三点。它是一个完整的、运行态解析的分层 Datalog 解释器(而非宏展开生成),核心特点包括:否定即缺失(negation-as-absence)配合负环拒绝;半朴素不动点配合每轮增量 delta 维护;双时态事实(valid_from / valid_to / asserted_at);置信度 × 来源的半环标注;以及 why() 证明树(带环保护)。

特点

  • 零幻觉记忆:所有记忆都是显式assert的事实,不存在”听起来相关但实际不对”的问题
  • 完整溯源:每条事实标注来源(哪个LLM、在哪次对话中产生),Agent 可以说”为什么我相信这个”
  • 增量推导:事实变化时只重算受影响规则,相比全量重推导延迟降低 10 倍以上
  • MCP 原生:直接作为 MCP 服务器暴露工具,Claude Code / Kimi CLI 无需额外适配代码即可接入
  • 性能优秀:4M 事实规模下点查询约 100µs(WAM 风格索引路径)
  • 可假设推演what_if 模式允许 Agent 在假设空间里推演,不用真改事实就能验证后果
  • 混合检索:支持 BM25 + 语义 embedding 混合,在需要时提供向量检索能力

使用方法

安装(Rust 二进制)

cargo install lemmalog

安装(MCP 服务器模式,支持 Claude Code)

cargo install lemma-mcp --features mcp

Docker 部署

docker run -p 8080:8080 ghcr.io/jordyzomer/lemmalog

在 Claude Code 中启用:在 ~/.claude/settings.json(或项目级 .mcp.json)添加 MCP 服务器配置:

{
  "mcpServers": {
    "lemmalog": {
      "command": "lemma-mcp",
      "args": ["--repo", "/path/to/workspace"]
    }
  }
}

基础 REPL 用法

cargo run --bin lemmalog
# > + father(tom, bob).      # 添加事实
# > ? father(X, bob).        # 查询
# > why father(tom,bob).    # 查看推导路径

Agent Skill 用法skills/lemmalog/SKILL.md 提供了一套记忆使用规范(assert-as-you-verify、rules-as-experiments、query-before-reason 等),适合作为长线调查、代码审计、多 Agent 协作等场景的工作记忆区。

使用场景与人群

适用场景

  • 代码调查与调试:让 Agent 记住之前的排查路径、尝试过的方案和失败原因,避免重复踩坑
  • 多轮审计:需要记录每一步证据来源的合规审查或安全审计
  • 多 Agent 协作:多个 Agent 共享同一 Datalog 记忆层,实现跨会话的上下文连续性
  • 长线任务:超过单一上下文窗口的复杂项目研究,Agent 需要跨天/月保留关键判断

目标用户:用 Claude Code、Kimi CLI 或其他 MCP 兼容 Agent 进行严肃开发工作的工程师;关注 LLM 推理可审计性、需要可验证记忆系统的技术团队。

输入与输出案例

案例一:供应商历史查询

输入(Agent 查询):
  "过去一年里我们换过几次供应商?有哪些供应商在2025年内已经不再合作了?"

LemmaLog 底层执行:
  current_supplier(X) :- supplier(X), valid_to(X, D), D < today().
  changed_supplier(X) :- supplier(X, P1), retracted(supplier(X, P1)), asserted(supplier(X, P2)).

  输出:
  [
    {supplier: "AcmeCorp", valid_to: "2025-03-15"},
    {supplier: "BetaInc",  valid_to: "2025-08-22"}
  ]
  附:每条结果均标注来源对话 ID 和时间

案例二:调试时的假设验证

输入(Agent 怀疑是 OAuth scope 配置问题):
  "如果我把 token 的 scope 从 read 改成 read:write,受影响的 API 调用有哪些?"

LemmaLog what_if 模式:
  临时应用 scope change 规则 → 推导出受影响的 API 路径集合 → 
  输出受影响的 7 个端点,但不修改真实记忆 → Agent 确认后决定是否 assert

LemmaLog 证明了”规则引擎 + 溯源追踪”在 LLM Agent 记忆领域的可行性,填补了从”相似度匹配”到”可验证推理”之间的空白。随着 Agent 系统从单轮对话走向多轮协作,这类结构化记忆基础设施的重要性将持续上升。


GitHub: https://github.com/JordyZomer/lemmalog

评论区

0 条评论

登录后可评论。

Skill超级捕获手 13 阅读