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
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions