AI编码记忆层

amem是一个为AI编码工具设计的记忆层,允许用户一次性告知AI,之后在所有会话中都能记住这些信息。

  • by amanasmuei
  • TypeScript
  • 本地部署
  • 2 星标
  • 更新于
在 GitHub 查看 amanasmuei/amem

使用说明

amem

The memory layer for AI coding tools.
Tell your AI once — it remembers everywhere.


| 🎯 5%时为97.8%⚡ ~14毫秒p50 |🛠 33工具|🔒 100%本地| |:---:|:---:|:---:|:---:| |LongMemEval-S,500q |完整召回流程|完整内存工具包|无需云|

Quick Start · How It Works · Benchmarks · Tools · Dashboard · Architecture


💡 问题

每个AI工具都是从零开始的。每次会议。每一个工具。

- You: "Don't use 'any' in TypeScript"     → told Claude 3 times. Copilot still doesn't know.
- You: "We chose PostgreSQL over MongoDB"   → explained in Cursor. Claude has no idea.
+ With amem: tell it once, every AI tool remembers — forever.
See it in action
You (in Claude Code):  "Don't use any type in TypeScript"
  └─ amem stores this as a correction (priority 1.0, confidence 100%)

You (switch to Copilot): starts coding
  └─ Copilot already knows — amem feeds it the same correction

You (open Cursor): "What do you remember about TypeScript?"
  └─ Instantly recalls: "Don't use any type" + all related preferences

没有云。没有API密钥。一个SQLite文件。一切都在你的机器上。


🚀 快速开始

克劳德代码 (推荐)

/plugin marketplace add amanasmuei/amem
/plugin install amem

GitHub Copilot 命令行工具

copilot plugin marketplace add amanasmuei/amem
copilot plugin install amem
📦 Cursor / Windsurf / Any MCP Client
npm install -g @aman_asmuei/amem
amem-cli init      # Detects & configures all installed AI tools
amem-cli rules     # Generates extraction rules for proactive memory use

或者手动添加到MCP配置中:

{
  "mcpServers": {
    "amem": {
      "command": "npx",
      "args": ["-y", "@aman_asmuei/amem"]
    }
  }
}

验证它是否有效:

amem-cli stats     # Should show "0 memories" initially

💬 告诉你的AI: “记住:始终使用严格的TypeScript,永远不要使用任何类型”

🔄 开始a 新 会话: “你还记得TypeScript吗?” --它立刻回忆起来。


🧬 由...驱动 amem-core

amem 是MCP服务器。检索引擎存在于 @aman_asmuei/amem-core.

     Claude Code / Copilot / Cursor / any MCP client
                        │
                        │ MCP (stdio)
                        ▼
        ┌──────────────────────────────────┐
        │  @aman_asmuei/amem  (this pkg)   │
        │  33 Tools · 7 Resources · 2 Prompts
        │  CLI · Hooks · Dashboard         │
        └───────────────┬──────────────────┘
                        │ imports
                        ▼
        ┌──────────────────────────────────┐
        │  @aman_asmuei/amem-core          │
        │  Embeddings · HNSW · Recall      │
        │  Knowledge Graph · Reflection    │
        │  97.8% R@5 on LongMemEval-S      │
        └───────────────┬──────────────────┘
                        ▼
              ┌────────────────────┐
              │  SQLite + WAL      │
              │  ~/.amem/memory.db │
              └────────────────────┘
Why two packages?
包 角色 安装
@aman_asmuei/amem (这个) MCP服务器+CLI+挂钩 npm i -g @aman_asmuei/amem
@aman_asmuei/amem-core 纯TS库,零MCP deps npm i @aman_asmuei/amem-core

相同的发动机功率 amem (MCP服务器), aman-agent (CLI), aman-tg (Telegram机器人),以及任何你给内存的Node应用程序。检索改进通过 amem-core.MCP工具通过以下方式更换船只 amem。它们独立版本。

这 5时为97.8% 标题是发动机质量 amem-core (LongMemEval-S,会话级,500个问题,零API调用)-无论您是通过MCP调用它还是直接导入库,都会得到确切的结果。


⚙️ 运作原理

amem捕获知识 三层 --从全自动到全手动:

层 如何 它做什么
自动 生命周期挂钩 捕获工具观察结果,在会话结束时自动提取纠正/决策/模式
AI驱动 提取规则 您的AI主动调用 memory_store 当你纠正它、做出决定或表达偏好时
手册 自然语言 “记住:我们使用PostgreSQL” 或 “忘记Redis内存”

内存类型

优先级 类型 示例
1.0 修正 “不要在集成测试中嘲笑数据库”
0.85 决定 “为ACID选择Postgres而不是Mongo”
0.7 模式 “比起筑巢,更喜欢提前返回”
0.7 偏好 “使用pnpm,而不是npm”
0.5 拓扑 “Auth模块位于src/Auth/中”
0.4 事实 “API于2025年1月发布”

修正总是先出现的——它们是人工智能的硬约束。

🔄 Memory Tiers & Temporal Validity

内存层

层级 行为
核心 始终在会话开始时注入(约500个令牌)。你最关键的修正。
工作 会话范围,为当前任务自动显示。
档案 默认值。可搜索但不能自动注入。

时间有效性

记忆不是永恒的。当事实发生变化时:

  • 旧的记忆得到 过期的 (未删除)--保留 “三月的事是真的吗?”
  • 矛盾是 自动检测 ��� 存储新决策会自动使旧决策过期
  • 使用查询任意时间点 memory_since
🧠 Self-Evolving Memory Loop

你的记忆不仅仅是储存 从自身结构中学习.致电 memory_reflect 以触发反射引擎:

memory_reflect → Analyzes your entire memory graph
  │
  ├─ Clusters related memories (HNSW neighbor graph)
  ├─ Detects contradictions (negation pairs, numerical, low-overlap)
  ├─ Identifies synthesis candidates
  ├─ Surfaces knowledge gaps (topics with sparse recall)
  └─ Returns a structured report with suggested actions

进化循环:

  1. 反映 — memory_reflect 整理你的记忆,找出模式
  2. 合成 --人工智能通过以下方式将相关集群合并为高阶原则 memory_store
  3. 链接 — memory_relate 将合成与源记忆联系起来(通过合成谱系跟踪)
  4. 重复 --每个周期,图形都变得更加连贯和抽象

当反思到期时(自上次运行以来>7天或>50个新记忆),系统会自动推送。

📊 What the reflection report looks like
# Memory Reflection Report
Analyzed 127 memories in 12ms
Health Score: 68/100

## Stats
- Clusters: 8 (avg size: 4.2)
- Clustered: 34 | Orphans: 93
- Contradictions: 2
- Synthesis candidates: 3
- Knowledge gaps: 4

## Contradictions Found
⚠ Opposing language detected (23d apart, 87% similar)
  A: a1b2c3d4 "Always use semicolons in JavaScript..."
  B: e5f6g7h8 "Never use semicolons in JavaScript..."
  → Expire older memory a1b2c3d4 — newer supersedes it

## Synthesis Candidates
### cluster-0 (4 patterns)
  "These 4 related memories form a cluster about 'typescript, types':
  [patterns]:
    - 'Always use strict TypeScript types'
    - 'Prefer strict null checks'
    - 'Use unknown instead of any'
    - 'Enable strictNullChecks in tsconfig'

  Synthesize into a higher-order principle..."

## Knowledge Gaps
- "kubernetes deployment" — asked 3x, avg 25% confidence
- "database migration strategy" — asked 2x, avg 0% confidence

📈 基准测试

召回准确性(LongMemEval)

所有号码来自 amem-core v0.5.1 --检索引擎为该MCP服务器供电。零API调用,全部本地,完全可复制。

LongMemEval-S(会话级别)——标题指标

度量 分数
R@1 95.0%
R@3 97.0%
R@5 🏆 97.8%
R@10 99.0%

500个问题·仅限CPU·零个API调用

LongMemEval Oracle(回合级别)

度量 分数
R@1 66.2%
R@3 90.8%
R@5 94.6%
R@10 97.5%

479个可评分问题·301秒运行时间·节点22

管道:当地 bge-small-en-v1.5 双编码器+ ms-marco-MiniLM-L-6-v2 交叉编码器(int8,批处理,默认打开)。看 amem核心基准 查看完整的每种类型的细分、管道演变和诚实的笔记。

为什么这对“用Rust重写”问题很重要。 上面10.3ms的重新排序数字反映了它所取代的每对实现的约30%的加速——通过约20行批处理加int8量化实现,无需本机重写。热门路径已经很有效了;剩下的胜利来自于更谨慎地使用它们。我们继续使用TypeScript。

搜索延迟

全面召回流程(v0.5.1+)

阶段 p50 分享
嵌入式(双编码器) 3.0ms 22%
检索(HNSW+多策略) 0.1ms 1%
重新排序(int8交叉编码器) 10.3毫秒 74%
总计 ~14ms 100%

仅HNSW索引(矢量搜索)

回忆 HNSW 暴力 加速
100 0.05毫秒 0.10毫秒 2倍
1000 0.06毫秒 0.50毫秒 8x
5000 0.08毫秒 2.44毫秒 30倍
10000 0.08毫秒 5.35毫秒 67x

测量:平均100次搜索,384次暗嵌入,前10名结果。

在任何尺度下均低于-0.1ms --实际上为O(log n)。HNSW是一个可选的依赖项;当不可用时,使用暴力作为后备。


🛠️ 工具参考

核心内存(7个工具)

工具 说明
memory_store 用类型、标签和信心存储记忆。自动编辑私人内容,自动过期矛盾。
memory_recall 语义搜索——默认情况下为紧凑模式(约10倍令牌节省)。使用 memory_detail 为了获得完整的内容。
memory_detail 压缩召回后按ID检索完整内容。
memory_context 加载主题的所有相关上下文,按类型组织,并使用令牌预算。
memory_extract 批量保存对话中的多个记忆。
memory_forget 按ID删除或查询(确认后)。
memory_inject 编码开始前的曲面校正+决策+图形邻居。
Precision, History, Advanced, Admin, Reminders, and Maintenance tools (26 more)

精度和历史(5个工具)

工具 说明
memory_patch 使用自动快照进行手术现场级编辑。
memory_versions 查看完整的编辑历史记录或还原任何版本。
memory_search 通过FTS5以紧凑模式进行精确的全文搜索。
memory_since 具有自然语言范围的时态查询(7d, 2w, 1h).
memory_relate 在记忆之间构建一个类型化的知识图。

高级(6个工具)

工具 说明
memory_multi_recall 紧凑模式的多策略搜索:语义+FTS5+图+时态。
memory_tier 在层之间移动内存:核心/工作/归档。
memory_expire 标记为不再有效——保留为历史,排除在召回范围之外。
memory_summarize 存储结构化的会话摘要,包括决策、更正和指标。
memory_history 查看过去的会话摘要。
memory_reflect 自我进化的反射引擎——对记忆进行聚类,检测矛盾,识别合成候选者,填补知识空白。

管理和同步(4个工具)

工具 说明
memory_doctor 在amem数据库上运行只读健康诊断。
memory_repair 对amem数据库执行安全、有针对性的修复。
memory_config 获取或设置带安全护栏的amem配置。
memory_sync 在amem和其他系统之间导入或导出内存(Claude自动内存、Copilot指令)。

提醒(4个工具)

工具 说明
reminder_set 创建带有可选截止日期和范围的提醒。
reminder_list 列出活动(或所有)提醒,可按范围筛选。
reminder_check 显示过期、今天和即将到来(7天)。
reminder_complete 标记为已完成(支持部分ID)。

日志和维护(7个工具)

工具 说明
memory_log 附加原始对话回合(无损,仅附加)。
memory_log_recall 按会话、关键字或最近度搜索或回放日志。
memory_log_cleanup 使用可配置的保留期修剪旧条目。
memory_stats 计数、类型细分、置信度分布。
memory_export 导出为Markdown或JSON格式。
memory_import 从JSON进行批量导入,并自动进行数据消除。
memory_consolidate 合并重复,修剪陈旧,促进频繁,腐烂闲置。

📖 使用指南

存储记忆

自然语言 (最简单)

"Remember: we use PostgreSQL, not MongoDB"
"Store a correction: never use console.log in production"
"Note that the auth module is in src/auth/"

显式工具调用

memory_store({
  content: "Never use 'any' — define proper interfaces",
  type: "correction",
  tags: ["typescript"],
  confidence: 1.0
})

回忆往事

// Step 1: Compact index — ~50-100 tokens (default)
memory_recall({ query: "auth decisions", limit: 5 })
// -> a1b2c3d4 [decision] Auth service uses JWT tokens... (92%)
// -> e5f6g7h8 [correction] Never store tokens in localStorage... (100%)

// Step 2: Full details only for what you need
memory_detail({ ids: ["a1b2c3d4", "e5f6g7h8"] })
More search options
// Multi-strategy: semantic + FTS5 + graph + temporal
memory_multi_recall({
  query: "authentication architecture",
  limit: 10,
  weights: { semantic: 0.4, fts: 0.3, graph: 0.15, temporal: 0.15 }
})

// Exact keyword search (FTS5 syntax)
memory_search({ query: "OAuth PKCE" })
memory_search({ query: '"event sourcing"' })     // phrase match
memory_search({ query: "auth* NOT legacy" })      // boolean

管理记忆

Edit, expire, promote, link
// Surgical edit with auto-snapshot for rollback
memory_patch({ id: "a1b2c3d4", field: "content", value: "Updated text", reason: "clarified" })

// View edit history / restore
memory_versions({ memory_id: "a1b2c3d4" })

// Expire (preserve for history, exclude from recall)
memory_expire({ id: "a1b2c3d4", reason: "Migrated to GraphQL" })

// Promote to core tier (always loaded at session start)
memory_tier({ id: "a1b2c3d4", tier: "core" })

// Link related memories (graph builds itself, but you can add manual links)
memory_relate({ action: "relate", from_id: "abc", to_id: "xyz", relation_type: "supports" })

关系类型: supports, contradicts, depends_on, supersedes, related_to, caused_by, implements --或者定义你自己的。

提醒事项

Cross-session deadline tracking
reminder_set({ content: "Review PR #42", due_at: 1743033600000, scope: "global" })

reminder_check({})
// -> [OVERDUE] Review PR #42
// -> [TODAY] Deploy auth service
// -> [upcoming] Write quarterly report

reminder_complete({ id: "a1b2c3d4" })

隐私

Automatic redaction
// Private blocks stripped before storage
memory_store({
  content: "DB password is <private>hunter2</private>, connect to prod at db.example.com",
  type: "topology", tags: ["database"]
})
// Stored: "DB password is [REDACTED], connect to prod at db.example.com"

// API keys, tokens, passwords auto-redacted by pattern matching
// Configure patterns in ~/.amem/config.json

⚔️ 诚实的比较:amem与graphify

Click to expand — how amem compares to graphify

图形化 当人们找到amem时,最常见的是“X怎么样?”。他们解决 根本不同的问题 并且是真正互补的。

每个工具的作用

阿门 图形化
一个衬垫 跨AI会话的持久内存 代码库→ 知识图谱
核心问题 “我的AI从我身上学到了什么?” “这个代码库是什么样子的?”
输入 自然语言(更正、决策、偏好) 文件(代码、文档、PDF、图像、视频)
输出 按相关性排序的回忆 结构图+报告+交互式HTML
坚持 始终--内存在会话和工具之间生存 快照-- graph.json 坚持,但不会随着时间的推移而学习
当它运行时 持续,每次会话 按需(/graphify .)或者通过git钩子提交

技术比较

阿门 图形化
运行时 Types/Node(≥18) Python(≥3.10)
协议 MCP服务器(33个工具,7个资源) AI技能(斜线命令)+可选MCP服务器
存储 SQLite+FTS5+WAL 网络X图→ JSON文件
搜索 语义嵌入+FTS5+图+重排序 图遍历(BFS/DFS)+节点查找
嵌入 本地 bge-small-en-v1.5 (384 dim) 无--使用图拓扑,而不是向量相似性
代码理解 无——存储你告诉它的内容 深度——25种语言的树保姆AST
多模态 纯文本 代码、文档、PDF、图像、视频、音频
需要LLM 否(全部为本地) 对于文档/图像,答案是肯定的(通过树保姆,代码是LLM免费的)
基准 LongMemEval-S上的R@5为97.8% 与原始文件读取相比,令牌减少了71.5倍
AI工具支持 Claude Code,Copilot,Cursor,任何MCP客户端 Claude Code、Codex、Copilot、Cursor、Gemini、Aider、Kiro,+10更多

每个人都赢了

阿梅姆在以下位置获胜:

  • 记住您的偏好、更正和决定 跨项目和工具
  • 语义回忆——从模糊查询中找到正确的记忆(97.8%R@5)
  • 时间智能——追踪真实情况 当,自动到期矛盾
  • 自我进化——反射引擎集群,检测矛盾,识别差距
  • 零LLM依赖-一切都在本地运行,无需API调用

图形化获胜地点:

  • 理解 代码结构 --调用图、导入、类层次结构、跨文件关系
  • 多模式摄取——插入代码、论文、屏幕截图、视频,并将它们全部绘制出来
  • 令牌效率——71.5倍压缩意味着您的AI读取结构,而不是原始文件
  • 语言支持的广度——通过树型AST实现25种编程语言
  • 广泛的AI工具支持——15个以上平台,带有专用安装命令

诚实的收获

  1. 他们不竞争。 阿梅姆记得 你的 知识(决策、修正、偏好)。绘制地图 代码库的 结构(调用图、依赖关系、架构)。不同的数据,不同的访问模式。

  2. 如果你愿意,可以两者都用。 跑 graphify . 获取项目的结构图。使用amem记住“我们选择这个架构是因为X。”图形告诉你的人工智能 对存在记忆告诉它 为什么事情是这样的.

  3. graphify的平台覆盖范围更广 (15+AI工具)。amem在工作的地方有更深入的集成(MCP协议,有33个工具、结构化资源、提示)。

  4. graphify需要非代码文件的LLM。 amem完全是本地的-没有API调用,没有超出本地嵌入模型的模型推理。

  5. 真正的选择取决于你的痛点。 如果你的人工智能总是忘记你的偏好和决定→ amem.如果你的AI不能有效地浏览你的代码库→ 图形化。如果两者都有→ 两者都用。


🌐 平台兼容性

功能 克劳德代码 GitHub Copilot命令行界面 游标/Windsurf/其他
一个命令插件安装 是 是 --
33个MCP工具 是 是 有
人工智能技能 14 7 --
自动捕捉挂钩 是 是 --
会话自动摘要 是 是 --
自动内存同步 是 -- --
CLI设置(amem-cli init) 是 是 有

克劳德代码 具有最深入的集成(插件+钩子+自动内存同步)。 Copilot命令行界面 是第二位。 其他MCP客户端 通过手动配置获取完整的33工具服务器。

人工智能技能

Available skills by platform
你说什么 技能 克劳德代码 Copilot CLI
“记住永远不要使用任何类型” remember 是 是
“关于auth,你还记得什么?” recall 是 是
“加载此任务的上下文” context 是 是
“显示内存统计信息” stats 是 是
“运行内存医生” doctor 是 是
“导出我的记忆” export 是 是
“列出所有更正” list 是 是
“同步我的克劳德记忆” sync 是 --
“打开内存控制面板” dashboard 是 --
“安装挂钩” hooks 是 --

🔄 使用Claude Code自动内存

amem是对Claude内置自动存储器的补充,它不会取代它。

克劳德汽车存储器 amem
捕捉 自动、零配置 键入置信度得分
存储 单个markdown文件 带搜索、图形、时态的SQLite
召回 每次会话加载整个文件 只显示相关内存
历史 更新时重写过多 版本、时间有效性
搜索 无 语义+FTS5+图形+重新排序

推荐: 保持两者都启用。跑 amem-cli sync 将克劳德的记忆导入amem,以实现统一、结构化的访问。

Claude → amem sync
amem-cli sync              # Import all projects
amem-cli sync --dry-run    # Preview what would be imported
amem-cli sync --project myapp  # Import specific project
克劳德型 名字型 信心
feedback correction 1.0
project decision 0.85
user preference 0.8
reference topology 0.7
amem → Copilot sync

将amem记忆导出到 .github/copilot-instructions.md 所以Copilot将它们视为持久上下文:

amem-cli sync --to copilot              # Export to current project
amem-cli sync --to copilot --dry-run    # Preview without writing
amem-cli sync --to copilot --project /path/to/repo

这将生成按优先级分组的结构化标记:

  1. 更正 (必须遵守)——硬约束
  2. 决策 --建筑选择
  3. 偏好 --用户偏好
  4. 模式 --编码惯例
  5. 上下文 --拓扑+事实

amem部分被包裹在 <!-- amem:start/end --> marks--保留文件中现有的非amem内容。

跨工具同步: Claude会话中做出的决定会自动通知Copilot:

Claude Code → amem sync → amem DB → amem sync --to copilot → copilot-instructions.md

📊 仪表板和知识图谱

amem-cli dashboard              # Opens at localhost:3333
amem-cli dashboard --port=8080  # Custom port

功能齐全的网络仪表板,包括:

  • 🔍 内存浏览器 --搜索、按类型/层/源过滤、内联操作(升级、降级、过期)
  • 🕸️ 交互式知识图谱 --缩放、平移、单击以通过邻域突出显示、细节面板、搜索、定向边进行聚焦
  • 📈 分析 --置信度分布、类型细分、会话时间线
  • ⏰ 提醒事项 --查看和管理跨会话任务
  • 📋 副驾驶预览 --看看会出口到什么 copilot-instructions.md

💻 CLI参考

# Setup
amem-cli init                          # Auto-configure AI tools
amem-cli rules                         # Generate extraction rules
amem-cli hooks                         # Install hooks for Claude Code
amem-cli hooks --target copilot        # Install hooks for GitHub Copilot CLI
amem-cli hooks --uninstall             # Remove hooks
amem-cli sync                          # Import Claude auto-memory → amem
amem-cli sync --to copilot             # Export amem → copilot-instructions.md
amem-cli doctor                        # Health diagnostics
amem-cli repair                        # Repair corrupted database from backups

# Dashboard
amem-cli dashboard                     # Web dashboard (localhost:3333)

# Memory operations
amem-cli recall "authentication"       # Semantic search
amem-cli stats                         # Statistics
amem-cli list --type correction        # List by type
amem-cli export --file memories.md     # Export to file
amem-cli forget abc12345               # Delete by short ID
amem-cli reset --confirm               # Wipe all data

🏗 建筑

                        Your AI Tool
           Claude Code / Copilot CLI / any MCP client
                    │                │
                    │ MCP (stdio)    │ Lifecycle Hooks
                    ▼                ▼
          ┌─────────────────────────────────┐
          │   @aman_asmuei/amem             │  ← this package
          │                                 │
          │  33 Tools · 7 Resources · 2 Prompts
          │  Slash commands · CLI · Hooks   │
          │  Config: ~/.amem/config.json    │
          └────────────────┬────────────────┘
                           │ imports
                           ▼
          ┌─────────────────────────────────┐
          │   @aman_asmuei/amem-core        │  ← the engine
          │                                 │
          │  Multi-Strategy Retrieval       │
          │  [HNSW] + [FTS5] + [Graph] + [Temporal]
          │       + query expansion         │
          │       + cross-encoder reranker   │
          │                                 │
          │  Self-Evolving Reflection       │
          │  [Clustering] + [Contradictions]│
          │  + [Synthesis] + [Gap Detection]│
          │                                 │
          │  Embeddings: bge-small-en-v1.5  │
          │  Reranker: ms-marco-MiniLM int8 │
          │  97.8% R@5 on LongMemEval-S     │
          └────────────────┬────────────────┘
                           │
                           ▼
          ┌─────────────────────────────────┐
          │   SQLite + WAL + FTS5           │
          │   ~/.amem/memory.db             │
          │                                 │
          │   memories       (tiered)       │
          │   conversation_log (raw)        │
          │   memory_versions (history)     │
          │   memory_relations (graph)      │
          │   synthesis_lineage             │
          │   knowledge_gaps                │
          │   session_summaries             │
          │   reminders                     │
          └─────────────────────────────────┘

这 amem MCP服务器是一个精简的包装器 周围 amem-core.检索引擎、嵌入、知识图、反射——都存在于 amem-core 版本独立。MCP接线有问题吗?重新发布 amem.召回改进?重新发布 amem-core.无联轴器。

排名公式

score = relevance x 0.45 + recency x 0.2 + confidence x 0.2 + importance x 0.15
因素 它是如何工作的
相关性 HNSW指数的余弦相似性;查询扩展关键字回退
近期性 指数衰减(0.995^hours)
自信 反复确认强化(0-1)
重要性 基于类型:更正 1.0 …事实 0.4

加性评分确保没有单一的低因素会影响排名。


⚙️ 配置

Environment variables
变量 默认值 描述
AMEM_DIR ~/.amem 存储目录
AMEM_DB ~/.amem/memory.db 数据库路径
AMEM_PROJECT (自动从git) 项目范围覆盖
Config file (~/.amem/config.json)

使用默认值自动创建:

{
  "retrieval": {
    "semanticWeight": 0.4,
    "ftsWeight": 0.3,
    "graphWeight": 0.15,
    "temporalWeight": 0.15,
    "rerankerEnabled": true
  },
  "privacy": {
    "enablePrivateTags": true,
    "redactPatterns": ["..."]
  },
  "tiers": {
    "coreMaxTokens": 500,
    "workingMaxTokens": 2000
  },
  "hooks": {
    "enabled": true,
    "captureToolUse": true,
    "captureSessionEnd": true
  }
}
📋 Version history

v0.23.0——交互式知识图谱仪表板

具有缩放/平移功能的全宽图形浏览器,单击以聚焦邻域突出显示,具有关系导航的详细信息面板,搜索和过滤,定向边,强制定向布局。管理工具(医生、维修、配置、同步)。18个套件中的255个测试。

v0.19.0——自进化记忆回路

基于HNSW聚类的反射引擎、三层矛盾检测(否定+数值+低重叠)、具有谱系跟踪的合成候选、知识差距检测、效用评分、自动触发微调 memory_inject.新建数据库表: synthesis_lineage, knowledge_gaps, reflection_meta迁移v5。

v0.18.0——渐进式披露和规模

HNSW矢量索引(10k时速度快67倍)、调用/搜索的紧凑模式默认值、DB修复CLI、并发访问安全、启发式对话提取器、会话结束自动提取。

v0.13.0——世界级召回

bge-small-en-v1.5嵌入、加性评分、查询扩展、自相关知识图、图感知注入、amem-doctor、CI基准测试。

v0.9.x——时间智能

时间有效性、自动过期矛盾、多策略检索、跨编码器重新排序、内存层、隐私标签、生命周期挂钩、会话摘要、仪表板、配置系统。

v0.7.0至v0.8.0

导入/导出、置信度衰减、嵌入缓存、多进程安全、自动配置CLI、仪表板。

v0.1.0--v0.5.x

核心存储/召回、本地嵌入、SQLite+WAL、整合、项目范围界定、提醒、对话日志、知识图、FTS5、渐进式披露。


🧰 技术栈

层 技术
协议 MCP SDK ^1.25
语言 TypeScript 5.6+,严格模式
数据库 SQLite+WAL+FTS5
嵌入 拥抱脸bge-small-en-v1.5(本地,80MB)+HNSW矢量索引
重新排序 ms-marco-MiniLM-L-6-v2(默认开启,int8,批处理,本地)
验证 Zod 3.25+ .strict() 模式
测试 Vitest——19个套件中的281个测试+回忆基准
CI/CD GitHub操作,npm发布

🤝 贡献

git clone https://github.com/amanasmuei/amem.git
cd amem && npm install
npm run build   # zero TS errors
npm test        # 281 tests pass

PR在合并之前必须通过CI。请参阅 问题 对于开放任务。



Built with ❤️ in 🇲🇾 Malaysia by Aman Asmuei

MIT License · Star ⭐ if amem saves your AI from amnesia