Knowl 是为 Claude Code、Cursor 和 Codex 等编码代理设计的持久记忆系统,通过 MCP 或 CLI 工作。它解决的核心问题是:代理每次会话从空白开始,而传统的 CLAUDE.md 文件只增不减,时间一长旧事实(如已迁移掉的数据库)仍会与新事实同时被检索到,导致代理拿到互相冲突的答案。Knowl 的做法是:当同一主题的事实被新写入替换时,旧事实被标记为 superseded 并退出正常检索,但仍可通过 knowl timeline 查询。若系统不确定新事实是否真的替代旧事实,则保留两者并提示用户使用 knowl supersede 命令手动确认。
安装与初始化:需要 Node.js 22 或更高版本,支持 macOS、Linux 和 Windows。可通过已发布的包安装,使 knowl 进入 PATH;也可不安装直接运行。运行 knowl init 会创建 .knowl/ 目录、安装项目引导文件、更新 .gitignore,并向检测到的代理注册 Knowl,同时在后台预热本地嵌入模型(约 53MB,初始化无论成功与否都可用,没有嵌入模型仍有关键词搜索)。更新后可运行 knowl init --all 刷新所有仓库和主机注册。
连接代理:knowl init 会为检测到的每个主机注册 MCP 服务器,之后启动新会话即可让代理自行查询和写入记忆。支持的主机包括 Claude Code、Codex、Cursor、Zed、JetBrains、Neovim、Kiro、Cline、Hermes Agent、OpenClaw 等,其他 MCP 客户端无需集成也可使用。并行代理运行时,每个 git worktree 解析到主检出存储,Conductor 工作区、Claude Code 的 worktree 隔离等共享一份记忆。
知识模型:每个原子有七种类型之一,并保存状态(active、deprecated、rejected、archived、superseded)、新鲜度标记、置信度、标签、来源提交、受影响路径,以及指向文件、提交、测试、命令、URL 或索引代码符号的可选证据。文件和符号证据会随代码移动自动过期。Knowl 不存储对话,生命周期捕获只记录有界事件和摘要,不记录提示、转录、标准输出或环境变量。
使用方式:knowl serve 通过 stdio MCP 暴露存储;代理被引导先以命名主题的词汇查询记忆,命中活跃结果直接使用,仅在未命中、冲突或结果过期时检查文件,并持续存储持久发现、目标和重复诊断,纠正被反驳的记忆而非重复存储。有钩子的主机可自动完成引导、捕获、检查点和收尾;没有钩子的可使用 knowl task run、task start、task checkpoint、task finish 手动完成。
适用场景:保持项目已定知识对代理准确——决策、约束、架构及其当前是否仍成立。Knowl 强调类型化而非自由文本、受治理而非只追加、仓库本地而非服务。它明确不是个性化层,不保存用户偏好或聊天历史。
限制与说明:运行 CLI 不支持直接在 Bun 或 Deno 运行时下执行,因为捆绑了原生插件(SQLite、tree-sitter、嵌入运行时),尽管 Bun 可用于安装。多跳检索场景中 Knowl 得分为 7,检索上限为 14 分。确切价格、收费模式、具体平台支持完整列表等资料暂未提供。