# Wzorzec początku sesji Każda sesja agenta LLM powinna podążać za kanoniczną sekwencją startową. Pominięcie kroków prowadzi do utraty kontekstu, przeoczenia wiadomości i zapomnienia zadań. ## Wzorzec ``` 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 ``` ## Implementacja ### Krok 1: recall wszystkich wspomnień > [!CRITICAL] > To najważniejsze wywołanie. Bez niego agent nie ma pamięci przeszłych sesji. ```bash curl -H "Authorization: Bearer YOUR_MIND_KEY" \ https://synapse.schaefer.zone/memory/recall ``` Zwraca tekstowe podsumowanie wszystkich wspomnień, posortowane po priorytecie. ### Krok 2: odpytanie o nieprzeczytane wiadomości czatu ```bash curl -H "Authorization: Bearer YOUR_MIND_KEY" \ https://synapse.schaefer.zone/chat/poll ``` Zwraca nieprzeczytane wiadomości od człowieka. **Automatycznie oznacza je jako przeczytane.** ### Krok 3: sprawdzenie zadań w toku ```bash curl -H "Authorization: Bearer YOUR_MIND_KEY" \ "https://synapse.schaefer.zone/mind/tasks?status=in_progress" ``` Zwraca zadania, nad którymi pracowano w ostatniej sesji. ### Krok 4: budowa kontekstu Połączyć trzy odpowiedzi w system prompt: ```python 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 ``` ### Krok 5: przetworzenie oczekujących elementów ``` 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 ``` ## Pełny przykład ```python 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 wspomnień r = requests.get(f"{URL}/memory/recall", headers=headers) memories = r.text # 2. Odpytanie czatu r = requests.get(f"{URL}/chat/poll", headers=headers) messages = r.json().get("messages", []) # 3. Sprawdzenie zadań r = requests.get(f"{URL}/mind/tasks?status=in_progress", headers=headers) tasks = r.json().get("tasks", []) # 4. Budowa kontekstu 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 # Na początku sesji system_prompt = session_start() # Przekazać do LLM... ``` ## Częste błędy > [!WARNING] > - **Pomijanie recall** — start bez kontekstu, powtarzanie przeszłych błędów > - **Zapominanie o odpytaniu czatu** — wiadomości człowieka pozostają bez odpowiedzi > - **Ignorowanie aktywnych zadań** — praca zostaje zapomniana w połowie wykonania > - **Brak zapisów** — sesja nie tworzy trwałej wartości ## Wariacje ### Wzorzec minimalny (LLM z małym kontekstem) Dla LLM z małymi oknami kontekstu pominąć pełny recall: ```bash # Tylko statystyki, nie pełna treść curl -H "Authorization: Bearer $KEY" .../memory/stats ``` Następnie wyszukiwać konkretne tematy w razie potrzeby: ```bash curl -H "Authorization: Bearer $KEY" ".../memory/search?q=current+project" ``` ### Wzorzec agresywny (agenty długotrwałe) Dla agentów uruchomionych przez wiele godzin dodać okresowy ponowny recall: ```python while working: if time.time() - last_recall > 3600: # co godzinę memories = recall() last_recall = time.time() # ... do work ... ``` ## Następne kroki - [Strategia tagowania pamięci](/docs/llm-cookbook/memory-tagging-strategy) - [Przepływ oparty na zadaniach](/docs/llm-cookbook/task-driven-workflow) - [Wzorzec odpytywania czatu](/docs/llm-cookbook/chat-polling-pattern)