{"id":50427182,"url":"https://github.com/NeoLi00/memX","last_synced_at":"2026-06-02T09:00:56.396Z","repository":{"id":356487717,"uuid":"1232750479","full_name":"NeoLi00/memX","owner":"NeoLi00","description":"memX: self-learning, self-maintaining memory for AI agents","archived":false,"fork":false,"pushed_at":"2026-05-20T06:40:08.000Z","size":2602,"stargazers_count":69,"open_issues_count":1,"forks_count":0,"subscribers_count":3,"default_branch":"main","last_synced_at":"2026-05-20T06:59:20.655Z","etag":null,"topics":["agent","agent-memory","embeddings","graph-memory","long-term-memory","openclaw"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/NeoLi00.png","metadata":{"files":{"readme":"README-ch.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-05-08T08:27:34.000Z","updated_at":"2026-05-20T06:40:12.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/NeoLi00/memX","commit_stats":null,"previous_names":["neoli00/openclaw-memx","neoli00/memx"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/NeoLi00/memX","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NeoLi00%2FmemX","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NeoLi00%2FmemX/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NeoLi00%2FmemX/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NeoLi00%2FmemX/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/NeoLi00","download_url":"https://codeload.github.com/NeoLi00/memX/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NeoLi00%2FmemX/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33814312,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-02T02:00:07.132Z","response_time":109,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["agent","agent-memory","embeddings","graph-memory","long-term-memory","openclaw"],"created_at":"2026-05-31T12:00:14.584Z","updated_at":"2026-06-02T09:00:56.390Z","avatar_url":"https://github.com/NeoLi00.png","language":"TypeScript","funding_links":[],"categories":["Skills \u0026 Plugins"],"sub_categories":["Notable Skills \u0026 Plugins"],"readme":"\u003cp align=\"center\"\u003e\n  \u003cimg src=\"./assets/memx-cover.svg\" alt=\"memX - AI agent 的自学习，自维护记忆\" width=\"920\"\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"./README.md\"\u003eEnglish\u003c/a\u003e · \u003ca href=\"./README-ch.md\"\u003e中文\u003c/a\u003e ·\n  \u003ca href=\"./ARCHITECTURE-ch.md\"\u003e架构深读\u003c/a\u003e\n\u003c/p\u003e\n\n---\n\nmemX 把完成后的工作 turn 编译成结构化、可检索、可维护的长期记忆，并只把当前 query 需要的证据注入 prompt。\n它原生适配 Codex、Claude Code、OpenClaw，也能通过同一层本地记忆接入任何支持 MCP 的 client。\n\n## Benchmark\n\n\u003ctable align=\"center\"\u003e\n  \u003cthead\u003e\n    \u003ctr\u003e\n      \u003cth\u003e测试集\u003c/th\u003e\n      \u003cth\u003e范围\u003c/th\u003e\n      \u003cth\u003eR@3 成功率\u003c/th\u003e\n    \u003c/tr\u003e\n  \u003c/thead\u003e\n  \u003ctbody\u003e\n    \u003ctr\u003e\n      \u003ctd\u003e\u003cstrong\u003eLongMemEval-S\u003c/strong\u003e\u003c/td\u003e\n      \u003ctd\u003e长上下文记忆召回\u003c/td\u003e\n      \u003ctd\u003e\u003cstrong\u003e94.2%\u003c/strong\u003e\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003ctd\u003e\u003cstrong\u003e真实工程 case\u003c/strong\u003e\u003c/td\u003e\n      \u003ctd\u003e30 个 case，每个 20+ turns\u003c/td\u003e\n      \u003ctd\u003e\u003cstrong\u003e100%\u003c/strong\u003e\u003c/td\u003e\n    \u003c/tr\u003e\n  \u003c/tbody\u003e\n\u003c/table\u003e\n\n## 架构\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"./assets/memx-overview-zh.svg\" alt=\"memX 粗粒度架构\" width=\"920\"\u003e\n\u003c/p\u003e\n\n## Agent 支持\n\n\u003ctable align=\"center\"\u003e\n  \u003ctr\u003e\n    \u003ctd align=\"center\" width=\"56\"\u003e\u003cimg src=\"./assets/agent-logos/codex.png\" alt=\"Codex logo\" width=\"34\"\u003e\u003c/td\u003e\n    \u003ctd\u003e\u003cstrong\u003eCodex\u003c/strong\u003e\u003c/td\u003e\n    \u003ctd\u003e\u003csub\u003e原生 hooks，默认隐藏 MCP\u003c/sub\u003e\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd align=\"center\" width=\"56\"\u003e\u003cimg src=\"./assets/agent-logos/claude-code.png\" alt=\"Claude Code logo\" width=\"34\"\u003e\u003c/td\u003e\n    \u003ctd\u003e\u003cstrong\u003eClaude Code\u003c/strong\u003e\u003c/td\u003e\n    \u003ctd\u003e\u003csub\u003e原生 hooks，默认隐藏 MCP\u003c/sub\u003e\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd align=\"center\" width=\"56\"\u003e\u003cimg src=\"./assets/agent-logos/openclaw.png\" alt=\"OpenClaw logo\" width=\"34\"\u003e\u003c/td\u003e\n    \u003ctd\u003e\u003cstrong\u003eOpenClaw\u003c/strong\u003e\u003c/td\u003e\n    \u003ctd\u003e\u003csub\u003e原生 + hooks\u003c/sub\u003e\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd align=\"center\" width=\"56\"\u003e\u003cstrong\u003eMCP\u003c/strong\u003e\u003c/td\u003e\n    \u003ctd\u003e\u003cstrong\u003eMCP clients\u003c/strong\u003e\u003c/td\u003e\n    \u003ctd\u003e\u003csub\u003e任何兼容 MCP 的 client\u003c/sub\u003e\u003c/td\u003e\n  \u003c/tr\u003e\n\u003c/table\u003e\n\n## 快速启动\n\n依赖：Node.js 22.14+ 或 Node 24。OpenClaw 安装需要 OpenClaw 2026.3.25+。只有使用默认本地\nembedding 运行时时才需要 Python 3。\n\nREADME 命令默认使用 GitHub package spec。每次全新执行都会拉取 GitHub 当前代码，因此安装流程\n不需要等待 npm publish。以后如果明确要用 npm 发布通道，再把 `github:NeoLi00/memX`\n换成 `@neoli00/memx`。\n\n先把下面这些值填好，再运行对应命令：\n\n- `--llm-provider`：memX 要调用的 LLM provider adapter。可选 `openai-compatible`、\n  `anthropic`、`google` 或 `ollama`。\n- `--llm-base-url`：provider 的 base URL。例如 `https://api.openai.com/v1`、\n  `https://api.anthropic.com/v1`、`https://generativelanguage.googleapis.com/v1beta`，或者\n  Ollama 的 `http://127.0.0.1:11434`。\n- `--llm-model`：memX 用来做记忆编译、召回规划和维护的模型。建议选速度快、成本低、JSON 输出\n  稳定的模型。\n- `--llm-api-key`：provider API key。如果不想写明文，用\n  `--llm-api-key-env PROVIDER_API_KEY`，配置里会保存环境变量引用。本地 Ollama 可以不传 key。\n\n默认 embedding 是本地 `sentence-transformers-local`，模型 `intfloat/multilingual-e5-small`。\n只有想覆盖默认值时才需要额外传 `--embedding-provider` 和 `--embedding-model`。使用 `--dry-run`\n可以先预览会写入哪些文件、会执行哪些 exec-form 命令。\n\n对 Codex 和 Claude Code，native hooks 是默认生命周期入口，自动负责召回和 turn 捕获。Quickstart\n会一次性安装 native plugin、写入共享 memX 配置、启动或刷新 managed local memX service，并默认用\n`--mcp-tools none` 隐藏 MCP 记忆工具。这样既避免重复召回/重复写入，也避免 agent 把 audit 数据当作\n旁路记忆读取。只有明确希望 agent 看见完整 MCP 工具集时，才加 `--mcp-tools full`。通用 MCP\nquickstart 默认仍是 `full`，因为它没有 native lifecycle hooks。默认 native 记忆也会按 host\n隔离，所以 Codex 和 Claude Code 不会共用同一个本地数据库，除非你主动覆盖 database path 和\nactor 设置。\n\n如果 `http://127.0.0.1:3878` 已经被一个不受当前 quickstart 管理的 memX-compatible service 占用，\nquickstart 会停止并提示冲突，而不是静默复用旧服务。你可以先停掉旧服务，或传一个空闲本地地址，\n例如 `--memx-url http://127.0.0.1:3888`。\n\n### Claude Code\n\n这条命令会一次性写入共享 memX 配置、生成本地 Claude Code plugin marketplace、安装 native\n生命周期 hooks，并启动 managed local memX service。\n\n```bash\nnpx -y -p github:NeoLi00/memX memx quickstart claude-code \\\n  --llm-provider openai-compatible \\\n  --llm-base-url https://llm.example.com/v1 \\\n  --llm-model fast-memory-model \\\n  --llm-api-key sk-your-provider-key\n```\n\n### Codex\n\n这条命令会一次性写入共享 memX 配置、生成本地 Codex plugin marketplace、安装 native 生命周期\nhooks，并启动 managed local memX service。\n\n```bash\nnpx -y -p github:NeoLi00/memX memx quickstart codex \\\n  --llm-provider openai-compatible \\\n  --llm-base-url https://llm.example.com/v1 \\\n  --llm-model fast-memory-model \\\n  --llm-api-key sk-your-provider-key\n```\n\n### OpenClaw\n\n```bash\nnpx -y -p github:NeoLi00/memX memx quickstart openclaw \\\n  --llm-provider openai-compatible \\\n  --llm-base-url https://llm.example.com/v1 \\\n  --llm-model fast-memory-model \\\n  --llm-api-key sk-your-provider-key\n```\n\n### 通用 MCP\n\n这个路径用于没有 memX native lifecycle adapter 的 MCP client。Quickstart 会写入共享 memX\n配置、启动 managed local memX service，并输出可以放进 MCP client 的 server 配置。\n\n```bash\nnpx -y -p github:NeoLi00/memX memx quickstart mcp \\\n  --llm-provider openai-compatible \\\n  --llm-base-url https://llm.example.com/v1 \\\n  --llm-model fast-memory-model \\\n  --llm-api-key sk-your-provider-key\n```\n\n### Service 管理\n\n```bash\nnpx -y -p github:NeoLi00/memX memx service status\nnpx -y -p github:NeoLi00/memX memx service restart\nnpx -y -p github:NeoLi00/memX memx service stop\n```\n\n如果 quickstart 时用了非默认路径或端口，管理 service 时也传同样的 `--home`、`--memx-url` 和\n`--memx-secret`。\n\n## 干净卸载\n\n每个卸载命令都会先备份目标配置文件，然后只删除 memX 自己写入的条目。Claude Code 和 Codex\n清理会同时停止 managed local service、卸载 native plugin、移除本地 marketplace，并删除生成的\nmarketplace snapshot。\nOpenClaw 清理会额外删掉残留的 `memx` / `memory-memx` slot、allow 和 entry 引用，并在\nOpenClaw 仍能识别插件时 best-effort 删除当前和旧版插件文件。\n\n```bash\nnpx -y -p github:NeoLi00/memX memx uninstall openclaw\nnpx -y -p github:NeoLi00/memX memx uninstall codex\nnpx -y -p github:NeoLi00/memX memx uninstall claude-code\n```\n\n加 `--dry-run` 可以预览；如果使用非默认配置路径，加 `--config /path/to/config`。\n\n## memX 能做什么\n\n- **长期记住工作上下文**：项目决策、用户偏好、任务状态、长 source segments 和原始证据都能\n  保留来源关系。\n- **连接相关对象**：项目、仓库、工具、文件、资源、卡点和结果可以形成实体与关系边。\n- **学习协作模式**：重复出现的证据可以变成可复用建议，同时保留支撑来源。\n- **自动维护记忆**：纠错可以替代旧事实，稳定证据可以提升，过期任务状态不会长期压过当前状态。\n- **紧凑召回证据**：事实、事件、状态、片段、关系、资源和已学习模式一起参与召回，再压成小段\n  evidence 注入。\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FNeoLi00%2FmemX","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FNeoLi00%2FmemX","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FNeoLi00%2FmemX/lists"}