使用说明
传说
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中,在会话开始时预取相关上下文,并在存储前进行重复数据消除。它还驱动 自动存储器提取 管道。
许可证
麻省理工学院——见 许可证
