| name | memory |
| description | Two-layer memory system with Dream-managed knowledge files. |
| always | true |
Memory
Structure
Static files (workspace root):
SOUL.md — Bot personality. Static; do NOT edit.
USER.md — User profile (name, language, region). Set during fincat onboard --wizard; do NOT edit.
Dream-generated:
memory/memory.md — LLM summary of all category files. Auto-regenerated nightly. Do NOT edit.
Category files (managed by Dream):
memory/profile/ — 用户画像
memory/preferences/ — 用户偏好
memory/knowledge/ — 产品知识
memory/behavioral_insights/ — 行为洞察
memory/compliance/ — 合规规则
memory/custom/ — 对话案例 + Dream 自动发现的新类别
History:
memory/history.jsonl — Consolidator 摘要,append-only JSONL
Search Past Events
memory/history.jsonl is JSONL format — each line is a JSON object with cursor, timestamp, content.
- For broad searches, start with
grep(..., path="memory", glob="*.jsonl", output_mode="count") or the default files_with_matches mode before expanding to full content
- Use
output_mode="content" plus context_before / context_after when you need the exact matching lines
- Use
fixed_strings=true for literal timestamps or JSON fragments
- Use
head_limit / offset to page through long histories
- Use
exec only as a last-resort fallback when the built-in search cannot express what you need
Examples (replace keyword):
grep(pattern="keyword", path="memory/history.jsonl", case_insensitive=true)
grep(pattern="2026-04-02 10:00", path="memory/history.jsonl", fixed_strings=true)
grep(pattern="keyword", path="memory", glob="*.jsonl", output_mode="count", case_insensitive=true)
grep(pattern="oauth|token", path="memory", glob="*.jsonl", output_mode="content", case_insensitive=true)
Important
- Do NOT edit SOUL.md, USER.md, or memory/memory.md. SOUL.md and USER.md are static; memory.md is auto-generated by Dream.
- If you notice outdated information in category files, it will be corrected when Dream runs next.
- Users can view Dream's activity with the
/dream-log command.