Won

Won s'adresse à ceux qui lisent la mémoire.

La plus grande partie de cette API répond avec la mémoire. Won répond à propos d'elle : quelle part d'un store a été réécrite, et jusqu'où on peut lui faire confiance. Cela s'adresse au côté qui lit, le plus souvent l'assistant que vous construisez, et non à la personne dont parlent les souvenirs.

Wontopos, c'est Won + Topos, un seul lieu où la mémoire habite. Won est la part de ce lieu qui renseigne sur la mémoire au lieu de la restituer. Ces appels sont gratuits, en lecture seule, et ne touchent jamais à la récupération : demander ne coûte rien à vos utilisateurs et ne change rien à ce qui est mémorisé.

Ce qui s'y trouve aujourd'hui

Un seul appel aujourd'hui.

AppelCe qu'il fait
POST /won/revisionsLa proportion de ce store qui a été modifiée depuis son écriture. Deux nombres et deux phrases qui les expliquent.

Un exemple détaillé

Utilisez le ratio, pas le compte brut. 3 sur 40 et 30 sur 40 n'appellent pas le même traitement.

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 et excludes sont renvoyés sous forme de phrases plutôt que d'indicateurs, car l'appelant est souvent un modèle. Les suppressions ne sont pas comptées.

Prix et limites

RègleValeur
PrixAucun. Les appels gratuits ne passent pas par la facturation : aucun débit de tokens, aucun frais par requête et aucune consommation enregistrée.
Par minute10 par minute, par compte et par endpoint. Épuiser la minute d'un endpoint n'épuise pas celle d'un autre.
Par heure300 par heure, par compte, partagées par tous les appels gratuits. Cette limite ignore le chemin : ajouter des endpoints gratuits n'augmente donc pas le total qu'un compte peut consommer.
Face au trafic payantSéparées dans les deux sens. Ces appels ne peuvent pas ralentir vos recherches et vos recherches ne peuvent pas les épuiser. Les clés d'un même compte partagent les mêmes compteurs : détenir davantage de clés ne multiplie pas le quota.

Les deux plafonds répondent 429 avec Retry-After en secondes et un message indiquant lequel a été atteint.

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." } }
Le même appel répond aussi sur /api/v1/memory/revisions, pour les clients publiés avant l'existence de la surface Won. Il s'agit du même handler et du même budget, pas d'un quota supplémentaire. Le nouveau code doit utiliser l'adresse Won.