Skip to main content

Patrón de inicio de sesión

La secuencia canónica de inicio de sesión que todo agente LLM debería seguir.


Patrón de inicio de sesión

Cada sesión de agente LLM debería seguir esta secuencia canónica de arranque. Omitir pasos lleva a perder contexto, mensajes perdidos y tareas olvidadas.

El patrón

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

Implementación

Paso 1: Recuperar todas las memorias

Esta es la llamada más importante. Sin ella, no tiene memoria de sesiones pasadas.
curl -H "Authorization: Bearer YOUR_MIND_KEY" \
     https://synapse.schaefer.zone/memory/recall

Devuelve un resumen en texto plano de todas las memorias, ordenadas por prioridad.

Paso 2: Poll de mensajes de chat no leídos

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

Devuelve los mensajes no leídos del humano. Los marca automáticamente como leídos.

Paso 3: Comprobar tareas en progreso

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

Devuelve las tareas en las que estaba trabajando en la última sesión.

Paso 4: Construir contexto

Combine las tres respuestas en su prompt del 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

Paso 5: Procesar elementos pendientes

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

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

Errores comunes

Variaciones

Patrón mínimo (LLMs con poco contexto)

Para LLMs con ventanas de contexto pequeñas, omita el recall completo:

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

Luego busque temas específicos según sea necesario:

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

Patrón agresivo (agentes de larga duración)

Para agentes que se ejecutan durante horas, añada re-recall periódico:

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

Próximos pasos