KB Retention
すべてのプロジェクトのナレッジベースと、ファイルがアップロードされたことのあるすべてのチャットは、データベース内にベクトルテーブルを所有します。時間とともにそれらの多くは使われなくなりますが、テーブルは残り続け、データベースを大きくして保守を遅くします。
KB Retention は、設定可能な期間にわたって非アクティブだったナレッジベースのベクトルテーブルをアーカイブします。アーカイブは検索インデックスのみを削除します。ドキュメント自体、そのテキスト、メタデータ、フォルダ、タグ、アップロードされたファイルは保持されるため、Restore KB でいつでもナレッジベースを再構築できます。アーカイブされたナレッジベースと復元をご覧ください。
Super Admin → Platform Settings → KB Retention から開きます。Platform 権限が必要です。
何が削除され、何が削除されないか
| 保持 | 削除 |
|---|---|
| プロジェクト、チャット、メッセージ | プロジェクトまたはチャットのベクトルテーブル |
| すべてのドキュメント行、そのテキスト、メタデータ、タグ、フォルダ | そのベクトルテーブルのインデックス |
| ストレージ内のアップロードファイル | |
| コネクタリンク(Confluence、Google Drive、SharePoint)とクロールされた URL | |
| 保存済みクエリ |
テーブルが削除される前に、不変のマニフェストがテーブル、そのインデックス、保持していたチャンク数、含まれていたすべてのドキュメントとそれぞれの再構築方法、ナレッジベースが最後にアクティブだった時期、実行が使用した設定を記録します。マニフェストは編集も削除もできません。マニフェスト書き込み後にテーブルが変更された場合、次の実行が新しいマニフェストを書きます;古いものは履歴として残ります。
設定
これらは KB Retention タブで変更し、次回の実行で有効になります:
| 設定 | デフォルト | 動作 |
|---|---|---|
| Mode | Report only | Off:何も実行しない。Report only:日次実行がドライランレポートを生成し、何も変更しない。Canary:カナリスト上のプロジェクトまたはチームのみアーカイブ。Enforce:適格なすべてのナレッジベースをアーカイブ。 |
| Project KB retention (days) | 365 | プロジェクトのナレッジベースがアーカイブされるまでの非アクティブ日数。0 でプロジェクトのナレッジベースのアーカイブをオフ。範囲 0-3650。 |
| Chat KB retention (days) | 90 | チャットのアップロードファイルのナレッジベースがアーカイブされるまでの非アクティブ日数。0 でチャットのアーカイブをオフ。範囲 0-3650。 |
すべての変更は設定監査ログとスーパー管理者監査ログに記録されます。
デプロイ設定
これらは環境変数で環境ごとに設定され、Helm values の kbRetention.env 経由で API と retention を実行するすべてのワーカーに届きます。タブは有効な値を読み取り専用で表示します。
| 環境変数 | デフォルト | 動作 |
|---|---|---|
KB_RETENTION_BATCH_SIZE | 100 | 実行ごとにアーカイブする最大ナレッジベース数(1-5000)。 |
KB_RETENTION_DROP_DELAY_MS | 1000 | 実行内で2つのテーブル削除の間の停止時間、ミリ秒単位(0-60000)。 |
KB_RETENTION_CANARY_PROJECT_IDS、KB_RETENTION_CANARY_TEAM_IDS | 空 | Mode が Canary の間にアーカイブされてよいプロジェクト、またはチームの全プロジェクト。カンマ区切り。 |
KB_RETENTION_EXEMPT_PROJECT_IDS、KB_RETENTION_EXEMPT_TEAM_IDS | 空 | 決してアーカイブされないプロジェクト、またはチームの全プロジェクト。そのチャットも除外。カンマ区切り。 |
kbRetention:
env:
KB_RETENTION_CANARY_TEAM_IDS: "team-a,team-b"
KB_RETENTION_BATCH_SIZE: "10"
無効な数値はデフォルトに戻り、ログに記録されます。
アクティビティとしてカウントされるもの
ナレッジベースは、そのアクティビティがすべて保持期間より古い場合にのみアーカイブされます:
- プロジェクトのナレッジベース: プロジェクトの最後のアクティビティ(チャットまたはエージェントの使用)、最後の KB 同期、追加された最新のドキュメント、プロジェクト内の最新のチャット、エージェントや検索がそのベクトルテーブルを最後に読んだ時刻、最後の復元。
- チャットのナレッジベース: チャットの最後のメッセージ、アップロードされた最新のファイル、そのベクトルテーブルが最後に読まれた時刻、最後の復元。
ベクトルテーブルの読み取りは、他のプロジェクトからのものでも追跡されます(例:別のプロジェクトのナレッジベースを検索するよう構成されたエージェント)。
決してアーカイブされないもの
以下の場合、ナレッジベースはスキップされ、レポートに理由が記されます:
- ドキュメントがまだキュー、同期中、または削除中;
- クロールが実行中、またはプロジェクトにスケジュールされた KB 同期または定期クロールが構成されている;
- KB の完全同期が進行中;
- プロジェクトまたはそのチームが除外対象;
- ベクトルテーブル内のいずれかのドキュメントが再構築できない:保持テキストがなく、元ファイルがストレージに残るプレーンなアップロードファイルでもない(
source_unavailable); - 所有するプロジェクトやチャットが正確に特定できない(
orphan、ambiguous_owner、unresolved_name)、またはデータベース内の他がテーブルに依存している(has_dependencies)。これらのテーブルはレポートには表示されますが、決して削除されません。
適格性と、すべてのドキュメントがまだ再構築可能かどうかは、各テーブルの直前のロック下で再チェックされます。マニフェスト書き込み後に何かが変わった場合(changed_since_manifest)やソースが失われた場合(source_unavailable)、その実行ではナレッジベースがスキップされます。
緊急停止
Pause cleanup は直ちにアーカイブを停止します:スケジュール実行は何もせず、Run cleanup now は拒否され、進行中の実行は次の削除の前に停止します。復元は停止されないため、ユーザーはナレッジベースを回復できます。同じトグルから再開します。
オペレーターはバックエンドで環境変数 KB_RETENTION_HARD_PAUSE=true を設定し、UI を使わずにクリーンアップを一時停止することもできます。
ドライランプレビュー
Run dry-run はすべてのベクトルテーブルを棚卸しし、何も変更せずに以下を表示します:
- 何件のナレッジベースがアーカイブされ、それがどのストレージを使用するか;
- 他のそれぞれがなぜスキップされるか;
- ナレッジベースごとに:所有者、最後のアクティビティ、テーブルサイズ、ソースが再構築可能かどうか。
Mode が Report only の間、日次実行は同じレポートを自動的に生成します。
ジョブと履歴
- Cleanup jobs は、トリガー、Mode、ステータス、アーカイブ・スキップ・失敗したナレッジベース、回収されたストレージ、所要時間とともに、すべてのレポートとクリーンアップ実行を一覧表示します。ジョブを開くと、評価された各ナレッジベースが見られます。
- Run cleanup now は現在の設定を使ってクリーンアップを即座に開始します。Canary または Enforce モードで、かつクリーンアップが停止中でないときにのみ利用可能です。
- Restore history は、リクエスト者、進捗、結果またはエラーとともに、すべての復元を一覧表示します。
特定のナレッジベースを今すぐアーカイブする
Archive a knowledge base now は、非アクティブ期間とカナリストを無視して、1つのプロジェクトまたはチャットのナレッジベースを即座にアーカイブします。再構築可能性、除外、進行中の作業を含む他のすべてのルールは引き続き適用され、アクションは監査されます。カナリーロールアウト中の復元を検証するために使用してください。
ロールアウトランブック
- 本番では Report only。 Mode を少なくとも1回の日次実行の間 Report only に保つか、Run dry-run をクリックします。
- レポートを確認。 回収可能なストレージの合計を確認し、スキップ理由から予期しないものがないか調べます。
source_unavailableと所有権の理由はゼロでないことが想定されます。 - Canary。 環境の Helm values で
KB_RETENTION_CANARY_TEAM_IDSまたはKB_RETENTION_CANARY_PROJECT_IDSを1〜2の低リスクチームやプロジェクトに設定し、小さなKB_RETENTION_BATCH_SIZE(例:10)を設定してデプロイし、その後 Mode を Canary に切り替えます。テストプロジェクトで Archive a knowledge base now を使用し、復元して往復を確認します。 - 計画的なバッチ。 適度なバッチサイズと遅延で Enforce に切り替え、クリーンアップジョブと復元履歴で失敗を監視し、バッチサイズを徐々に増やします。
- 定常状態。 デフォルトのバッチサイズで Enforce を維持します。問題の兆候があれば Pause cleanup を使用;停止中も復元は動作し続けます。
日次実行は 02:30 UTC に開始されます。