Skip to main content

Schéma de début de session

La séquence canonique de début de session que tout agent LLM devrait suivre.


Schéma de début de session

Chaque session d'agent LLM devrait suivre cette séquence canonique de démarrage. Sauter des étapes mène à un contexte perdu, des messages manqués et des tâches oubliées.

Le schéma

1. Recall all memories
2. Poll for unread chat messages
3. Check in-progress tasks
4. Build context from results
5. Process pending items before new work

Implémentation

Étape 1 : rappeler toutes les mémoires

C'est l'appel le plus important. Sans lui, vous n'avez aucune mémoire des sessions passées.
curl -H "Authorization: Bearer YOUR_MIND_KEY" \
     https://synapse.schaefer.zone/memory/recall

Renvoie un résumé en texte brut de toutes les mémoires, trié par priorité.

Étape 2 : polliner les messages chat non lus

curl -H "Authorization: Bearer YOUR_MIND_KEY" \
     https://synapse.schaefer.zone/chat/poll

Renvoie les messages non lus de l'humain. Les marque automatiquement comme lus.

Étape 3 : vérifier les tâches en cours

curl -H "Authorization: Bearer YOUR_MIND_KEY" \
     "https://synapse.schaefer.zone/mind/tasks?status=in_progress"

Renvoie les tâches sur lesquelles vous travailliez à la dernière session.

Étape 4 : construire le contexte

Combinez les trois réponses dans votre prompt système :

def build_context(memories, messages, tasks):
    context = f"""# SESSION CONTEXT

## Memories (from previous sessions)
{memories}

## Unread Messages from Human
{format_messages(messages)}

## Active Tasks
{format_tasks(tasks)}

## Instructions
- Address unread messages first
- Resume active tasks before starting new work
- Store new learnings as they happen (POST /memory)
- Poll for new messages every 30-60 seconds
"""
    return context

Étape 5 : traiter les éléments en attente

For each unread message:
  - Acknowledge receipt (POST /chat/reply)
  - Address the message content
  - Store any new commitments as memories

For each in-progress task:
  - Recall why you were working on it
  - Continue from where you left off
  - Update task status as you progress

Exemple complet

import os
import requests

URL = "https://synapse.schaefer.zone"
KEY = os.environ["SYNAPSE_MIND_KEY"]

def session_start():
    """Canonical session start sequence."""
    headers = {"Authorization": f"Bearer {KEY}"}
    
    # 1. Rappeler les mémoires
    r = requests.get(f"{URL}/memory/recall", headers=headers)
    memories = r.text
    
    # 2. Polliner le chat
    r = requests.get(f"{URL}/chat/poll", headers=headers)
    messages = r.json().get("messages", [])
    
    # 3. Vérifier les tâches
    r = requests.get(f"{URL}/mind/tasks?status=in_progress", headers=headers)
    tasks = r.json().get("tasks", [])
    
    # 4. Construire le contexte
    context = f"""You are a Synapse-enabled AI assistant.

MEMORIES FROM PREVIOUS SESSIONS:
{memories}

UNREAD MESSAGES FROM HUMAN:
{chr(10).join(f'- {m["content"]}' for m in messages) or 'None'}

ACTIVE TASKS:
{chr(10).join(f'- [{t["id"]}] {t["title"]}: {t.get("description", "")}' for t in tasks) or 'None'}

INSTRUCTIONS:
1. Acknowledge each unread message
2. Resume active tasks
3. Store new learnings via POST /memory
4. Poll /chat/poll every 30-60 seconds
"""
    return context

# Au début de session
system_prompt = session_start()
# Passer au LLM...

Erreurs courantes

Variations

Schéma minimal (LLM à faible contexte)

Pour les LLM avec de petites fenêtres de contexte, sautez le rappel complet :

# Juste obtenir les stats, pas le contenu complet
curl -H "Authorization: Bearer $KEY" .../memory/stats

Puis recherchez des sujets spécifiques au besoin :

curl -H "Authorization: Bearer $KEY" ".../memory/search?q=current+project"

Schéma agressif (agents longue durée)

Pour les agents qui tournent pendant des heures, ajoutez un re-rappel périodique :

while working:
    if time.time() - last_recall > 3600:  # toutes les heures
        memories = recall()
        last_recall = time.time()
    # ... do work ...

Prochaines étapes