本文へ移動
Gomind

forget_many

1回の呼び出しで1〜100件のファクトを削除します。forget を繰り返すよりこちらを使ってください。

POST/v1/forget_many

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

まずrecallでファクトを見つけます。各項目はforgetと同じ方法でファクトを1件指定します。

フィールド型必須説明
factsobject[]はい削除するファクト。最小1件、最大100件。各項目は subject、predicate、ref(ファクトIDの末尾5文字、またはID全体)を持ちます。項目ごとの collection は指定できません。
collectionstringいいえ呼び出し全体のコレクション。省略すると接続時のデフォルト値を使い、"" はデフォルト領域を強制します。

この呼び出しはベストエフォートです。見つかったファクトは1つのトランザクションでまとめて削除されます。何も削除しなかった項目は failed に返り、応答は 200 のままです。

リクエスト

{
  "facts": [
    { "subject": "user:maya", "predicate": "works_at", "ref": "X2C9A" },
    { "subject": "user:maya", "predicate": "has_skill", "ref": "Q7M2D" },
    { "subject": "user:maya", "predicate": "works_at", "ref": "X2C9A" }
  ]
}

応答

deleted には削除されたファクトが入ります。failed には何も削除しなかった項目が index(facts 内の位置)順に入ります。どちらも常に配列です。

{
  "deleted": [
    { "id": "01KJ8Z3W5Q2YB7N4R6T8VX2C9A", "ref": "X2C9A", "subject": "user:maya", "predicate": "works_at", "object": "company:acme" }
  ],
  "failed": [
    { "index": 1, "subject": "user:maya", "predicate": "has_skill", "ref": "Q7M2D", "error": "fact not found" },
    { "index": 2, "subject": "user:maya", "predicate": "works_at", "ref": "X2C9A", "error": "same fact as an earlier item" }
  ]
}

| error | 条件 | |:--|:--| | fact not found | 一致するファクトがない | | multiple facts match subject, predicate, and ref | 2件のファクトが同じrefを持つ。ref にID全体を指定してください | | ref must be the last 5 characters of a fact id, or the full id | ref がIDの5文字・26文字のどちらでもない | | same fact as an earlier item | 前の項目がすでに同じファクトを指定している。削除は1回だけ |

MCPは deleted(件数)を返し、削除があった場合はrecallと同じ列の facts_deleted 表を、失敗した項目がある場合だけ failed 表を返します。

エラー

| ステータス | 条件 | |:--|:--| | 400 | facts が空か100件を超える、または項目に subject、predicate、ref のいずれかがない | | 404 | 不明なコレクション |

各項目はforgetの1回の呼び出しと同じく課金され、呼び出しにはforgetと同じ制限が適用されます。forget_manyはエンティティを削除しません。エンティティに関するすべてを削除するにはforget_entityを使います。