update
Reescribe un fact existente en su lugar.
POST/v1/update
También existe la herramienta MCP update.
Primero encuentra el fact con recall. Cada fact de una respuesta tiene una ref, los últimos 5 caracteres de su id. Pasa subject, predicate y ref del fact, además de lo que debe cambiar.
| Campo | Tipo | Obligatorio | Descripción |
|---|---|---|---|
subject | string | sí | Sujeto actual, exactamente como está guardado. |
predicate | string | sí | Predicado actual. WorksAt encuentra works_at. |
ref | string | sí | Últimos 5 caracteres del id del fact, o el id completo. |
new_subject | string | no | Nuevo sujeto. Máximo de 45 caracteres. Enlaza exactamente con la entidad de ese nombre. |
new_predicate | string | no | Nuevo predicado. |
new_object | string | JSON | no | Nuevo objeto: texto, un type:id o JSON. |
context | string | no | Nueva nota. Máximo de 4000 caracteres. |
if_object | string | JSON | no | Aplica la actualización solo si el objeto guardado sigue siendo igual a este valor. El JSON se compara por contenido. Úsalo para contadores y para todo lo que dos agentes puedan cambiar a la vez. |
collection | string | no | Código de la collection. Omítelo para usar el valor de la conexión. "" fuerza el espacio predeterminado. |
Indica al menos uno de new_subject, new_predicate, new_object o context. Los campos omitidos conservan sus valores guardados.
Petición
{
"subject": "task:GO-12",
"predicate": "status",
"ref": "X2C9A",
"new_object": "done",
"if_object": "in_progress"
}
Respuesta
{
"before": { "id": "01KJ8Z3W5Q2YB7N4R6T8VX2C9A", "ref": "X2C9A", "subject": "task:GO-12", "predicate": "status", "value": "in_progress" },
"after": { "id": "01KJ8Z3W5Q2YB7N4R6T8VX2C9A", "ref": "X2C9A", "subject": "task:GO-12", "predicate": "status", "value": "done" }
}
Errores
| Estado | Cuándo |
|:--|:--|
| 400 | No se pidió ningún cambio, o ref no tiene 5 o 26 caracteres de id |
| 404 | Ningún fact coincide con subject, predicate y ref |
| 409 | Dos facts comparten la ref; pasa el id completo en ref |
| 409 | if_object ya no coincide: fact changed: current object is …. Haz recall y vuelve a intentarlo |
Para definir un predicado de valor único sin leer antes, usa remember con replace: true.