MemPalace Init 技能:在 Codex 插件中引导式初始化 AI 记忆宫殿
MemPalace 的 /init 技能(init/SKILL.md)是 Codex CLI 插件的引导式入门入口:它把一条 CLI 命令 mempalace instructions init 展开成完整的 8 步初始化流程——从 Python 版本检查、CLI 安装、宫殿创建,到 MCP 服务器注册与安装验证。读完本文,你将掌握如何在任意 AI 客户端中完成 MemPalace 的从零搭建,并理解每一步背后 mempalace/cli.py 与 mempalace/instructions_cli.py 的源码实现机制。
技能本体:一条命令拉取完整引导流程
.codex-plugin/skills/init/SKILL.md 的内容极简,这是刻意为之的插件技能设计模式——技能文件本身不写死流程,而是要求 Agent 执行:
mempalace instructions init
并逐步遵循返回的指令。这样做的好处是指令文本(mempalace/instructions/init.md)随 PyPI 包版本更新,插件技能永远指向最新版流程,无需重新分发技能文件。
从源码看,这条命令的链路是:CLI 子命令解析(mempalace/cli.py 中 cmd_instructions 调用 instructions_cli.run_instructions),后者按 AVAILABLE = ["init", "search", "mine", "help", "status"] 校验名称,然后原样打印 mempalace/instructions/ 目录下对应的 Markdown 文件(mempalace/instructions_cli.py)。也就是说,Agent 拿到的就是随包分发的 instructions/init.md 全文。
该技能属于 Codex 插件 mempalace 的五个技能之一(/help、/init、/search、/mine、/status),插件元数据在 .codex-plugin/plugin.json 中声明,其中 skills 字段指向 ./skills/ 目录。技能文件 frontmatter 还声明了 allowed-tools: Bash, Read, Write, Edit,即执行初始化只依赖这四个工具。
8 步初始化流程详解
以下完整继承 mempalace/instructions/init.md 的引导步骤,并补充源码级佐证。
Step 1:检查 Python 版本
运行 python3 --version(Windows 上为 python --version),确认版本 ≥ 3.9。若 Python 缺失或版本过低,提示用户安装 Python 3.9+ 并停止。这与 .codex-plugin/README.md 中的前置条件(Prerequisites: Python 3.9+)一致。
Step 2:检查 mempalace 是否已安装
运行 mempalace --version。成功则报告已安装版本并跳到 Step 4。
这里有一条重要的反直觉规则:如果 mempalace --version 失败,不能仅凭 pip show mempalace 或 uv tool list 报告已安装就跳过安装——包可能装在一个未激活的 venv 里,此时 Step 5 的 mempalace init 会因 command not found 失败。这种情况应视为未安装,继续 Step 3,用 uv tool install 或 pip 重新安装到 PATH 可见的位置。
Step 3:安装 mempalace
优先使用 uv——它把 CLI 与系统 Python 隔离,能避免多数环境问题:
- 若 PATH 上有
uv(uv --version),运行uv tool install mempalace; - 否则运行
pip install mempalace。
安装失败的降级顺序(按序尝试):
uv tool install失败则试pip install mempalace(或反过来);- 试
pip3 install mempalace; - 试
python -m pip install mempalace(或python3 -m pip install); - 若报错涉及构建工具缺失或编译失败(常来自 chromadb 及其原生依赖):
- Linux/macOS:建议
sudo apt-get install build-essential python3-dev(Debian/Ubuntu)或xcode-select --install(macOS); - Windows:建议安装 Microsoft C++ Build Tools;
- 然后重试安装命令;
- Linux/macOS:建议
- 全部失败则清晰报告错误并停止。
Step 4:询问项目目录
询问用户要把哪个项目目录初始化为 MemPalace 宫殿,默认提供当前工作目录,等待用户回复后再继续。
Step 5:初始化宫殿
运行 mempalace init --yes <dir>,<dir> 来自 Step 4。失败则报告错误并停止。
cmd_init 的实现位于 mempalace/cli.py,其中几个关键行为值得了解:
--palace指定宫殿位置:若用户传了--palace,init 会将其解析为绝对路径并写入环境变量MEMPALACE_PALACE_PATH,使后续所有cfg.palace_path读取(Pass 0、cfg.init()、post-init mine)都路由到用户指定位置;不传时默认~/.mempalace(源码注释对应 issue #1313)。- LLM 实体检测默认开启:
--llm默认 ON,--no-llm是显式退出开关;提供商优先级为 Ollama 本地优先,其次 openai-compat、再是 anthropic。没有任何 LLM 可用时不会阻塞 init,只打印一行提示并回退到纯启发式检测。 - 外部 LLM 隐私保护:若配置的端点会向外部发送数据,init 会打印警告说明内容将发送到该提供商;当 API key 来自环境变量而非显式
--llm-api-key时,还会弹出同意确认(y/N),可用--accept-external-llm在 CI/非交互场景跳过。 - Git 仓库自动 .gitignore 保护:若目标目录是 git 仓库,
_ensure_mempalace_files_gitignored会把 MemPalace 的每项目文件(mempalace.yaml、entities.json等)追加进.gitignore,防止被误提交(源码注释对应 issue #185)。
init 还会做实体/房间发现(discover_entities、detect_rooms_local),并可检测语料是否为 AI 对话并写入 .mempalace/origin.json。
Step 6:配置 MCP 服务器
按用户正在配置的 AI 客户端执行对应命令:
# Claude Code
claude mcp add mempalace -- mempalace-mcp
# Codex CLI
codex mcp add mempalace -- mempalace-mcp
若失败,报告错误但继续下一步(MCP 配置可以稍后手动完成)。mempalace-mcp 脚本由 Python 包安装后落到 PATH 上;.codex-plugin/README.md 特别提示:仅 uv sync 不够——它把脚本装进 .venv/bin/,Codex 不激活 venv 就找不到,所以 git 安装方式应使用 uv tool install --editable .。
Step 7:验证安装
运行 mempalace status,确认输出显示健康(healthy)的宫殿;若失败或报告错误,则根据输出引导用户排障。
Step 8:展示后续步骤
告知用户设置完成,并建议两个后续动作:
- 用
/mempalace:mine开始向宫殿添加数据; - 用
/mempalace:search查询宫殿并检索已存知识。
插件级视角:init 技能在插件中的位置
/init 只是 Codex 插件体验的起点。.codex-plugin/README.md 描述了插件整体:把项目与会话挖掘成由 ChromaDB 支撑的可搜索宫殿,提供 44 个 MCP 工具、自动保存 hooks 与引导式技能。安装路径有两条:
- 本地安装:把
.codex-plugin目录复制或软链到项目根,用codex --plugins验证被检测,然后codex /init初始化宫殿; - Git 安装:克隆仓库后
uv tool install --editable .(或pip install -e .),在仓库内运行 Codex 会自动检测根目录的.codex-plugin,再执行codex /init。
插件还包含 hooks 机制(.codex-plugin/hooks.json):SessionStart、Stop、PreCompact 三个事件都调用 mempal-hook.sh 的对应子命令,在会话停止(每 15 条消息)与上下文压缩前自动把对话上下文存入宫殿;设置环境变量 MEMPAL_DIR 指向某目录后,每次保存触发时还会自动对该目录执行 mempalace mine。
小结
MemPalace 的 init 技能把“首次搭建”沉淀为一份随包分发、版本可控的引导脚本:技能文件负责触发 mempalace instructions init,instructions/init.md 负责 8 步流程(版本检查 → 安装检查 → 安装 → 选目录 → mempalace init --yes → MCP 注册 → mempalace status 验证 → 后续动作),而 cmd_init 的源码保证了 LLM 检测可优雅降级、外部 API 有隐私闸门、git 仓库有 .gitignore 自动保护。按此流程走完后,宫殿即就绪,可以直接进入 /mine 与 /search 的日常使用循环。
atomcodeClaude Code 的开源替代方案。连接任意大模型,编辑代码,运行命令,自动验证 — 全自动执行。用 Rust 构建,极致性能。 | An open-source alternative to Claude Code. Connect any LLM, edit code, run commands, and verify changes — autonomously. Built in Rust for speed. Get StartedRust0624
Hy4-previewHy4 preview 是由腾讯混元团队研发的新一代混合专家(MoE)旗舰模型。模型总参数量 770B,每个 token 激活 49B,主干共包含78层,第一层采用标准 FFN,其余 77 层均为 MoE 结构,每层包含 256 个路由专家与 1 个共享专家,每个 token 激活 top-8 路由专家及共享专家。主干之外原生内置 1 层 MTP(总参数量 10B,激活 0.7B)以支持投机解码。Python00
GLM-5.3GLM-5.3 与 GLM-5.2 使用相同的基座模型——所有提升均来自后训练。与 GLM-5.2 相比,它在复杂编程和长程任务上的表现显著提升。Jinja00
GLM-5.3-FlashGLM-5.3-Flash (320B-A18B),是GLM-5系列的首个原生多模态模型。320B总参数,能力超过GLM-5.2Jinja00
Spark-X2.5-4BSpark-X2.5-4B 旨在让强大的 AI 更实用、更高效、更易获得。在广泛日常任务中表现强劲,涵盖对话、写作、翻译、推理、编码、工具调用以及智能体工作流,并在同等规模的开源模型中取得领先成绩。Spark-X2.5 将面向效率的架构与最高 1M tokens 的原生上下文窗口相结合,并支持 200 多种语言。Python00
Spark-X2.5-1.7BSpark-X2.5-1.7B 旨在让强大的 AI 更加实用、高效且易于获取。这些模型在广泛的日常任务中表现出色,涵盖对话、写作、翻译、推理、编程、工具调用和智能体工作流,并在同等规模的开源模型中取得领先结果。Spark-X2.5 将面向效率的架构与最高 1M tokens 的原生上下文窗口相结合,并支持 200 多种语言。Python00