知识管理工具

Lore是一个为工程团队和AI代理设计的操作知识层,提供知识库、调查和日志功能,支持语义搜索和多代理系统。

  • by davidgut1982
  • Python
  • 本地部署
  • 5 星标
  • 更新于
在 GitHub 查看 davidgut1982/advanced-knowledge-mcp

使用说明

传说

lore-knowledge-mcp ·工程团队及其人工智能代理的操作知识层。


问题

您的代理在每次会话开始时对您的系统一无所知。你写的每一本runbook。你打的每一个球。你调试过的每一个事件。这些都没有延续下去。

你重新解释。他们重新发现。会话结束时上下文消失。

Lore解决了这个问题。

Without Lore                     With Lore
─────────────────────────────    ──────────────────────────────────
Agent starts fresh every time    Agent queries Lore on startup
"How does our infra work?"       Gets: topology, gotchas, runbooks,
You re-explain everything        past incidents, verified decisions
Context lost at session end      Knowledge persists across all sessions

这有什么不同

工具 专为 它能记住什么 原生代理
OB1/个人记忆 一个人 你的想法和捕捉 否
Mem0/Zep 应用开发者 用户偏好、对话 部分
汇流/概念 人工团队 文档(人工浏览) 否
传说 工程团队+人工智能代理 你的系统实际上是如何工作的——可以通过意义而不仅仅是关键字进行搜索 是

知识不是第二大脑。这是你的特工需要工作的作战情报 你的 环境——不仅仅是任何环境。


Lore做什么

知识库

您团队的运营知识——任何代理都可以查询。捕捉重要的东西:运行手册、来之不易的陷阱、架构决策、部署状态。每个条目都带有归因,这样代理人就知道是谁写的,以及是否有人验证过。

调查

当事情发生时,展开一项结构化的调查。记录症状,测试假设,记录你尝试过的和发现的。六个月后,当同样的问题再次出现时——不同的工程师,不同的代理人——线索就在那里。

期刊

里程碑、架构决策和购买决策的永久记录。这种事情一直存在于某人的脑海中,直到他们离开团队。


专为多智能体系统构建

在多代理环境中,来源很重要。每一个Lore条目都携带 author, source_type,以及 verified.

kb_search("proxmox lxc dns")

  [1] "LXC inherits host resolv.conf — Tailscale breaks containers"
      david · human · ✓ verified

  [2] "LXC DNS fix after Tailscale install"
      engineer-agent · agent · unreviewed

  [3] "LXC DNS configuration reference"
      research-agent · agent · ✗ disputed

你的代理人知道:结果1是生产安全。结果2,行动前进行抽查。结果3,先复习。


语义搜索

Lore通过含义而不仅仅是关键字来查找条目。搜索“容器中的DNS损坏”,它返回一个标题为“LXC容器从主机继承resolv.conf”的条目——不需要关键字重叠。

由本地语句转换器嵌入(无API键,无外部调用)提供支持,并结合词汇全文搜索和互惠排名融合。mcp内存服务使用的相同模型,完全自托管。在SQLite上,词法分支使用FTS5;在PostgreSQL上,它使用GIN全文索引和pgvector作为语义部分。

启用它

pip install lore-knowledge-mcp[semantic]
LORE_SEMANTIC_SEARCH=true lore-mcp

搜索模式

kb_search 从(按顺序)解析其模式:显式 search_mode/semantic/hybrid 那么,争论 LORE_SEARCH_MODE_DEFAULT,则内置默认值为 hybrid.每个搜索响应都会回声 requested_mode (呼叫者的意图)旁边 search_mode (任何降级后实际执行的模式)。

模式 何时使用
fts 术语完全匹配。
semantic 基于意义的检索,不需要关键字重叠。
hybrid 两者兼而有之——通过RRF实现词法+向量(默认)。

这 summary 模式已删除--传递 search_mode="summary" 现在返回验证错误。Lore的设计是免费的法学硕士;总结是来电者的责任。

回填现有KB

如果您已经有条目,请为它们生成嵌入:

kb_backfill_embeddings()    # idempotent, safe to re-run
kb_embedding_status()       # check coverage

配置

变量 默认值 注释
LORE_SEMANTIC_SEARCH false 主开关--off=仅词汇行为。
LORE_SEARCH_MODE_DEFAULT hybrid 默认模式 kb_search 当没有模式通过时(fts, semantic,或 hybrid).
LORE_EMBEDDING_MODEL all-MiniLM-L6-v2 384d,~90MB,英语优化。
LORE_RRF_K 10 对于大于10000条的语料库,增加到30-60条。

对于多语言内容,请设置 LORE_EMBEDDING_MODEL=paraphrase-multilingual-MiniLM-L12-v2 (384d不变,模式不变)。


自动内存提取

Lore可以自动从代理对话中提取持久记忆。在会话结束时,会话回合异步发送到快速LLM,LLM提取事实、偏好、目标、事件和系统事实,然后在编写之前根据现有知识库对其进行重复数据消除。

  • 加入 --默认情况下禁用(auto_extract.enabled: false).
  • 两个供应商 -OpenRouter(默认,简单设置)或Cerebras直接API(gpt-oss-120b,300+TPS,高提示缓存命中率)。
  • 优雅降级 -丢失的API密钥、HTTP错误或错误的JSON以静默方式返回空结果;它从不提高也从不阻止会话。
  • 可审计的 --每个自动提取的条目都被标记 source:auto-extracted,带有可选的审核队列(topic="auto-memory-pending")供人类批准。

集 OPENROUTER_API_KEY (或 CEREBRAS_API_KEY)并在插件配置中启用它。

→ 完整设置指南:docs/auto-expraction-setup.md -API键、提供程序配置、调整阈值、审查模式以及检查或删除提取的条目。


在工作流程中自动化知识

在每个代理的系统提示中添加一行,并在 ~/.mcp.json --这就是整个整合。工程工作流程的每个阶段都会从Lore读取先前的知识并将其结果写回,因此不会从头开始重新发现任何东西。

→ 如何将Lore连接到6相多代理管道中 --每个阶段的代码示例的完整演练:研究、架构审查、实现、对抗性代码审查、质量保证和文档。


快速开始

无需设置数据库。 Lore与SQLite的结合是开箱即用的。

1.安装

pip install lore-knowledge-mcp

可选:语义搜索

pip install lore-knowledge-mcp[semantic]

然后设置 LORE_SEMANTIC_SEARCH=true。参见 语义搜索 了解详情。

2.启动服务器

# Stdio mode (for local MCP clients like Claude Code)
lore-mcp

# HTTP mode (for remote or multi-agent access)
lore-mcp --host 0.0.0.0 --port 8000

# HTTP mode WITH authentication (recommended for teams / LAN exposure)
LORE_API_KEY="$(openssl rand -hex 32)" lore-mcp --host 0.0.0.0 --port 8000

身份验证(LORE_API_KEY)

HTTP身份验证 选择加入 默认情况下为关闭:

  • LORE_API_KEY 取消设置 → HTTP服务器是 打开 (无身份验证),完全相同 之前。这使现有的无身份验证部署保持工作状态。当你绑定到一个 非本地主机(0.0.0.0 或者LAN IP)没有密钥,Lore会记录 杰出的创业公司 警告 您的网络上可以访问服务器 无需身份验证。
  • LORE_API_KEY 集 → 每个HTTP/SSE请求都必须包括 Authorization: Bearer <key>.丢失或错误的令牌 401 {"error":"unauthorized"} (以恒定时间比较的令牌)。健康 端点(/health, /healthz, /)保持打开状态,以便活性探针保持 工作。 stdio模式永远不会受到影响 --它没有网络表面。

同样的规则也适用于HTTP入口点(lore-mcp --host/--port, 其调用FastMCP服务器)。

CORS: 原点默认为 * 禁用凭据(规范禁止 * +证书)。集 LORE_CORS_ORIGINS 以逗号分隔的允许列表 (例如。 https://app.example.com,https://admin.example.com)限制起源; 当来源明确时,认证的CORS会自动启用。

3.添加到您的MCP客户端

克劳德代码/克劳德桌面 --添加到 ~/.mcp.json:

{
  "mcpServers": {
    "lore": {
      "type": "stdio",
      "command": "lore-mcp"
    }
  }
}

或者用于HTTP模式(建议团队使用)。当服务器启动时 LORE_API_KEY set,在客户端配置中包含匹配的承载令牌:

{
  "mcpServers": {
    "lore": {
      "type": "http",
      "url": "http://localhost:8000/mcp",
      "headers": {
        "Authorization": "Bearer <your LORE_API_KEY>"
      }
    }
  }
}

如果服务器启动时没有 LORE_API_KEY,省略 headers 块-- 端点已打开。

好了,Lore准备好了。


工具参考

知识库

工具 它做什么
kb_add 添加条目。接受 author, source_type 归因。
kb_search 语义/混合/FTS搜索,可选主题过滤器。
kb_get 按ID获取完整条目
kb_get_batch 在一次调用中按ID获取多个条目(重新键入 kb_id).
kb_list 列出条目,按主题筛选。
kb_update 更新内容、标签或集合 verified 旗帜。
kb_delete 删除条目(需要 confirm=true).
kb_backfill_embeddings 为现有条目生成嵌入(幂等)。
kb_embedding_status 报告整个知识库的嵌入覆盖率。

调查

工具 它做什么
investigation_add 打开或添加调查。
investigation_list 列出调查,按主题筛选。
investigation_get 通过ID获取完整调查
investigation_log_experiment 记录一个结构化的假设→ 结果→ 结论。
investigation_list_experiments 列出所有记录的实验。
investigation_delete_note 硬删除注释(需要 confirm=true;生产警卫)。
investigation_delete_experiment 硬删除实验(需要 confirm=true;生产警卫)。

期刊

工具 它做什么
journal_append 添加里程碑、决定或反思。
journal_list 列出最近的条目(默认值为20)。
journal_get 按ID获取条目
journal_delete 硬删除条目(需要 confirm=true;生产警卫)。
snapshot_config 将配置对象快照到日志中。

文件摄入

工具 它做什么
kb_ingest_doc 将markdown文件放入KB(strategy: full 或 chunked).
kb_ingest_dir 通过更改检测批量摄取目录。
kb_sync_status 检查自上次同步以来发生了什么变化。

MCP指数

工具 它做什么
mcp_index_scan 扫描所有已配置的MCP服务器并为其工具建立索引。
mcp_index_search 按描述搜索索引工具。
mcp_index_get_server 获取特定MCP服务器的所有工具。
mcp_index_rebuild 强制进行全面重新扫描。

搜索

工具 它做什么
multi_search 一次搜索知识库、调查、期刊和成绩单。
search_local 按内容搜索本地文件。
search_transcripts 搜索Whisper转录片段。
deduplicate_results 根据相似性阈值对结果集进行重复。
cluster_results 按主题对结果进行聚类。

后端

SQLite PostgreSQL
需要安装 无 现有PostgreSQL实例
最适合 单人开发、本地使用 团队、共享代理、生产
配置 DB_BACKEND=sqlite (默认) DB_BACKEND=postgres +连接变量
数据位置 ./knowledge-data/ (用覆盖 KNOWLEDGE_DATA_DIR) 您的数据库
语义搜索 sqlite-vec+FTS5 pgvector+GIN全文索引

SQLite是默认设置。 无需配置,只需安装并运行即可。这 SQLite数据库和任何本地文件搜索语料库 KNOWLEDGE_DATA_DIR,默认为 ./knowledge-data (便携式、相对 path——将其设置为绝对路径,以获得稳定的磁盘位置)。

PostgreSQL 适用于希望从以下位置访问共享知识层的团队 多台机器或代理同时运行。 DB_BACKEND=postgres (以及 postgresql alias)选择捆绑的本地PostgreSQL客户端——相同的路径 作为 DB_BACKEND=local。连接默认值是通用的(DB_NAME=lore, DB_USER=lore_user);用下面的连接变量覆盖它们。开 PostgreSQL,混合搜索使用组合的标题+内容GIN全文索引 词汇腿和语义腿的pgvector。

# PostgreSQL setup
export DB_BACKEND=postgres          # "postgresql" and "local" also work
export DB_HOST=your-db-host
export DB_PORT=5432
export DB_NAME=lore                 # default: lore
export DB_USER=your-user            # default: lore_user
export DB_PASSWORD=your-password
lore-mcp

配置参考

环境变量 默认值 目的
DB_BACKEND sqlite sqlite, postgres/postgresql/local,或 supabase.
KNOWLEDGE_DATA_DIR ./knowledge-data SQLite数据库和本地文件搜索的根。默认情况下可移植--否 /srv 路径。
DB_NAME lore PostgreSQL数据库名称。
DB_USER lore_user PostgreSQL用户。
LORE_SEMANTIC_SEARCH false 语义/混合搜索的主开关(需要 [semantic] 额外)。
LORE_SEARCH_MODE_DEFAULT hybrid 默认值 kb_search 未传递任何值时的模式(fts, semantic, hybrid).
OPENROUTER_API_KEY (未设置) API密钥,用于通过OpenRouter自动提取内存。看 自动内存提取.
CEREBRAS_API_KEY (未设置) API密钥,用于通过Cerebras直接API自动提取内存。
LATVIAN_LEARNING_ROOT (未设置) 可选的语料库根 search_local.取消设置→ 跳过该源。
LATVIAN_XTTS_ROOT (未设置) 可选转录根 search_transcripts.取消设置→ 返回一个干净的“未配置”结果。
INGEST_ROOT (未设置) 可选的语料库根 search_corpora.取消设置→ 返回一个干净的“未配置”结果。
LORE_API_KEY (未设置) 选择HTTP身份验证。 Set → 需要 Authorization: Bearer <key> 在HTTP/SSE请求上(否则为401)。取消设置→ HTTP已打开(在非本地主机绑定上记录警告)。stdio永远不会受到影响。
LORE_CORS_ORIGINS * 逗号分隔的CORS允许列表。 * (默认)根据CORS规范禁用凭据;显式起源支持认证的CORS。

特定于部署的搜索根(LATVIAN_LEARNING_ROOT, LATVIAN_XTTS_ROOT, INGEST_ROOT)都是 默认情况下未设置.当根不是 配置后,依赖搜索工具返回一个空的、明确标记为“否”的搜索结果 “配置”结果,而不是扫描不存在的路径——因此是全新安装 开箱即用。


Hermes内存供应商

Hermes代理内存提供程序插件支持与Lore的对话内存,可作为单独的软件包提供:

Hermes传说插件 --的插入式内存提供程序 赫尔墨斯代理。将KB条目存储在Lore中,在会话开始时预取相关上下文,并在存储前进行重复数据消除。它还驱动 自动存储器提取 管道。


许可证

麻省理工学院——见 许可证