AIエージェントの知識ベース自己更新の課題
AIエージェントに外部知識検索(RAG)を導入すると、一時的に固有の文脈を理解したように見えます。しかし、知識ベースが更新されないまま放置されると、数週間後には古い情報を自信を持って提示するようになります。この問題は、単に検索精度が低下するだけでなく、知識がどのように蓄積され、どのように古くなっていくかという設計が欠如していることに起因します。
用途の異なる複数のエージェントを開発した経験から、共通の設計思想に収束しました。それは、正本となるテキストデータを保持し、ローカルのベクトルインデックスは再構築可能なものとして扱い、エージェント本体は知識更新のたびに変更しないというアプローチです。この記事では、生データとインデックスを分離するという一般的な話ではなく、エージェントの知識ベースを「自己更新」させるための型に焦点を当てます。
更新経路を「pull」と「push」に分離する
知識の更新は、単一の経路に集約せず、複数の経路に分ける方が扱いやすくなります。外部から取り込む情報と、エージェントが作業中に得た学びでは、情報の鮮度や粒度が異なるためです。
- pull型更新: 外部ソースを定期的に参照し、仕様、ドキュメント、公開ナレッジなどを差分で取り込み、正本テキストに反映させた後にインデックスを再構築します。ここで重要なのは、外部情報を直接RAGの回答に利用するのではなく、一度人間が読めるテキスト形式に落とし込むことです。
- push型更新: エージェントや人間が作業中に得た学びを、その場で正本テキストに書き戻す更新方法です。例えば、「この条件では処理を停止する」「この種の依頼は事前に確認する」「この判断はリスクが高い」といった運用知を、短いノートとして正本に追加します。
pull型だけでは、エージェント自身の失敗や判断が知識として蓄積されません。push型だけでは、外部の変化に追従できなくなります。この二つの系統を持つことで、知識ベースは「外部の変化」と「内部での学び」の両方によって成長します。
本体コードではなくテキストを更新する
自己更新を安定させるためには、知識とロジックを混在させないことが重要です。エージェント本体は、検索、根拠の読み取り、判断のみを行うようにします。知識を増やすたびにプロンプトやコードを編集し始めると、挙動がどのように変化したのか追跡が困難になります。
更新の単位は、あくまでテキストです。以下の手順を踏むことで、知識更新は「テキストの追加・修正」と「再インデックス」に閉じ込めることができます。
- 正本テキストを追加・修正する
- ローカルのベクトルインデックスを再生成する
- 次回のRAGで新しい知識が検索される
この形式であれば、知識更新は「テキストを足す → 再インデックス」というシンプルなプロセスに集約されます。エージェント本体は同じ検索インターフェースを使い続けるだけで、知識が増えてもコードの変更は不要です。
ローカルインデックスは、破損しても再生成できる「派生物」として扱います。軽量な構成であれば、小規模なチームや個人用途でも十分に扱いやすく、課金や外部サービスの状態に左右されにくい利点があります。ここで重要なのは、ベクトルデータベースそのものではなく、再生成可能なインデックスと、失われない正本テキストの境界線です。
信頼度メタデータで「知ったかぶり」を抑制する
RAGの失敗は、検索結果が的外れになることだけではありません。より危険なのは、不確かな根拠を確かな根拠のように扱ってしまうことです。これは、検索スコアだけでなく、知識側にメタデータを持たせることで抑制できます。
例えば、各ノートに以下のような最小限のメタデータを付与します。
- kind: パターン、情報源、仮説など
- source: 観測、外部、仮説など
- confidence: 低、中、高
- risk_level: 低、中、高
- last_reviewed:YYYY-MM-DD
confidenceが「低」の知識が上位に来た場合、エージェントは断定せず、確認を求めるようにします。risk_levelが「高」の知識を検索した場合、自律実行せずに承認を求めるようにします。sourceが「仮説」のノートは、事実ではなく仮説として扱います。
このように、RAGの「知ったかぶり」をプロンプトだけで抑制するのではなく、知識ベースの構造で制御します。検索にヒットしたかどうかだけでなく、「その情報をどれだけ信頼できるか」まで一緒に返す設計にすることで、エージェントは不確かな場面で停止しやすくなります。
まとめ
- 知識更新はpull型とpush型に分ける
- 更新は「正本テキストの追加・修正 → 再インデックス」に集約する
- エージェント本体はRAGで検索するのみとし、知識更新でコードを触らない
- confidenceやrisk_levelを知識側に持たせ、低信頼・高リスクの場合は停止させる
- ローカルベクトルインデックスは正本ではなく、再生成可能な派生物として扱う
AIエージェントの知識ベースは、一度構築して終わりではなく、運用中に継続的に育っていくものです。自己更新の設計を初期段階から組み込んでおくことは、賢い初期プロンプトよりも長期的に有効な基盤となります。
出典: https://zenn.dev/tadkud/articles/ai-agent-sqlite-rag-self-updating
Daily AI Tools
最新AIツールを毎日日本語でレビュー
副業・スタートアップ・中小企業のDX推進に役立つAIツールの使い方、料金比較、活用事例を毎朝配信。


コメント