forget_many
1回の呼び出しで1〜100件のファクトを削除します。forget を繰り返すよりこちらを使ってください。
POST/v1/forget_many
MCPでも forget_many ツールとして利用できます。
まずrecallでファクトを見つけます。各項目はforgetと同じ方法でファクトを1件指定します。
| フィールド | 型 | 必須 | 説明 |
|---|---|---|---|
facts | object[] | はい | 削除するファクト。最小1件、最大100件。各項目は subject、predicate、ref(ファクトIDの末尾5文字、またはID全体)を持ちます。項目ごとの collection は指定できません。 |
collection | string | いいえ | 呼び出し全体のコレクション。省略すると接続時のデフォルト値を使い、"" はデフォルト領域を強制します。 |
この呼び出しはベストエフォートです。見つかったファクトは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を使います。