用途
total-agent-memory(TAM)是一个面向 AI 编程代理的开源记忆服务器,目标社区包括 Claude Code、Codex CLI、Cursor 以及任何 MCP 客户端。编程代理每次会话开始时没有先前会话的记忆,因此决策、修复方案和项目约定往往需要反复说明。TAM 将决策、解决方案、事实、错误和会话摘要存储在用户本机,并通过 Model Context Protocol(MCP)返回,使任意 MCP 客户端无需修改代码即可使用。
主要能力
- 本地持久化记忆:每个存储是一个目录,围绕一个 SQLite 数据库构建,数据保存在本地。
- 混合检索:召回结合全文 BM25、本地计算的稠密嵌入、模糊匹配和知识图谱,并使用倒数排名融合(reciprocal rank fusion)融合多个排名列表;可选的交叉编码器可对结果重排。
- 默认无 LLM 调用:默认配置在写入或搜索时不调用 LLM,因此检索结果可以离线测量,重复运行得到相同结果。
- 时序知识图谱与事实失效:事实可以携带有效区间(kg_add_fact、kg_at),单值事实的较新值可以使旧值失效。
- 程序性记忆与情景记忆:项目自述支持程序性记忆、情景记忆、AST 代码库摄取以及跨项目类比。
- 团队服务器模式:同一软件包也可作为团队服务器运行,个人、部门和公司区域是同一网关后的不同存储,并具备角色、作者身份和审计追踪(team server)。
- 工具与接口:项目自述提供 74 个 MCP 工具、CLI、TypeScript SDK 和仪表板(另有资料称 79 个 MCP 工具,以项目实际版本为准)。
使用方式
TAM 需要 Python 3.11 或更高版本。CI 在 Ubuntu、Windows 和 macOS 上测试 Python 3.11、3.12 和 3.13。
安装
从 PyPI 安装(建议使用虚拟环境,或 pipx / uvx):
pip install total-agent-memory
这会安装 total-agent-memory(别名 tam)MCP 服务器,以及 tam-team、tam-remote 和 lookup-memory 命令。可选的交叉编码器重排器会引入 PyTorch,作为额外依赖安装:
pip install "total-agent-memory[rerank]"
团队服务器的 PostgreSQL 后端是 [postgres] 额外依赖。
注册到客户端
在终端运行 tam setup。向导会询问“Just me”或“Company server”,检测 Claude Code、Claude Desktop、Codex、Cursor、Windsurf、Gemini CLI、Cline 和 OpenCode,并将服务器注册到用户选择的客户端。
也可以手动添加服务器。Claude Code:
claude mcp add memory -- total-agent-memory
使用 mcpServers 文件的客户端:
{ "mcpServers": { "memory": { "command": "total-agent-memory" } } }
如果安装到虚拟环境中,请使用其 total-agent-memory 可执行文件的完整路径。
重启客户端后,记忆默认存储在 ~/.tam/,除非 TAM_MEMORY_DIR 指向其他位置。
基本用法
让代理记住某事(例如“remember that we chose PostgreSQL for billing because of row-level security”),它会调用 memory_save。在之后的会话中询问“which database did we choose for billing?”,它会调用 memory_recall 并取回记录。
项目还提供了一个不依赖代理的脚本示例:通过 stdio 启动服务器,使用 MCP Python SDK 保存一条记录并召回;首次运行会下载默认嵌入模型,输出为 JSON,保存的决策位于 results.decision。更多示例见“Tools and interfaces”。
测试与基准
测试从源码检出运行,不需要 API 密钥和 LLM,完整套件在笔记本电脑上约需 15 到 20 分钟。需要但未安装的服务相关测试会被跳过:
- PostgreSQL(团队服务器后端):安装
pip install -e ".[postgres]",然后运行python -m pytest tests -m postgres --backend=postgres或--backend=both。未设置 TAM_TEST_PG_URL 时,fixture 会通过 Docker 启动 pgvector 容器。 - 浏览器测试(tests/browser,Playwright 与 Chromium、Firefox、WebKit)在 docker/Dockerfile.browser 构建的镜像中运行。
- 已安装包冒烟测试:
python tests/smoke/installed_runtime.py通过本地和远程 MCP 检查已安装的 wheel。
检索基准(LoCoMo、LongMemEval、BEAM)不需要 API 密钥,下载公开数据集后使用 benchmarks/ 中的脚本运行。项目自述默认配置、v13.0.0 的结果为:LongMemEval R@5 95.1%,LoCoMo 0.607,BEAM 1M 0.448。其他资料提及 74 个 MCP 工具、9 个 IDE、100% 本地。
适用场景
- 日常使用编程代理的开发者,希望代理跨会话记住决策、修复和项目约定。
- 需要可在本地运行、检查并修改的记忆基线的研究人员。
- 需要将个人、部门和公司记忆区域统一管理的团队(团队服务器模式)。
限制与说明
- 需要 Python 3.11 或更高版本。
- 默认配置不调用 LLM;可选的交叉编码器重排器和 PostgreSQL 团队后端需要额外依赖。
- 基准结果来自项目自述(默认配置、v13.0.0),实际效果可能因版本、配置和数据集而异;部分性能细节、延迟和端到端准确率见项目文档。
- 部分功能(如程序性记忆、AST 代码库摄取、跨项目类比)在提供资料中仅提及名称,未给出具体使用步骤、效果或限制。
- 收费、价格、平台支持细节、具体使用步骤等未在提供资料中说明。
其他信息
- 网站与文档:totalmemory.dev。
- 许可证:MIT。第三方许可证见 THIRD-PARTY-LICENSES.md。
- 描述 TAM 的论文正在 Journal of Open Source Software 审稿中。
- 安全策略、贡献指南、变更日志、路线图等见项目仓库对应文件。