Ir al contenido
Gomind

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.

CampoTipoObligatorioDescripción
subjectstringsíSujeto actual, exactamente como está guardado.
predicatestringsíPredicado actual. WorksAt encuentra works_at.
refstringsíÚltimos 5 caracteres del id del fact, o el id completo.
new_subjectstringnoNuevo sujeto. Máximo de 45 caracteres. Enlaza exactamente con la entidad de ese nombre.
new_predicatestringnoNuevo predicado.
new_objectstring | JSONnoNuevo objeto: texto, un type:id o JSON.
contextstringnoNueva nota. Máximo de 4000 caracteres.
if_objectstring | JSONnoAplica 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.
collectionstringnoCó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.