MemoraX Code 记忆接入 Coding Agent,先分开项目事实与临时任务

文章导读
Coding Agent 每次新会话都重新问一遍架构、启动命令和目录约定,通常不是模型记不住,而是项目事实和临时上下文混在同一层里。MemoraX Code 这类记忆层要能减轻这种重复,前提是先分拣:哪些信息跨会话仍然成立,哪些只属于当前这一次任务。
📋 目录
  1. Ⅰ 在会话记录里找出被重复询问的项目事实
  2. Ⅱ 给记忆写入定一条准入规则
  3. Ⅲ 用配置骨架把 MemoraX Code 接到 Coding Agent
  4. Ⅳ 重启会话验证读取命中
  5. Ⅴ 把未命中项补写并复查一遍
A A

Coding Agent 每次新会话都重新问一遍架构、启动命令和目录约定,通常不是模型记不住,而是项目事实和临时上下文混在同一层里。MemoraX Code 这类记忆层要能减轻这种重复,前提是先分拣:哪些信息跨会话仍然成立,哪些只属于当前这一次任务。

判断方向是:跨会话稳定成立的内容才写入长期记忆,当前报错、临时分支、一次性目标只留在本轮任务里。建议先只在配置中打开读取开关,用新会话复述项目事实来验证命中,再逐条补写。把全部会话记录一次性倒进记忆层,误命中会变多,后续清理成本通常高于省下的那点重复提问。

在会话记录里找出被重复询问的项目事实

先翻最近几轮会话记录,找“被反复问”的信息,它们就是长期记忆的候选。按下面三步做,每一条都要能指回仓库里的原始来源。

  1. 在会话记录里搜项目名、启动、命令、目录、架构、依赖等关键词,把重复出现的问题抄成一行。
  2. 回到仓库确认原始来源:README、架构说明、Makefile、package.json 的 scripts、CI 配置、.gitignore、目录结构约定都算。
  3. 标注这条信息跨了几个会话成立。只在一个会话里出现过、离开那个任务就不成立的,先归到临时任务。

整理时按这三类过一遍,来源不确定的先别写:

  • 架构说明:模块怎么分层、依赖方向、哪些层不能互相调用。来源通常是架构文档或 README,跨会话长期成立。
  • 启动命令:装依赖、本地启动、跑测试、构建。来源是 Makefile、package.json scripts 或仓库脚本,长期成立,但命令改名后要同步更新。
  • 目录约定:新代码放哪、测试放哪、生成物是否提交。来源是目录结构、.gitignore 或贡献说明,长期成立。

给记忆写入定一条准入规则

准入规则只需要一句话:换个会话、换个任务仍然成立,且来源能在仓库里确认,才写入;只解决当前问题的,不写入。

下面这组示例可以直接套用:

  • 写入:本项目用 pnpm,不用 npm;测试放在 tests/,单测命令是 pnpm test;HTTP 路由统一放在 src/routes 下。
  • 不写入:当前这个 500 报错的堆栈;今天要合的分支 fix/login-timeout;这次临时打开的 debug 开关。

写入时建议带上三样元信息:适用范围(哪个项目或哪个目录)、来源文件、写入时间。这三样是后面删除条目的依据。少了适用范围,多个项目共用一个记忆存储时就容易出现误命中。

用配置骨架把 MemoraX Code 接到 Coding Agent

接入位置通常是 Coding Agent 的配置文件:项目级配置放仓库约定位置、随仓库提交,用户级配置放个人目录、不提交。下面只是一段骨架,键名和子命令需要按 MemoraX Code 的实际文档替换,不要照抄当官方接口。

{
  "mcpServers": {
    "memorax-code": {
      "command": "<memorax 启动命令>",
      "args": ["<子命令>", "`--store`", "<记忆存储目录>"],
      "env": {
        "MEMORAX_READ": "true",
        "MEMORAX_WRITE": "false"
      }
    }
  }
}

几个替换项说明:`--store` 指向持久化目录,不要放在重启就清空的临时路径;读写开关建议分开,第一次接入先只开读,确认新会话能读到条目后再开写。存储放在项目内还是用户目录,取决于这些事实只对当前仓库成立,还是多个仓库通用。改完配置后重启 Coding Agent,让它重新加载配置。

MemoraX Code 记忆接入 Coding Agent,先分开项目事实与临时任务

重启会话验证读取命中

验证方式很简单:新开一个会话,不贴任何背景,直接问已经写进记忆的项目事实,例如“这个项目的启动命令是什么”“测试放在哪个目录”“路由代码放哪”。然后把结果归到三类里:

  • 命中:回答与写入条目一致,且没有额外编造来源或命令。
  • 未命中:回答为空或说不知道。先查读取开关是否打开、存储目录是否指对、项目级配置是否覆盖了用户级配置。
  • 误命中:答的是另一个项目或更早的旧条目。说明条目缺少适用范围,补上项目名或路径前缀再审一次。

建议用一个四列表记录:问题、期望条目、实际回答、判定。判定只写这三个词,别写“差不多”。同一条事实换两到三个不同任务的会话各问一次,命中稳定再算接入完成。

把未命中项补写并复查一遍

把未命中的条目按规则补写:来源能在仓库里确认、跨会话成立、一条只写一件事、写清适用范围和来源文件。补写后回到上一步,用新会话再审一次。

复查节奏可以跟改动绑定:目录重构、命令改名、依赖管理切换之后各查一次;没有大改动时,按固定节奏(例如每个迭代结束)扫一遍全部条目。

删除的标准也尽量客观,满足任意一条就删或改:来源文件已经不存在或内容已改;条目里的路径、命令在仓库里搜不到;两条条目互相矛盾,保留有来源的那条。

日常维护就按这个最小清单走:

  • 新会话里再问一次,命中是否稳定。
  • 每条记忆是否还能在仓库里找到对应来源。
  • 有没有把当前报错、临时分支这类一次性信息误写进去。