Skip to content

Conversation capture improvements: summarize before indexing #7

@bm-clawd

Description

@bm-clawd

Context

Current auto-capture (hooks/capture.ts) dumps raw user+assistant text into daily conversation notes. This floods the knowledge graph with low-signal content and makes search noisy.

Problems

  • Raw conversation text is mostly noise (greetings, thinking out loud, tool output)
  • Daily conversation notes get huge and aren't useful to search against
  • No extraction of decisions, insights, or action items
  • Frontmatter double-write issue noted in TODO-1.0

What this should do instead

  1. Summarize the conversation turn before indexing (extract key decisions, insights, todos)
  2. Extract structured observations (decisions, insights, tasks, preferences)
  3. Skip low-value turns (heartbeats, simple acknowledgments, tool-only turns)
  4. Create meaningful notes with proper titles based on content, not just timestamps

Implementation

  • Use a lightweight LLM call to summarize/extract (or structured prompting)
  • Or: use basic-memory's own observation extraction from markdown
  • Filter: skip turns under N chars, skip heartbeat responses, skip tool-only turns
  • Write observations as proper BM notes with categories and relations

Example

Instead of dumping:

**User:** check my email
**Assistant:** You have 13 unread emails... [200 lines of output]

Write:

# Email Check - 2026-02-10 16:47
- [observation] 13 unread emails, nothing urgent
- [observation] Tigris Data replied about S3 bucket notifications
- [observation] Joe P. completed a Basecamp todo

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions