跳转到内容

Memory Manager

头文件:claw_memory.hcomponents/claw_modules/claw_memory/include/claw_memory.h

claw_memory_config_t 的常见字段:

字段说明edge_agent 默认值
session_root_dir会话历史文件的根目录/fatfs/sessions
memory_root_dir长期记忆目录路径(claw_memory 在此目录下管理 MEMORY.md 及结构化记忆文件)/fatfs/memory
max_message_chars单条消息的最大字符数4096
max_tool_iterations最大工具调用迭代次数(与 claw_core 保持一致)32
enable_async_extract_stage_note是否启用结构化记忆异步抽取阶段说明完整模式下为 true

Session history 现在使用 append-only 数据文件和同名 .idx 索引文件。加载时读取完整有效索引;只有在 assistant final 完成后且数据文件超过 session size limit 时,才会压缩较旧的工具调用细节。

claw_memory 通过多个 Context Providers 与 Callback 接入 claw_core

Context Providers(在 claw_core_init 后依次注册):

  • claw_memory_profile_provider:注入可编辑的人设与用户画像文件(user.md / soul.md / identity.md)。
  • claw_memory_long_term_provider(完整模式):仅注入长期记忆「摘要标签目录」,不直接注入完整记忆正文。
  • claw_memory_long_term_lightweight_provider(轻量模式):直接注入 MEMORY.md 文本。
  • claw_memory_session_history_provider:每次请求前将当前 session 的近期轮次注入上下文。

写回 Callback

  • claw_memory_persist_context_callback:作为 claw_core_config_t.persist_context 传入,将普通轮次、工具轮、最终助手记录和失败说明对应的 typed raw context records 追加写回 session 文件。
  • 完整模式还会启用 on_request_startcollect_stage_note,用于结构化记忆自动抽取流程。

edge_agent 会通过 claw_memory_init/fatfs/memory/ 目录下创建记忆功能所需的文件:

  • 文件夹fatfs/
    • 文件夹memory/
      • memory_records.jsonl 结构化记忆记录
      • memory_index.json 摘要标签与关键词索引
      • memory_digest.log 记忆操作摘要日志
      • MEMORY.md 供人类阅读的记忆视图(只读)
      • user.md 用户画像
      • soul.md 人设
      • identity.md 身份
Memory 两种时间尺度的记忆设计:会话历史与长期记忆的设计理念与使用建议