惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

www.infosecurity-magazine.com
www.infosecurity-magazine.com
Security Archives - TechRepublic
Security Archives - TechRepublic
TaoSecurity Blog
TaoSecurity Blog
Cloudbric
Cloudbric
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
N
News and Events Feed by Topic
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
S
Securelist
The Cloudflare Blog
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
D
DataBreaches.Net
S
Schneier on Security
L
LangChain Blog
Jina AI
Jina AI
M
MIT News - Artificial intelligence
Recent Announcements
Recent Announcements
T
Tenable Blog
B
Blog RSS Feed
V
Visual Studio Blog
Simon Willison's Weblog
Simon Willison's Weblog
G
Google Developers Blog
T
The Exploit Database - CXSecurity.com
Exploit-DB.com RSS Feed
Exploit-DB.com RSS Feed
WordPress大学
WordPress大学
W
WeLiveSecurity
I
InfoQ
The Hacker News
The Hacker News
雷峰网
雷峰网
月光博客
月光博客
P
Privacy & Cybersecurity Law Blog
O
OpenAI News
Hacker News: Ask HN
Hacker News: Ask HN
T
Threat Research - Cisco Blogs
GbyAI
GbyAI
The Last Watchdog
The Last Watchdog
P
Privacy International News Feed
Cyberwarzone
Cyberwarzone
S
SegmentFault 最新的问题
L
Lohrmann on Cybersecurity
人人都是产品经理
人人都是产品经理
V
V2EX
V
Vulnerabilities – Threatpost
cs.CV updates on arXiv.org
cs.CV updates on arXiv.org
C
Cybersecurity and Infrastructure Security Agency CISA
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
T
Troy Hunt's Blog
Application and Cybersecurity Blog
Application and Cybersecurity Blog
阮一峰的网络日志
阮一峰的网络日志
SecWiki News
SecWiki News
Microsoft Azure Blog
Microsoft Azure Blog

博客园_首页

Plist 二进制格式 Milvus 和 PGVector,哪个更好? OpenClaw 已过时?在 VS Code 中运行 Hermes Agent! 第30篇文章:一个大三计科生的自白 Manim如何在数学公式中完美显示中文? Docker 部署 RocketMQ 5 并发编程核心概念辨析 C#事务处理最佳实践:别再让“主表存了、明细丢了”的破事发生 CLI 是什么?为什么大厂突然集体卷命令行? 【从0到1构建一个ClaudeAgent】协作-自主Agent UIImageView 设置图片不生效的原因排查 最小二乘问题详解20:无先验约束下的增量式SFM自由网平差 痞子衡嵌入式:大话双核i.MXRT1180之XIP应用里借助MU实现可靠Flash IAP的方法 AI Chat 封装, SemanticKerne.AiProvider.Unified 已发布 Windows下右键编辑js文件无法打开记事本——在注册表中使用环境变量 在后台服务中使用 Scoped 服务,为什么总是报错? H200 安装驱动并使用sglang启动模型 wireshark 抓包Trap上报告警内容 我用 AI 辅助开发了一系列小工具(2):图片压缩工具 [A Primer On MC and CC] 2.1 Memory Consistency 1 - 指令重排序和 SC 模型 Oracle数据库SCN推进技术详解与实践指南 玩转控件:封装个带图片的Label控件 Claude Code 4.7 真正该升级的不是模型,而是你的工作流 前端小白一句话,AI 帮我做了个颜值拉满的桌面媒体播放器。当代码不再是门槛,一句话编程就是现实。 5. WorkBuddy: 小龙虾的灵魂三件套,让你的小龙虾不只是工具 SQLite 分片方案实战:三种分片策略的深度对比 告别简陋 UI!一款基于 Fluent Design 和基于 WinUI 的开源免费、现代化的 Avalonia UI 控件库 关于二进制排列组合枚举的总结 AI开发-python-LangGraph框架(3-27-LangGraph从零实现大模型智能决策工作流) ElasticSearch主分片和副本分片概念详解 【002】HTTPS 粗解:证书、TLS 握手与对后端配置的影响 Hermes Agent 一周暴涨五万 Star,但我劝你别急着追 明明连接的是Redis的DB0,为什么能查到DB3的数据? 【从0到1构建一个ClaudeAgent】协作-Agent团队 熟悉电子元器件之后,电子小白下一步该怎么走? MAF快速入门(23)通过C#类定义Skills .NET 高级开发 | 手写一个对象映射框架 FastAPI数据库ORM怎么选?我肝了三个Demo后,终于不再纠结了 mysqldump 参数拾遗:在遗忘与铭记之间 C# .NET 周刊|2026年3月5期 Claude code入门 - 陈彦斌 一文学习入门 ThingsBoard 开源物联网平台 GitHub 热门项目 | 2026年04月16日 如何为GIT设置全局勾子,为每次提交追加信息 Number.isFinite和isFinite与isNaN()和Number.isNaN的区别 PortSwigger SQL注入LAB2 推荐一个测试人必备的Skills,从功能到性能全搞定(附详细实操和安装下载方式) 筑基期:掌握Odoo基础核心知识点02(Odoo XML 开发方式详解) GLM模型这么火,咱们用vllm也咧一个呗! 深入理解 AbortController:从底层原理到跨语言设计哲学 字符串学习笔记 多租户系统框架的基础模块设计和分析设计 Apache SeaTunnel Zeta 为什么能做到“又快又稳”? AI开发-python-LangGraph框架(3-26-LangGraph基本概念及第一个简单样例) Vue 3 组件通信,别只会用 Props 和 Emits 了,这几个狠活儿你得看看 ElasticSearch7.X版本配置密码 用Manim实现动态交点计算--从一个动点问题说起 团结引擎+Addressable+Instant Game打包抖音小游戏 function call 实战:让 LLM 自动判断 pod 异常、调用日志工具并完成故障分析 bubseek —— 让 Agent 的足迹,变成团队的洞察 通过 C# 读取并导出 PDF 书签 如何用 GitHub Actions 实现 Steam 自动化发布 【从0到1构建一个ClaudeAgent】并发-后台任务 .NET 高级开发 | 定制 ASP.NET Core 框架 电子小白:什么是运算放大器(运放) zero2Agent:面向大厂面试的 Agent 工程教程,从概念到生产的完整学习路线 堆上的ORW HC32F460 USB CDC通信异常:非对齐访问异常排查 20260413-Hyperbridge 攻击事件:发生在默克尔山上的验证绕过 那些喊着AI 要淘汰你的人,正在靠你的焦虑赚大钱! 深度学习进阶(八)Swin Transformer 最小二乘问题详解19:带先验约束的增量式SFM优化与实现 SnapTranslate 3.0 正式发布:全局划词翻译 + 完整英语学习闭环,一站式搞定查词、记词、复习 工作的意义、工作的困难认知再思考 .NET + AI 进阶实战:基于类的技能开发 - 打造可治理的 Agent 能力模块 【从0到1构建一个ClaudeAgent】规划与协调-技能 上周热点回顾(4.6-4.12) 电子小白的工具三件套:面包板、杜邦线、万能板 单表五亿数据的查询优化 | Mysql、StarRocks 2. WorkBuddy:从“我是谁”到“帮我干活” C# 如何减少代码运行时间:7 个实战技巧 基于HelixToolkit.SharpDX 渲染3D模型 - 笺上知微 从零开始的双臂具身VLA起源及现阶段发展综述 - SkyXZ 记对 xonsh shell 的使用, 脚本编写, 迁移及调优 - pluvium27 受够了Vibe Coding的失控?换个起点,让AI事半功倍 从开始配置漏洞环境到漏洞复现流程 - 難しい 关于10年工作经验的程序员对OpenClaw的实战经验分享以及看法 - 虚无境 Any metadata 的内存布局 C# .NET 周刊|2026年3月2期 - InCerry 我帮你测过了,测试圈排名第二的 Skill 依然很牛逼 Skill Discovery | 无监督技能发现的经典工作总结 - MoonOut 上下文工程是什么?过时了么?一文讲明白! - 一枫说码 开了 TUN 模式还是直连?90% 的人都踩过这个坑 AScript扩展多种脚本语言 - rockey627 AI 学习笔记:Agent 的记忆机制 你能被装进一个文件里吗?——7 万人把同事"蒸馏"成了 AI - 我没有三颗心脏 Claude Code 通关手册(七):给 AI 装上技能包——Skills 完全指南 - 暮色之狐 在浏览器中快速编辑代码:VSCode Web 集成实践 - Newbe36524 蒸馏自己 skill?基于 Deepseek 的蒸馏器,丐版蒸馏方式,简单便捷 - To_Carpe_Diem Spring AI Aliababa和AgentScope,哪个更好? - 苏三说技术
自进化的 Agent 记忆层 —— PowerMem 简易操作手册
knqiufan · 2026-06-25 · via 博客园_首页

前两篇关于遗忘机制和记忆生命周期的文章:

可能会想:怎么让 PowerMem 这东西在我的电脑上跑起来?

image_02

今天这篇文章,就是 PowerMem 的操作手册,不讲原理只讲步骤。从服务端部署到客户端接入,一条链路从头串到尾,每一步都有明确的命令和截图。

这个手册的目标是:你按照顺序做完(或者让你的通用 Agent 根据文章内容做完),就能拥有一套部署好的 PowerMem 服务端,以及一个已经接好记忆层的 Claude Code 或 OpenClaw 客户端。

image-20260625173557136

一、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

image-20260625173636344

也可手动创建 .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_DIMSOCEANBASE_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 使用

image-20260625173654324

2.1 访问 Dashboard

服务器启动后,浏览器打开:

http://<服务器IP>:8848/dashboard/

image-20260625173716814

image-20260625173732210

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 服务器

image-20260625173749317

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

3.1 在 Dashboard 获取 API Key

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

image-20260625173804081

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。

image-20260625173821996

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"
  }
}

image-20260625173849753

方式二:在启动 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 并连接落库

image-20260625173904484

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

image-20260625174004822

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

image-20260625174035786

image-20260625174048186

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

默认 CLI 模式使用本地 pmem 存储,无需额外服务器。

如果需要共享团队的 PowerMem 后端,在 OpenClaw 中配置 requestConfig.memory_db 指向服务器地址:

http://<服务器IP>:8848

4.4 验证

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

image-20260625174104972

PowerMem 记忆如何"自进化"?

PowerMem 不止是一个存储桶——它是一个持续进化的记忆层。每条记忆从捕获到落库再到被检索,经历一个完整的生命周期:

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

这个四步循环让 Agent 越用越聪明,越用越懂你。

常用命令速查

image-20260625174119836

操作 命令
安装 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