持久化记忆工具

为MCP驱动的编码代理提供基于Markdown文件的持久化记忆服务,支持记忆存储、检索、更新和删除功能。

  • by jcyamacho
  • TypeScript
  • 本地部署
  • 更新于
在 GitHub 查看 jcyamacho/agent-memory

使用说明

代理存储器

弃用:使用 jcyamacho/memo 对于新 持久的内存设置。 memo 使用相同的存储格式,因此存在 agent-memory 用户只需指向 memo 在同一家商店 MEMO_CONFIG_DIR。默认情况下 agent-memory 位置,运行 MEMO_CONFIG_DIR=~/.config/agent-memory memo ...。如果此回购已使用 AGENT_MEMORY_STORE_PATH,将该值用作 MEMO_CONFIG_DIR.

MCP驱动的编码代理的持久内存。

agent-memory 是一个stdio MCP服务器,为您的LLM提供持久内存支持 通过磁盘上的Markdown文件。它可以帮助您的代理记住偏好、项目 包括会议内容、背景和之前的决定。

它公开了四个工具:

  • remember:保存事实、决策、偏好和项目上下文
  • review:加载按最近更新排序的工作区和全局内存
  • revise:当现有内存的内容发生变化或 应该成为全球性的
  • forget:最多删除50个不再相关的记忆

快速开始

Claude CLI:

claude mcp add --scope user agent-memory -- npx -y @jcyamacho/agent-memory

Codex CLI:

codex mcp add agent-memory -- npx -y @jcyamacho/agent-memory

OpenCode:

{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "agent-memory": {
      "type": "local",
      "command": ["npx", "-y", "@jcyamacho/agent-memory"]
    }
  }
}

安装代理技能

安装可选的代理技能,教受支持的编码代理如何创建 并且保守地维护它们:

npx skills add jcyamacho/agent-memory --skill agent-memory -g

该技能以详细的持久性补充了MCP服务器指令 大门、范围界定规则和选择指南 remember, revise, forget,无需操作。它不会改变MCP工具或存储格式。

在会话开始时加载内存(钩子)

一些客户端会推迟MCP工具的加载,直到模型决定它需要一个工具。 这可能会阻止主动 review 会话开始时的呼叫。会话开始 钩子保证在第一个提示之前加载内存。

CLI打印相同的内容 <memories> XML作为MCP review 工具:

npx -y @jcyamacho/agent-memory review

使用 --workspace <path> 覆盖默认工作区(process.cwd()). Hook命令在项目目录中以cwd运行,因此默认值通常为 够了。

克劳德代码(~/.claude/settings.json 或 .claude/settings.json):

{
  "hooks": {
    "SessionStart": [
      {
        "hooks": [
          {
            "type": "command",
            "command": "npx -y @jcyamacho/agent-memory review"
          }
        ]
      }
    ]
  }
}

Codex CLI(~/.codex/hooks.json):

{
  "hooks": {
    "SessionStart": [
      {
        "matcher": "startup|resume|clear|compact",
        "hooks": [
          {
            "type": "command",
            "command": "npx -y @jcyamacho/agent-memory review"
          }
        ]
      }
    ]
  }
}

笔记:

  • Claude Code将stdout的长度限制为10000个字符。写入更大的输出 保存到模型可以读取的文件中。
  • npx 冷缓存延迟会延迟会话启动。如果安装了该软件包 本地,呼叫 agent-memory 垃圾桶直接。
  • Claude Code用户可以选择设置 "alwaysLoad": true 在 agent-memory 服务器在 .mcp.json (v2.1.121+)通过以下方式优先处理此MCP 使其工具从第一个转弯处可见。这就决定了 呼叫 review 在模型控制下。

可选LLM指令

未安装代理技能时,请使用这些回退说明。这 服务器指令和工具描述已经涵盖了大多数行为。如果a session start钩子已经注入了内存,提示避免加载它们 第二次:

## Agent Memory

- Use the `agent-memory` MCP as the only durable memory system when its tools are
  available.
- If workspace memories are not already present in context, call `review` from
  the `agent-memory` MCP at session start. Continue through every page while
  `has_more` is true.
- During the session, use `remember`, `revise`, and `forget` from the
  `agent-memory` MCP to keep memories accurate.
- Pass `workspace` for project-scoped memory. Omit it only for facts that truly
  apply across projects. Promote project-scoped memory to global only when that
  is actually true.
- Remember durable preferences, confirmed approaches, and decisions with
  reasoning that would be hard to recover later. Revise memories when facts
  change and forget them when they are no longer relevant.
- Do not store secrets, temporary task state, or facts obvious from current
  code, files, or git history.

更改工具输出

remember 和 revise 以XML格式返回受影响的全部内存 updated_at 以及范围信息,以便隐藏工具调用参数的客户端仍然可以看到 什么改变了。

forget 接受a ids 包含1到50个内存ID的数组。它修剪ID, 忽略重复项,并同时删除最多五个内存。删除是 尽最大努力:一次失败并不能阻止剩下的记忆。回归 <forget_results> 保留请求顺序并包含每个已删除的内存 随着 deleted="true"、失败ID和状态以及摘要计数。

评审工作原理

review 需要a workspace 并返回保存在该工作区中的内存 加上全局内存(保存时没有工作区),按最近排序 更新。结果已分页。通过 page 加载旧的记忆。

当你从git工作树中保存内存时, agent-memory 存储主仓库 root作为工作区。 review 对传入应用相同的规范化 工作区查询使得链接的工作树仍然与仓库范围的内存完全匹配。

配置

店铺位置

默认情况下,内存存储在以下位置:

~/.config/agent-memory/

用以下内容覆盖它:

AGENT_MEMORY_STORE_PATH=/absolute/path/to/agent-memory

店铺布局如下:

<store>/
  globals/<memory-id>.md
  workspaces/<encoded-workspace>/<memory-id>.md

集 AGENT_MEMORY_STORE_PATH 当你想:

  • 将内存保存在项目特定的位置
  • 在多个客户端之间共享内存存储
  • 将Markdown文件放在更容易备份或检查的地方

许可证

麻省理工学院