Memory Manager
头文件:claw_memory.h
claw_memory_config_t 的常见字段:
| 字段 | 说明 | basic_demo 默认值 |
|---|---|---|
session_root_dir | 会话历史文件的根目录 | /fatfs/sessions |
memory_root_dir | 长期记忆目录路径(claw_memory 在此目录下管理 MEMORY.md 及结构化记忆文件) | /fatfs/memory |
max_session_messages | 单个 session 保留的最大消息条数 | 20 |
max_message_chars | 单条消息的最大字符数 | 1024 |
enable_async_extract_stage_note | 是否启用结构化记忆异步抽取阶段说明 | 完整模式下为 true |
max_session_messages 与 max_message_chars 共同控制历史文件的体量,防止在 Flash 上日志式膨胀,同时避免拼入过长的历史而消耗过多 token。
与 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_append_session_turn_callback:作为claw_core_config_t.append_session_turn传入,Agent 完成一轮推理后自动将本轮 user/assistant 文本追加写回对应 session 文件。- 完整模式还会启用
on_request_start与collect_stage_note,用于结构化记忆自动抽取流程。
长期记忆文件布局
Section titled “长期记忆文件布局”basic_demo 会通过 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 两种时间尺度的记忆设计:会话历史与长期记忆的设计理念与使用建议