mcpField
A
Anamnesis

Anamnesis

本地服务
oscardvs.github.ioAI 与智能体08 周前更新

关于 Anamnesis

Anamnesis 是面向跨设备工作的开发者、供 Claude Code 使用的本地优先文件式记忆层。它以可读的 Markdown 存储内容,通过 Git 远程仓库同步,并在各设备本地重建搜索索引。

主要功能

  1. 01以 Markdown 笔记作为事实来源
  2. 02本地 SQLite FTS5 关键词搜索
  3. 03通过 Git 在设备间同步
  4. 04用于会话记忆的 Claude Code 钩子
  5. 05可选的反思、合并与评估
  6. 06用于浏览和编辑的网页仪表板

适用场景

  1. 01从另一台设备搜索项目笔记
  2. 02在 Claude Code 会话开始时加载相关记忆
  3. 03捕获会话摘要并进行同步
  4. 04在仪表板浏览、编辑笔记并查看历史

MCP 相关

其 MCP 服务向 Claude Code 提供只读记忆查询工具,以及写入和同步工具。会话钩子会注入相关笔记并捕获会话摘要。

配置

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

mcp.json · 通用配置
{
"mcpServers": {
"anamnesis": {
"command": "uvx",
"args": [
"anamnesis-memory"
]
}
}
}
启动命令uvx anamnesis-memory

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

安装包
pypianamnesis-memory0.1.3

工具

5

收录的工具列表 · 更新于 3 周前

参数类型必填说明
kinteger否
typeany否
querystring是
scopeany否
projectany否
user_idany否
workspace_idany否

详细介绍

Anamnesis

Claude Code 的跨机器记忆

PyPI CI Python License: Apache 2.0

网站 · 文档 · 基准测试 · 控制面板

uv tool install anamnesis-memory && anamnesis init

ἀνάμνησις (anamnesis):希腊语,意为回忆,即将知识重新唤回脑海的行为。

Anamnesis 是专为 Claude Code 打造的本地优先、基于文件的记忆层,可在你自己的多台机器间 同步。Claude 对你项目的了解(约定、架构决策、有效的修复方法、你昨天做过什么)会以纯 Markdown 格式存储,在本地建立索引以供搜索,并在你的 专用网络中保持同步。

Claude Code 自带的记忆只保留在写入它的那台机器上。通过 Dropbox 或 iCloud 等云端 文件夹复制 SQLite 索引会导致其损坏。Anamnesis 则使用 git 同步 Markdown,并在每台机器上重新构建 索引,因此在台式机上写下的笔记也能在笔记本电脑上搜索到。

无需云账户。记忆保存在你的机器上,受版本控制且可供人阅读。

工作原理

  ┌─────────────┐        git over your private mesh        ┌─────────────┐
  │  desktop    │  ◄────────────  (Tailscale)  ────────►   │  laptop     │
  │             │                                          │             │
  │  Claude Code│                                          │  Claude Code│
  │     ▼       │                                          │     ▼       │
  │  MCP server │   markdown (source of truth)             │  MCP server │
  │     ▼       │   + SQLite FTS index (rebuilt locally)   │     ▼       │
  │ ~/.anamnesis│                                          │ ~/.anamnesis│
  └─────────────┘                                          └─────────────┘
  • 文件优先。 每条笔记都是 ~/.anamnesis/memory/ 下的一个 Markdown 文件,可直接阅读,也可用 git diff 查看差异。 Markdown 是唯一事实来源;其他内容都由它派生。
  • 本地索引。 SQLite FTS5 索引支持关键词(BM25)召回。索引会在本地重建,不会 同步。在项目的评测集上,关键词搜索的召回率约为 94%,因此在测量结果表明有必要之前,不会使用向量存储。
  • 通过 git 同步。 Markdown 仓库通过你的专用 Tailscale 网状网络同步,也可使用你控制的任意 git 远程服务。只有 Markdown 会传输;每台机器都会自行重建索引,因此 数据库文件不会在机器间复制。如果两台机器编辑了同一条笔记,同步会报告 git 冲突,而不会丢弃任一方的修改。
  • Claude Code 集成。 MCP 服务提供只读查询工具,其他工作由会话钩子完成: SessionStart 会注入相关笔记,SessionEnd 会记录会话摘要并进行同步。
  • 反思与合并。 可选的反思流程(配置中指定任意兼容 OpenAI 的模型) 会将会话笔记提炼为长期笔记,anamnesis merge 会合并近似重复项。生成的 笔记会在 front-matter 中注明来源和置信度。merge --apply 会经过评测集验证,以确保 召回率不会下降;anamnesis eval 则会在沙盒副本上衡量反思前后的效果。
  • 控制面板。 Web 图形界面,可浏览、搜索、编辑记忆,并查看所有 机器上的记忆历史。

快速开始

前置要求:Claude Code、uv 和 git。

uv tool install anamnesis-memory && anamnesis init

anamnesis init 会在用户级别为 Claude Code 注册 MCP 服务,安装 SessionStart、SessionEnd 和 PreCompact 钩子,将存储配置到 ~/.anamnesis,并运行首次同步。此操作可重复执行:它会备份 settings.json,且不会重复添加钩子。--print 会显示完整计划,但不会写入任何内容;--local-only 会跳过远程服务,直到你需要使用它为止。

Claude Code 会获得 5 个工具:memory_search、memory_list 和 memory_status(只读,可安全地自动批准),以及 memory_write 和 memory_sync。完整参考: 命令行 · MCP 工具 · 配置。

改为从源代码开发
git clone https://github.com/oscardvs/anamnesis && cd anamnesis/server
uv venv --python 3.12
uv pip install -e ".[mcp,dev]"
uv run anamnesis init --print

该仓库还附带一个项目级 .mcp.json。Claude Code 会使用经过筛选的环境启动 MCP 服务,因此 ANAMNESIS_HOME / ANAMNESIS_MACHINE_ID / ANAMNESIS_GIT_REMOTE 应放在其 "env" 块中,而不是放在 shell 中。服务内部说明:server/README.md。

跨机器同步

记忆是一个 git 仓库(~/.anamnesis/memory/),通过你的私有 Tailscale 网络或任何由你控制的 git 远程仓库进行同步。只需设置一次:

  1. 将每台机器接入同一个 tailnet(安装 Tailscale, 执行 tailscale up)。选择一台始终在线的机器来托管共享仓库;tailscale status 会显示其 MagicDNS 名称(例如 host.your-tailnet.ts.net)。

  2. 在主机上创建一个共享的裸仓库:

    git init --bare -b main ~/anamnesis-memory.git
    
  3. 将每台机器指向该仓库:

    anamnesis init --remote '[email protected]:anamnesis-memory.git'
    

    主机本身使用本地路径:--remote "$HOME/anamnesis-memory.git"。

同步会按 commit -> pull --rebase -> push 的顺序运行,并在拉取后重建本地索引,因此一台机器上写入的笔记会在一个同步周期内可供其他机器搜索。如果你最初使用了 --local-only,之后可重新运行 init --remote ...;存储会关联到远程仓库并推送其历史记录。

钩子

anamnesis init 会安装 3 个 Claude Code 钩子:

  • SessionStart 会注入与当前项目最相关的笔记(你的全局偏好、项目的长期笔记,以及几篇近期会话摘要),并启动后台同步。
  • SessionEnd 会根据会话记录生成一篇情景笔记并同步,这样下一次会话时,你的其他机器上也会有这篇笔记。PreCompact 会在上下文压缩前生成同类笔记。

另外两条命令基于这些钩子实现:

  • 反思(可选)。 将 anamnesis config set reflection.provider ... 指向一个兼容 OpenAI 的模型,再运行 anamnesis reflect,即可将累积的会话笔记提炼为长期惯例。设置 reflection.auto 后,当项目积累了足够多尚未反思的笔记时,会在会话结束时自动运行。 anamnesis merge 会合并近似重复项,且仅在你的评估集上的召回率保持不变时才会应用更改。
  • 导入。 anamnesis import 会将 Claude Code 自身的项目级记忆复制到存储中,从而纳入你之前为它撰写的笔记。

如果想手动设置钩子,而不是使用 init,请将 examples/hooks.settings.json 复制到 ~/.claude/settings.json,并将其中的路径指向你的安装位置。

基准测试

bench/cross-machine-tokens/ 会在一台全新机器上运行两次脚本化任务:一次不使用 Anamnesis,让 Agent 探索项目以了解其惯例;另一次则注入真实的 SessionStart 记忆块。它在合成项目上以无头模式驱动 Claude Code CLI,因此 Pro/Max 订阅即可,无需 API 密钥。

已提交的 result.json(在 claude-opus-4-8 上每组运行 3 次)显示,使用记忆后总输入 token 数平均减少约 8%,从 366k 降至 336k;输出 token 数和轮次基本相同。项目惯例从第一轮起就已知,而不是重新探索得出。该场景的早期版本使用了一个 5 个文件的项目,结果没有差异;同一 README 中记录了这一零结果。

控制面板

用于管理记忆存储的 Web GUI:浏览并全文搜索所有笔记,编辑 Markdown 并查看每条笔记的历史记录,查看所有机器(哪台机器写入了什么,以及上次同步时间),并在浏览器中运行反思。来源标记会显示每条笔记的来源:你、会话捕获、反思或导入。

Anamnesis 控制面板,显示已同步的跨机器记忆存储

npx anamnesis-dashboard      # http://localhost:3000

或者,使用你已有的 CLI:

anamnesis dashboard

需要 Node 20 或更高版本。从仓库克隆目录运行 cd dashboard && npm run dev 即可进行开发。

它是一个轻量级读写客户端,使用与 MCP 服务相同的本地存储:直接读取 SQLite 索引,并调用 anamnesis CLI 执行写入和同步。使用 --port、--store 和 --no-open 调整服务方式。有关配置和设计说明,请参阅 dashboard/README.md。

状态

2026 年 9 月:v0.1.3 已发布到 PyPI。本地优先的核心功能已完成,并已在真实的多机器环境中使用:存储、MCP 服务、钩子、git 同步、一键安装、带有评估框架的反思和合并流程,以及控制面板。不同版本之间的 API 仍可能变化。

下一步:为没有自己的网状网络的用户提供托管中继(服务已在 [relay] extra 下提供 anamnesis relay 命令,但尚未编写相关文档),以及团队记忆。

仓库布局

路径说明
server/MCP 记忆服务和 CLI(Python,FastMCP)。
dashboard/记忆 GUI(Next.js)。
site/公共网站和文档(在线查看)。
bench/跨机器 token 基准测试和演示录制流程。
examples/用于手动配置钩子的手写 hooks.settings.json。

参与贡献

欢迎提交问题和参与讨论。如果安装过程在你的机器上不顺利,请提交问题,并附上你运行的确切命令及其输出。

许可证

Apache License 2.0。请参阅 NOTICE。

评论

支持 Markdown

第一次接触 MCP?

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

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