pmb 面向 AI 编码智能体的本地记忆系统

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真是启用了,在开发过程中做出的决议,踩过的坑都会记录。

相关推荐
姜穆澜1 小时前
机器学习实战指南:从算法原理到工程落地
人工智能·算法·机器学习
styshoo1 小时前
[NVSentinel] gpu-health-monitor模块之dcgm_watcher
人工智能
Cosolar1 小时前
从 ChatGPT 到 Astra:四年走完的路,AGI 真的来了吗?
人工智能·aigc·openai
ting94520001 小时前
Dograh 深度技术解析:开源自托管语音智能体平台架构、流水线与工程实践
人工智能·架构
思考着亮1 小时前
13.GraphRAG
人工智能
HappyEnding1 小时前
OpenSpec + Superpowers 搭建 SDD+TDD 工作流教学文档
人工智能
思考着亮1 小时前
12.Agentic RAG
人工智能
zed_231 小时前
让答案有出处:citations 引用溯源
人工智能
长江后浪博客2 小时前
Python + YOLOv8 疲劳驾驶 AI 视觉检测入门:从模型训练到 ONNX 实时摄像头检测完整实战
人工智能·python·yolo·疲劳驾驶检测·onnx·yolov8