aeonaeon

Memory

How Aeon persists agent state, daily logs, topic notes, failure issues, and run metrics as git-committed files.

Aeon stores all state as plain Markdown and JSON files inside memory/, read at the start of a run and committed back to git on exit.

Five Memory Layers

PathPurposeRetention
memory/MEMORY.mdCurated index of goals, active topics, and file pointersLong-lived, kept under 8 KB
memory/topics/*.mdDeep notes split out by topicLong-lived
memory/logs/YYYY-MM-DD.mdAppend-only daily activity log across all skillsPermanent
memory/issues/ISS-NNN.mdStructured failure reports opened by health skillsUntil resolved
memory/skill-health/*.jsonRolling 30-run quality scores and error flags per skillRolling 30 runs

Operating Rules

  • Read on entry: Every skill reads memory/MEMORY.md first to align with current goals and active topics.
  • Log on exit: Skills append a summary entry to memory/logs/$(date +%F).md.
  • Promote details: Once a topic outgrows a few lines in MEMORY.md, details move into memory/topics/<name>.md.
  • Automatic compaction: memory-flush promotes durable facts from daily logs into MEMORY.md with [source: ...] citations, prunes stale entries, and skips execution when no logs have changed.

cron-state.json

memory/cron-state.json tracks per-skill run counts, consecutive failures, success rates, and the latest quality score. heartbeat, skill-health, and reactive triggers read this file to detect regressions:

{
  "digest": {
    "last_status": "success",
    "last_success": "2026-05-28T07:00:21Z",
    "total_runs": 30,
    "total_successes": 29,
    "consecutive_failures": 0,
    "success_rate": 0.97,
    "last_quality_score": 4
  },
  "monitor-polymarket": {
    "last_status": "failed",
    "last_failed": "2026-05-28T06:45:08Z",
    "total_runs": 9,
    "total_failures": 2,
    "consecutive_failures": 2,
    "success_rate": 0.78,
    "last_quality_score": 1,
    "last_error": "api_error: 429 rate_limited"
  }
}

On this page