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_core 的对接
Section titled “与 claw_core 的对接”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_start与collect_stage_note,用于结构化记忆自动抽取流程。
长期记忆文件布局
Section titled “长期记忆文件布局”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 两种时间尺度的记忆设计:会话历史与长期记忆的设计理念与使用建议