ITPub博客

首页 > 数据库 > 国内数据库 > 基于OceanBase的PowerMem自进化记忆层部署指南

基于OceanBase的PowerMem自进化记忆层部署指南

原创 国内数据库 作者:OceanBase数据库 时间:2026-07-01 10:48:03 0 删除 编辑
今天这篇文章,就是 PowerMem 的操作手册,不讲原理只讲步骤。从服务端部署到客户端接入,一条链路从头串到尾,每一步都有明确的命令和截图。
这个手册的目标是:你按照顺序做完(或者让你的通用 Agent 根据文章内容做完),就能拥有一套部署好的 PowerMem 服务端,以及一个已经接好记忆层的 Claude Code 或 OpenClaw 客户端。
立即试用 OceanBase 企业版,体验国产数据库能力

一、Linux 服务端:安装、配置、启动


1.1 环境要求

  • Python >= 3.11
  • pip 或 uv(推荐 uv,更快)

1.2 安装

# 从 PyPI 安装(生产环境推荐)
uv pip install "powermem[cli,server,mcp,seekdb]"
# 或从源码安装(开发环境)
git clone https://github.com/oceanbase/powermem.git
cd powermem
uv pip install -e ".[cli,server,mcp,seekdb]"
各 extras 说明:
extras
作用
cli
pmem 命令行工具
server
powermem-server HTTP API 服务器
mcp
MCP 协议支持
seekdb
内嵌向量数据库(零配置,无需单独部署数据库)

1.3 初始化配置

# 交互式生成 .env 配置文件
pmem config init

也可手动创建 .env 文件。以下是我的配置:
# DATABASE_PROVIDER=oceanbase
DATABASE_PROVIDER=sqlite
SQLITE_PATH=/root/data/package/powermem/powermem.db
# LLM_PROVIDER=anthropic
LLM_PROVIDER=openai
# ANTHROPIC_LLM_BASE_URL=https://token-plan-cn.xiaomimimo.com/anthropic
# LLM_API_KEY=tp-xxx
# LLM_MODEL=mimo-v2.5-pro
LLM_API_KEY=xxx
LLM_MODEL=step-3.7-flash
OPENAI_LLM_BASE_URL=https://api.stepfun.com/step_plan/v1
EMBEDDING_PROVIDER=siliconflow
EMBEDDING_API_KEY=sk-xx
EMBEDDING_MODEL=BAAI/bge-m3
# OCEANBASE_EMBEDDING_MODEL_DIMS=1024
# EMBEDDING_DIMS=1024
注意事项:
  • SQLITE_PATH 必须是完整的数据库文件路径(如 /root/data/powermem/powermem.db),不能只是文件夹路径
  • 使用 seekdb 时, EMBEDDING_DIMS 或 OCEANBASE_EMBEDDING_MODEL_DIMS 是必填项,维度要和嵌入模型匹配
  • 硅基流动的嵌入模型如果不走 seekdb,可以不配 EMBEDDING_DIMS

1.4 启动服务器

powermem-server --host 0.0.0.0 --port 8848
参数说明:

参数
默认值
说明
--host
0.0.0.0
监听地址
--port
8848
监听端口
--workers
4
工作进程数(内嵌存储自动降为 1)
--reload
关闭
开发模式,代码变更自动重载
--log-level
INFO
日志级别
启动会比较慢(60-120 秒),因为需要初始化 seekdb 和下载嵌入模型。
验证启动成功:
curl http://localhost:8848/api/v1/system/health
# 返回 {"status":"ok"} 即成功

二、Dashboard 使用


2.1 访问 Dashboard

服务器启动后,浏览器打开:
http://<服务器IP>:8848/dashboard/


2.2 Dashboard 功能

页面
路径
功能
总览
/dashboard/
记忆总量、增长趋势、质量指标、系统健康
记忆管理
/dashboard/memories
浏览、搜索、查看、删除记忆
用户画像
/dashboard/user-profile
查看用户级别的聚合画像
设置
/dashboard/settings
配置 API Key(仅在服务端开启认证时需要)

2.3 开启认证(可选)

在 .env 中添加:
POWERMEM_SERVER_AUTH_ENABLED=true
POWERMEM_SERVER_API_KEYS=your-secret-key
重启服务器后,所有 API 请求需携带 X-API-Key 头。Dashboard 的 Settings 页面可配置 Key。

2.4 API 文档

服务器自带 Swagger 文档:
http://<服务器IP>:8848/docs

三、本地 Claude Code 连接 PowerMem 服务器


以下步骤在本地 Windows/Mac 操作,服务器在远程 Linux。

3.1 在 Dashboard 获取 API Key

如果服务端开启了认证,先在 Dashboard Settings 页面拿到 API Key。

3.2 通过 Marketplace 安装插件

在 Claude Code 中依次执行:
/plugin marketplace add oceanbase/powermem
/plugin install memory-powermem@powermem
/reload-plugins
如果网络不通,也可以从源码安装: claude --plugin-dir /path/to/powermem/apps/claude-code-plugin

3.3 初始化插件

/memory-powermem:init
这会自动创建插件本地虚拟环境、安装 powermem 后端、启动管理服务器。

3.4 Windows 用户:修复 hooks 命令

init 生成的 hooks.json 默认使用 sh ,Windows 需要改为 PowerShell。

hooks 文件位置:
C:\Users\<你的用户名>\.claude\plugins\cache\powermem\memory-powermem\0.1.0\hooks\hooks.json
将所有 sh "${CLAUDE_PLUGIN_ROOT}/hooks/run-hook.sh" 替换为:
"command": "powershell.exe -NoProfile -ExecutionPolicy Bypass -File \"${CLAUDE_PLUGIN_ROOT}/hooks/run-hook.ps1\""
完整示例:
{
  "hooks": {
    "UserPromptSubmit": [
      {
        "hooks": [
          {
            "type": "command",
            "command": "powershell.exe -NoProfile -ExecutionPolicy Bypass -File \"${CLAUDE_PLUGIN_ROOT}/hooks/run-hook.ps1\"",
            "timeout": 120
          }
        ]
      }
    ],
    "SessionEnd": [
      {
        "hooks": [
          {
            "type": "command",
            "command": "powershell.exe -NoProfile -ExecutionPolicy Bypass -File \"${CLAUDE_PLUGIN_ROOT}/hooks/run-hook.ps1\""
          }
        ]
      }
    ],
    "PostCompact": [
      {
        "matcher": "auto|manual",
        "hooks": [
          {
            "type": "command",
            "command": "powershell.exe -NoProfile -ExecutionPolicy Bypass -File \"${CLAUDE_PLUGIN_ROOT}/hooks/run-hook.ps1\""
          }
        ]
      }
    ]
  }
}

3.5 配置连接远程服务器

如果 powermem-server 不在本机(比如在远程 Linux),需要配置环境变量。
方式一:在 Claude Code 的 settings.json 中配置(推荐):
编辑 ~/.claude/settings.json,添加:
{
  "env": {
    "POWERMEM_BASE_URL": "http://<服务器IP>:8848",
    "POWERMEM_API_KEY": "your-secret-key"
  }
}

方式二:在启动 Claude Code 前设置环境变量:
export POWERMEM_BASE_URL=http://<服务器IP>:8848
export POWERMEM_API_KEY=your-secret-key

3.6 重启 Claude Code

重新启动 Claude Code 即可生效。

3.7 验证

记忆落库时机:
  • 用户发送消息时:自动检索相关记忆,注入到上下文中(默认开启)
  • 执行 /compact 时:将压缩摘要保存为记忆
  • 退出会话时:将完整会话记录保存为记忆
验证方法:结束一个会话后,在 Dashboard 的 Memories 页面查看是否有新记忆写入。

四、OpenClaw 安装 PowerMem 并连接落库


4.1 安装插件

直接跟 OpenClaw 说:
通过 memory-powermem 帮我安装一下 powermem 记忆引擎插件
或手动执行:
openclaw plugins install memory-powermem

4.2 配置嵌入模型

阿里云百炼的 coding plan 没有嵌入模型,需要手动编辑 powermem 环境文件:
找到插件数据目录下的 powermem.env(通常在 ~/.openclaw/ 下),添加/修改嵌入模型相关配置:
EMBEDDING_PROVIDER=siliconflow
EMBEDDING_API_KEY=sk-xxx
EMBEDDING_MODEL=BAAI/bge-m3
EMBEDDING_DIMS=1024

根据实际使用的嵌入服务调整 provider、model 和维度。


4.3 连接远程服务器(可选)

默认 CLI 模式使用本地 pmem 存储,无需额外服务器。
如果需要共享团队的 PowerMem 后端,在 OpenClaw 中配置 requestConfig.memory_db 指向服务器地址:
http://<服务器IP>:8848

4.4 验证

  1. 让 OpenClaw 记住一句话: 帮我记住测试探针:dragonfruit-zx9
  2. 新开对话,让 OpenClaw 回忆: dragonfruit-zx9 是什么
  3. 能正确召回即表示工作正常

PowerMem 记忆如何"自进化"?


PowerMem 不止是一个存储桶——它是一个 持续进化的记忆层。每条记忆从捕获到落库再到被检索,经历一个完整的生命周期:
  1. 捕获(Capture):用户每次发消息,PowerMem 自动检索相关记忆注入上下文;执行 /compact 时,压缩摘要自动落为记忆;会话结束时,完整会话记录被保存
  2. 存储(Store):文本经过 Embedding 向量化,与元数据一同落入 SQLite / OceanBase 数据库,被持久化保存
  3. 检索(Retrieve):用户提问时,语义向量检索找到最相关的 Top-K 条记忆,注入到上下文中增强 Agent 回答质量
  4. 进化(Evolve):重复记忆被去重合并,用户画像持续更新,过期记忆淘汰、新记忆增强
这个四步循环让 Agent 越用越聪明,越用越懂你。

常用命令速查


操作
命令
安装
uv pip install "powermem[cli,server,mcp,seekdb]"
初始化配置
pmem config init
启动服务器
powermem-server --host 0.0.0.0 --port 8848
健康检查
curl http://localhost:8848/api/v1/system/health
Dashboard
http://localhost:8848/dashboard/
API 文档
http://localhost:8848/docs

立即试用 OceanBase 企业版,体验国产数据库能力


来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/69909943/viewspace-3174943/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
欢迎来 OceanBase 开源官网技术切磋 https://open.oceanbase.com/answer

注册时间:2019-02-13

  • 博文量
    580
  • 访问量
    586201