关于 Exomem
Exomem 是面向 MCP Agent 的本地知识与记忆系统,将受治理的知识存入 Markdown 或 Obsidian 知识库。它适合需要可移植文件、来源记录、历史和审核流程的用户,并为受支持的客户端提供设置、检索工作流、技能与钩子。
主要功能
- 01存储于本地 Markdown 和 Obsidian 知识库
- 02关键词与语义混合搜索
- 03带来源且可审核的知识
- 04设置与客户端注册命令行工具
- 05为受支持的 Agent 提供技能和钩子
- 06为 MCP 客户端提供启动说明
适用场景
- 01跨 Agent 会话搜索项目笔记
- 02保存带来源和历史的决策
- 03在不改动现有文件的情况下接管知识库
- 04让 Agent 客户端连接共享知识库
MCP 相关
通过工具在指定知识库中搜索、检索和写入知识。不支持 Skills 的 MCP 客户端可调用 `bootstrap()` 获取操作约定。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
exomem
为支持 MCP 的 Agent 提供持久记忆,并保留来源、证据、历史记录和审核功能。
exomem 将自有的 Markdown/Obsidian 知识库转化为本地知识基础,供 Codex、Claude Code、Cursor、聊天机器人、命令行 Agent,以及任何能够调用 MCP 工具的客户端使用。你的文件始终是纯文本、本地存储、可移植的,并且可以在服务之外编辑。
agent -> MCP tools -> exomem -> your Markdown / Obsidian vault
30 秒验证效果
uvx exomem demo
一条命令,无需安装、无需配置,也不需要你自己的知识库:
exomem demo — bundled sample vault, keyword mode, fully local
vault: /tmp/exomem-demo-XXXXXX
1. doctor: PASS (0.8s)
2. find "retrieval": PASS (0.1s)
- Knowledge Base/Sources/Sessions/2026-06-30-sample-session.md
- Knowledge Base/Notes/Insights/retrieval-needs-owned-files.md
3. get retrieval insight: PASS (0.0s)
- title: Retrieval needs owned files
- type: insight
- excerpt: Local-first knowledge tools should retrieve from files the user already owns.
4. audit: PASS (0.0s)
demo PASS — total 1.0s. This is your proof: agents search files you own.
Next: connect your own vault with `exomem setup`
完全在本地运行,并且以只读方式访问软件包中附带的示例知识库。添加 --keep 可在运行后保留副本,以便在 Obsidian 中打开。
一行安装
Mac / Linux — 粘贴到终端:
curl -fsSL https://raw.githubusercontent.com/Artexis10/exomem/main/scripts/install.sh | sh
Windows — 粘贴到 PowerShell:
irm https://raw.githubusercontent.com/Artexis10/exomem/main/scripts/install.ps1 | iex
两种方式都会安装 uv 和 exomem,并引导你完成 exomem setup,为这台机器上的所有 Agent 客户端完成配置——Claude Code 和 Codex 都会获得 MCP 服务、全部十个技能,以及捕获/检索钩子。
之后可安全地再次运行——已完成的步骤会跳过。如果无法进行交互式提示(例如从其他脚本运行),它会打印接下来要运行的准确命令,而不是自行猜测。想亲自逐步操作?请参阅下文,或查看完整的手动指南 QUICKSTART.md。
Claude Code:作为插件安装
该插件包含技能和钩子。它的 MCP 配置项是可选的共享 HTTP URL;它不会在每次 Claude Code 会话中自动启动完整的 stdio 服务:
/plugin marketplace add Artexis10/exomem
/plugin install exomem@exomem
然后选择相应的方式。如果你已经将 Exomem 作为服务运行,以便通过手机或托管方式访问,可复用同一个经过身份验证的核心服务:
exomem setup --vault "/path/to/vault" --mcp-url https://<host>/mcp
如需仅在本地使用,请运行 exomem setup --vault "/path/to/vault" --stdio。此处有意要求显式指定 stdio,因为每个客户端会话都拥有自己的进程,并且可以加载自己的嵌入运行时。从旧版插件升级时,请运行 /plugin update exomem@exomem,然后运行 /reload-plugins 或重启 Claude Code,再次运行 setup。
claude.ai 和 ChatGPT
这两个平台都无法通过程序安装技能,需要手动上传。请先构建压缩包,然后在客户端的设置中上传:
exomem package-skills # writes dist/skills/*.zip (all ten)
将客户端连接到你的服务,作为连接器使用(请参阅 docs/remote-quickstart.md)。这两个平台都没有钩子系统,因此其中的捕获由技能驱动,而非自动执行。
5 分钟完成设置
uv tool install exomem # or: pip install exomem
exomem setup --vault "/path/to/your/Obsidian"
重新运行一行安装命令会升级现有的 uv-tool 安装,而不是让较旧的 exomem 命令继续留在 PATH 上。exomem --version --json 是一项不依赖模型的来源信息检查,因此也适用于精简版 CLI 与功能更完整的托管服务配套使用的场景。
一条命令即可完成整个本地设置:向导会扫描你的知识库并显示其中已有的内容,初始化 Knowledge Base/,运行 doctor 预检,为检测到的所有客户端(Claude Code 和 Codex)注册服务,并为每个客户端安装技能。
如果当前工作目录中的 .env 或进程环境包含 EXOMEM_BASE_URL,setup 会向 Claude Code 和 Codex 注册其规范的 /mcp 端点,使它们共用现有服务。否则会使用显式指定的本地 stdio 回退方式。使用 --mcp-url 直接选择服务,使用 --stdio 强制采用本地 stdio,并在有意替换现有手动配置的路由时使用 --replace-client-registration。原生客户端负责处理 OAuth;setup 绝不会存储 bearer token。
对于并非由它创建的配置文件,程序会尊重你的所有权:合并而非覆盖,先备份文件,并打印差异。
已经有一个装满笔记的知识库?这很常见:adopt 会先扫描,并以只读方式报告现有内容、建议的知识包,以及安全的复制/编译规划后续操作。Exomem 只会在 Knowledge Base/ 下写入内容——除非你明确复制或编译选定材料,否则现有文件不会受到影响。包括每日笔记知识库在内的完整说明,请参阅 QUICKSTART.md § 已经有一个装满笔记的知识库?。重新运行 setup 是安全的;已完成的步骤会显示 [skipped]。非交互模式:
exomem setup --yes --vault "/path" --lean。
各个独立步骤(exomem init / doctor / install-skill /
install-hook,以及 claude mcp add)仍可作为手动安装途径——请参阅
QUICKSTART.md。
该技能以 Claude Code 名称 exomem 安装——与连接器同名,因此技能、服务和工具都属于同一产品。对于 Claude Code,建议使用该技能——服务为 Claude 提供工具,技能则让它知道如何使用这些工具。钩子是面向 Claude Code 和 Codex 的本地客户端可靠性辅助工具:在回答前提供读取侧提醒,在自然停顿时提供写入侧提醒,并在压缩前后共享本地续接检查点。检查点只存储有界的结构性证据(仓库状态、产物哈希/计数和对话记录来源哈希),绝不存储对话、工具、摘要或产物内容。它不需要 MCP 连接或 Exomem 凭据。
读取侧钩子会屏蔽明显的控制/状态提示,例如 continue、
merge it 和 are you done?;也可以选择将该提醒升级为实际检索到的 KB 内容(EXOMEM_RETRIEVE_INJECT=1,需主动启用;旧名称
KB_RETRIEVE_INJECT 仍然有效)——或者设置
EXOMEM_RETRIEVE_INJECT=working_set,将编译后的 recall_context 数据包作为数据标头注入,并受 EXOMEM_RETRIEVE_INJECT_MAX_CHARS 限制(默认值为
4,000)。对于 Codex,运行
exomem install-hook --client codex;对于 Claude Code,运行 exomem install-hook——请参阅
QUICKSTART.md § 7。
两个客户端都会在手动或自动触发的 PreCompact 时创建检查点,并在
SessionStart(compact|resume) 时重新注入;Claude 还会在 SessionEnd 时创建检查点。固定版本 Codex CLI 0.144.3 不提供 SessionEnd 钩子,因此 Exomem 不会凭空添加一个。
其他 MCP 客户端仍可使用该服务。如果它们不支持 Skills,请让它们在会话开始时调用一次 bootstrap();它会通过 MCP 返回相同的精简操作规范,其中包括何时搜索、何时保存、如何发现工作流技能、上传指引和性能配置。它还会引导内容编写流程:先搜索,起草类型化笔记,运行
suggest_links,使用合适的工具写入,检查警告/建议,然后报告路径。
你可以调整它执行这些操作的积极程度:四个显著程度级别(off / light / balanced / maximal),可通过 exomem prominence <level> 设置,或粘贴到网页助手的自定义指令中。带钩子的客户端默认使用 balanced;网页端和托管端默认使用 maximal,因为它们无法在轮次之间重新触发检查。级别说明和可直接复制粘贴的内容块,请参阅 docs/prominence.md。
有关特定客户端的助手指令,请参阅 docs/ai-assistant-guide.md。有关 Exomem 与聊天产品内置记忆之间的界限,请参阅 docs/vs-built-in-memory.md。
完整的本地安装说明见 QUICKSTART.md。远程/移动端安装说明见
docs/remote-quickstart.md 和
docs/deployment.md。
远程 OAuth 会通过 GitHub 一次性验证已配置的登录账号和不可变用户 ID,然后签发由 Exomem 管理的持久会话。运维人员可以使用 exomem auth sessions、exomem auth revoke <session-id> 和 exomem auth revoke --all 检查并撤销这些会话;会话管理绝不会作为 MCP 工具提供。
产品模型刻意保持简单:内置 AI 记忆负责记住偏好和路由,而 Exomem 则存储持久且受治理的知识,包括来源、证据、历史、决策、记录和审核。完整的思维模型请参见 docs/product-model.md,关于由用户持有的纵向记录,请参见 docs/records.md;关于交互式终端 UI(exomem tui,可选的 tui extra),请参见 docs/tui.md;关于打包的浏览器审核流程,请参见 docs/review-studio.md;关于每日审核和关系修复,请参见 docs/epistemic-inbox.md;关于知识包和管理详情,请参见 docs/knowledge-packs.md;关于命名的 Agent 工作流,请参见 docs/workflow-skills.md。
如需开发,或从代码检出目录运行示例知识库,而不是安装软件包:
git clone https://github.com/Artexis10/exomem.git
cd exomem
uv sync
uv run exomem demo
连接你的 Agent
| 客户端 | 方法 |
|---|---|
| Claude Code | exomem setup 会为你注册(见上文) |
| Codex CLI | 使用 codex mcp add,并可选择运行 exomem install-hook --client codex — 参见 docs/ai-assistant-guide.md#codex-cli |
| claude.ai 或托管聊天 | 远程 MCP/连接器 — 参见 docs/remote-quickstart.md 和 docs/ai-assistant-guide.md#hosted-chat-clients |
| 任意 MCP 客户端 | 通用 stdio 配置 — 参见下文和 docs/ai-assistant-guide.md#generic-stdio-mcp-clients;先调用 bootstrap() |
| Docker(无需 Python) | 一行 docker run 命令 — 参见下文和 docs/docker.md |
Codex CLI
codex mcp add exomem --env EXOMEM_VAULT_PATH="/path/to/vault" -- exomem --transport stdio
可选的本地钩子,使用与 Claude Code 相同的 Exomem 脚本:
exomem install-hook --client codex
无需更改任何内容,即可验证已部署的 Claude Code/Codex 钩子:
exomem install-hook --check
关于 AGENTS.md 指令块和“不要搜索每条细小提示词”的策略,请参见 docs/ai-assistant-guide.md。
也可以直接将其添加到 ~/.codex/config.toml:
[mcp_servers.exomem]
command = "exomem"
args = ["--transport", "stdio"]
env = { EXOMEM_VAULT_PATH = "/path/to/vault" }
任意 MCP 客户端(通用 stdio)
{"mcpServers": {"exomem": {"command": "exomem", "args": ["--transport", "stdio"], "env": {"EXOMEM_VAULT_PATH": "/path/to/vault"}}}}
连接后,请让 Agent 在使用知识库之前调用 bootstrap()。在支持的情况下,Claude Skills 仍能提供最佳体验,但 bootstrap() 让通用 MCP 客户端无需单独的技能文件,就能了解 Exomem 的搜索/保存/上传约定,包括编译笔记的写入流程。
可复制的常驻指令请参见 docs/ai-assistant-guide.md。
Docker(主机上无需 Python)
claude mcp add exomem -- docker run -i --rm -v "/path/to/vault:/vault" -e EXOMEM_VAULT_PATH=/vault ghcr.io/artexis10/exomem:latest --transport stdio
精简的关键词/BM25 镜像使用 :latest,CPU 混合搜索使用 :ml,NVIDIA/Linux CUDA 支持使用 :cuda。CUDA 镜像在空闲时仍默认以 CPU 启动;需要使用 GPU 常驻时,请设置 EXOMEM_MODE=performance。
该镜像还可通过 docker compose 和隧道 sidecar 作为始终运行的远程服务 — 参见 docs/docker.md。拥有实时知识库的 Windows 用户通常应优先选择原生安装(WSL2 绑定挂载会漏掉实时文件监视事件)。macOS 目前无法提供知识库服务:Exomem 的受控文件系统底层组件(每次受治理的写入都会通过它获取保留路径根目录)有 Linux 和 Windows 后端,但没有 darwin 实现,因此 exomem 会在 macOS 上拒绝运行,exomem doctor 会说明原因。
首次启动时会在后台下载搜索模型 — find 会立即使用关键词排序,并在模型下载完成后自动升级为语义搜索。运行 exomem warm 可提前下载模型。
资源模式
Exomem 默认优先使用 CPU,避免空闲服务悄然占用 GPU 内存。无需修改代码即可控制机器资源占用:
exomem mode quiet # low-resource: no heavy warm-up, evict caches, defer semantic reindex
exomem mode normal # default: CPU steady-state, warm CPU caches allowed
exomem mode performance # explicit opt-in for GPU-capable bulk/model work
exomem status --resources --json
玩游戏或运行其他前台任务前,请使用 quiet。关键词/BM25 新鲜度、文件变更新鲜度、入站链接和解析器状态都会保持实时;开销较大的语义/CLIP 重建索引工作可以延后,并会在资源状态中报告。稍后运行 exomem index 或 kb reconcile,即可补齐延后的语义工作。
自动切换到安静模式是可选的。手动选择 quiet、通过 EXOMEM_MODE 固定模式或禁用 EXOMEM_AUTO_QUIET 时,监控程序会跳过 GPU 压力查询。自动安静模式仍会监控压力,以便恢复先前的模式。
在受影响的 WSL/NVIDIA 系统上,反复运行 Linux nvidia-smi 进程可能会增加 Windows 驱动的内核内存占用,并干扰前台任务。
Microsoft WSL 问题 #12756
记录了复现过程。对于较旧版本的 Exomem,配置了
EXOMEM_AUTO_QUIET=0 的服务会在该服务重启后停止其监控程序。
设置空的 CUDA_VISIBLE_DEVICES 也会禁用 GPU 工作和 GPU 余量查询。
这些设置无需重启 Windows;现有驱动状态可能仍会保留。
功能
- 搜索你已有的知识库。 Markdown 文件会保留在原处;exomem 不会将副本导入专有笔记存储。
- 安全接管杂乱的知识库。
adopt会先生成只读报告,并提供明确的复制和编译规划选项,因此在你做出选择前,原始文件会保持归档状态。 - 跨文本和媒体检索。 Markdown、PDF、Office 文档、图像、屏幕截图、音频和视频都可以通过本地提取变为可搜索内容。
- 将来源与结论分开保存。 原始采集内容、编译后的笔记、实体、证据和已被取代的结论会存放在不同类型的文件夹中。
- 呈现待审核事项。 审计和待处理队列可以显示尚未处理的来源、过时笔记、失效链接,以及值得审核的相近主张。
- 只做测量,不做判断。 服务负责确定性工作:搜索、提取、排序、嵌入、文件写入和图检查。推理仍由客户端模型完成。
为什么使用它
大多数 AI 笔记工具要求你迁移到它们的应用,或将文件导入它们的存储。exomem 采取相反的方式:让 Agent 来到你的知识库。
| 对比对象 | 差异 |
|---|---|
| 文档聊天/RAG 应用 | exomem 直接处理实时文件,而非导入的副本。 |
| 基础 MCP 笔记服务 | exomem 增加了类型化知识操作、多模态提取、审计队列,以及 CLI/REST 一致性。 |
| 隐藏在单个助手中的记忆 | exomem 不依赖特定客户端:你可以通过 Claude Code、Codex、Cursor、脚本或自定义聊天机器人访问同一个知识库。 |
如需更深入的特定时间点对比,请参阅 docs/comparison-engraph.md。与 Basic Memory 的可复现纯图对比见 docs/comparison-basic-memory-graph.md。 如需了解它与聊天产品自带记忆功能的实际界限,请参阅 docs/vs-built-in-memory.md。
检索质量经过测量,速度亦然。 检索效果通过可复现的黄金集评估工具进行评测,而非仅凭断言;同时还会在语料库规模下按通道测量延迟:在 50,000 条笔记下,混合 find() 的端到端耗时低于 1 秒(参考桌面设备上为 864 ms,关闭热缓存),关键词/BM25 通道则由 FTS5 辅助索引提供服务,耗时仅为数毫秒。FTS5 内置于标准库 SQLite 中,因此精简安装也能使用。方法与数据见 docs/benchmarks.md。
简单入口
Agent 应先通过简单操作处理普通用户请求,然后再使用底层的类型化工具。
| 操作 | 用户这样说时使用 | 由以下工具支持 |
|---|---|---|
| 保存 | “记住这个”、“记录一下”、“这是一个决定” | add、note、link、preserve |
| 采用/导入 | “让这个旧知识库可用”、“安全地导入我的笔记” | adopt、overview |
| 询问 | “我们对 X 了解多少?”、“显示来源” | find、get |
| 取证 | “为保修案件保存这个”、“显示证据” | preserve、上传/下载、find |
| 审查 | “需要清理什么?”、“有什么内容过时了?” | attention、audit、propose_compilation |
| 更新 | “这取代了旧结论”、“修正那条笔记” | edit、replace、reconcile |
| 关联 | “把这个链接到 X”、“这个应该引用什么?” | link、suggest_links |
| 规划 | “保存这个功能想法”、“把这个 Bug 记下来以后处理”、“本周什么最重要” | 使用 inspect、create、query、add、update 或 triage 的 plan_memory |
| 记录 | “记录这次会话”、“记录这次测量”、“更新里程数” | 使用 inspect、create、query、append 或 update 的 record_memory |
核心工具
exomem 提供用于常见知识库工作的类型化 MCP 工具:
| 工具 | 用途 |
|---|---|
recall_context | 无需查询即可为原始轮次整理持久上下文:返回映射,或解析该轮次涉及的锚点,并附带有界工作记忆包;也可能选择不作答。 |
episode_memory | 记录对话所处理、决定和遗留未决事项的有限回顾,以便下一次会话在任何客户端上都能首先看到;检查某个事件的修订记录。 |
find | 按类型/项目/标签筛选,搜索笔记、来源、实体和证据。 |
get | 读取完整页面或 frontmatter。 |
add | 捕获原始来源页面。 |
note | 创建整理后的笔记:研究笔记、洞见、失败、模式、实验或生产日志。 |
edit | 修补现有的整理页面。 |
replace | 用新结论取代旧结论,并保留它们之间的链接。 |
preserve | 以只追加方式存储二进制或文本证据。 |
audit | 检查图谱和语料库的健康状况。 |
attention | 显示审查队列,例如过时笔记、相近主张和尚未处理的来源。 |
overview | 对知识库或子树生成有界、只读的结构报告——可在 Knowledge Base/ 之外及 init 之前使用。 |
adopt | 采用现有知识库:默认仅扫描;可以保存清单、将选定的旧版文本文件复制为来源,或在保留原件的同时返回整理计划。 |
record_memory | 为人类拥有的观测状态提供统一入口:检查、创建、查询、追加,或对受治理的记录集合进行定向更新。 |
plan_memory | 为人类拥有的预期未来状态提供统一入口:检查、创建、查询、添加、更新,或对规划集合进行分流处理。 |
第 2 层工具涵盖治理管理和文件系统逃生口,例如列出目录、创建文件、移动页面、将文件移至废纸篓,以及从废纸篓恢复文件。如果需要更精简的工具集,请设置
EXOMEM_DISABLE_TIER2=1。
每次写入都会在 Knowledge Base/log.md 中记录持久历史。服务调用也会写入
logs/exomem.log。
一项操作,三个入口
每项操作只声明一次,并通过以下方式提供:
- MCP,供 Agent 使用。
- CLI,供终端和脚本使用。
- REST,在设置
EXOMEM_REST_API_KEY后,用于个人 HTTP 集成。
示例:
kb find "project handoff" --mode keyword
kb find "stale decision" --json
kb get "Notes/Insights/retrieval-needs-owned-files" --json
kb note --note-type insight --title "Agents need durable context" \
--content "# Agents need durable context"
curl -s -X POST http://127.0.0.1:8765/api/find \
-H "Authorization: Bearer $EXOMEM_REST_API_KEY" \
-H "Content-Type: application/json" \
-d '{"query": "project handoff", "mode": "keyword"}'
CLI 和 REST 使用相同的 JSON 封装:
{"success": true, "data": []}
默认支持多模态,仅在工作时驻留
原生发行版的服务命令会安装 standard 配置:本地嵌入、PDF/Office 文档、OCR 绑定、ASR 和 CLIP。服务启动时不会加载大型模型。媒体任务会进入持久队列,在一个一次性子进程中串行运行;空闲五分钟后,子进程会退出,其 RAM 和 MPS/MLX/CUDA 状态随之释放并还给主机。
手动安装或从源代码安装时,也可以直接选择相同的功能:
uv sync --extra embeddings
uv sync --extra media
embeddings:本地文本嵌入和 CLIP 图像搜索。media:图像 OCR、PDF 提取、Office 文档提取,以及适用于音频/视频的 faster-whisper ASR。
CSV、TSV 和 JSON 证据上传会生成数据集来源卡片,便于发现和执行精确查询。YAML、JSONL、XML 和 TOML 导出会生成有长度限制的文本预览。这些路径无需可选附加项;有关限制和治理行为,请参阅来源格式。
资源受限的机器仍可使用 lean 和 hybrid。生成式图像描述和说话人分离属于高级可选功能,并非标准多模态路径的必要条件。
系统工具:图像 OCR 需要 Tesseract。在 Windows 上:
winget install --id UB-Mannheim.TesseractOCR -e
GPU 加速很有用,但并非必需。在 normal 和 quiet 模式下,稳态运行的 torch 模型默认使用 CPU;performance 是适用于性能足够的 NVIDIA CUDA 或 Apple Silicon MPS/Metal 路径的显式可选模式。有关 CUDA、Blackwell、Apple Silicon、说话人分离和远程服务的详情,请参阅 docs/deployment.md。
配置
服务会读取环境变量或 .env 文件。主要变量如下:
| 变量 | 用途 |
|---|---|
EXOMEM_VAULT_PATH | 包含受管文件夹的库根目录(默认值为 Knowledge Base/)。 |
EXOMEM_KB_DIRNAME | 库中受管文件夹的名称(默认值为 Knowledge Base)。 |
EXOMEM_DISABLE_EMBEDDINGS | 1 强制仅使用关键词/BM25 搜索。 |
EXOMEM_RECALL_MODEL | 指定召回编码器。个人服务和云端单元的默认值为 BAAI/bge-m3,托管单元的默认值为 BAAI/bge-base-en-v1.5。如果库中的向量来自其他模型,则会在后台重新嵌入。 |
EXOMEM_RECALL_REEMBED | off 表示不构建新的 sidecar。个人服务会继续使用旧 sidecar 及其模型提供服务;单元则会关闭稠密召回。 |
EXOMEM_DISABLE_TIER2 | 1 隐藏 Tier-2 文件系统工具。 |
EXOMEM_REST_API_KEY | 启用经过身份验证的 REST 路由。 |
EXOMEM_DISABLE_MEDIA_EXTRACTION | 1 跳过服务端 OCR/ASR/PDF/Office 内容提取。 |
EXOMEM_DISABLE_CLIP | 1 禁用 CLIP 图像搜索。 |
EXOMEM_MODE | 强制固定资源模式:quiet、normal 或 performance。环境变量优先于配置。 |
EXOMEM_QUIET_MODE | EXOMEM_MODE 未设置时,作为 quiet 的旧版真值别名。 |
EXOMEM_AUTO_QUIET | 1 启用可选的非 torch GPU 压力自动静默切换(默认关闭)。 |
EXOMEM_DEVICE / EXOMEM_TORCH_DEVICE | 强制所有 torch 模型使用 cuda、mps 或 cpu。通常留空并使用 exomem mode。 |
EXOMEM_MPS_FP16 | 在 Apple Silicon 上通过 Metal GPU 以 fp16 运行 bge/CLIP——内存占用约减半,编码速度更快(默认开启;设为 0 可继续使用 fp32)。 |
EXOMEM_VIDEO_SCENE_FRAMES | 设置后启用视频场景检测,并持久化保存经过 OCR 的场景帧 JPEG(默认关闭)。 |
EXOMEM_VIDEO_SCENE_THRESHOLD | 场景边界哈希阈值,以 64 位中的位数表示(默认值为 10)。 |
EXOMEM_VIDEO_SCENE_MIN_SECS | 最短场景时长,单位为秒;间隔更近的边界会合并(默认值为 4)。 |
EXOMEM_SEMANTIC_SEGMENTS | 设置后启用带时间戳的转录,以及音视频语义片段检索(默认关闭)。 |
EXOMEM_WHISPER_MODEL | 用于 ASR 的 faster-whisper 模型大小,例如 base 或 small。 |
EXOMEM_ASR_BACKEND | ASR 引擎:mlx(Apple Silicon Metal GPU,需要 media-mlx 额外组件)或 faster-whisper(CUDA/CPU)。默认会在 Apple Silicon 上自动选择 MLX,否则选择 faster-whisper。 |
EXOMEM_MLX_WHISPER_MODEL | MLX ASR 模型的 HF 仓库(默认值为 mlx-community/whisper-large-v3-mlx;如需更快速度,可使用 mlx-community/whisper-large-v3-turbo)。 |
EXOMEM_TESSERACT_CMD | 未自动发现 tesseract 二进制文件时,指定其路径。 |
EXOMEM_CLAIM_LEVEL | 1 启用声明级子系统(默认关闭)。 |
EXOMEM_CLAIM_POLARITY_NLI | 1 选择启用冻结的立场验证器(默认关闭)。只有在精确的仓库固定版本和声明的制品清单均已驻留并通过验证时,它才会运行。 |
EXOMEM_CONTRADICTION_TOP_N | 限制展示的矛盾队列,从而限制验证器增强范围(默认值为 40;0 表示不限制)。这是极性处理唯一的上限。 |
EXOMEM_CLAIM_NLI_MODEL 已弃用。模型身份仅来自仓库内的固定版本注册表;此变量中保留的值不会选择任何模型,exomem doctor 会将其报告为已忽略。
随附的固定模型是多语言检查点
MoritzLaurer/mDeBERTa-v3-base-xnli-multilingual-nli-2mil7,使用一个精确的上游版本。其准入测试样例涵盖英语、德语、法语、爱沙尼亚语,以及英语和爱沙尼亚语混合示例。这些证据仅限于这些示例,并不保证模型卡所列的每种语言都具有同等质量。其标签表示 NLI 关系:contradict、duplicate、refine 或 neutral。neutral 包含无关、相容和不确定的配对;它绝不表示“已证明无关”。
降级模式
默认情况下,可选层级不会安装,缺失时会静默降级,而不是使用替代方案。各层级中“缺失”的含义如下:
| 层级 | 安装方式 | 缺失时 |
|---|---|---|
| 语义搜索 | --extra embeddings | 使用关键词/BM25 检索;所有界面仍会正常响应。 |
| 媒体提取 | --extra media | 跳过服务端 OCR/ASR/PDF 提取;由模型驱动的上传 text 路径仍可正常工作。 |
向量 KNN(sqlite-vec) | 使用 embeddings | 对相同向量进行精确的内存扫描;结果相同,但计算量更大。 |
| 冻结立场验证器 | --extra nli | 审核队列条目不会带有任何模型极性标签——绝不会以验证器的名义提供通过其他方式生成的标签。写入响应、排名和其他所有界面的字节级输出,与完全不安装验证器层级的构建完全一致;只有 exomem doctor 会指出该层级缺失。验证器仅在修订版本和制品清单摘要均精确固定、标签映射已版本化且有界多语言测试集通过的情况下运行,并且只为审核队列条目添加标签。托管单元不会安装或启用它。 |
旧版 EXOMEM_* 名称(来自项目先前的工作名称 exomem)仍受支持:启动时,每个旧名称都会映射到对应的 EXOMEM_* 名称;如果同时显式设置了 EXOMEM_* 值,则优先使用该值。import exomem 和 python -m exomem 也仍可作为已弃用的别名使用。
仅限远程服务的变量和完整部署说明请参阅 docs/deployment.md。
项目状态
exomem 已发布到 PyPI,使用 Release Please 进行版本管理,并遵循
docs/release.md 中的轻量级 SemVer 策略。公开的 CLI
入口点是 exomem;kb 是用于日常知识库操作的简短别名。
许可证
AGPL-3.0-or-later。请参阅 LICENSE。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。