Won

Won es para quien lee la memoria.

La mayor parte de esta API responde con memoria. Won responde sobre ella: cuánto se ha reescrito de un store y hasta dónde se puede confiar en él. Está pensado para el lado que lee, normalmente el asistente que estás construyendo, y no para la persona de la que hablan las memorias.

Wontopos es Won + Topos, un solo lugar donde vive la memoria. Won es la parte de ese lugar que informa sobre la memoria en vez de devolverla. Estas llamadas son gratuitas, de solo lectura, y nunca tocan la recuperación: preguntar no le cuesta nada a tu usuario y no cambia nada de lo que está recordado.

Lo que hay disponible ahora

Por ahora, una sola llamada.

LlamadaQué hace
POST /won/revisionsCuánto se ha modificado este store desde que se escribió. Dos números y dos frases que los explican.

Un ejemplo resuelto

Use la proporción, no el recuento en bruto. 3 de 40 y 30 de 40 requieren un tratamiento distinto.

r = mem.revisions()
# {"revised": 3, "total": 40, "counts": "…", "excludes": "…"}

if r["revised"] / r["total"] > 0.1:
    system += "Some of what you remember here has been corrected since."
const r = await mem.revisions();
// { revised: 3, total: 40, counts: "…", excludes: "…" }

if (r.revised / r.total > 0.1) {
  system += "Some of what you remember here has been corrected since.";
}
let r = mem.revisions(None).await?;
let (rev, tot) = (r["revised"].as_f64().unwrap_or(0.0),
                r["total"].as_f64().unwrap_or(1.0));
if rev / tot > 0.1 { /* say so in the system prompt */ }
curl -X POST https://api.wontopos.com/api/v1/won/revisions \
  -H "X-API-Key: $WOS_KEY" -H "Content-Type: application/json" \
  -d '{"user_id":"alice"}'

# → {"user_id":"alice","revised":3,"total":40,
#     "counts":"memories a transform has touched (supersede, update, retract, image removed)",
#     "excludes":"deletions — a deleted memory leaves nothing to count"}

counts y excludes se devuelven como frases y no como banderas, porque quien llama suele ser un modelo. Las eliminaciones no se cuentan.

Precio y límites

ReglaValor
PrecioNinguno. Las llamadas gratuitas se saltan los controles de facturación - sin cargo por tokens, sin tarifa por solicitud y sin registro de uso.
Por minuto10 por minuto, por cuenta y por endpoint. Gastar el minuto de un endpoint no gasta el de otro.
Por hora300 por hora, por cuenta, compartidas por todas las llamadas gratuitas. Este límite ignora la ruta, así que añadir endpoints gratuitos no eleva el total que una cuenta puede gastar.
Frente al tráfico de pagoSeparados en ambos sentidos. Estas llamadas no pueden ralentizar sus búsquedas y sus búsquedas no pueden agotar estas. Las claves de una misma cuenta comparten los contadores, así que tener más claves no multiplica el cupo.

Ambos techos responden 429 con Retry-After en segundos y un mensaje que nombra cuál de los dos se ha alcanzado.

429 rate_limit_error
Retry-After: 41

{ "error": { "type": "rate_limit_error",
    "message": "This endpoint is free and limited to 10 requests per
                minute, counted per endpoint. Retry in 41s." } }
La misma llamada responde también en /api/v1/memory/revisions, para clientes publicados antes de que existiera la superficie Won. Es el mismo manejador y el mismo presupuesto, no un segundo cupo. El código nuevo debe usar la dirección Won.