Inicio rápido

Tu primer recall en 5 minutos.

Una clave, una línea de instalación, tres llamadas - tu agente ya tiene memoria. Cada fragmento de esta página se ejecutó de verdad; las respuestas se muestran textualmente.

1

Obtén una clave de API

Crea una en la consola. Una clave de 155 caracteres que empieza con wos-live- se muestra una sola vez. Guárdala en una variable de entorno - nunca en el código.

2

Instalar

pip install wontopos        # Python
npm install wontopos        # TypeScript / JavaScript
cargo add wontopos          # Rust
# curl - nothing to install, just set WOS_API_KEY
# latest: SDK v2.2.37 · MCP v1.0.19
3

Crea un store, luego almacena & recupera

Un store es el user_id bajo el cual lees y escribes. Los stores son explícitos: crea uno primero (la llamada de abajo), luego almacena y recupera bajo él. Store - indexado al entrar, sin llamada a LLM. Recall - corto plazo + largo plazo + contexto en un solo viaje de ida y vuelta.

from wontopos import Client

mem = Client(api_key="wos-live-...", user_id="alice")  # set the store once
mem.create_store()              # create it (stores are explicit)
mem.add("she prefers tea over coffee")  # no user_id needed

# one call → short-term + long-term + context
ctx = mem.recall("what does alice drink?")
import { Client } from "wontopos";

const mem = new Client({ apiKey: "wos-live-...", userId: "alice" });  // set the store once
await mem.createStore();            // create it (stores are explicit)
await mem.add("she prefers tea over coffee");  // no userId needed

// one call → short-term + long-term + context
const ctx = await mem.recall("what does alice drink?");
use wontopos::Client;

let mem = Client::new("wos-live-...").with_user("alice");  // set the store once
mem.create_store(None).await?;            // create it (stores are explicit)
mem.add("she prefers tea over coffee", None, json!({})).await?;

// one call → short-term + long-term + context
let ctx = mem.recall("what does alice drink?", None).await?;
# create the store once - stores are explicit
curl -X POST https://api.wontopos.com/api/v1/memory/collection \
  -H "X-API-Key: $WOS_API_KEY" -H "Content-Type: application/json" \
  -d '{"user_id":"alice"}'

# store - indexed on the way in, no LLM call
curl -X POST https://api.wontopos.com/api/v1/memory/store \
  -H "X-API-Key: $WOS_API_KEY" -H "Content-Type: application/json" \
  -d '{"user_id":"alice","content":"she prefers tea over coffee"}'

# one call → short-term + long-term + context
curl -X POST https://api.wontopos.com/api/v1/memory/recall \
  -H "X-API-Key: $WOS_API_KEY" -H "Content-Type: application/json" \
  -d '{"user_id":"alice","query":"what does alice drink?"}'
Respuesta real - create_store()
{"user_id": "alice", "status": "created"}
Respuesta real - add()
{"id": "576700aa-f0e0-4c26-99a0-10e2d5b0d624", "status": "stored (1 chunks)"}
Configura el store una vez. Pasa user_id al cliente y todas las llamadas lo usarán - no hace falta repetirlo; anula una llamada puntual pasándole user_id. Los stores son explícitos: almacenar en o recuperar de un store que no existe devuelve 404 - créalo primero. Toda cuenta empieza con un store default, así que sin ningún user_id la ruta sin configuración simplemente funciona. Consulta Stores para listarlos y administrarlos.

recall() devuelve cuatro bloques - short_term (turnos recientes), long_term (memorias relevantes), context (lo que rodeaba a la mejor coincidencia) y una instruction que le dice al LLM cómo usarlos. Inserta el conjunto completo en tu prompt.

Funciona en cualquier idioma. Almacena en inglés, pregunta en coreano, japonés o chino - vuelve la misma memoria. 95,2 % de recall@5 en 70 pares de idiomas.

Todos los métodos, por lenguaje →

Un solo cliente, distintos ajustes

mem = Client.from_env()                 # reads WONTOPOS_API_KEY
scroll = mem.with_model("scroll-1.2")  # this copy only: another engine
alice  = mem.with_user("alice")       # this copy only: another default store
const alice = mem.withUser("alice");
const scroll = mem.withModel("scroll-1.2");
let alice = mem.with_user("alice");
let scroll = mem.with_model("scroll-1.2");
# curl has no copies — send model and user_id with each request
curl ... -d '{"user_id":"alice","model":"scroll-1.2","query":"…"}'