mcpField
E
EchoVault Memory

EchoVault Memory

本地服务
github.com/go-ports记忆与知识410 周前更新

关于 EchoVault Memory

EchoVault Memory 是面向编码 Agent 的本地记忆系统,可跨会话保存决策、缺陷和项目背景。其 Go 二进制文件提供共享 Markdown 知识库、关键词搜索及可选的语义搜索,并支持多个 Agent 共用。

主要功能

  1. 01通过 MCP 保存和检索会话记忆
  2. 02四种 Agent 共用一个知识库
  3. 03使用 FTS5 和可选向量搜索
  4. 04存储前清除机密信息
  5. 05以兼容 Obsidian 的 Markdown 保存记忆

适用场景

  1. 01在会话开始时恢复项目决策
  2. 02查找过往缺陷和实现背景
  3. 03在支持的编码 Agent 间共享记忆

MCP 相关

它以 MCP 服务运行,提供 `memory_save`、`memory_search` 和 `memory_context` 工具。其命令行可为 Claude Code、Cursor、Codex 和 OpenCode 配置 MCP 服务。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"go-ports-echovault": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-e",
"MEMORY_HOME",
"ghcr.io/go-ports/echovault:0.3.3"
],
"env": {
"MEMORY_HOME": "<MEMORY_HOME>"
}
}
}
}
启动命令docker run -i --rm -e MEMORY_HOME ghcr.io/go-ports/echovault:0.3.3
需要配置的环境变量
MEMORY_HOMEDirectory where memories are stored. Ensure this path is mounted to persistent storage for data retention across container restarts.

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
ocighcr.io/go-ports/echovault:0.3.3

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

EchoVault

EchoVault — Go

为编码 Agent 提供本地记忆。你的 Agent 会跨会话记住决策、Bug 和上下文——无需云服务、API 密钥或费用。

安装 · 功能 · 工作原理 · 命令


这是 EchoVault 的 Go 移植版。它是一个无需依赖 Python 运行时的静态二进制文件。保险库格式和 MCP 接口与 Python 版本完全兼容——你可以在两者之间切换,而不会丢失任何记忆。

功能

支持 4 种 Agent — Claude Code、Cursor、Codex、OpenCode。只需一条命令即可为你的 Agent 配置 MCP。

原生支持 MCP — 作为 MCP 服务运行,并将 memory_save、memory_search 和 memory_context 暴露为工具。Agent 可直接调用,无需 Shell 钩子。

本地优先 — 所有内容都保存在你的设备上。记忆以 Markdown 格式存储在 ~/.memory/vault/ 中,可用 Obsidian 或任何编辑器阅读。

空闲时零成本 — 没有后台进程、守护进程或 RAM 开销。只有 Agent 启动时才会运行 MCP 服务。

混合搜索 — FTS5 关键词搜索开箱即用。添加 Ollama 或 OpenAI 即可进行语义向量搜索。

机密信息脱敏 — 通过 3 层脱敏,在任何内容写入磁盘前移除 API 密钥、密码和凭据。支持显式 <redacted> 标签、模式检测和自定义 .memoryignore 规则。

跨 Agent 使用 — Claude Code 保存的记忆可在 Cursor、Codex 和 OpenCode 中搜索。一个保险库,多个 Agent。

兼容 Obsidian — 会话文件是包含 YAML frontmatter 的有效 Markdown。将 Obsidian 指向 ~/.memory/vault/,即可直观浏览 Agent 的记忆。

安装

预构建二进制文件

从发布页面下载适用于你平台的最新版本,并将二进制文件放到 $PATH 中的某个位置。

从源代码构建
git clone https://github.com/go-ports/echovault.git
cd echovault
make build          # produces ./bin/memory
sudo cp bin/memory /usr/local/bin/

需要 CGO。 该二进制文件链接了 go-sqlite3 和 sqlite-vec,因此必须安装 C 编译器(gcc/clang)。在 macOS 上:xcode-select --install。在 Debian/Ubuntu 上:apt install build-essential。

首次运行
memory init
memory setup claude-code   # or: cursor, codex, opencode

完成。memory setup 会自动安装 MCP 服务配置。

默认情况下,配置会全局安装。若要为特定项目安装:

cd ~/my-project
memory setup claude-code --project   # writes .mcp.json in project root
memory setup opencode --project      # writes opencode.json in project root
memory setup codex --project         # writes .codex/config.toml + AGENTS.md
配置嵌入(可选)

嵌入可启用语义搜索。即使不配置嵌入,你仍可通过 FTS5 进行快速关键词搜索。

生成初始配置:

memory config init

这会创建包含合理默认值的 ~/.memory/config.yaml:

embedding:
  provider: ollama              # ollama | openai | openrouter
  model: nomic-embed-text

context:
  semantic: auto                # auto | always | never
  topup_recent: true

各部分的作用:

  • embedding — 控制如何将记忆转换为用于语义搜索的向量。ollama 在本地运行;openai 和 openrouter 会调用云 API。nomic-embed-text 是适用于 Ollama 的优质本地模型。
  • context — 控制会话开始时如何检索记忆。auto 会在嵌入可用时使用向量搜索,否则回退到关键词搜索。topup_recent 还会包含近期记忆,让 Agent 获得新鲜的上下文。

对于云服务提供商,请在相应的服务提供商部分添加 api_key。memory config 输出中的 API 密钥会经过脱敏。

配置记忆位置

默认情况下,EchoVault 会将数据存储在 ~/.memory 中。

你可以通过以下两种方式更改该位置:

  • MEMORY_HOME=/path/to/memory(优先级最高,按 Shell/进程设置)
  • memory config set-home /path/to/memory(持久默认设置)

常用命令:

memory config set-home /path/to/memory
memory config clear-home
memory config

memory config 会显示 memory_home 和 memory_home_source(env、config 或 default)。

全局标志 --memory-home 可在单次调用时覆盖所有设置:

memory --memory-home /tmp/test-vault search "authentication"

用法

设置完成后,Agent 会通过 MCP 工具使用记忆:

  • 会话开始 — Agent 调用 memory_context 加载之前的决策和上下文
  • 工作期间 — Agent 调用 memory_search 查找相关记忆
  • 会话结束 — Agent 调用 memory_save 持久化决策、错误和经验

MCP 工具说明会指导 Agent 自动保存和检索。大多数情况下,无需手动提示。

你也可以直接使用命令行:

memory save --title "Switched to JWT auth" \
  --what "Replaced session cookies with JWT" \
  --why "Needed stateless auth for API" \
  --impact "All endpoints now require Bearer token" \
  --tags "auth,jwt" --category "decision" \
  --details "Context:
Options considered:
- Keep session cookies
- Move to JWT
Decision:
Tradeoffs:
Follow-up:"

memory search "authentication"
memory details <id>
memory context --project

对于较长的详细内容,请使用 --details-file notes.md。若要自动生成结构化详细内容的模板,请使用 --details-template。

工作原理

~/.memory/
├── vault/                    # Obsidian-compatible Markdown
│   └── my-project/
│       └── 2026-02-01-session.md
├── index.db                  # SQLite: FTS5 + sqlite-vec
└── config.yaml               # Embedding provider config
  • Markdown 知识库 — 每个项目的每个会话对应一个文件,包含 YAML 前置元数据
  • SQLite 索引 — 使用 FTS5 搜索关键词,使用 sqlite-vec 存储语义向量
  • 精简指针 — 搜索会返回约 50 个词元的摘要;需要时再获取完整详细内容
  • 三层脱敏 — 显式标签、模式匹配和 .memoryignore 规则

支持的 Agent

Agent设置命令安装内容
Claude Codememory setup claude-code在 .mcp.json(项目级)或 ~/.claude.json(全局)中安装 MCP 服务
Cursormemory setup cursor在 .cursor/mcp.json 中安装 MCP 服务
Codexmemory setup codex在 .codex/config.toml 中安装 MCP 服务,并提供 AGENTS.md 后备方案
OpenCodememory setup opencode在 opencode.json(项目级)或 ~/.config/opencode/opencode.json(全局)中安装 MCP 服务

所有 Agent 共用有效的 memory_home 路径(默认为 ~/.memory/)下的同一个记忆知识库。在 Claude Code 中保存的记忆也可以从 Cursor、Codex 或 OpenCode 中搜索。

命令

命令说明
memory init在有效的记忆主目录中创建知识库
memory setup <agent>为 Agent 安装 MCP 服务配置
memory uninstall <agent>移除 Agent 的 MCP 服务配置
memory save ...保存记忆(支持 --details-file 和 --details-template)
memory search "query"混合使用 FTS 和语义搜索
memory details <id>获取记忆的完整详细内容
memory delete <id>按 ID 或前缀删除记忆
memory context --project列出当前项目的记忆
memory sessions列出会话文件
memory config显示有效配置
memory config init生成初始版 config.yaml
memory config set-home <path>保存默认记忆位置
memory config clear-home移除已保存的记忆位置
memory reindex更换提供方后重建向量
memory mcp启动 MCP 服务(stdio 传输)
全局标志
标志说明
--memory-home <path>覆盖本次调用的记忆主目录
--help显示任意命令的帮助信息

卸载

memory uninstall claude-code   # or: cursor, codex, opencode
rm /usr/local/bin/memory

若要同时移除所有已存储的记忆:rm -rf ~/.memory/

隐私

默认情况下,所有内容都保留在本地。如果你配置了 OpenAI 或 OpenRouter 来生成嵌入向量,相应的 API 调用会发送到它们的服务端。使用 Ollama 可完全在本地运行。

许可证

MIT — 请参阅 LICENSE。

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。