本文へ移動
Gomind

update

既存のファクトを1件、その場で書き換えます。

POST/v1/update

MCPでも update ツールとして利用できます。

まずrecallでファクトを見つけてください。応答のすべてのファクトには、IDの末尾5文字である ref があります。そのファクトの subject、predicate、ref と、変更内容を渡します。

フィールド型必須説明
subjectstringはい現在の主語。保存されているとおりに指定します。
predicatestringはい現在の述語。WorksAt でも works_at が見つかります。
refstringはいファクトIDの末尾5文字、またはID全体。
new_subjectstringいいえ新しい主語。最大45文字。その名前と完全に一致するエンティティにリンクします。
new_predicatestringいいえ新しい述語。
new_objectstring | JSONいいえ新しい目的語。テキスト、type:id、JSONのいずれか。
contextstringいいえ新しい注記。最大4,000文字。
if_objectstring | JSONいいえ保存されている目的語がこの値と等しい場合にだけ更新します。JSONは内容で比較します。カウンターなど、複数の書き手が同時に変更しうる値に使います。
collectionstringいいえコレクションコード。省略すると接続時のデフォルト値を使い、"" はデフォルト領域を強制します。

new_subject、new_predicate、new_object、context のうち少なくとも1つを指定してください。省略したフィールドは保存済みの値を保持します。

リクエスト

{
  "subject": "task:GO-12",
  "predicate": "status",
  "ref": "X2C9A",
  "new_object": "done",
  "if_object": "in_progress"
}

応答

{
  "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" }
}

エラー

| ステータス | 条件 | |:--|:--| | 400 | 変更内容がない、または ref がIDの5文字・26文字のどちらでもない | | 404 | subject、predicate、ref に一致するファクトがない | | 409 | 2件のファクトが同じrefを持つ。ref にID全体を指定してください | | 409 | if_object が一致しなくなった:fact changed: current object is …。recallしてから再試行してください |

先に読み取らずに単一値の述語を設定するには、rememberで replace: true を使います。