Skip to main content

Padrão de início de sessão

A sequência canônica de início de sessão que todo agente LLM deve seguir.


Padrão de início de sessão

Toda sessão de agente LLM deve seguir esta sequência canônica de inicialização. Pular passos leva a contexto perdido, mensagens perdidas e tarefas esquecidas.

O padrão

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

Implementação

Passo 1: recupere todas as memórias

Esta é a chamada mais importante. Sem ela, você não tem memória de sessões passadas.
curl -H "Authorization: Bearer YOUR_MIND_KEY" \
     https://synapse.schaefer.zone/memory/recall

Retorna um resumo em texto puro de todas as memórias, ordenado por prioridade.

Passo 2: faça poll por mensagens de chat não lidas

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

Retorna mensagens não lidas do humano. Automaticamente as marca como lidas.

Passo 3: verifique tarefas em andamento

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

Retorna tarefas em que você estava trabalhando na última sessão.

Passo 4: construa o contexto

Combine as três respostas no seu prompt de sistema:

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

Passo 5: processe itens pendentes

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

Exemplo completo

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...

Erros comuns

Variações

Padrão mínimo (LLMs de contexto baixo)

Para LLMs com janelas de contexto pequenas, pule o recall completo:

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

Então busque tópicos específicos conforme necessário:

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

Padrão agressivo (agentes de longa duração)

Para agentes que rodam por horas, adicione re-recall periódico:

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

Próximos passos