update
Reescreva um fact existente no lugar.
POST/v1/update
Também existe a ferramenta MCP update.
Encontre o fact com recall primeiro. Todo fact nas respostas tem uma ref, os últimos 5 caracteres do id. Passe subject, predicate e ref do fact, mais o que deve mudar.
| Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
subject | string | sim | Sujeito atual, exatamente como está guardado. |
predicate | string | sim | Predicado atual. WorksAt encontra works_at. |
ref | string | sim | Últimos 5 caracteres do id do fact, ou o id completo. |
new_subject | string | não | Novo sujeito. Máximo de 45 caracteres. Liga exatamente à entidade com esse nome. |
new_predicate | string | não | Novo predicado. |
new_object | string | JSON | não | Novo objeto: texto, um type:id ou JSON. |
context | string | não | Nova nota. Máximo de 4.000 caracteres. |
if_object | string | JSON | não | Aplica a atualização só se o objeto guardado ainda for igual a este valor. JSON é comparado pelo conteúdo. Use para contadores e para tudo que dois agentes possam alterar ao mesmo tempo. |
collection | string | não | Código da collection. Omita para usar o padrão da conexão. "" força o espaço padrão. |
Informe pelo menos um de new_subject, new_predicate, new_object ou context. Os campos omitidos mantêm os valores guardados.
Requisição
{
"subject": "task:GO-12",
"predicate": "status",
"ref": "X2C9A",
"new_object": "done",
"if_object": "in_progress"
}
Resposta
{
"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" }
}
Erros
| Status | Quando |
|:--|:--|
| 400 | Nenhuma alteração pedida, ou ref não tem 5 ou 26 caracteres de id |
| 404 | Nenhum fact corresponde a subject, predicate e ref |
| 409 | Dois facts têm a mesma ref; passe o id completo em ref |
| 409 | if_object não corresponde mais: fact changed: current object is …. Faça o recall e tente de novo |
Para definir um predicado de valor único sem ler antes, use remember com replace: true.