mex
AI编程智能体的持久化记忆框架,让Claude Code/Cursor等工具跨会话保留项目上下文并自动检测文档与代码的漂移
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
AI编程智能体的持久化记忆框架,让Claude Code/Cursor等工具跨会话保留项目上下文并自动检测文档与代码的漂移
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
mex 是一个开源的 AI 编程智能体(Agent)持久化记忆框架,由独立开发者 Daksh Jaitly 创建。它的核心理念是:让 AI 编程工具(Claude Code、Cursor、Windsurf、GitHub Copilot 等)能够像人类开发者一样,在不同会话之间保留项目上下文,不再每次都从零开始。
当你用 Claude Code 开发一个项目时,AI 能在单个会话内保持上下文。但一旦会话结束,AI 就彻底「失忆」了——下次打开新的对话,它不再知道:项目用了哪些技术栈?之前做过哪些架构决策?哪个模块还处于半完成状态?哪些约定俗成的代码规范需要遵守?
这导致开发者面临一个尴尬的现实:每次新会话,都要花大量时间和 tokens 来「教育」AI 了解项目背景。对于大型项目,这个上下文构建过程可能消耗掉 30%~50% 的对话 tokens,效率极低。
传统的解决方案是写一份超长的 CLAUDE.md 或 .cursorrules 文件。但随着项目演进,这类文档很快就会和实际代码脱节——文档说接口改了,代码里却还是老样子。这就是所谓的「scaffold drift」问题。
mex 的出现,就是为了解决这个矛盾。它的思路是:不只是存储记忆,还要确保记忆和代码的一致性——通过自动化检测和修复,让 AI 的项目认知永远和真实代码同步。
mex 的核心包含两个子系统:结构化记忆框架和漂移检测引擎,两者协同工作,形成一个「记忆 → 检测 → 修复」的闭环。
mex 在项目根目录创建 .mex/ 子目录,内含一套精心设计的 Markdown 文件结构:
| 文件 | 作用 |
|---|---|
AGENTS.md / CLAUDE.md | 极简入口锚点,包含项目身份、不可违背的规则和命令列表 |
ROUTER.md | 路由表,根据当前任务类型引导 AI 加载对应上下文 |
context/architecture.md | 系统架构描述 |
context/stack.md | 技术栈详情 |
context/conventions.md | 代码约定与规范 |
context/decisions.md | 架构决策记录 |
context/setup.md | 开发环境配置 |
patterns/ | 可复用任务指南(每完成一类任务就生成一个 pattern) |
.mex/events/decisions.jsonl | append-only 事件日志 |
图1:mex 操作面板 — 清晰展示项目记忆状态和漂移评分
这套设计的精妙之处在于:AI 每次启动时只需加载一个极小的锚点文件,然后由路由表引导到真正相关的上下文文件。这与传统的「一整块 README」相比,显著降低了 token 消耗。mex 官方测试数据显示,典型任务场景下可节省约 60% 的 token。
mex 内置 11 种漂移检测器,零 AI 调用、零 token 消耗,在本地 CLI 中直接运行:
| 检测器 | 作用 |
|---|---|
path | 文件路径引用是否存在 |
edges | YAML frontmatter 中链接的 target 文件是否存在 |
index-sync | patterns/INDEX.md 与实际文件是否同步 |
staleness | 文件 30 天未更新或 50 次提交未修改 |
command | 引用的 npm/make 命令在 package.json 中是否存在 |
dependency | 声明的依赖是否在 package.json 中 |
cross-file | 同一依赖在不同文件中的版本是否一致 |
script-coverage | package.json scripts 是否在 scaffold 中被提及 |
tool-config-sync | 不同 AI 工具配置文件之间是否同步 |
todo-fixme | scaffold 文件中是否有未解决的 TODO/FIXME |
broken-link | 内部 Markdown 链接指向不存在的本地文件 |
检测结果以 100 分制评分输出:默认 100 分,每发现一个错误扣 10 分、警告扣 3 分、提示扣 1 分。
图2:mex check 命令的输出示例 — 实时展示漂移评分和各项检测结果
当漂移检测发现问题,mex sync 会分析具体差异,生成精准的修复提示词,让 AI 只修改需要更新的文件,而不需要重新生成整个 scaffold。这避免了过度修复(AI 把好的内容也改坏了)和资源浪费(全量重写消耗大量 tokens)。
图3:mex sync 的修复流程 — 精准定位漂移文件,生成最小化修复提示词
图4:mex 上下文路由流程 — 从极简锚点到精准加载的上下文分片机制
图5:mex 漂移检测与同步的完整闭环 — 检测 → 评估 → 修复 → 验证
mex 采用 TypeScript + Node.js 开发,核心依赖包括:
| 依赖 | 用途 |
|---|---|
commander | CLI 参数解析 |
chalk | 终端彩色输出 |
ink + react | 交互式 TUI(React for CLI) |
yaml | YAML frontmatter 解析 |
unified + remark-* | Markdown 解析处理 |
simple-git | Git 操作(读取提交历史) |
glob | 文件路径匹配 |
posthog-node | 产品使用分析(可选) |
构建工具使用 tsup(基于 esbuild),测试框架使用 vitest。核心源码组织在 src/ 下,分为多个模块:cli.ts(入口)、scanner/(代码预扫描)、drift/(11 种漂移检测器)、sync/(修复引擎)、tui.ts(交互界面)、setup/(初始化逻辑)。项目支持 Nix flake,可在 NixOS 环境中一键构建。
安装和初始设置非常简洁,整个过程不超过 5 分钟:
# 通过 npm 安装(Node.js >= 20)
npm install -g mex-agent
# 在目标项目根目录运行初始化
mex setup
mex setup 会自动完成:检测项目状态、询问使用的 AI 工具并生成对应配置文件、运行 mex init 预扫描代码库生成结构化简介(~5-8k tokens vs AI 直接探索的 ~50k tokens)。之后每次新会话只需运行 mex check 检查漂移评分,mex sync 修复问题。
mex 也有其局限性:记忆质量依赖初始填充——如果初始 setup 阶段 AI 理解偏差,错误的信息会被永久记录,drift 检测器只能发现形式错误,无法发现语义错误。不支持多模态,UI 设计稿、架构图等非文本内容无法纳入记忆框架。Windows 兼容性问题:WSL 安装但原生 Windows 终端运行会导致模块找不到错误,推荐统一使用 npx mex-agent 跨平台模式。另外,npm 包名是 mex-agent,CLI 命令却是 mex,新用户有一定认知摩擦。
mex 的出现代表了 AI 编程工具生态的一个重要演进方向:从「工具增强」到「工作流持久化」。随着 Claude Code、Cursor、Windsurf 等 AI 编程工具越来越普及,AI Agent 的记忆管理问题正在成为社区共识性痛点。mex 上线 3 个月内获得 799 stars,保持活跃更新(最近 push 在 2026-06-14),还支持 Agent Memory 模式(mex setup --mode agent-memory),专门针对运维环境而非代码仓库的场景。
其设计理念——结构化上下文路由(ROUTER.md)、append-only 事件日志(decisions.jsonl)、多工具配置文件同步(tool-config-sync 检测器)——对其他 AI Agent 项目也有借鉴意义。
mex 不是什么花哨的 AI 模型或炫酷的 Web 应用,它解决的是一个极其具体但普遍的问题:AI 编程工具的上下文记忆管理。通过结构化 scaffold + 自动化漂移检测 + 精准修复引擎,它让 AI 对项目的认知能够跨越会话、持续演进、始终与代码保持同步。对于个人开发者,mex 能显著减少每次新会话的背景教育开销;对于团队,配置文件同步机制可以减少不同 AI 工具之间的认知偏差。