EverMemory
EverMemory is the deterministic memory plugin for OpenClaw. It gives the agent persistent memory, user understanding, and governed self-improvement without hiding the storage or decision process.
What to do first
- - When the user is new to EverMemory, start with onboarding.
- When the user asks to remember something important, store it with an explicit kind.
- When the user asks for prior context, recall before answering.
- When the user asks for debugging, auditing, cleanup, backup, or recovery, use the governance and IO tools instead of guessing.
Core model
Layer 1: Memory
- - Store durable facts, decisions, preferences, constraints, lessons, and project context.
- Recall by keyword, structured filters, or hybrid retrieval.
- Archive stale or superseded memories and restore them with review/apply gates.
Layer 2: Understanding
- - Build a user profile from explicit statements and stable interaction patterns.
- Track behavior rules and preference hints that can shape future responses.
- Generate session briefings so a new session starts with continuity.
Layer 3: Proactivity
- - Extract intent and reflections from interaction history.
- Consolidate duplicate or stale memories.
- Explain why a write, recall, archive, or rule action happened.
Tool map
EverMemory has 16 core capabilities. In the current OpenClaw plugin, 15 are exposed as tool commands, and onboarding is registered as profile_onboard. Smartness exists in the SDK/status layer but is not currently registered as a standalone OpenClaw tool.
| Capability | OpenClaw tool name | When to use |
|---|
| Store memory | INLINECODE1 | User asks to remember a fact, decision, preference, or lesson |
| Recall memory |
evermemory_recall | User asks what happened before, what they prefer, or what was decided |
| Consolidate memory |
evermemory_consolidate | Cleanup, dedupe, archive stale memory |
| Status |
evermemory_status | Inspect counts, DB path, activity, continuity KPIs |
| Smartness report | Not host-registered | Mention as internal/SDK capability, do not invent a tool call |
| Session briefing |
evermemory_briefing | Generate startup continuity context |
| Rules |
evermemory_rules | Read or manage promoted behavior rules |
| Profile |
evermemory_profile | Read or recompute user profile |
| Explainability |
evermemory_explain | Audit why EverMemory wrote, recalled, restored, or promoted something |
| Export |
evermemory_export | Backup memory to snapshot or text export |
| Import |
evermemory_import | Review or apply imported snapshot/text |
| Archive review |
evermemory_review | Inspect archived or superseded items before restore |
| Restore |
evermemory_restore | Recover archived memory with review/apply |
| Intent analysis |
evermemory_intent | Analyze the likely user intent for a message |
| Reflection |
evermemory_reflect | Generate lessons, warnings, or candidate rules |
| Onboarding |
profile_onboard | First-run questionnaire and initial profile setup |
Tool usage guidance
evermemory_store
Use for explicit long-term facts. Prefer concise, high-value content and a correct kind.
Example:
CODEBLOCK0
Store when the user says:
- - "记住这个决定"
- "以后按这个偏好来"
- "这个坑以后别再踩"
evermemory_recall
Use before answering when the user asks about prior context, preferences, constraints, or project continuity.
Example:
CODEBLOCK1
evermemory_status
Use for health checks and operator-style visibility. It returns memory counts, archive counts, profile/rule/reflection state, recent debug activity, and continuity KPIs.
evermemory_briefing
Use at session start or when the user asks for a summary of who they are, current constraints, and active project context.
profile_onboard
Use for first-run setup. Ask the questions, collect answers, then submit them. Do not skip onboarding if no profile exists and the user wants personalized memory behavior.
evermemory_profile
Use to inspect current user understanding. Prefer recompute: true when the user asks for a refreshed profile after many new interactions.
evermemory_rules
Use for behavior rules and guardrails. Prefer read/review paths before mutating rules.
evermemory_explain
Use when the user asks "why did you remember this", "why was this recalled", "why was this archived", or "why did this rule trigger".
evermemory_export and evermemory_import
- - Export for backup or migration.
- Import with
mode: "review" first. - Only use
apply after the user clearly confirms.
evermemory_review and evermemory_restore
- - Review archived memory before restoring.
- Prefer
mode: "review" first. - Restore only the specific IDs the user approves.
evermemory_intent, evermemory_reflect, evermemory_consolidate
Use these as maintenance and self-improvement tools:
- -
evermemory_intent for intent labeling and routing insight. - INLINECODE36 for lessons, warnings, and candidate rules.
- INLINECODE37 for dedupe and stale-memory cleanup.
Recommended workflows
First use
CODEBLOCK2
Remember a decision
CODEBLOCK3
Recall previous context
CODEBLOCK4
Export backup
CODEBLOCK5
Recovery
CODEBLOCK6
Guardrails
- - Do not claim a standalone
evermemory_smartness tool exists unless the host actually registers it. - In the current repository, onboarding is
profile_onboard, not evermemory_onboard. - Prefer
review before apply for import and restore. - Recall before answering if the user explicitly asks about previous decisions, preferences, or history.
- Store only durable, high-signal information. Avoid writing transient chatter as memory.
- When a tool returns governed results, explain them plainly instead of exposing raw internals unless the user asks.
Configuration notes
Common environment variables for semantic retrieval:
- -
EVERMEMORY_EMBEDDING_PROVIDER: local, openai, or INLINECODE46 - INLINECODE47 : local embedding model, default INLINECODE48
- INLINECODE49 : required when the embedding provider uses OpenAI
Common plugin config fields:
- - INLINECODE50
- INLINECODE51
- INLINECODE52
- INLINECODE53
- INLINECODE54
- INLINECODE55
- INLINECODE56
- INLINECODE57
- INLINECODE58
EverMemory
EverMemory 是 OpenClaw 的确定性记忆插件。它为智能体提供持久记忆、用户理解以及受控的自我改进能力,同时不隐藏存储或决策过程。
首先做什么
- - 当用户首次使用 EverMemory 时,从引导流程开始。
- 当用户要求记住重要事项时,使用明确的类型进行存储。
- 当用户询问先前的上下文时,先回忆再回答。
- 当用户要求调试、审计、清理、备份或恢复时,使用治理和 IO 工具,而不是猜测。
核心模型
第一层:记忆
- - 存储持久性事实、决策、偏好、约束、经验教训和项目上下文。
- 通过关键词、结构化筛选或混合检索进行回忆。
- 归档过时或被取代的记忆,并通过审查/应用门控进行恢复。
第二层:理解
- - 根据明确的陈述和稳定的交互模式构建用户画像。
- 跟踪可塑造未来响应的行为规则和偏好提示。
- 生成会话简报,使新会话具有连续性。
第三层:主动性
- - 从交互历史中提取意图和反思。
- 整合重复或过时的记忆。
- 解释写入、回忆、归档或规则操作发生的原因。
工具映射
EverMemory 拥有 16 项核心能力。在当前 OpenClaw 插件中,15 项作为工具命令暴露,引导流程注册为 profile_onboard。智能功能存在于 SDK/状态层,但当前未注册为独立的 OpenClaw 工具。
| 能力 | OpenClaw 工具名称 | 使用时机 |
|---|
| 存储记忆 | evermemorystore | 用户要求记住事实、决策、偏好或经验教训 |
| 回忆记忆 |
evermemoryrecall | 用户询问之前发生了什么、他们的偏好或已做出的决策 |
| 整合记忆 | evermemory_consolidate | 清理、去重、归档过时记忆 |
| 状态 | evermemory_status | 检查计数、数据库路径、活动、连续性 KPI |
| 智能报告 | 未注册到主机 | 作为内部/SDK 能力提及,不要虚构工具调用 |
| 会话简报 | evermemory_briefing | 生成启动连续性上下文 |
| 规则 | evermemory_rules | 读取或管理提升的行为规则 |
| 画像 | evermemory_profile | 读取或重新计算用户画像 |
| 可解释性 | evermemory_explain | 审计 EverMemory 为何写入、回忆、恢复或提升了某项内容 |
| 导出 | evermemory_export | 将记忆备份为快照或文本导出 |
| 导入 | evermemory_import | 审查或应用导入的快照/文本 |
| 归档审查 | evermemory_review | 在恢复前检查已归档或被取代的项目 |
| 恢复 | evermemory_restore | 通过审查/应用恢复已归档的记忆 |
| 意图分析 | evermemory_intent | 分析消息中可能的用户意图 |
| 反思 | evermemory_reflect | 生成经验教训、警告或候选规则 |
| 引导 | profile_onboard | 首次运行问卷和初始画像设置 |
工具使用指南
evermemory_store
用于明确的长期事实。优先使用简洁、高价值的内容和正确的类型。
示例:
json
{
content: 技术决策:用 Vite 替代 Webpack。,
kind: decision
}
当用户说以下内容时进行存储:
evermemory_recall
在回答前使用,当用户询问先前的上下文、偏好、约束或项目连续性时。
示例:
json
{
query: Vite 迁移决策,
limit: 5
}
evermemory_status
用于健康检查和操作员视角的可视化。返回记忆计数、归档计数、画像/规则/反思状态、最近的调试活动以及连续性 KPI。
evermemory_briefing
在会话开始时或用户询问他们是谁、当前约束和活跃项目上下文的摘要时使用。
profile_onboard
用于首次运行设置。提问、收集答案,然后提交。如果不存在画像且用户想要个性化记忆行为,不要跳过引导流程。
evermemory_profile
用于检查当前用户理解。当用户经过多次新交互后要求刷新画像时,优先使用 recompute: true。
evermemory_rules
用于行为规则和护栏。在修改规则前优先使用读取/审查路径。
evermemory_explain
当用户问为什么你记住了这个、为什么这个被回忆了、为什么这个被归档了或为什么这个规则触发了时使用。
evermemoryexport 和 evermemoryimport
- - 导出用于备份或迁移。
- 导入时先使用 mode: review。
- 只有在用户明确确认后才使用 apply。
evermemoryreview 和 evermemoryrestore
- - 在恢复前审查已归档的记忆。
- 优先使用 mode: review。
- 只恢复用户批准的具体 ID。
evermemoryintent、evermemoryreflect、evermemory_consolidate
将这些作为维护和自我改进工具使用:
- - evermemoryintent 用于意图标记和路由洞察。
- evermemoryreflect 用于经验教训、警告和候选规则。
- evermemory_consolidate 用于去重和过时记忆清理。
推荐工作流程
首次使用
text
用户: 开始使用 EverMemory
动作: 调用 profile_onboard
结果: 完成初始化问卷,建立基础画像
记住一个决策
text
用户: 记住我们决定用 Vite 替代 Webpack
动作: 调用 evermemory_store
建议 kind: decision
回忆先前的上下文
text
用户: 回忆一下我们上次怎么定的
动作: 先调用 evermemory_recall,再基于召回结果回答
导出备份
text
用户: 导出所有记忆为 JSON
动作: 调用 evermemory_export,并使用 format=json(OpenClaw 注册层)
恢复
text
用户: 把之前归档掉的 TypeScript 偏好恢复回来
动作: 先调用 evermemoryreview 找候选,再调用 evermemoryrestore
护栏
- - 除非主机实际注册,否则不要声称存在独立的 evermemorysmartness 工具。
- 在当前仓库中,引导流程是 profileonboard,而不是 evermemory_onboard。
- 对于导入和恢复,优先使用 review 再使用 apply。
- 如果用户明确询问之前的决策、偏好或历史,先回忆再回答。
- 只存储持久性、高信号的信息。避免将临时闲聊写入记忆。
- 当工具返回受治理的结果时,用通俗语言解释,除非用户要求,否则不要暴露原始内部信息。
配置说明
语义检索的常见环境变量:
- - EVERMEMORYEMBEDDINGPROVIDER:local、openai 或 none
- EVERMEMORYLOCALMODEL:本地嵌入模型,默认为 Xenova/all-MiniLM-L6-v2
- OPENAIAPIKEY:当嵌入提供程序使用 OpenAI 时需要
常见插件配置字段:
- - databasePath
- bootTokenBudget
- maxRecall
- debugEnabled
- semantic.enabled
- semantic.maxCandidates
- semantic.minScore
- intent.useLLM
- intent.fallbackHeuristics