mcpField
A
Aimemo

Aimemo

本地服务
github.com/MyAgentHubs记忆与知识136 周前更新

关于 Aimemo

Aimemo 是面向 AI Agent 的本地优先 MCP 记忆服务,以无依赖的单个 Go 二进制文件分发。它将项目上下文存入 `.aimemo/`,对记忆进行排序搜索,并提供 CLI 管理同一数据。

主要功能

  1. 01项目本地 SQLite 记忆
  2. 02排序后的全文搜索
  3. 03存储、关联和遗忘记忆
  4. 04通过 CLI 检查和编辑
  5. 05支持 Markdown 与 JSON 导入导出
  6. 06为技能记忆设置独立上下文

适用场景

  1. 01在不同编码会话间延续项目上下文
  2. 02找回先前的决策和阻塞事项
  3. 03为每个 OpenClaw 技能隔离记忆
  4. 04在终端检查或导出 Agent 记忆

MCP 相关

以 stdio MCP 服务运行,提供加载、存储、搜索、遗忘和关联记忆的工具。兼容 MCP 的客户端可将其作为本地进程管理,`aimemo` CLI 也能访问同一数据。

配置

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

暂未收录安装方式

我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。

代码仓库

工具

还没有获取到工具列表

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

详细介绍

aimemo

Go 1.22+ License: MIT Release

English | 中文

为 AI Agent 提供零依赖的 MCP 记忆服务——持久化、可搜索、本地优先、单一二进制文件。

$ claude "let's keep working on the payment service"

  ╭─ memory_context ──────────────────────────────────────────────────╮
  │ [project: payment-service]                                        │
  │                                                                   │
  │ Last session (3 days ago):                                        │
  │  • Stripe webhook signature verification — DONE                   │
  │  • Idempotency key refactor — IN PROGRESS                         │
  │  • Blocked: race condition in concurrent refund handler           │
  │                                                                   │
  │ Related: Redis connection pool, pkg/payments/refund.go            │
  ╰───────────────────────────────────────────────────────────────────╯

  Picking up where we left off. The race condition in the refund
  handler looks like a missing mutex around the in-flight map.
  Let me check pkg/payments/refund.go ...

  [... Claude works through the fix ...]

  ╭─ memory_store (journal) ──────────────────────────────────────────╮
  │ Resolved refund race — added sync.Mutex around inFlightRefunds.   │
  │ Tests passing. Next: load test with k6 at 500 rps.               │
  ╰───────────────────────────────────────────────────────────────────╯

🧠 为什么选择 aimemo

  • 无需维护基础设施。 单一 Go 二进制文件。无需 Docker、Node.js 运行时、云账户或 API 密钥。30 秒即可通过 brew install 安装。
  • 记忆随项目保存。 数据存储在代码旁边的 .aimemo/ 中——可以提交到 Git,也可以添加到 .gitignore。切换分支时,记忆会随目录一起保留。
  • Claude 能准确接续上次的工作。 每次会话开始时都会自动调用 memory_context。Claude 可以看到之前在做什么、遇到了什么阻碍、做出了哪些决定。你无需再反复说明。
  • 全文搜索,排序准确。 使用 FTS5 和 BM25 评分,并根据近期程度和访问频率加权。相关记忆优先显示;过时内容会自然淡出。
  • 支持并发会话,不会损坏数据。 SQLite WAL 模式允许多个 Claude 窗口同时写入,互不阻塞。
  • 一切由你掌控。 Claude 能使用的每个工具,你都能在终端中使用。检查、编辑、撤回、导出。你的记忆采用可读的 Markdown 或 JSON 格式,绝不会被锁定在专有格式中。

⚡ 快速开始

# 1. Install
# Linux/macOS (one-line install):
curl -sSL https://raw.githubusercontent.com/MyAgentHubs/aimemo/main/install.sh | bash

# Or macOS via Homebrew:
brew install MyAgentHubs/tap/aimemo

# 2. Initialize memory for your project (run from project root)
aimemo init

# 3. Register with Claude Code
claude mcp add-json aimemo-memory '{"command":"aimemo","args":["serve"]}'

重启 Claude Code。在下次会话中,Claude 会自动加载项目上下文。

OpenClaw 快速开始

如果你使用 OpenClaw 技能,请参阅下方的 OpenClaw 集成部分,了解如何隔离每项技能的记忆。

🔧 工作原理

aimemo serve 会作为 stdio MCP 服务运行;Claude Code 会管理其进程生命周期,因此你无需自行维持进程运行。Claude 开始会话时,会调用 memory_context 加载相关的历史上下文;工作过程中,会调用 memory_store 和 memory_link 记录决策和关系。你可以随时调用 aimemo search、aimemo list 或 aimemo get,在终端中读取或编辑相同的数据。所有数据都存储在 .aimemo/ 中的 SQLite 数据库里,程序会从当前目录向上查找该数据库——方式与 Git 查找 .git/ 相同。

🛠 MCP 工具

工具描述Claude 调用时机
memory_context返回当前项目中按相关性排序的近期观察记录会话开始时——自动调用
memory_store保存一条观察记录(事实、决策、日志条目、待办事项)完成任务或做出决定后
memory_search对所有观察记录进行全文搜索,并按 BM25 排序需要回忆具体内容时
memory_forget根据 ID 软删除一条观察记录收到指示要丢弃内容时
memory_link在两条观察记录之间创建具名关系发现依赖关系或关联时

所有工具架构的总长度不到 2,000 个 token。每次调用都有严格的 5 秒超时——服务绝不会让会话卡住。空状态查询可在 5 ms 内返回。

📋 CLI 参考

设置
命令描述
aimemo init在当前目录中创建 .aimemo/
aimemo serve启动 MCP stdio 服务(由 Claude Code 自动调用)
aimemo doctor验证数据库健康状态、FTS5 支持、WAL 模式和 MCP 注册情况
记忆
命令描述
aimemo add <name> <type> [observations...] [--tag]添加一个包含一条或多条观察记录的实体
aimemo observe <entity-name> <observation>为现有实体添加一条新观察记录
aimemo retract <entity-name> <observation>从实体中移除一条指定的观察记录
aimemo forget <entity-name> [--permanent]软删除实体(可恢复);使用 --permanent 可永久删除
aimemo search <query>全文搜索并按相关性排序显示结果
aimemo get <entity-name>显示实体及其所有观察记录和关系
aimemo link <from> <relation> <to>在两个实体之间创建指定类型的关系
aimemo append <entity-name> <observation>为实体添加一条观察记录(observe 的别名)
日志
命令描述
aimemo journal打开交互式日志条目(遵循 $EDITOR 设置)
aimemo journal <text>快速记录一条内联日志
检查与导出
命令描述
aimemo list列出最近的观察记录
aimemo tags列出所有正在使用的标签
aimemo stats显示数据库大小、观察记录数量和最近写入时间
aimemo export --format md将所有记忆导出为 Markdown
aimemo export --format json将所有记忆导出为 JSON
aimemo import <file>从 JSONL 或 JSON 导出文件导入

所有命令都接受 --context <name>,用于指定命名上下文(.aimemo/ 中的独立 .db 文件)。

⚙️ 配置

~/.aimemo/config.toml — 全局默认值,所有配置项均为可选:

[defaults]
context = "main"          # default context name
max_results = 20          # observations returned by memory_context

[scoring]
recency_weight = 0.7      # 0–1, weight of recency vs. access frequency

[server]
timeout_ms = 5000         # hard timeout on every MCP call
log_level = "warn"        # "debug" | "info" | "warn" | "error"

项目级覆盖配置位于项目根目录的 .aimemo/config.toml 中,使用相同的键;项目配置优先于全局配置。

🤖 Claude Code 集成

在每台机器上注册一次服务:

claude mcp add-json aimemo-memory '{"command":"aimemo","args":["serve"]}'

将以下内容添加到项目的 CLAUDE.md,以便 Claude 知道记忆功能可用以及如何使用:

## Memory

This project uses aimemo for persistent memory across sessions.

- Call `memory_context` at the start of every session to load prior context.
- Call `memory_store` with `type: journal` before ending a session to record
  what was completed, what is still in progress, and any blockers.
- Use `memory_link` to connect related observations (e.g. a bug to its fix,
  a decision to its rationale).
- Do not store secrets, credentials, or PII.

🦞 OpenClaw 集成

aimemo 通过按技能隔离记忆和零基础设施,解决 OpenClaw“什么都记住,却什么都不理解”的问题。

为什么为 OpenClaw 选择 aimemo?

问题:

  • OpenClaw 原生的 Markdown 记忆会随着使用越来越糟
  • 技能共享记忆,导致相互污染
  • 上下文压缩会丢失重要内容

解决方案:

  • ✅ 零依赖 — 单个 Go 二进制文件,无需 Docker/Node.js/数据库
  • ✅ 按技能隔离 — 每个技能都有自己的记忆数据库
  • ✅ 真正有效 — BM25 搜索 + 重要性评分,帮你找到重要内容
  • ✅ 本地优先 — 所有数据都保留在你的机器上

与其他解决方案对比:

aimemoCogneememsearchSupermemory
依赖项无Neo4j/KuzuMilvus云服务
安装30 秒复杂复杂需要注册
技能隔离内置手动手动不适用
Linux 支持✅ 原生✅✅不适用
5 分钟快速设置
# 1. Install (Linux amd64/arm64)
curl -sSL https://raw.githubusercontent.com/MyAgentHubs/aimemo/main/install.sh | bash

# 2. Register MCP server with OpenClaw
claude mcp add-json aimemo-memory '{"command":"aimemo","args":["serve"]}'

# Or add to ~/.openclaw/openclaw.json:
# {
#   "mcpServers": {
#     "aimemo-memory": {
#       "command": "/usr/local/bin/aimemo",
#       "args": ["serve"]
#     }
#   }
# }

# 3. Initialize workspace memory
cd ~/.openclaw/workspace
aimemo init

# 4. Restart OpenClaw Gateway
# Linux: systemctl --user restart openclaw-gateway
# macOS: launchctl stop com.openclaw.gateway && launchctl start com.openclaw.gateway
按技能隔离记忆

通过使用 context 参数,为每个技能提供独立的记忆:

在你的 SKILL.md 中:

---
name: my-skill
description: A skill with persistent memory
---

# My Skill

## Instructions

When doing work:

1. **Load memory FIRST**:

memory_context({context: "my-skill"})


2. Do your task with loaded context

3. **Store learnings**:

memory_store({ context: "my-skill", entities: [{ name: "preferences", entityType: "config", observations: ["User prefers snake_case"] }] })


**CRITICAL**: Always pass `context: "my-skill"` to prevent memory pollution.

结果:

~/.openclaw/workspace/.aimemo/
├── memory.db                    # Shared/default (no context)
├── memory-skill-a.db            # Skill A's isolated memory
├── memory-skill-b.db            # Skill B's isolated memory
└── memory-skill-c.db            # Skill C's isolated memory
完整示例

参见 examples/openclaw-github-pr-reviewer/,了解一个可完整运行的技能,该技能可以:

  • 审查 GitHub PR
  • 学习代码风格偏好
  • 跨会话记住模式
  • 保存反馈以持续改进
文档
调试
# List a skill's memory
aimemo list --context my-skill

# Search within a skill
aimemo search "keyword" --context my-skill

# Export for inspection
aimemo export --context my-skill --format json > memory.json

# Get database stats
aimemo stats --context my-skill

🖥 客户端支持

aimemo 可与任何兼容 MCP 的 AI 编码客户端配合使用。服务命令始终为 aimemo serve。

PATH 提示(macOS/Homebrew): 图形界面应用可能无法继承 shell PATH。如果客户端找不到 aimemo,请改用绝对路径 /opt/homebrew/bin/aimemo。

Claude Code
claude mcp add-json aimemo-memory '{"command":"aimemo","args":["serve"]}'

也可以将 .mcp.json 提交到项目根目录(示例请参阅本仓库中的文件)。

Cursor

项目本地配置(.cursor/mcp.json)或全局配置(~/.cursor/mcp.json):

{
  "mcpServers": {
    "aimemo-memory": {
      "command": "aimemo",
      "args": ["serve"]
    }
  }
}
Windsurf

编辑 ~/.codeium/windsurf/mcp_config.json(仅限全局配置):

{
  "mcpServers": {
    "aimemo-memory": {
      "command": "aimemo",
      "args": ["serve"]
    }
  }
}
OpenAI Codex CLI

项目本地配置(.codex/config.toml)或全局配置(~/.codex/config.toml):

[mcp_servers.aimemo-memory]
command = "aimemo"
args    = ["serve"]
Cline(VS Code)

编辑 ~/Library/Application Support/Code/User/globalStorage/saoudrizwan.claude-dev/settings/cline_mcp_settings.json:

{
  "mcpServers": {
    "aimemo-memory": {
      "command": "aimemo",
      "args": ["serve"],
      "disabled": false,
      "alwaysAllow": []
    }
  }
}
Continue(VS Code / JetBrains)

项目本地配置(.continue/mcpServers/aimemo-memory.yaml):

name: aimemo-memory
version: 0.0.1
schema: v1
mcpServers:
  - name: aimemo-memory
    command: aimemo
    args:
      - serve

或者在全局 ~/.continue/config.yaml 的 mcpServers: 键下添加配置。

Zed

在 ~/.zed/settings.json(全局)或 .zed/settings.json(项目本地)中配置:

{
  "context_servers": {
    "aimemo-memory": {
      "source": "custom",
      "command": "aimemo",
      "args": ["serve"],
      "env": {}
    }
  }
}

🤝 贡献

请通过 GitHub Issues 提交错误报告和功能请求。欢迎提交 Pull Request——对于任何较大的改动,请先创建 issue,以便我们在你投入时间编写代码前就方向达成一致。

评论

支持 Markdown

第一次接触 MCP?

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

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