使用说明
A-MEM:代理记忆系统
基于Zettelkasten原理的LLM代理存储系统。
基于: “A-Mem:LLM代理的代理记忆”
作者:徐吴江、梁祖杰、梅、高杭、谭俊涛、张永峰
罗格斯大学AIOS基金会独立研究员
🚀 特性
核心功能
- ✅ 注释构造:自动提取关键字、标签和上下文摘要
- ✅ 链接生成:类似记忆的自动链接
- ✅ 记忆进化:动态更新现有记忆
- ✅ 语义检索:具有图遍历功能的智能搜索
- ✅ 多提供商支持:Ollama(本地)或OpenRouter(云)
- ✅ 环境变量:通过配置
.env文件 - ✅ 图形后端选择:在NetworkX(默认)、RustworkX(快3x-100x)或FalkorDB(实验性,未完全测试)之间进行选择
- ✅ 参数验证:自动验证所有MCP工具参数
- ✅ 安全图形包装器:边缘案例处理和数据净化,实现稳健运营
高级功能(新增)
- ✅ 类型分类:将笔记自动分类为6种类型(规则、程序、概念、工具、参考、整合)
- ✅ 优先级评分:基于类型、年龄、使用情况和边缘计数的即时优先级计算,以获得更好的搜索排名
- ✅ 事件日志记录:仅为所有关键操作(NOTE_CREATED、RELATION_CREATED、MEMORY_EVOLVED)附加JSONL事件日志
- ✅ 记忆酶:用于图形维护的自主后台进程
- 链接修剪器:自动删除旧边/弱边
- 关系建议者:查找笔记之间的新语义连接
- 死端节点自动链接器:通过智能过滤自动为死端节点创建连接
- 摘要消化器:压缩过度拥挤的节点,有很多孩子
- ✅ 自动调度程序:每小时在后台运行记忆酶
- ✅ 元数据字段:实验字段支持,无需更改架构
- ✅ 研究员代理人:针对低置信度查询的深度网络研究(JIT上下文优化)
- 检索置信度<阈值时自动触发
- 手动研究通过
research_and_storeMCP工具 - 混合方法:MCP工具(如果可用)或基于HTTP-的回退(Google Search API、DuckDuckGo、Jina Reader)
- ✅ 当地读者:支持本地基于Docker的Jina Reader实例(回退到云API)
- ✅ 非结构化PDF提取:使用非结构化(库或API)自动提取PDF
🔄 与原始实施的关系
该实现是基于研究论文独立开发的 “A-Mem:LLM代理的代理记忆”原作者的生产就绪系统(A-mem-sys)在完成此实现后发现。
主要区别:
本实施侧重于 MCP服务器集成 对于IDE环境(游标、VSCode),提供:
- 通过MCP协议直接集成IDE
- 基于显式图的内存链接 使用具有类型化边、推理和权重的NetworkX(DiGraph)
- 具有自动分块功能的文件导入
- 内存重置和管理工具
- 用于Ollama模型速度测试的现代TUI基准测试工具
原版 A-mem-sys 存储库提供 pip可安装Python库 与:
- 多种LLM后端支持(OpenAI、Ollama、OpenRouter、SGLang)
- 基于库的Python应用程序集成
- 用于编程使用的全面API
- 隐式链接 通过ChromaDB嵌入(无显式图结构)
技术架构差异:
-
这个实现:双存储架构
- 用于向量相似性搜索的ChromaDB
- 图形后端选择:NetworkX(默认)、RustworkX(快3x-100x)或FalkorDB(实验性,未完全测试)
- 显式类型关系(与
relation_type,reasoning,weight) - 用于查找直接连接的内存的图遍历
- 支持复杂的查询,如“通过类型Y查找与X相关的所有内存”
- 安全图形包装器:自动边缘案例处理和数据净化
-
原始实施:单一存储架构
- ChromaDB作为主存储器
- 通过嵌入相似性进行隐式链接
- 更简单的架构,更少的开销
这两种实现都是针对同一研究论文的有效方法,服务于不同的用例和集成场景。
🆕 新功能概述
类型分类
每个音符都会自动分为6种类型之一:
- 规则:强制性说明(“从不X”、“总是Y”)
- 程序:编号步骤或顺序说明
- 概念:概念解释,无命令
- 工具:描述函数、API或实用程序
- 参考:表格、比较列表、备忘单
- 整合:描述系统之间的连接
优先级评分
搜索结果使用即时优先级计算进行排名:
- 类型重量:规则和程序具有更高的优先级
- 年龄因素:较新的笔记具有较高的优先级
- 使用次数:频繁访问的笔记得到增强
- 边缘计数:连接良好的笔记优先
事件日志记录
所有关键操作都记录到 data/events.jsonl:
NOTE_CREATED:创建新笔记时RELATION_CREATED:当两个音符链接时MEMORY_EVOLVED:更新现有注释时LINKS_PRUNED:删除旧链接/弱链接时RELATION_PRUNED:当一个特定的关系被修剪时(有理由)NODE_PRUNED:删除僵尸节点时DUPLICATES_MERGED:合并重复注释时SELF_LOOPS_REMOVED:当自循环被移除时ISOLATED_NODES_FOUND:检测到孤立节点时ISOLATED_NODES_LINKED:当隔离节点自动链接时KEYWORDS_NORMALIZED:当关键字被规范化时QUALITY_SCORES_CALCULATED:计算质量分数时NOTES_VALIDATED:当钞票被验证时TYPES_VALIDATED:验证和更正钞票类型时NOTES_ARCHIVED:旧笔记存档时(临时清理)NOTES_DELETED:删除旧笔记时(临时清理)GRAPH_HEALTH_CALCULATED:计算图形健康评分时DEAD_END_NODES_FOUND:检测到死端节点时DEAD_END_NODES_AUTO_LINKED:当死端节点与外部连接自动链接时LOW_QUALITY_NOTES_REMOVED:去除低质量钞票时CORRUPTED_NODES_REPAIRED:修复损坏的节点时RELATIONS_SUGGESTED:发现新连接时ENZYME_SCHEDULER_RUN:当自动维护运行时
记忆酶
维护图形健康的自主后台进程:
- 链接修剪器:删除超过90天或权重<0.3的边,以及缺失/僵尸节点的孤立边
- 僵尸节点移除器:自动删除没有内容的节点(空节点)
- 重复合并:查找并合并重复的注释(通过嵌入实现精确匹配+语义重复)
- 边缘验证器:验证和修复边(添加缺失的推理、标准化类型、删除弱边)
- 自循环去除器:删除自参照边(链接到自身的节点)
- 隔离节点查找器:标识没有任何连接的节点
- 隔离节点链接器:自动将孤立节点链接到类似注释(相似性阈值:0.70)
- 关键字规范化器:规范和清理关键字(删除重复项、纠正拼写错误、限制最多7个关键字)
- 质量分数计算器:计算笔记的质量分数(基于内容、元数据、连接)
- 纸币验证器:验证注释并更正缺失/无效的字段(摘要、关键字、标签)
- 类型验证器:使用基于LLM的分类验证和更正无效的笔记类型
- 临时笔记清理:存档或删除超过指定时间的笔记(默认值:365天)
- 图形健康评分计算器:根据平均音符质量、连接性、边缘质量和完整性计算总体图形健康评分(0.0-1.0)
- 死端节点检测器:标识具有传入边但没有传出边的节点(知识流中的死胡同)
- 死端节点自动链接器:使用智能过滤自动为死端节点创建连接:
- 联合战略:忽略通用标签(参考、文档、工具等),优先考虑关键字,需要相似性检查
- 智能阈值:0.46表示强信号(关键字或有意义的标签),0.60表示弱信号(仅限通用标签),0.58表示无信号
- 质量控制:通过要求有意义的语义信号来防止低质量的连接
- 低质量除钞器:删除不相关的笔记(验证码页面、错误页面、垃圾邮件)
- 精炼厂概述:完善类似的摘要,使其更加具体和清晰
- 损坏的节点修复器:修复损坏的节点(缺少字段、无效数据)
- 关系建议者:查找语义相似的注释(余弦相似度≥0.75),具有死端节点优先级
- 摘要消化器:将具有>8个子节点的节点压缩为紧凑的摘要
自动调度程序
系统每小时自动运行一次记忆酶:
- 在后台运行,不阻止MCP操作
- 以优化的顺序执行19次以上的维护操作
- 用详细的指标记录所有维护活动
- 优雅地处理错误并继续运行
- 综合结果:返回所有操作的详细统计信息(修剪的链接、合并的重复项、验证的注释、质量分数、图形健康分数、死端节点等)
研究员代理人
使用JIT上下文优化进行低置信度查询的深层网络研究:
- 自动触发:当检索置信度<阈值时激活(默认值:0.5)
- 手动研究:可通过
research_and_storeMCP工具 - 混合方法:使用MCP工具(如果可用)或基于HTTP的回退
- 网页搜索:Google Search API(主要)或DuckDuckGo HTTP(回退)
- 内容提取:Jina阅读器(本地Docker或云API)或可读性回退
- PDF支持:使用非结构化(库或API)自动提取PDF
- 自动创建笔记:研究结果会自动存储为带有元数据、关键字和标签的原子笔记
📋 安装
1.安装依赖项
pip install -r requirements.txt
图形后端选择
A-MEM支持三个图形后端,可通过以下方式选择 GRAPH_BACKEND 环境变量:
NetworkX(默认):
- ✅ 默认包含(无需额外安装)
- ✅ 跨平台(Windows、Linux、macOS)
- ✅ 适用于中小型图形(<10k节点)
RustworkX(推荐用于性能):
- ⚡ 速度提高3倍至10倍 比NetworkX
- ✅ Windows兼容
- ✅ 安装方式:
pip install rustworkx - ✅ 集
GRAPH_BACKEND=rustworkx在.env
FalkorDB(实验性-未完全集成/测试):
- ⚠️ 概念验证状态 功能,但尚未完全集成和测试
- 💾 持久存储 (重新启动后仍然有效)
- ⚠️ 不推荐用于生产 - 查看
docs/FALKORDB_POC_README.md了解详情 - Linux/macOS:安装
pip install falkordblite,setGRAPH_BACKEND=falkordb - 视窗:安装
pip install falkordb redis,需要带有FalkorDB模块的Redis(请参阅docs/WINDOWS_FALKORDB_SETUP.md) - ⚠️ 已知的限制记忆酶直接使用
graph.graph访问,缺少迁移工具,性能尚未测试
安全图形包装器:
- 🛡️ 自动边缘案例处理和数据净化
- ✅ 使用RustworkX时自动启用
- ✅ 验证并清理所有图形操作
2.配置环境变量
复制 .env.example 到 .env 并调整值:
# Windows (PowerShell)
Copy-Item .env.example .env
# Linux/macOS
cp .env.example .env
重要提示: 这 .env.example 文件包含所有可用的配置选项,包括 GRAPH_BACKEND 用于选择图形数据库后端的设置。
配置策略(混合方法):
A-MEM使用 混合配置系统 为了获得最大的灵活性:
.env文件:基本配置(所有实例的默认设置)- 主控程序
env块:每个实例覆盖(允许在不修改的情况下进行自定义.env) - 优先级:MCP
env块值覆盖.env文件值
这使您能够:
- 保留默认设置
.env对于所有实例 - 覆盖每个MCP实例的特定设置(例如,不同项目的不同LLM模型)
- 分享相同
.env跨多个MCP配置
配置:
- LLM_提供者:
"ollama"(本地)或"openrouter"(云) - 奥拉玛:本地模型(默认)
- 开放路由:基于云的LLM(需要API密钥)
示例 .env 对于Ollama(默认):
LLM_PROVIDER=ollama
OLLAMA_BASE_URL=http://localhost:11434
OLLAMA_LLM_MODEL=qwen3:4b
OLLAMA_EMBEDDING_MODEL=nomic-embed-text:latest
示例 .env 对于OpenRouter:
LLM_PROVIDER=openrouter
OPENROUTER_API_KEY=your_api_key_here
OPENROUTER_LLM_MODEL=openai/gpt-4o-mini
OPENROUTER_EMBEDDING_MODEL=openai/text-embedding-3-small
图形后端选择(可选):
# Default: networkx (no installation needed)
GRAPH_BACKEND=networkx
# For better performance (3x-100x faster):
# pip install rustworkx
GRAPH_BACKEND=rustworkx
# For persistent storage (production):
# Experimental - Not fully tested (see docs/FALKORDB_POC_README.md)
# Linux/macOS: pip install falkordblite
# Windows: pip install falkordb redis (see docs/WINDOWS_FALKORDB_SETUP.md)
# GRAPH_BACKEND=falkordb # ⚠️ Experimental - Use at your own risk
研究人员代理和内容提取(可选):
# Researcher Agent (for low-confidence retrieval)
RESEARCHER_ENABLED=true
RESEARCHER_CONFIDENCE_THRESHOLD=0.5
RESEARCHER_MAX_SOURCES=5
RESEARCHER_MAX_CONTENT_LENGTH=10000
# Google Search API (for web search) - uses existing GetWeb config
GOOGLE_SEARCH_ENABLED=true
GOOGLE_API_KEY=your_google_api_key # Optional, uses default if not set
GOOGLE_SEARCH_ENGINE_ID=your_search_engine_id # Optional, uses default if not set
# Local Jina Reader (Docker) - for web content extraction
# If you have a local Jina Reader Docker instance running
JINA_READER_ENABLED=true
JINA_READER_HOST=localhost
JINA_READER_PORT=2222
# Unstructured (for PDF extraction)
# Option 1: Use library directly (requires: pip install unstructured[pdf])
UNSTRUCTURED_ENABLED=true
UNSTRUCTURED_USE_LIBRARY=true
# Option 2: Use API (if Unstructured API is running)
# UNSTRUCTURED_ENABLED=true
# UNSTRUCTURED_API_URL=http://localhost:8000
# UNSTRUCTURED_API_KEY=your_api_key_here # Optional
注:
- 网页搜索:研究人员代理使用 谷歌搜索API (如果已配置)以获得高质量的搜索结果,如果不可用,则返回DuckDuckGo HTTP搜索。
- 内容提取:用途 当地Jina读者 (如果启用)用于web内容提取,如果本地实例不可用,则回退到云API。
- PDF提取:为 PDF URL,研究人员代理使用 非结构化 用于提取(库或API)。
- 提取策略:
- 搜索:谷歌搜索API→ DuckDuckGo HTTP回退
- 网站内容:Jina Reader(本地/云端)→ 可读性回退
- PDF:非结构化(库/API)
安装用于PDF提取的Unstructured:
# Full installation with PDF support
pip install "unstructured[pdf]"
# Or minimal installation (may require additional dependencies)
pip install unstructured
pip install pdfminer.six # Required for PDF extraction
可选HTTP服务器(用于外部工具):
TCP_SERVER_ENABLED=true
TCP_SERVER_HOST=127.0.0.1
TCP_SERVER_PORT=42424
启用后,MCP服务器并行运行一个额外的HTTP服务器,在以下位置公开图形数据 http://127.0.0.1:42424/get_graph。这允许使用外部工具(如 extract_graph.py)在不干扰stdio MCP协议的情况下访问当前图形状态。
3.安装Ollama型号(仅当LLM_PROVIDER=Ollama时)
ollama pull qwen3:4b
ollama pull nomic-embed-text:latest
4.启动Ollama(仅当LLM_PROVIDER=Ollama时)
确保Ollama正在奔跑 http://localhost:11434.
🛠️ MCP服务器
开始
python mcp_server.py
可用工具(共15个)
核心内存操作
create_atomic_note-存储一条新信息。自动对笔记类型进行分类,提取元数据,并在后台开始链接/演化retrieve_memories-搜索具有优先级评分的相关记忆。返回按相似性和优先级组合排名的最佳匹配项get_memory_stats-返回有关内存系统(节点、边等)的统计信息add_file-将文件内容存储为笔记,并对大文件(>16KB)进行自动分块reset_memory-重置整个内存系统(⚠️ 不可逆)
笔记管理
list_notes-列出内存图中存储的所有笔记get_note-按ID返回单个注释(元数据+内容)update_note-更新现有笔记的上下文摘要、标签或关键字delete_atomic_note-删除注释和所有关联的连接
关系管理
list_relations-列出图表中的关系,可选择按注释ID筛选add_relation-在两个注释之间添加手动关系remove_relation-删除两个音符之间的关系
图的运算
get_graph-返回用于可视化的完整图形快照(节点+边)
内存维护
run_memory_enzymes-运行全面的内存维护:修剪旧/弱链接和僵尸节点,合并重复项,验证和修复边,删除自循环,链接隔离节点,规范化关键字,计算质量分数,验证注释和类型,执行时间清理,计算图健康分数,检测死端节点,自动为死端节点创建连接(使用智能过滤),删除低质量内容,优化摘要,修复损坏的节点,建议新关系,并消化过度拥挤的节点。通过19+次维护操作自动优化图形结构
研究与网络集成
research_and_store-对查询执行深层网络研究,并将结果存储为原子注释。使用Google Search API(如果配置)或DuckDuckGo HTTP搜索,使用Jina Reader(本地Docker或云)提取内容,并使用Unstructured处理PDF。自动创建带有元数据、关键字和标签的笔记。
IDE集成
光标IDE
-
打开MCP配置文件:
- 窗户:
%USERPROFILE%\.cursor\mcp.json(或C:\Users\<username>\.cursor\mcp.json) - macOS:
~/.cursor/mcp.json - Linux:
~/.cursor/mcp.json
- 窗户:
-
添加以下配置:
基本配置(用途 .env 文件):
{
"mcpServers": {
"a-mem": {
"command": "python",
"args": [
"-m",
"src.a_mem.main"
],
"cwd": "C:\\Users\\tobs\\Downloads\\a-mem_-agentic-memory-system\\a-mem_-agentic-memory-system"
}
}
}
高级配置(带环境覆盖):
您可以覆盖 .env 使用以下命令直接在MCP配置中设置 env 块。这允许在不修改的情况下对每个实例进行自定义 .env 文件:
{
"mcpServers": {
"a-mem": {
"command": "python",
"args": [
"-m",
"src.a_mem.main"
],
"cwd": "C:\\Users\\tobs\\Downloads\\a-mem_-agentic-memory-system\\a-mem_-agentic-memory-system",
"env": {
"LLM_PROVIDER": "ollama",
"OLLAMA_LLM_MODEL": "qwen3:4b",
"RESEARCHER_ENABLED": "true",
"RESEARCHER_CONFIDENCE_THRESHOLD": "0.5"
}
}
}
}
配置策略:
.env文件:默认配置(自动加载)env块:覆盖每个MCP实例的特定设置- 优先级:
env块值覆盖.env文件值
重要提示: 调整 cwd 转到项目目录的绝对路径!
- 重新启动Cursor以加载配置。
Visual Studio代码(带MCP扩展)
-
安装VSCode的MCP扩展(如果可用)
-
打开VSCode设置(JSON):
Ctrl+Shift+P(Windows/Linux)或Cmd+Shift+P(macOS)- 键入“首选项:打开用户设置(JSON)”
-
添加MCP服务器配置:
基本配置(用途 .env 文件):
{
"mcp.servers": {
"a-mem": {
"command": "python",
"args": ["-m", "src.a_mem.main"],
"cwd": "/path/to/a-mem-mcp-server"
}
}
}
高级配置(带环境覆盖):
{
"mcp.servers": {
"a-mem": {
"command": "python",
"args": ["-m", "src.a_mem.main"],
"cwd": "/path/to/a-mem-mcp-server",
"env": {
"LLM_PROVIDER": "ollama",
"OLLAMA_LLM_MODEL": "qwen3:4b",
"RESEARCHER_ENABLED": "true"
}
}
}
}
备选方案: 使用 mcp.json 项目根目录中的文件:
{
"mcpServers": {
"a-mem": {
"command": "python",
"args": ["-m", "src.a_mem.main"],
"cwd": "${workspaceFolder}",
"env": {
"LLM_PROVIDER": "ollama"
}
}
}
}
注: 这 env 块允许您覆盖 .env 每个实例的设置,而无需修改基本配置文件。
IDE中的用法
配置后,MCP工具可以直接在IDE中使用:
-
聊天/作曲:通过自然语言使用工具
- “存储此信息:…”
- “搜索关于以下内容的回忆:…”
- “显示内存统计信息”
-
代码:工具作为功能自动可用
看 MCP_SERVER_SETUP.md 有关所有可用工具的详细信息。
事件日志
所有系统事件都会自动记录到 data/events.jsonl JSONL格式(每行一个JSON对象)。这提供了以下内容的完整审计跟踪:
- 笔记创建和更新
- 关系创建和删除
- 记忆进化事件
- 酶维护运行
- 日程安排活动
您可以通过以下方式查看事件日志:
# View last 10 events
tail -n 10 data/events.jsonl
# View all events
cat data/events.jsonl | jq .
📚 文档
MCP_SERVER_SETUP.md-MCP服务器设置和配置docs/TEST_REPORT.md-测试结果docs/MCP_SERVER_TEST_REPORT.md-MCP服务器集成测试docs/EMBEDDING_DIMENSIONS.md-嵌入尺寸处理指南docs/RESEARCHER_AGENT_DETAILED.md- 详细的Researcher Agent文档 (代码集成,功能,工作流程)docs/MEMORY_ENZYMES_DETAILED.md- 详细的记忆酶文档 (代码集成、功能、工作流、19+ 操作)tools/RESEARCHER_README.md-研究人员代理快速参考
📊 直观图
更新的基于白色背景和黑色字体的 Mermaid SVG 图表:
系统架构概述
存储架构详情
记忆酶工作流程
MCP 工具概述
类型分类系统
更多文件:
docs/MEMORY_ENZYMES_DETAILED.md- 全面的记忆酶文档,包括所有19+操作docs/RESEARCHER_AGENT_DETAILED.md- 详细的Researcher Agent文档
🧪 测试
# Core functionality tests
python tests/test_a_mem.py
# Code structure tests
python tests/test_code_structure.py
# New features tests (Type Classification, Priority Scoring, Event Logging)
python tests/test_new_features.py
# Memory enzymes tests (Link Pruner, Relation Suggester, Digest Node)
python tests/test_enzymes.py
# Scheduler tests
python tests/test_scheduler.py
测试结果: 24/24测试通过✅
🧪 基准测试
该项目包括一个用于测试Ollama模型速度和性能的现代TUI基准工具:
python ollama_benchmark.py
此工具测量模型速度指标(令牌/秒、延迟、第一个令牌时间),以帮助您为您的用例选择最佳的Ollama模型。
看 BENCHMARK_README.md 了解详情。
📊 图形可视化
该项目包括一个基于网络的仪表板,用于可视化内存图、分析优先级和探索模式:
python tools/visualize_memory.py
然后打开浏览器 http://localhost:8050 查看交互式仪表板。
特征:
- 图形可视化:交互式网络图,节点大小基于优先级,颜色基于类型
- 优先级统计:按注释类型显示优先级分布的方框图
- 关系分析:关系类型分布柱状图
- 事件时间表:所有系统事件的时间线可视化
- 节点详细信息:包含优先级、边数、摘要和标签的详细表格
当您单击刷新按钮时,仪表板会自动刷新,允许您探索内存系统中的模式和见解。
数据同步: 可视化工具从以下位置加载图形数据 data/graph/knowledge_graph.json。要更新数据,请运行:
python tools/extract_graph.py
此脚本通过HTTP连接到正在运行的MCP服务器(如果 TCP_SERVER_ENABLED=true 在 .env)并将当前图形状态保存到磁盘。
📈 实时图形状态
快速检查内存系统的状态(类似于 git status):
# Full status (default)
python tools/amem_stats.py
# Compact one-line output
python tools/amem_stats.py --compact
# JSON output (for scripting)
python tools/amem_stats.py --json
# Show changes since last run
python tools/amem_stats.py --diff
# Watch mode (auto-refresh every 5 seconds)
python tools/amem_stats.py --watch
# Watch mode with custom interval (10 seconds)
python tools/amem_stats.py --watch 10
输出示例:
完整状态:
🧠 A-MEM Graph Status
==================================================
📝 Notes: 47
🔗 Relations: 89
📊 Notes by Type:
🔴 rule 12
🔵 procedure 15
🟢 concept 20
⚙️ Last Enzyme Run: 23min ago
📡 Data Source: http
==================================================
紧凑模式:
47 notes | 89 relations | Last: 23min ago
差异模式:
+5 notes | +12 relations | -3 zombie nodes
观看模式:
每N秒持续刷新一次显示器。非常适合在编码时进行监控!按 Ctrl+C 停止。
该工具会自动尝试从正在运行的MCP服务器获取实时数据(如果启用了HTTP服务器),否则从磁盘读取。非常适合在编码时监控您的内存系统!
外壳别名(可选):
添加到您的 ~/.bashrc, ~/.zshrc,或PowerShell配置文件:
alias amem="python ~/path/to/a-mem-mcp-server/tools/amem_stats.py"
# Then simply: amem
📊 状态
✅ 100%纸张合规
✅ 所有测试通过 (24/24测试)
✅ 模块化结构
✅ 多提供商支持 (Ollama+OpenRouter)
✅ MCP服务器集成 (15个工具)
✅ 内存重置和管理工具
✅ 类型分类和优先级评分
✅ 事件记录和审计跟踪
✅ 记忆酶(自主图形维护)
✅ 自动调度程序(每小时维护)
✅ HTTP服务器 (可选,适用于外部工具,如 extract_graph.py)
✅ 图形后端选择 (NetworkX、RustworkX、FalkorDB-实验性)
✅ 参数验证 (自动验证所有MCP工具参数)
✅ 安全图形包装器 (边缘案例处理和数据净化)
⚠️ Windows FalkorDB支持 (用于Windows用户的实验性专用适配器-未完全测试)
📄 许可证
此项目根据MIT许可证获得许可-请参阅 许可证 文件以获取详细信息。
该实现基于研究论文 “A-Mem:LLM代理的代理记忆”.
🙏 致谢
由tobi和CURSOR IDE为社区创建了新的Composer 1模型❤️