OceanBase 助力 OpenClaw 记忆插件:安装与 Token 效率提升指南

OceanBase 助力 OpenClaw 记忆插件:安装与 Token 效率提升指南
OpenClaw 默认把整份 MEMORY.md 每轮塞进 system_prompt ——不做检索、随使用无限增长。用得越多Token 烧得越快而其中大部分跟当前对话毫无关系。memory-powermem 是我们为 OpenClaw 做的 OceanBase PowerMem 记忆插件。装上之后OpenClaw 的记忆机制变成会话前按需检索相关记忆注入上下文会话后智能抽取关键事实落库。只把该用的放进去该记的存下来。实测效果同等任务下Token 消耗降至默认方案的 18%。安装一键安装推荐通过 ClawHub Skill 安装OpenClaw 自动完成插件下载、配置和槽位切换https://clawhub.ai/teingi/install-powermem-memory-minimal# 1. 登录 ClawHub首次使用 clawhub login # 2. 一键安装skills clawhub install teingi/install-powermem-memory-minimal # 3. 查看已安装的技能 clawhub list有了 Skill 之后你就可以指挥你的 OpenClaw 去自动安装 memory-powermem 插件了当然你如果你还想省事你可以直接扔一个 Skill 链接让小“龙虾”帮你搞定安装此时你只需要喝着咖啡稍等片刻即可参考这个链接: https://clawhub.ai/teingi/install-powermem-memory-minimal帮我安装一下memory-powermem插件并做一下记忆的测试手动安装前置条件本机需要 Python 3.10python3 --version 确认。如果还没装macOS 用 brew install pythonLinux 用系统包管理器Windows 从 python.org 下载安装安装时勾选 Add to PATH。1.确认 OpenClaw 已经能用 终端执行 openclaw --version并且你已经在 OpenClaw 里配好了平时对话用的模型能正常回复即可。2.先检查 Python 版本必须 ≥ 3.10 在创建虚拟环境或执行 pip install之前必须先确认版本否则后续容易装失败或运行异常python3 --version输出应为 Python 3.10.x、3.11.x、3.12.x 等次版本号 ≥ 10。也可用下面命令做一次硬性校验不通过会报错退出python3 -c import sys; assert sys.version_info (3, 10), 需要 Python 3.10 或更高; print(sys.version.split()[0], OK)若版本不够先升级本机 Python或安装并使用 python3.11 / python3.12 等满足要求的解释器并将下面步骤里的 python3 换成实际命令例如 python3.12 -m venv …。3.安装 PowerMemPython建议用虚拟环境然后安装mkdir ~/.openclaw/powermem python3 -m venv ~/.openclaw/powermem/.venv source ~/.openclaw/powermem/.venv/bin/activate pip install powermem装好后执行 pmem --version能输出版本就行。4.配置 OceanBase PowerMem在目录下 ~/.openclaw/powermem 新建 .env配置 LLM 和 Embedding数据库开箱即用无需额外配置mkdir -p ~/.openclaw/powermem cd ~/.openclaw/powermem cat .env EOF TIMEZONEAsia/Shanghai LLM_PROVIDERqwen LLM_API_KEYyour_api_key_here LLM_MODELqwen-plus EMBEDDING_PROVIDERqwen EMBEDDING_API_KEYyour_api_key_here EMBEDDING_MODELtext-embedding-v4 EMBEDDING_DIMS1536 EOF将 your_api_key_here 替换为你的 API Key。LLM 配置说明OceanBase PowerMem 需要配置 LLM用于智能抽取和 Embedding用于向量检索两者可以用不同供应商。内置支持的 LLM Provider大量国内供应商提供 OpenAI 或 Anthropic 兼容 API可以直接用 openai / anthropic 作为 Provider修改对应的 BASE_URL 指向实际服务地址即可。OpenAI 兼容接入示例适用于月之暗面、零一万物、百川等# 月之暗面 Kimi LLM_PROVIDERopenai LLM_API_KEYyour_moonshot_api_key LLM_MODELmoonshot-v1-8k OPENAI_LLM_BASE_URLhttps://api.moonshot.cn/v1 # 零一万物 LLM_PROVIDERopenai LLM_API_KEYyour_yi_api_key LLM_MODELyi-large OPENAI_LLM_BASE_URLhttps://api.lingyiwanwu.com/v1Anthropic 兼容接入示例适用于智谱等# 智谱 GLM LLM_PROVIDERanthropic LLM_API_KEYyour_zhipu_api_key LLM_MODELglm-4-plus ANTHROPIC_LLM_BASE_URLhttps://open.bigmodel.cn/api/paas/v4原理只要该服务兼容 OpenAI 的 /v1/chat/completions 或 Anthropic 的 /v1/messages 接口就可以用对应 Provider 自定义 BASE_URL 接入。Embedding 配置说明内置支持的 Embedding Provider同理兼容 OpenAI Embedding 接口的国内服务也可以用 openai 自定义 OPENAI_EMBEDDING_BASE_URL 接入# 智谱 EmbeddingOpenAI 兼容 EMBEDDING_PROVIDERopenai EMBEDDING_API_KEYyour_zhipu_api_key EMBEDDING_MODELembedding-3 EMBEDDING_DIMS2048 OPENAI_EMBEDDING_BASE_URLhttps://open.bigmodel.cn/api/paas/v4注意: EMBEDDING_DIMS 必须与模型实际输出维度一致否则检索会出错。完整配置参考 .env.example:(https://github.com/oceanbase/powermem/blob/main/.env.example)然后启动# 注意先切换目录回工作目录 cd ~/.openclaw/powermem source ~/.openclaw/powermem/.venv/bin/activate powermem-server --host 0.0.0.0 --port 8000验证curl -s http://localhost:8000/api/v1/system/health5.安装插件 memory-powermemopenclaw plugins install memory-powermem安装后用 openclaw plugins list 确认 memory-powermem 存在。6.修改配置可选插件安装后自带一份配置HTTP 模式连接 localhost:8000如果你的 PowerMem 服务就跑在本机默认端口这一步可以跳过。只有以下情况需要手动编辑 ~/.openclaw/openclaw.jsonOceanBase PowerMem 服务不在 localhost:8000改 baseUrl想用 CLI 模式替代 HTTP 模式改 mode需要调整 autoRecall / autoCapture 等行为配置生效优先级~/.openclaw/openclaw.json 插件内置默认值。HTTP 模式示例{ plugins: { slots: { memory: memory-powermem }, entries: { memory-powermem: { enabled: true, config: { mode: http, baseUrl: http://localhost:8000, autoCapture: true, autoRecall: true, inferOnAdd: true } } } }CLI 模式示例不启 HTTP 服务本机直接调用 pmem{ plugins: { slots: { memory: memory-powermem }, entries: { memory-powermem: { enabled: true, config: { mode: http, envFile: ~/.openclaw/powermem/.env, pmemPath: ~/.openclaw/powermem/.venv/bin/pmem, autoCapture: true, autoRecall: true, inferOnAdd: true } } } } }7.重启 gateway 并验证新的记忆插件生效重启 OpenClaw gateway执行openclaw gateway restart检测 memory-powermem 记忆插件健康情况openclaw ltm health无报错即表示插件已连通。可以再试一下写入和检索openclaw ltm add 一条测试记忆 openclaw ltm search 测试如果检索能返回刚写入的内容说明完整链路PowerMem → 插件 → OpenClaw已经通了。遇到问题openclaw ltm health 连不上确认 PowerMem 服务在运行curl http://localhost:8000/api/v1/system/health 能返回 JSON插件不在列表里openclaw plugins list 检查确认执行过 openclaw plugins install memory-powermem记忆写入了但检索不到检查 .env 里 Embedding 配置是否正确API Key、模型名更多排查openclaw plugins doctor 可以诊断插件加载和配置问题装完之后发生了什么插件接管了 OpenClaw 的记忆读写通过两条自动化链路工作自动召回autoRecall每次会话开始前插件用你发的第一条消息向 PowerMem 做语义检索把 Top-K 条相关记忆格式化后注入上下文前部。Agent 从第一轮就能看到跟当前问题直接相关的历史事实而不是把整份 MEMORY.md 丢进去。自动抓取 autoCapture会话正常结束时插件把本轮对话发给 PowerMemPowerMem 用 LLM 从中抽取事实去重、合并后落库。存下来的是提炼过的记忆单元不是整段对话的拷贝。两者形成闭环会话前按需注入会话后智能抽取。只把该用的放进上下文该记的存进库。插件还向 Agent 暴露了三个工具memory_recall按自然语言查询检索长期记忆memory_store写入一条记忆用户说「请记住……」时触发memory_forget按 ID 或搜索条件删除记忆也可用于合规删除场景此外通过 OceanBase PowerMem 的 Dashboardhttp://localhost:8000/dashboard/可以在 Web 端浏览、筛选和统计所有记忆。记忆不再是黑盒里的上下文——你能看到系统记住了什么、什么时候记的、被检索过几次。运维时也可以用 openclaw ltm search 直接在终端查询。Token 到底省在哪用两个例子直观感受。假设 MEMORY.md 已经积累到 50KB约 15,000 tokens里面有 Agent 使用统计、Token 消耗记录、定时任务配置、诊断规范、各种零散笔记。例一「今天有没有要跑的定时任务默认方案MEMORY.md 整份进 system_prompt15,000 tokens 固定基线再加上模型调用 memory_search 拉取的片段约 1,500 tokens。合计约 16,500 tokens/轮其中绝大部分跟定时任务无关。PowerMem 插件autoRecall 用这句话做查询只返回跟定时任务和今天相关的精炼记忆。合计约 650 tokens/轮。省了 96%。例二「上次说的诊断规范里第一步是什么」默认方案MEMORY.md 15,000 tokens 诊断规范整章 2,000 tokens。实际有用的就第一步检查网关健康这一句。合计 17,000 tokens/轮。PowerMem 插件autoRecall 返回诊断相关记忆。合计约 680 tokens/轮。省了 96%。核心原因插件不是少调一次 API而是用按需检索替代了整份 MEMORY.md 每轮必带。算一笔账假设上下文窗口 128K输入单价约 2 美元 /1M tokens。每轮省 ~15,000 tokens每天 50 轮对话一个月仅记忆相关部分就能省约 45 美元。Agent 越多、MEMORY.md 越长、调用越频繁节省越显著。为什么这样设计做这个插件之前我们先看了 OpenClaw 的记忆机制到底是怎么工作的。OpenClaw 把记忆存在 Markdown 文件里MEMORY.md精选长期记忆和 memory/YYYY-MM-DD.md按日追加的日志。模型通过 memory_search 和 memory_get 两个工具做语义检索或按路径读取。要把内容写进 Markdown主要靠两条机制一是对话快占满上下文、即将自动压缩前系统会先插一轮「记忆落盘」让模型把该留的信息追加到 memory/YYYY-MM-DD.md 文件里二是执行 /new 或 /reset 时内置的会话记忆会把上一轮对话整理成一篇带日期和主题缩写的文件也放在 memory 目录里。这套设计在文件即真相和可检索之间做了平衡但有几个结构性问题Token 膨胀难控制。MEMORY.md 整份进 system_prompt不做检索写什么、写多少完全依赖模型判断。历史会话一旦被整段写入就会在后续检索中反复以大块形式出现。记忆没有独立身份。记忆的存在形式是某段 Markdown 里的几行字没有独立 ID、没有生命周期管理。你无法在系统层面回答这条记忆何时创建、被谁引用、是否过期。只增不减。系统不会根据访问频率或时间自动清理所有写入的内容在逻辑上都是永久的。多 Agent 难复用。记忆绑在各自 workspace 的文件里跨 Agent 共享只能靠复制文件。OceanBase PowerMem 针对这些问题做了不同的选择智能抽取替代整段拷贝写入的是 LLM 从对话中提炼的事实单元不是原始对话艾宾浩斯遗忘曲线高价值、常访问的记忆被巩固低价值的随时间衰减混合检索向量 全文 图检索结合遗忘曲线排序结果既相关又适龄记忆有 ID 有生命周期每条记忆可关联 user_id、agent_id支持精确删除、跨 Agent 共享。插件把这些能力接入 OpenClaw在不改变使用方式的前提下替换底层记忆机制。槽位切换零侵入——随时可以切回 memory-core原有文件不受影响。配置项一览插件管理常用命令常见问题1.装了插件后原来的 MEMORY.md 怎么办不受影响。插件通过 OpenClaw 的 memory 槽位机制接入不修改也不删除原有文件。切回 memory-core 后MEMORY.md 和 memory/*.md 依然可用。2.可以随时切回默认 memory-core 吗可以。把 openclaw.json 里的 slots.memory 改回 “memory-core”重启即可。零侵入可逆。3.autoRecall 和 autoCapture 可以单独关闭吗可以。在配置里把对应项设为 false。比如只想用手动的 memory_store / memory_recall 工具关掉两个 auto 即可。4.支持多个 Agent 共用一个 OceanBase PowerMem 实例吗支持。通过 userId 和 agentId 配置项做隔离每个 Agent 有独立命名空间同一 OceanBase PowerMem 实例可服务多个 Agent。5.需要 GPU 吗不需要。OceanBase PowerMem 的 Embedding 和 LLM 调用走外部 APIOpenAI、通义千问等本地只需要跑 Python 服务。立即试用 OceanBase 企业版体验国产数据库能力180 天免费试用零门槛开通