Skip to main content

Sessiestart-patroon

De canonieke sessiestart-sequentie die elke LLM-agent moet volgen.


Sessiestart-patroon

Elke LLM-agent-sessie moet deze canonieke opstartsequentie volgen. Stappen overslaan leidt tot verloren context, gemiste berichten en vergeten taken.

Het patroon

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

Implementatie

Stap 1: Alle herinneringen ophalen

Dit is de belangrijkste aanroep. Zonder deze heeft u geen geheugen van eerdere sessies.
curl -H "Authorization: Bearer YOUR_MIND_KEY" \
     https://synapse.schaefer.zone/memory/recall

Retourneert platte-tekst samenvatting van alle herinneringen, gesorteerd op prioriteit.

Stap 2: Poll voor ongelezen chatberichten

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

Retourneert ongelezen berichten van de mens. Markeert ze automatisch als gelezen.

Stap 3: Controleer lopende taken

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

Retourneert taken waaraan u in de laatste sessie werkte.

Stap 4: Bouw context

Combineer de drie responsen in uw system prompt:

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

Stap 5: Verwerk in behandeling zijnde items

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

Volledig voorbeeld

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. Recall memories
    r = requests.get(f"{URL}/memory/recall", headers=headers)
    memories = r.text
    
    # 2. Poll chat
    r = requests.get(f"{URL}/chat/poll", headers=headers)
    messages = r.json().get("messages", [])
    
    # 3. Check tasks
    r = requests.get(f"{URL}/mind/tasks?status=in_progress", headers=headers)
    tasks = r.json().get("tasks", [])
    
    # 4. Build context
    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

# At session start
system_prompt = session_start()
# Pass to LLM...

Veelvoorkomende fouten

Variaties

Minimaal patroon (low-context LLM's)

Voor LLM's met kleine contextvensters, sla de volledige recall over:

# Just get stats, not full content
curl -H "Authorization: Bearer $KEY" .../memory/stats

Zoek dan naar specifieke onderwerpen indien nodig:

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

Agressief patroon (langlopende agents)

Voor agents die uren draaien, voeg periodieke re-recall toe:

while working:
    if time.time() - last_recall > 3600:  # every hour
        memories = recall()
        last_recall = time.time()
    # ... do work ...

Volgende stappen