Mads Thines 推出 LoreKit,为编程代理提供本地可检视的记忆

这款开源工具将课程以 Markdown 存储,然后提供托管式分享,而无需强制开发者放弃他们的本地文件。

By · Published

Primary source: LoreKit

Why it matters

LoreKit turns agent memory into developer-owned project artifacts, giving Thines a low-friction route from a free local tool to a shared hosted service. ([LoreKit](https://www.lorekit.io/blog/give-your-agent-a-memory?ref=runtimewire))

An abstract coding agent inspects a vast, structured data archive, representing LoreKit's memory, viewed through a futuristic archway.

Mads Thines,一位总部位于哥本哈根的设计师和产品工程师,推出了 LoreKit,一个开源的记忆层,为 AI 代码代理提供对早期错误、修复和项目特定经验的记录。初始工作流完全在开发者的机器上运行,将记忆以可读的 Markdown 文件存储,而不是要求注册账号或使用托管数据库。Thines 在一篇 8 月 15 日的博客文章 中详述了本地设置。

该项目源自 Thines 大约两年时间里为代码代理构建自主工作流的工作。他发现代理在会话结束后会反复重新发现相同的环境事实和调试修复。他最初的解决方案是一组本地文件。当他希望这些经验能在机器、团队成员和持续集成任务之间移动,而不将记忆系统绑定到单一代理主机时,LoreKit 应运而生。(Reddit 发布帖)

Thines 进入代理基础设施领域的路径更多基于产品工作而非 AI 研究。他的公开资料将他描述为在可观测性初创公司 Dash0 工作的编码者与设计师,而他的 LinkedIn 列出他在转入前端和产品工程之前接受过平面设计的培训并从事相关工作。LoreKit 反映了这一背景:核心押注在于一个开发者可以使用他们已熟悉的工具查看和编辑的记忆系统。(LinkedIn)

A memory is a file, not a hidden model process

开发者通过以下命令安装 LoreKit's CLI and MCP server

npx @lorekit/cli install

安装程序会添加三个代理技能、一个 MCP 服务器条目以及对受支持环境的生命周期钩子。LoreKit 的主页列出了 Claude Code、Cursor 和 Codex,而仓库则表示任何与 MCP 兼容的客户端都可以使用相同的记忆工具。(LoreKit)

在本地模式下,开发者添加一个 .lorekit.json 文件来选择本地存储并将 MCP 条目指向 CLI 的本地服务器。随后记忆存放在 ~/.lorekit/ 或仓库的 .lorekit/ 目录下。每个文件包含 Markdown 和 YAML frontmatter,字段例如 scope、key、时间戳以及某条经验被遇到的次数等。(LoreKit 启动文章)

在 Thines 发布的示例中,一个集成测试失败,原因是其 Postgres 容器未运行。一个 LoreKit 钩子建议将修复保留下来,但软件不会自行记录该会话;模型必须调用 memory.write。Thines 随后生成的记忆告诉后来的会话在将 ECONNREFUSED 5432 视为代码缺陷证据之前先启动数据库。该示例是创始人出品的演示,而非对系统的独立测试。(LoreKit 启动文章)

这种设计为开发者提供了可见的审计轨迹。记忆可以被打开、用 grep 搜索、提交到仓库、编辑或删除。Thines 也将这些条目描述为建议性观察。明确的规则仍然应保存在例如 CLAUDE.md 之类的文件中,由人工审查并进行版本控制。LoreKit 保存的是置信度较低的操作性知识,这些知识最终可能成为规则、过期或仍然作为有用的警示存在。(LoreKit 启动文章)

Local memory is the distribution wedge

LoreKit 的本地模式降低了测试代理记忆所需的承诺门槛。开发者可以在无需认证、网络访问或新的托管数据存储的情况下运行该工具。这个选择也为 Thines 打开了进入那些可能反对将仓库上下文或内部调试经验发送到外部服务的团队的路径。

托管产品将个人笔记转换为共享系统。根据 Thines 的说法,用户可以创建账号、生成 API key,并将 CLI 指向 LoreKit 的远程 Postgres 支撑的存储。软件继续在磁盘上保留现有的本地文件,其 list 命令会显示来自两处位置的条目。要与团队或 CI(持续集成)共享旧的本地经验,用户需要通过一个单独的迁移命令将其推送。(LoreKit 启动文章)

Thines 表示,存储选择位于 LoreKit 检索逻辑之下。范围优先级、排名、去重和上下文预算应在软件从本地目录或托管数据库读取时保持一致。该架构在 LoreKit 的启动材料中有所描述,但尚未经过独立测试。(LoreKit 启动文章)

组织可以将仓库范围绑定到共享存储,并分配 viewer、member、administrator 和 owner 等角色。启动文章中描述的免费托管层支持最多 5,000 条记忆和每分钟 120 次请求。只读令牌可以将团队经验暴露给 CI,而不允许流水线更改它们。这些限制和权限是公司提供的产品规格。(LoreKit 启动文章)

LoreKit makes a narrower memory claim

代理记忆已发展成一个独立的软件类别。Mem0 销售托管记忆基础设施,提供自动提取、置信度和衰减评分以及冲突处理。(Mem0 介绍长期记忆指南记忆衰减公告) Letta,一款此前名为 MemGPT 的代理开发平台,直接将结构化、可由代理编辑的记忆块放入代理的上下文。LangMem 为基于 LangGraph 的应用提供了提取、合并和搜索语义、情景和过程性记忆的工具。(LangMem 文档)

LoreKit 目前回避了这些复杂机制。检索是词汇级的,使用重复性、时效性、范围和词重叠,而不是使用嵌入或语义检索。因此,意译的查询可能会遗漏相关的经验。Thines 表示他对系统进行了从 6 条到 60,000 条记忆的负载测试,但该性能数据为自我报告,并不能证明检索质量。现有材料中未引用任何独立的检索基准。(Reddit 讨论)

更窄的设计是 LoreKit 吸引力的核心。它将代理记忆视为带有明确来源和人工控制的累积项目笔记。这使得理解某条经验为何在特定上下文中出现变得更容易,也更容易删除已变得不正确的经验。

冲突和过时的记忆仍然是难题。LoreKit 支持分支特定的范围和生存时间(time-to-live)值,允许临时笔记在到期后自动变为不可见。对于纠正、提升或移除经验的决定,Thines 仍交由开发者来做,这是对一个要求代理从自身行为中学习的系统而言一项重要约束。(LoreKit 启动文章)

LoreKit 仍处于早期,其托管服务引入了本地 Markdown 所不涉及的问题,包括团队将如何评估敏感记忆以及如何防止错误的经验在多个代理之间传播。Thines 的本地优先方法为开发者提供了一种在做出那种运营性承诺之前测试基础想法的实用方式。第一个有用的记忆可以是一份他们可以阅读的文件。

Reader comments

Conversation for this story loads after sign-in.