メインコンテンツへスキップ

KB Retention

すべてのプロジェクトのナレッジベースと、ファイルがアップロードされたことのあるすべてのチャットは、データベース内にベクトルテーブルを所有します。時間とともにそれらの多くは使われなくなりますが、テーブルは残り続け、データベースを大きくして保守を遅くします。

KB Retention は、設定可能な期間にわたって非アクティブだったナレッジベースのベクトルテーブルをアーカイブします。アーカイブは検索インデックスのみを削除します。ドキュメント自体、そのテキスト、メタデータ、フォルダ、タグ、アップロードされたファイルは保持されるため、Restore KB でいつでもナレッジベースを再構築できます。アーカイブされたナレッジベースと復元をご覧ください。

Super Admin → Platform Settings → KB Retention から開きます。Platform 権限が必要です。

何が削除され、何が削除されないか​

保持削除
プロジェクト、チャット、メッセージプロジェクトまたはチャットのベクトルテーブル
すべてのドキュメント行、そのテキスト、メタデータ、タグ、フォルダそのベクトルテーブルのインデックス
ストレージ内のアップロードファイル
コネクタリンク(Confluence、Google Drive、SharePoint)とクロールされた URL
保存済みクエリ

テーブルが削除される前に、不変のマニフェストがテーブル、そのインデックス、保持していたチャンク数、含まれていたすべてのドキュメントとそれぞれの再構築方法、ナレッジベースが最後にアクティブだった時期、実行が使用した設定を記録します。マニフェストは編集も削除もできません。マニフェスト書き込み後にテーブルが変更された場合、次の実行が新しいマニフェストを書きます;古いものは履歴として残ります。

設定​

これらは KB Retention タブで変更し、次回の実行で有効になります:

設定デフォルト動作
ModeReport onlyOff:何も実行しない。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_SIZE100実行ごとにアーカイブする最大ナレッジベース数(1-5000)。
KB_RETENTION_DROP_DELAY_MS1000実行内で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つのプロジェクトまたはチャットのナレッジベースを即座にアーカイブします。再構築可能性、除外、進行中の作業を含む他のすべてのルールは引き続き適用され、アクションは監査されます。カナリーロールアウト中の復元を検証するために使用してください。

ロールアウトランブック​

  1. 本番では Report only。 Mode を少なくとも1回の日次実行の間 Report only に保つか、Run dry-run をクリックします。
  2. レポートを確認。 回収可能なストレージの合計を確認し、スキップ理由から予期しないものがないか調べます。source_unavailable と所有権の理由はゼロでないことが想定されます。
  3. 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 を使用し、復元して往復を確認します。
  4. 計画的なバッチ。 適度なバッチサイズと遅延で Enforce に切り替え、クリーンアップジョブと復元履歴で失敗を監視し、バッチサイズを徐々に増やします。
  5. 定常状態。 デフォルトのバッチサイズで Enforce を維持します。問題の兆候があれば Pause cleanup を使用;停止中も復元は動作し続けます。

日次実行は 02:30 UTC に開始されます。