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 workImplementaçã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/recallRetorna 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/pollRetorna 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 contextPasso 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 progressExemplo 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/statsEntã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 ...