前言
在之前的拾遗篇里,我们讨论了seekdb与AI Agent在开发中架构,正确率,token消耗相关的内容。放眼当前AI Agent的技术浪潮,MCP(Model Context Protocol)与Agent Memory管理无疑是两大焦点。本文旨在展望OceanBase的PowerMem项目,看它如何在这股趋势中乘风破浪,为构建更智能的AI Agent提供新的思路与工具。
PowerMem-MCP适配器风格设计
https://github.com/oceanbase/awesome-oceanbase-mcp/blob/main/src/powermem_mcp_server/powermem_mcp/server.py
MCP本身的代码并不复杂,可视为一个采用适配器模式的设计,实现PowerMem的MCP接口,实际业务逻辑在PowerMem上。PowerMem实际上是个用于记忆管理的agent,这点我们接下来会进行讨论。由于workshop的时间关系,目前还没进行所有功能,如遗忘的相关测试。本文以最基本的链接seekdb读/写为主。
PowerMem作为AI Agent的自适应设计
笔者帮大家找好了,跳过中间过程,我们直接来到 https://github.com/oceanbase/powermem/blob/main/src/powermem/core/memory.py _intelligent_add 函数。
由于PowerMem实际上通过一个agent实现的,从而通过大模型判断实现自适应。运行逻辑上,先用LLM和预设定的提示词过滤出facts来,然后再基于现有查到的记忆结果一并提交给大模型,让大模型决定对现有记忆内容做增删改。
当然,如果想由人来控制,也提供了_simple_add 函数。对应的,查询和搜索功能,追一下代码,我们在拾遗篇中提到的_hybrid_search接口。
PowerMem未来可期
考虑到Agent的Memory管理时下是大家在踊跃探索的新赛道。作为赛道中的一个选手,在我看来PowerMem未来可期。我们可以看到PowerMem实现了某种程度的远程执行,不仅仅是一个MCP简单的对seekdb进行读写操作,这里对于未来的畅想,主要体现在以下三个方面:
多模态内容的记忆管理
最近很火的Claude skill实际上提出了远程执行的概念,seekdb+PowerMem-mcp作为一个解决方案,参考拾遗篇中和langchain在pdf处理过程的集成案例,是可以做到类似的功能的。以笔者亲身在MCP提交的restful file upload为例子。在这个例子中,笔者通过restful api实现了markitdown对于file upload的支持,从而把pdf转markdown的token消耗从3w的base64内容降低到个位数。明显的,PowerMem-mcp可以进一步扩展其接口,直接支持解析pdf并向量化存入seekdb。
多种查询机制的综合
现在的查询还非常简单,仅限于_hybrid_search这一个函数,实际上我们可以把拾遗篇中提到的_hybrid_search_advance和ann_search都拿出来暴露成MCP tool给到大模型进行自主代理决策。在这种情况下,现在langchain是通过一个独立项目实现的。而实际上,如果使用统一的MCP的话,这个事情以后就简单的多了。毕竟langchain也是支持MCP的。
从Agent角度出发的进一步LLM自主决策
既然# PowerMem-mcp是一个agent,那么它自己的自适应在控制论下的反馈体系如何实现?举个例子,我们可以考虑进一步细粒度的LLM主导决策,以上篇中试验展示的下表来说,这里边的权重我们也可以在控制论为知道下,交给LLM主导自适应。
| 搜索模式 | 向量权重 | 稀疏权重 | 全文权重 | 适用场景 |
|---|---|---|---|---|
| 均衡模式 | 40% | 30% | 30% | 通用查询 |
| 语义模式 | 70% | 20% | 10% | 概念性问题 |
| 关键词模式 | 20% | 60% | 20% | 技术术语查询 |
| 精确模式 | 10% | 20% | 70% | 精确短语匹配 |
| 自主模式 | 反馈参数1 | 反馈参数2 | 反馈参数3 | 自适应自调节 |
PowerMem的潜力
综上所述,PowerMem通过MCP实现的标准化、在记忆管理上展现的智能化,以及未来在多模态、查询优化和自主决策上的巨大潜力,为AI Agent的记忆系统提供了一个强有力的‘基座’。OceanBase通过将其开源,正试图为开发者搭建一条通往下一代AI应用的快车道,这条‘快车道’的第一条枕木已然铺就,接下来,就看社区如何在上面创造飞驰的奇迹了,衷心期待社区后续不断发展壮大。