Long-Running Tasks

Maintain context across sessions for projects that span hours, days, or weeks.

Challenge

Agent sessions restart on:

  • Deployment updates
  • Infrastructure failures
  • Scheduled maintenance
  • Scale-down events

Without persistent memory, context is lost.

Solution


flowchart LR
  S1[Session 1
  Day 1] -->|remember| DB[(Mnemosyne)]
  S2[Session 2
  Day 3] -->|recall| DB
  S3[Session 3
  Day 7] -->|recall| DB
  
  style DB fill:#f0fdf4,stroke:#16a34a

Session Persistence

Use session_id and db_path to persist memory across restarts:

from mnemosyne import Mnemosyne

# Connect to a persistent database with a named session
mem = Mnemosyne(
  session_id="website-redesign",
  db_path="/data/memories.db",
)

# Store progress
mem.remember(
  content="Completed hero section design. User approved color palette.",
  source="conversation",
  importance=0.7,
)

# Store task state
mem.remember(
  content="Next step: implement responsive navigation component.",
  source="task-tracker",
  importance=0.8,
)

Resuming Across Restarts

When your agent restarts, reconnect with the same session_id and db_path:

from mnemosyne import Mnemosyne

# New process — reconnect to the same session
mem = Mnemosyne(
  session_id="website-redesign",
  db_path="/data/memories.db",
)

# Recover context
context = mem.recall("design progress and next steps", top_k=10)
for item in context:
  print(item)

Using Scope for Long-Running Tasks

The scope parameter helps separate temporary vs. permanent memories:

from mnemosyne import Mnemosyne

mem = Mnemosyne(session_id="website-redesign", db_path="/data/memories.db")

# Temporary task context (session-scoped)
mem.remember(
  content="Current CSS file is main.scss in /src/styles.",
  scope="session",
  importance=0.4,
)

# Permanent project knowledge (global)
mem.remember(
  content="Website uses the company design system v3.",
  scope="global",
  importance=0.9,
)

Backup & Recovery

Use the disaster recovery module to protect long-running work:

from mnemosyne.dr.recovery import create_backup, restore_backup

# Create backup before risky operations
create_backup(db_path="/data/memories.db", backup_path="/backups/pre-deploy.bak")

# Restore if needed
restore_backup(backup_path="/backups/pre-deploy.bak", db_path="/data/memories.db")

Deployment Considerations

ConcernSolution
Database persistencePersistent volume for db_path
Backup before deployPre-deploy backup via create_backup()
Migration on upgradeAutomatic schema migration
MonitoringCheck get_stats() for memory count

Example: Weekly Report Agent

from mnemosyne import Mnemosyne

# Runs every Monday at 9 AM
def generate_weekly_report():
  mem = Mnemosyne(
      session_id="weekly-reports",
      db_path="/data/reports.db",
  )
  
  # Recall recent activities
  last_week = mem.recall("project updates decisions", top_k=10)
  
  # Generate report
  report = compile_report(last_week)
  
  # Store report for future reference
  mem.remember(
      content=report.summary,
      source="weekly-report",
      importance=0.7,
  )
  
  return report
Session IDs

Use descriptive session IDs with timestamps: website-redesign-2026-04. This makes manual inspection and debugging much easier.