Skip to content

Daily summariser agent: extract facts from conversation and write to session memory #42

@djthorpe

Description

@djthorpe

Overview

A scheduled summariser agent runs periodically (e.g. hourly or at end-of-day) against the session's conversation history. It extracts structured facts — decisions made, preferences stated, tasks completed, open threads — and writes them into the session memory store (see #41). This gives the assistant a persistent, queryable knowledge layer that survives context window compaction.

This is distinct from context compaction (#19), which manages what fits in the current prompt. The summariser is about building durable knowledge, not just summarising for space.

Behaviour

  • Runs as a trigger on a configurable schedule (e.g. hourly, or triggered at end of an active conversation window)
  • Reads the conversation history since the last summariser run
  • Extracts structured facts using a one-shot agent prompt
  • Writes extracted facts as files into the session memory store (e.g. facts/YYYY-MM-DD.json)
  • Updates a running facts/index.json manifest so the assistant can query what's known without reading all fact files

Fact schema

Each extracted fact should carry enough structure to be useful:

  • type — category (preference, decision, task_completed, open_thread, person, etc.)
  • content — the fact itself in plain language
  • confidence — high / medium / low
  • source_date — when the conversation segment occurred
  • extracted_at — when the summariser ran

Integration with session memory (#41)

  • Fact files are written into the session filestore under a facts/ prefix
  • The assistant can use file_list and file_read tools to retrieve facts on demand
  • The index file provides a lightweight lookup without loading all facts
  • Semantic search over fact content can be added later as a memory_search tool

Prompt design

The summariser agent prompt should:

  • Instruct the model to extract only verifiable, concrete facts (not inferences)
  • Avoid duplicating facts already present in the index
  • Output structured JSON matching the fact schema above
  • Be conservative — better to miss a fact than to hallucinate one

Notes

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions