PMB 介绍
PMB 为 Claude Code、Cursor、Codex 以及其他支持 MCP 的智能体提供了真正的记忆能力:你上周做出的决策、你教给它们的经验、个人信息、项目结构、PDF 文件。这些记忆在每次重启、每次模型升级、每次切换智能体时都能保留------因为它们存储在你自己的本地工作区中,以 SQLite 作为持久化的数据源,其旁还配有可重建的搜索索引。
每条记忆都是一个仅追加的事件,包含 ULID、类型、内容、重要性分数、时间戳、访问计数器以及层级。事件不会被原地修改:更新时会追加一个新事件,删除操作则要么归档(软删除),要么彻底清除(硬删除)。这保证了历史记录的真实可靠,也让恢复变得容易。
无需 API 密钥。无需订阅。读取路径上不调用 LLM。只有本地文件。
安装
首先安装python环境,然后执行
bash
pip install pmb-ai # 1. install
# 注意把pmb加到path再继续
pmb setup # 2. detect your agent + wire the MCP entry
pmb warmup # 3. preload the model (first recall is instant)
# 4. restart your agent, then just talk to it - memory is automatic
pmb stats # 5. see what's stored
pmb recall "auth decision" # 6. search memory from the terminal
pmb doctor # 7. confirm everything is wired
codex pmb mcp
pmb doctor 打出来的是 Claude Code 的 mcp.json,不能直接贴进 Codex。Codex 要用 TOML,而且官方走的是 pmb mcp proxy,不是 pmb-mcp.EXE。
写进 ~/.codex/config.toml,codex mcp list 里:
ini
[mcp_servers.pmb]
startup_timeout_sec = 120
tool_timeout_sec = 300
command = "C:\\Users\\flysic\\AppData\\Local\\Python\\pythoncore-3.14-64\\Scripts\\pmb.exe"
args = ["mcp", "proxy"]
[mcp_servers.pmb.env]
PMB_CWD = "C:\\workspace\\bim\\qqsl-bim-model-assembly"
重启codex后,查看/mcp,可以看到pmb mcp已连接
vbnet
PS C:\workspace\bim\qqsl-bim-model-assembly> codex
╭─────────────────────────────────────────────────────╮
│ >_ OpenAI Codex (v0.153.4) │
│ │
│ model: gpt-5.6-sol high /model to change │
│ directory: C:\workspace\bim\qqsl-bim-model-assembly │
╰─────────────────────────────────────────────────────╯
Tip: New Use /fast to enable our fastest inference with increased plan usage.
• You have 2 usage limit resets available. Run /usage to use one.
/mcp
🔌 MCP Tools
• codex_apps: connected (49 tools)
• pmb: connected (10 tools)
• serena: connected (23 tools)
• unityMCP: connected (48 tools)
连接项目
到项目目录下,执行:pmb warmup,重启 Codex,用 /mcp 确认 pmb 已连接。 在 Codex 里正常干活即可。有决策、教训、做完的事后,PMB 才会往里面写;现在空是因为还没开始用,不是配错了。
sql
PS C:\workspace\bim\qqsl-bim-model-assembly> pmb warmup
┏━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━┓
┃ Stage ┃ ms ┃
┡━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━┩
│ Model load │ 22134.6 │
│ BM25 load │ 0.4 │
│ LanceDB open │ 2229.5 │
│ First probe query │ 198.3 │
│ Total │ 24562.9 │
└───────────────────┴─────────┘
Engine warm for THIS process. CLI recalls in this shell are now fast.
For warm hook-based auto-recall, run pmb daemon start - one persistent process serves the hooks so they get real
semantic recall, not the per-process cold skip.
Model cold-load was slow (>10s). Consider the lower-RAM, faster-starting fastembed backend:
pmb config set embedding.backend fastembed && pmb reindex
(reindex is required - never mix embedders in one index.)
预热成功了。Codex 配的是 pmb mcp proxy,需要常驻 daemon 才不会每次冷启动。先把 daemon 拉起来。
ini
pmb daemon status; Write-Host "==== start ===="; & pmb daemon start; Write-Host "==== status2 ===="; & pmb daemon status
Daemon running · pid 12156 · port 8765 · uptime 26min
v1.2.2 · workspace d976f751f543 · warm=True
==== start ====
Daemon already running (pid 12156, port 8765).
==== status2 ====
Daemon running · pid 12156 · port 8765 · uptime 26min
v1.2.2 · workspace d976f751f543 · warm=True
pmb warmup 已经成功,而且 daemon 早就在跑:pid 12156,端口 8765,warm=True,对应这个仓库。
这几行分别是什么意思:
Engine warm for THIS process:只让你当前这个 PowerShell 里的 pmb recall 变快。 run pmb daemon start:给 Codex / hook 用的常驻进程。你这边已经在跑,不用再开。 提示:这次模型冷启动花了 22 秒,PMB 建议换更轻的后端。这是可选项,不是错误。你选的多语言模型对中文更好;除非开机或首次启动觉得太慢,否则不用改。如果要换,必须整库重做索引,不能混用两种 embedder。 Codex 已经走 pmb mcp proxy,会接到这个已预热的 daemon。重启 Codex,用 /mcp 确认 pmb 连上即可。
导入已有的文档
Doc/completed 有 65 篇设计笔记,正好用官方的 pmb import markdown。先做一次正式导入,再写入一条项目总览,方便以后检索。
bash
$pmb = "C:\Users\flysic\AppData\Local\Python\pythoncore-3.14-64\Scripts\pmb.exe"; & $pmb import markdown "C:\workspace\bim\qqsl-bim-model-assembly\Doc\completed" --dry-run
$pmb = "C:\Users\flysic\AppData\Local\Python\pythoncore-3.14-64\Scripts\pmb.exe"
& $pmb note --help
Write-Host "==== note ===="
& $pmb note "Doc/completed 是本仓库已完成设计/实施文档归档,按主题分文件夹;总索引在 Doc/completed/index.md。查找历史方案或子系统既有设计时先查该索引。" --pin
Write-Host "==== overview fact ===="
& $pmb fact "qqsl-bim-model-assembly 已归档设计主题:拼接状态与审核、拼接UI架构、Adapter图形适配器、拼接环境导入镜像、Component节点、Command、DrawProcedural画线、Instance单例缓存与BIM环境依赖、MultiModelScene、URL Protocol启动、Reach/Junction水网、BIM本地/云端保存加载、staticModel静态模型、waterProject模型交付、沿Reach阵列、Cesium与天地图、自动更新、测量回填全局参数、设备拼接管理、FairyGUI分辨率适配、SM2/SM4接口加密。细节在 Doc/completed 各主题文件夹。" -i 0.95
Write-Host "==== warmup ===="
& $pmb warmup
Write-Host "==== stats ===="
& $pmb stats
$pmb = "C:\Users\flysic\AppData\Local\Python\pythoncore-3.14-64\Scripts\pmb.exe"; & $pmb reindex --help
$pmb = "C:\Users\flysic\AppData\Local\Python\pythoncore-3.14-64\Scripts\pmb.exe"; & $pmb reindex; Write-Host "==== stats ===="; & $pmb stats; Write-Host "==== recall ===="; & $pmb recall "FairyGUI 多分辨率适配"
导入已完成,但检索索引还是 0。正在重建向量索引,否则 Codex 里语义搜索用不上这些文档。完成索引后,在codex里recall:
css
› 用 PMB 的 recall 工具搜索:FairyGUI 多分辨率适配
• 我会先按仓库要求加载会话技能说明,然后调用 PMB 的 recall 搜索"FairyGUI 多分辨率适配",只返回检索结果,不改代码。
• Explored
└ Read SKILL.md
• Called pmb.recall({"query":"FairyGUI 多分辨率适配","project":"qqsl-bim-model-assembly","top_k":10})
└ {"query": "FairyGUI 多分辨率适配", "workspace": {"id": "d976f751f543", "name": "qqsl-bim-model-assembly"}, "n_results": 0,
"n_total_in_workspace": 1915, "elapsed_ms": 434.0860000011162, "confidence": 0.0, "results": [], "escalation": {"stages":
["local", "project_filter"], "stopped": "project_filtered", "project": "qqsl-bim-model-assembly", "n_before_filter": 60,
"n_after_filter": 0}, "project_context": {"entity": {"id": 1703, "name": "fairygui", "kind": "person", "n_mentions": 78},
"span": {"from": "2026-09-06", "to": "2026-09-06", "n_events": 78}, "key_facts": [{"ulid": "001a07434cfaf_243ea91a",
"content": "# FairyGUI 多分辨率适配设计", "tim...
• 检索到 10 条结果,置信度约 0.8。核心记录来自:
2026-07-26-FairyGUI多分辨率适配设计.md
主要内容:
- 4K 下 UI 偏小的根因:UIContentScaler 默认为 ConstantPixelSize,缩放因子为 1。
- 方案:在 FairyGUI 首次使用前,集中且幂等地配置 UIContentScaler。
- 目标覆盖 1080p、1440p、4K,并保持 GRoot 逻辑坐标、Relation 和窗口定位不变。
- FairyGUI 缩放不会自动影响 uGUI、世界空间标注或固定像素 HUD,混排界面需单独适配。
pmb dashboard
vbnet
PS C:\workspace\bim\qqsl-bim-model-assembly> pmb dashboard
Port 8765 is unavailable - opening the dashboard on 8766 instead.
If you want a fixed port, pass --port explicitly.
PMB dashboard at http://127.0.0.1:8766
Workspace: qqsl-bim-model-assembly (d976f751f543)
Press Ctrl+C to stop.
然后在浏览器查看:

至此pmb真是启用了,在开发过程中做出的决议,踩过的坑都会记录。