mem_session_start
Firma
mem.mem_session_start(user_id: str) -> SessionStartResponse
Inicia una nueva sesión o reusa una existente no expirada para user_id. En cualquier caso devolvés el session_id activo, los summaries de las sesiones recientes y las memorias previas más relevantes (rankeadas con ContextScore).
nota
Reuso de sesión: si el user ya tiene una sesión activa dentro de la ventana session_timeout_hours, esta llamada la devuelve (is_new=False). El last_activity_at de la sesión reusada se toca, así el timeout se reinicia desde este handshake.
Parámetros
| Parámetro | Tipo | Requerido | Descripción |
|---|---|---|---|
user_id | str | sí | Identificador del user cuya sesión se inicia o reusa. Estable a través de sesiones. |
Returns
SessionStartResponse (modelo Pydantic frozen):
session_id(str) — identificador de la sesión activa.is_new(bool) —Truesi se abrió una sesión fresca,Falsesi se reusó una existente.sessions_context(list[SessionSummaryCompact]) — hasta 5 summaries de sesiones pasadas recientes.memories(list[ObservationCompact]) — hasta 10 observaciones recientes por sesión, rankeadas conContextScore.
aviso
El score que viene en memories[] se computa con ContextScore y no es comparable con el score de los resultados de mem_search (que usa SearchScore). Fórmulas distintas, escalas distintas — ver Conceptos: Scoring.
Ejemplos
- Primera llamada (sesión nueva)
- Llamada subsiguiente (reuso)
- Hidratar UI desde el contexto
response = mem.mem_session_start(user_id="alice")
print(response.session_id) # ej. "9f3c..."
print(response.is_new) # True
print(len(response.memories)) # 0 en una base limpia
# Dentro de session_timeout_hours, se devuelve la misma sesión
response = mem.mem_session_start(user_id="alice")
print(response.is_new) # False — reusada
print(len(response.memories)) # las observaciones previas aparecen acá
response = mem.mem_session_start(user_id="alice")
for past in response.sessions_context:
print(f"[{past.date}] {past.summary[:80]}")
for memory in response.memories:
print(f" - ({memory.type}) {memory.title} score={memory.score:.2f}")