1. 项目概述ClawMem一个为AI编码代理构建的本地记忆层如果你和我一样长期使用Claude Code、OpenClaw或Hermes这类AI编码助手一定遇到过这个痛点每次对话都像是一次“失忆重启”。你明明在昨天的会话里花了半小时和AI讨论并确定了项目的认证流程设计但今天打开新会话它又得从头问你“我们打算怎么处理用户登录”。这种上下文断裂不仅浪费时间更阻碍了复杂项目的连续性协作。我们需要一个能记住“昨天我们聊到哪儿了”的持久化记忆系统。这就是ClawMem要解决的核心问题。它是一个完全在本地运行的、设备端的内存层专门为AI编码代理设计。你可以把它理解为你和AI助手之间的一个“共享大脑”一个专属于你项目的记忆库。它不依赖任何云服务或API密钥所有数据——你的笔记、项目文档、会话决策——都安全地存储在你自己的SQLite数据库中。ClawMem的核心工作流程是自动化的在你每次向AI提问时它会悄无声息地从你的记忆库中检索出最相关的上下文比如之前讨论过的设计决策、遇到的坑、你的个人偏好并注入到当前的提示中。同时它也会在会话结束时自动从对话记录中提取出有价值的“决策”、“待办事项”和“问题”存入记忆库供未来检索。这个项目的价值在于它将零散的、一次性的AI对话转变成了一个持续积累、可被反复利用的“项目知识图谱”。对于需要长期维护的软件项目、研究课题或任何需要连续性思考的工作ClawMem能显著提升AI助手的“上下文感知”能力让它真正成为你项目团队中一个“记得住事”的成员。2. 架构与核心设计思路拆解ClawMem不是一个简单的关键词匹配工具它融合了当前检索增强生成RAG和智能体记忆研究中的多项前沿思路形成了一个独特的混合架构。理解这个架构能帮你更好地配置和使用它。2.1 混合检索引擎不只是向量搜索很多RAG系统只依赖向量搜索语义相似度但这在代码和文档场景下往往不够。ClawMem采用了源自QMD项目的多信号混合检索策略BM25检索基于词频和逆文档频率的传统全文搜索。它能精准匹配你查询中的关键词比如“authenticateUser函数”或“docker-compose.yml配置”。这对于寻找具体的函数名、文件名、错误代码至关重要。向量搜索基于嵌入模型如zembed-1或EmbeddingGemma的语义搜索。它能理解“用户登录”和“身份验证流程”是相似的概念即使字面不匹配。互惠排序融合ClawMem不是简单地将两个结果集合并而是使用RRF算法对BM25和向量搜索的排名进行加权融合。这确保了既包含精确关键词匹配的高分结果也包含语义相关的高分结果得到一个更全面的候选列表。查询扩展在检索前ClawMem会用一个小型LLMqmd-query-expansion-1.7B分析你的原始查询生成同义词、相关术语和更具体的子查询。例如你查询“部署”它可能会扩展出“docker”, “CI/CD”, “production environment”等术语分别进行检索再合并结果。交叉编码器重排序得到融合的候选列表后ClawMem会使用一个专门的重排序模型如zerank-2或qwen3-reranker对Top K个结果进行精排。这个模型会同时读取你的查询和每一个候选文档片段计算一个更精细的相关性分数最终确定返回给你的顺序。这是提升结果精准度的关键一步。实操心得在实际使用中BM25对于找回你“确切记得写过”的文档片段如特定的API密钥名称非常有效而向量搜索则擅长在你记不清具体措辞但知道核心概念时如“之前讨论过的一个性能优化技巧”找到相关内容。两者的结合覆盖了大部分使用场景。2.2 复合评分与记忆生命周期管理检索到的文档如何打分ClawMem借鉴了SAME项目的思想采用复合评分而不仅仅是相关性分数。一个文档的最终得分是多个信号加权后的结果相关性分数来自上述混合检索流程。新鲜度衰减最近被创建或修改的文档会获得临时性加分这符合“最近讨论的事情更重要”的直觉。置信度信号来自AI代理在会话中明确“引用”或“认可”的文档会被强化。例如AI说“根据我们之前决定的认证方案...”那么被引用的那个决策文档的分数就会提升。内容类型半衰期不同类型的记忆有不同的“保质期”。一个“项目里程碑”可能比一个“临时调试笔记”的生命周期长得多。ClawMem允许你为不同内容类型配置不同的衰减速率。协同激活强化如果文档A和文档B经常在同一个会话中被一起检索到它们之间会建立一种隐式的关联。未来当其中一个被检索时另一个被连带检索的概率和分数也会提高。基于这个动态分数ClawMem实现了精细的记忆生命周期管理Pin置顶你可以手动将某个关键文档如“项目架构总览”置顶使其在相关检索中始终获得高优先级。Snooze休眠暂时降低某个文档的分数比如一个已经解决的老问题避免它干扰当前聚焦新问题的会话。归档策略系统可以自动将长时间未被访问、且分数低于阈值的文档移入“归档”区。它们仍然可被搜索但不会出现在常规检索的Top结果中需要时可以通过更明确的查询找回。自动去重与合并对于钩子Hooks自动生成的观察记录如“用户决定采用JWT”ClawMem会在30分钟窗口内进行基于内容哈希的去重防止完全相同的记录反复写入造成记忆膨胀。2.3 A-MEM自演化的记忆笔记这是ClawMem最有趣的部分之一它让记忆库不再是静态的文档堆而是一个能自我丰富、建立联系的动态知识网络。A-MEM自演化记忆模块会对存入的文档自动进行以下处理实体提取与关键词标记自动识别文档中的人名、项目名、技术名词、文件名等实体并为文档打上标签。因果链接推断当存入新的“决策”或“问题”记录时A-MEM会尝试将其与记忆中已有的相关条目建立因果联系。例如新存入一个“决定将数据库从MySQL迁移到PostgreSQL”的决策系统可能会自动将其链接到之前记录的“遇到MySQL在并发写入下的性能瓶颈”这个问题。模式提取借鉴Engram项目ClawMem会分析记忆的访问模式。如果一个文档被高频修订它可能是一个持续演化的设计文档其“耐久性”分数会提高。系统还能识别时间上的导航模式方便你查看围绕某个时间点前后发生的所有相关事件。2.4 意图分类与多图遍历当收到一个查询时ClawMem首先会进行意图分类判断你究竟想问“为什么”WHY、“何时”WHEN、“关于谁/什么实体”ENTITY还是“是什么”WHAT。不同的意图会触发不同的检索策略权重。例如“为什么我们选了React”会更侧重检索包含决策理由的因果链“上周四我改了哪个文件”则会强烈激活基于时间的检索。基于分类后的意图ClawMem会在一个多图结构中进行自适应波束搜索语义图基于向量嵌入的相似性连接。时间图基于文档创建/修改时间的先后连接。因果图基于A-MEM推断出的“导致”、“解决”等关系连接。系统会沿着这些图的边进行探索寻找与查询意图最匹配的节点文档路径从而可能发现那些直接相关性不高、但通过一系列关联后却至关重要的信息。3. 核心细节解析与实操要点3.1 数据流与钩子Hooks机制ClawMem与AI代理的集成核心是钩子。这些是预定义的生命周期事件处理器在会话的关键时刻自动触发。context-surfacing上下文浮现钩子这是负载最重的钩子在每次用户提交提示前运行。它的工作流程是分析当前提示和最近的对话历史。调用上述复杂的混合检索流程从记忆库中找出最相关的文档。将这些文档内容进行适当的格式化例如用facts块包裹并作为背景知识注入到即将发送给AI模型的提示中。AI模型会将这些内容视为“已知事实”从而在其回答中直接引用或基于此进行推理。v0.9.0新增如果提示中提到了记忆库中已知的实体如项目名“ProjectAlpha”钩子会从知识图谱中查询该实体当前的状态以subject predicate object三元组形式并追加一个vault-facts块提供更结构化的信息。decision-extractor决策提取钩子在会话结束时运行。它使用一个本地GGUF观察者模型通常是那个1.7B的LLM自动扫描整个会话的转录文本识别并提取出结构化的信息决策我们决定采用XXX方案。偏好用户更喜欢YYY风格的代码。里程碑完成了ZZZ功能模块。问题遇到了AAA错误。 这些结构化记录会被存入记忆库成为未来检索的优质素材。handoff-generator交接生成钩子同样在会话结束时运行。它会生成一个简短的“交接摘要”总结本次会话的进展、待办事项和下一步计划。当下一个会话开始时这个摘要会被自动注入实现无缝的上下文接力。precompact-extract预压缩提取钩子这是针对Claude Code等有上下文窗口限制的代理的关键防御机制。当AI代理的token使用量接近其压缩遗忘旧上下文阈值时此钩子会同步地在压缩发生前被触发。它会紧急运行一次决策提取确保即将被“遗忘”的会话内容中的重要信息被抢救出来存入长期记忆。在OpenClaw集成中这个钩子被放置在before_prompt_build阶段以确保在AI模型调用可能触发压缩的请求之前完成捕获避免了竞态条件。注意事项context-surfacing钩子是自动检索的“主力军”覆盖了90%的用例。另外10%需要更精准、定向检索的场景则通过MCP工具如query,intent_search由AI代理主动调用完成。3.2 多框架集成与内存共享ClawMem的一个强大之处在于它的多运行时支持。它可以通过四种方式集成并且所有方式共享同一个SQLite记忆库Claude Code通过clawmem setup hooks和clawmem setup mcp命令安装钩子和注册MCP服务器。这是最直接的原生集成。OpenClaw通过clawmem setup openclaw安装为原生内存插件。它提供了与Claude Code类似的钩子生命周期before_prompt_build,agent_end等并深度集成到OpenClaw的插件总线和上下文管理器中。Hermes Agent作为MemoryProvider插件安装。将ClawMem源代码中的src/hermes/目录复制到Hermes的插件目录即可。它实现了Hermes定义的prefetch(),on_session_end()等标准接口。任何MCP兼容客户端通过clawmem serve启动一个MCP模型上下文协议服务器任何支持MCP的工具如Cursor、Windsurf都可以连接并使用其31个检索工具。这意味着你在Claude Code中与AI讨论并形成的一个设计决策会被自动捕获。随后当你在OpenClaw中切换到同一个项目继续工作时这个决策会作为相关上下文被自动注入。这实现了真正的跨会话、跨平台的持久化共享记忆。3.3 模型选型与硬件考量ClawMem的神经推理部分依赖于三个模型你需要根据硬件情况做出选择。方案一高性能GPU方案推荐VRAM 12GB追求最佳检索质量使用ZeroEntropy蒸馏出的配对模型栈。注意此方案模型为CC-BY-NC-4.0协议仅限非商业用途。嵌入模型zembed-1-Q4_K_M。SOTA水平2560维32K上下文。约4.4GB VRAM。LLM模型qmd-query-expansion-1.7B-q4_k_m。用于意图分类和查询扩展。约2.2GB VRAM。重排序模型zerank-2-Q4_K_M。SOTA重排序器与zembed-1配对效果最佳。约3.3GB VRAM。关键配置运行llama-server时对于zembed-1和zerank-2这类使用非因果注意力的模型必须将-ubunbatch参数设置为与-bbatch相同例如-b 2048 -ub 2048否则会产生错误输出。方案二轻量级/无GPU方案使用QMD原生的轻量模型组合总VRAM需求约4GB也可在CPU上运行速度较慢。嵌入模型EmbeddingGemma-300M-Q8_0。仅300MB768维2K上下文。LLM模型同上qmd-query-expansion-1.7B-q4_k_m。重排序模型qwen3-reranker-0.6B-Q8_0。约600MB。回退机制如果未配置远程llama-serverClawMem会通过node-llama-cpp在进程内自动下载并运行这些模型。在Apple Silicon Mac上它会自动使用Metal后端获得GPU加速在其他支持Vulkan的系统上也会尝试GPU加速否则回退到CPU。方案三云嵌入API方案如果你不想在本地运行任何模型可以使用云服务提供商如Jina AI, OpenAI, Voyage AI的嵌入API。只需在环境变量中设置对应的CLAWMEM_EMBED_URL和CLAWMEM_EMBED_API_KEYClawMem会自动将嵌入请求转发到云端。LLM和重排序模型仍需在本地或远程服务器运行。实操心得对于个人开发者方案二轻量级在配备M系列芯片的MacBook上体验已经非常流畅Metal加速效果显著。方案一适合对检索质量有极致要求、且拥有高性能显卡的团队。方案三则适合希望完全省去本地模型管理、信任云端服务且网络环境稳定的用户。4. 实操过程与核心环节实现4.1 从零开始完整安装与配置流程假设我们在一个Linux系统上从零开始搭建一个完整的ClawMem系统并集成到Claude Code。步骤1安装运行时与ClawMem# 1. 安装Bun不要用snap版本它无法读取stdin会破坏钩子 curl -fsSL https://bun.sh/install | bash source ~/.bashrc # 或重启终端 # 2. 通过npm全局安装ClawMem推荐 npm install -g clawmem # 验证安装 clawmem --version步骤2一键初始化与引导这是最快上手的路径。假设你的项目笔记都在~/projects/myapp/docs目录下。# 这条命令会一次性完成创建存储库、添加集合、索引文件、生成嵌入、安装Claude Code钩子、注册MCP服务器。 clawmem bootstrap ~/projects/myapp/docs --name myapp执行后检查输出确认所有步骤成功。你的记忆库vault默认位于~/.cache/clawmem/index.sqlite。步骤3可选配置GPU服务如果你有NVIDIA GPU并选择方案一需要下载模型并启动服务。# 创建模型存储目录 mkdir -p ~/.cache/clawmem/models cd ~/.cache/clawmem/models # 下载嵌入模型 (zembed-1) wget https://huggingface.co/Abhiray/zembed-1-Q4_K_M-GGUF/resolve/main/zembed-1-Q4_K_M.gguf # 下载LLM模型 wget https://huggingface.co/tobil/qmd-query-expansion-1.7B-gguf/resolve/main/qmd-query-expansion-1.7B-q4_k_m.gguf # 下载重排序模型 (zerank-2) wget https://huggingface.co/keisuke-miyako/zerank-2-gguf-q4_k_m/resolve/main/zerank-2-Q4_K_M.gguf # 启动三个llama-server实例建议使用tmux或systemd服务管理 # 终端1 - 嵌入服务 llama-server -m zembed-1-Q4_K_M.gguf --embeddings --port 8088 --host 0.0.0.0 -ngl 99 -c 8192 -b 2048 -ub 2048 # 终端2 - LLM服务 llama-server -m qmd-query-expansion-1.7B-q4_k_m.gguf --port 8089 --host 0.0.0.0 -ngl 99 -c 4096 --batch-size 512 # 终端3 - 重排序服务 llama-server -m zerank-2-Q4_K_M.gguf --port 8090 --host 0.0.0.0 -ngl 99 -c 4096 -b 2048 -ub 2048ClawMem默认会连接localhost的8088、8089、8090端口。如果服务未启动它会回退到进程内模型方案二。步骤4验证与健康检查# 运行全面健康检查 clawmem doctor # 输出应显示所有组件数据库、集合、嵌入、钩子、MCP、模型服务状态正常。 # 查看索引状态 clawmem status # 这会显示你的记忆库中有多少文档、集合、以及嵌入向量的数量。步骤5在Claude Code中体验现在打开你的Claude Code。当你开始一个新会话时ClawMem的session-start钩子会自动运行注入上次会话的“交接摘要”。当你输入一个提示时context-surfacing钩子会触发你应该能在AI回复前在Claude Code的日志或输出中看到类似[ClawMem] Injected X context snippets的信息。尝试问一些关于你项目的问题比如“我们之前是怎么设计用户认证的”看看AI是否能引用记忆库中的内容来回答。4.2 高级配置定制化索引与检索策略默认的bootstrap命令使用**/*.md模式索引所有Markdown文件。但你的项目可能包含多种类型的文件。添加更多集合# 索引你的源代码目录可能包含.js, .ts, .py, .go等 clawmem collection add ~/projects/myapp/src --name src --pattern **/*.{js,ts,jsx,tsx,py,go} # 索引你的项目日志或会议记录 clawmem collection add ~/projects/myapp/meetings --name meetings --pattern **/*.txt # 更新索引并重新生成嵌入 clawmem update --embed每个集合的配置保存在~/.config/clawmem/config.yaml中你可以手动编辑该文件来调整每个集合的pattern、ignore规则等。调整检索策略ProfileClawMem提供了三种预设的检索策略平衡速度与深度speed快速模式。禁用重排序和复杂的查询扩展主要依赖BM25和向量搜索。适合对延迟敏感的操作。balanced默认均衡模式。启用完整的混合检索流程但限制重排序的候选数量和一些扩展步骤。deep深度模式。启用所有功能包括最大范围的查询扩展、更多的重排序候选、以及知识图谱三元组注入。用于需要最高召回率的复杂查询。你可以通过环境变量临时设置或在配置文件中永久设置export CLAWMEM_PROFILEdeep # 或者编辑 ~/.config/clawmem/config.yaml # profile: deep设置会话焦点在v0.9.0中你可以为单个会话设置一个焦点主题使检索向该主题倾斜。# 首先获取当前会话ID通常在Claude Code的会话信息中 clawmem focus set 重构用户认证模块 --session-id claude-session-abc123设置后在该会话中的所有检索其查询扩展、重排序和片段选择都会优先考虑与“重构用户认证模块”相关的文档匹配项分数提升1.4倍不相关项分数降低0.75倍。这个设置是会话隔离的不会污染全局记忆库。4.3 使用MCP工具进行主动检索虽然钩子自动处理了大部分检索但有时你需要更精确的控制。ClawMem通过MCP服务器暴露了31个工具这里介绍几个最常用的query: 通用检索。它内部会进行意图分类并调用最合适的后端BM25/向量/图谱。query(我们为什么选择MongoDB而不是PostgreSQL)intent_search: 指定意图的检索。当你明确知道想搜索什么类型的信息时使用。intent_search(上周的部署记录, intentWHEN) intent_search(负责支付模块的同事, intentENTITY)find_causal_links: 查找与某个文档有因果关系的其他文档。对于理解决策链非常有用。find_causal_links(document_iddoc_123, relation_typecaused_by)timeline: 获取围绕某个文档或某个时间点的时间线上下文。timeline(around2024-01-15, days_before3, days_after3)memory_retrieve: 底层检索路由工具。你可以指定使用哪种检索器bm25,vector,hybrid。memory_retrieve(queryAPI密钥管理, retrieverhybrid, limit10)在Claude Code中你可以通过Cmd/Ctrl I打开工具面板搜索并调用这些工具。在OpenClaw或Hermes中它们通常以插件工具的形式提供。5. 常见问题与排查技巧实录在实际部署和使用ClawMem的过程中我遇到并解决了一些典型问题。以下记录希望能帮你避开这些坑。5.1 安装与集成问题问题1在Claude Code中钩子不触发没有[ClawMem]日志。排查首先运行clawmem doctor检查hooks和mcp部分是否显示OK。可能原因1clawmem命令不在Claude Code的PATH中。Claude Code可能使用独立的终端环境。解决找到Claude Code使用的shell配置文件如~/.zshrc或~/.bashrc确保将Bun的bin目录如~/.bun/bin添加到PATH中并source该文件。或者在Claude Code的设置中指定clawmem的绝对路径。可能原因2MCP服务器未正确注册或启动失败。解决运行clawmem setup mcp --force重新注册。检查~/.claude.json文件中MCP服务器的配置路径是否正确。手动运行clawmem serve看是否有错误输出。可能原因3Claude Code的版本过旧不支持某些钩子事件。解决更新Claude Code到最新版本。问题2嵌入步骤非常慢或者CPU占用率100%。排查运行clawmem embed --verbose查看进度。检查CLAWMEM_EMBED_URL是否指向了正确的llama-server实例或者是否回退到了CPU模式。可能原因1未启动GPU服务且node-llama-cpp正在CPU上运行模型。解决按照“GPU服务”部分启动llama-server并确保端口默认8088可访问。设置CLAWMEM_EMBED_URLhttp://localhost:8088。可能原因2使用了大型嵌入模型如zembed-1但VRAM不足导致频繁使用系统内存交换。解决换用更小的模型如EmbeddingGemma-300M或使用云嵌入API。可能原因3首次运行node-llama-cpp需要下载模型网络慢。解决耐心等待或手动提前下载好GGUF模型文件并将其路径设置为CLAWMEM_EMBED_MODEL_PATH。5.2 检索效果与性能调优问题3检索到的内容不相关或者漏掉了我知道存在的关键文档。排查使用clawmem query 你的查询 --verbose命令查看详细的检索过程日志包括BM25得分、向量得分、融合后的得分以及重排序后的最终得分。可能原因1文档分块chunking策略不合适。默认策略可能将连贯的代码或文档切碎。解决在config.yaml中为特定集合调整chunk_size和chunk_overlap参数。对于代码文件可以考虑按函数或类进行分块。可能原因2嵌入模型不适合你的语料。例如纯英文模型处理中文内容效果差。解决对于多语言内容考虑使用granite-embedding-278m-multilingual模型并记得设置CLAWMEM_EMBED_MAX_CHARS1100因其上下文窗口较小。可能原因3记忆库中“噪声”文档太多如自动生成的日志、临时文件稀释了相关文档的分数。解决优化集合的pattern和ignore规则排除无关文件。使用clawmem collection update更新配置后重新索引。可能原因4查询本身太模糊或太简短。解决尝试使用更具体、包含更多关键词的查询。或者利用intent_search工具明确指定搜索意图。问题4context-surfacing注入的上下文太多占用了大量提示token。排查ClawMem会根据配置的profilespeed/balanced/deep自动限制注入的token数量。检查当前使用的profile。解决切换到speed模式它会注入最少的上下文。在config.yaml中全局调整max_context_tokens参数。更精细地在集合级别或通过钩子参数设置max_tokens。例如在Claude Code的钩子配置中如果支持可以进行调整。确保你的文档内容简洁。ClawMem会提取文档中的“片段”snippets冗长的文档会产生更长的片段。5.3 系统维护与数据管理问题5SQLite数据库文件index.sqlite越来越大。排查这是正常的因为不断有新的观察记录和嵌入向量存入。解决启用归档策略在config.yaml中配置archive策略自动将长时间未访问的低分文档移出主索引。运行清理clawmem cleanup --orphaned-embeddings可以删除那些因源文件被删除或修改而孤立的嵌入向量。手动审查使用clawmem list-documents --limit 100 --sort score查看低分文档考虑是否手动删除或归档。数据库维护定期对SQLite执行VACUUM命令先停止ClawMem服务可以回收空间但注意这是一个重量级操作。问题6如何备份和迁移ClawMem记忆库备份直接复制~/.cache/clawmem/index.sqlite文件即可。这是单个文件包含了所有记忆、索引和配置部分配置在~/.config/clawmem/下。迁移将备份的.sqlite文件放到新机器的相同路径下。注意如果新机器的嵌入模型与旧机器不同例如从zembed-1换成了EmbeddingGemma那么所有的向量嵌入都将失效需要重新运行clawmem embed --all来重新生成嵌入。模型一致则无需此操作。问题7升级ClawMem版本后某些功能不工作或报错。标准流程首先查看项目根目录下的RELEASE_NOTES.md和docs/guides/upgrading.md其中包含了版本特定的升级说明。常见操作对于主要版本升级如0.7.x - 0.8.0通常需要运行clawmem reindex --enrich来为现有文档重新运行A-MEM enrichment管道以支持新功能。对于次要版本升级通常不需要。数据库迁移ClawMem使用CREATE TABLE IF NOT EXISTS和ALTER TABLE ADD COLUMN IF NOT EXISTS来管理架构通常会自动适应。但如果遇到奇怪的错误可以尝试重命名旧的.sqlite文件重新bootstrap一个全新的记忆库作为排查步骤。5.4 高级功能与故障排除问题8llama-server进程崩溃或返回奇怪的嵌入/重排序结果。排查检查llama-server的日志。对于zembed-1/zerank-2确保启动参数中-ubunbatch与-bbatch大小一致。可能原因VRAM不足导致模型加载失败或推理出错。解决减少-nglGPU层数参数将更多层卸载到CPU或者换用更小的量化版本如Q4_K_S代替Q4_K_M或者直接换用更小的模型组合方案二。问题9想使用远程机器上的GPU服务器。配置在运行ClawMem的机器上设置环境变量export CLAWMEM_EMBED_URLhttp://gpu-server-ip:8088 export CLAWMEM_LLM_URLhttp://gpu-server-ip:8089 export CLAWMEM_RERANK_URLhttp://gpu-server-ip:8090 export CLAWMEM_NO_LOCAL_MODELStrue # 重要防止网络不通时自动下载本地模型网络确保防火墙允许从ClawMem主机到GPU服务器对应端口的访问。问题10ClawMem与OpenClaw的Active Memory插件冲突吗答案不冲突。从OpenClaw v2026.4.10开始ClawMem作为memory插件和Active Memory作为context-engine插件可以共存。它们被设计为互补ClawMem负责长期的、跨会话的、基于检索的记忆Active Memory负责会话内的、基于压缩/整理的活跃上下文管理。它们向提示的不同区域注入内容因此不会相互覆盖。你可以在OpenClaw的配置中同时启用两者。