用途
Lore 是一个 MCP 服务器,定位为工程团队及其 AI 智能体的“运营知识层”。它要解决的问题是:智能体每次会话开始时对系统一无所知,写过的运行手册(runbook)、踩过的坑、排查过的事故都无法延续,导致反复解释、反复发现,会话结束上下文就消失。Lore 通过持久化知识库让这些运营知识始终可被任意智能体查询。
主要能力
- 知识库:捕获运行手册、难缠的坑、架构决策、部署状态等;每条条目都带有 author、source_type、verified 归属信息,使智能体能够判断来源与是否经人工验证。
- 调查线程:当出现问题时可开启结构化调查,记录症状、测试假设、记录尝试过与发现的内容,便于同一问题日后重现时(不同工程师、不同智能体)仍可追溯。
- 日志(journal):记录里程碑、架构决策、采购决策等通常只存在于某个人头脑中的信息。
- 语义搜索:按语义而非仅关键词查找条目,例如搜索“DNS broken in containers”可返回标题为“LXC containers inherit resolv.conf from the host”的条目。由本地 sentence-transformers 嵌入驱动(无 API 密钥、无外部调用),结合词法全文搜索与 Reciprocal Rank Fusion。SQLite 的词法部分使用 FTS5;PostgreSQL 使用 title+content 的 GIN 全文索引加 pgvector 做语义部分。kb_search 的模式解析顺序为:显式 search_mode/semantic/hybrid 参数,其次 LORE_SEARCH_MODE_DEFAULT,最后内置默认 hybrid;响应中同时返回 requested_mode(调用方意图)与 search_mode(实际执行的模式)。summary 模式已被移除,传入 search_mode="summary" 会返回校验错误;Lore 设计上不依赖 LLM,摘要由调用方负责。
- 自动记忆抽取(可选):会话结束时将会话轮次异步发送给快速 LLM,抽取事实、偏好、目标、事件与系统事实,并在写入前与现有知识库去重。默认禁用(auto_extract.enabled: false)。支持 OpenRouter(默认)或 Cerebras 直连 API(gpt-oss-120b)。失败时静默返回空结果,不会抛出异常或阻塞会话。自动抽取的条目会标记 source:auto-extracted,并可选进入人工审核队列(topic="auto-memory-pending")。
- 多智能体归属:在多智能体环境中 provenance 很重要,每条条目都携带 author、source_type、verified。
使用方式
- 无需数据库设置,默认使用 SQLite 开箱即用;SQLite 数据库与本地文件搜索语料位于 KNOWLEDGE_DATA_DIR 下,默认 ./knowledge-data。要启用语义搜索,设置 LORE_SEMANTIC_SEARCH=true。
- 启动服务器。HTTP 鉴权为可选、默认关闭:未设置 LORE_API_KEY 时 HTTP 服务器开放(无鉴权),绑定到非 localhost 主机(0.0.0.0 或局域网 IP)且无密钥时会在启动时输出显著 WARNING;设置 LORE_API_KEY 后,所有 HTTP/SSE 请求必须带 Authorization: Bearer <key>,缺失或错误返回 401 {"error":"unauthorized"}(常量时间比较令牌),健康端点(/health、/healthz、/)保持开放;stdio 模式不受影响。同一规则适用于 HTTP 入口(lore-mcp --host/--port,即 FastMCP 服务器)。CORS 默认 origins 为 * 且 credentials 禁用;可设置 LORE_CORS_ORIGINS 为逗号分隔白名单。
- 添加到 MCP 客户端:Claude Code / Claude Desktop 可在 ~/.mcp.json 中添加配置;HTTP 模式(团队推荐)在服务器设置 LORE_API_KEY 时客户端配置需包含匹配的 bearer token,未设置则可省略 headers 块。集成时可在每个智能体的系统提示中加入一行,并在 ~/.mcp.json 中添加一条目。
- 已有条目可执行回填生成嵌入;多语言内容可设置 LORE_EMBEDDING_MODEL=paraphrase-multilingual-MiniLM-L12-v2(同样 384 维,无需改 schema)。
- PostgreSQL 版本面向希望在多台机器或多个智能体间共享知识层的团队。DB_BACKEND=postgres(及 postgresql 别名)选择随附的本地 PostgreSQL 客户端,与 DB_BACKEND=local 相同路径;连接默认 DB_NAME=lore、DB_USER=lore_user,可用连接变量覆盖。
适用场景
- 多智能体工程流水线:每个阶段从 Lore 读取先前知识并把发现写回,覆盖研究、架构评审、实现、对抗式代码评审、QA 与文档等阶段。
- 团队共享运维知识:让运行手册、事故排查记录、架构决策对任何智能体可查询。
- Claude Code 集成与统一知识管理、知识图谱、研究流程。
限制与说明
- 默认 SQLite,无数据库配置即可运行;PostgreSQL 需配置连接参数。
- 自动抽取默认关闭,需设置 OPENROUTER_API_KEY(或 CEREBRAS_API_KEY)并在插件配置中启用。
- summary 搜索模式已移除。
- 部署相关的搜索根路径(LATVIAN_LEARNING_ROOT、LATVIAN_XTTS_ROOT、INGEST_ROOT)默认未设置;未配置时相关搜索工具返回空且明确标注“未配置”,而非扫描不存在的路径。
- Hermes 记忆提供者插件 hermes-lore-plugin 作为独立包提供,用于以 Lore 支撑会话记忆、会话开始时预取相关上下文、存储前去重,并驱动自动记忆抽取流水线。
- 许可:MIT,详见 LICENSE。
完整安装与配置细节(包括自动抽取的 API 密钥、提供者配置、调优阈值、审核模式、检查或删除抽取条目,以及六阶段多智能体流水线的接线方式)请参考仓库内的 docs/auto-extraction-setup.md 与相关文档。