風見ソフトのサポート窓口で、葵は朝一番の問い合わせを開いた。社内AIエージェント「コトハ」に「現在の返品手順は?」と尋ねると、画面には自信ありげな答えが並んだ。けれど、その手順書の端には、古い日付が残っていた。机の隅に置かれた新しい運用通知とは、返品の受付方法が違っている。
「どうして、前の手順が出てくるの?」
葵の声に、先輩の真島が画面をのぞき込んだ。検索できることと、今使える情報を選べることは、同じではない。古い文書、更新された文書、回答キャッシュが重なると、AIエージェントは過去の答えを現在のように返してしまう。文書をいつまで使うのか。いつ無効にするのか。更新期限と版、発効日時、失効日時をどう結びつけるのか。小さな会社の朝に、情報の時間を整える仕事が始まった。
この記事の答え
- 結論AIエージェントには、版と発効・失効日時で更新期限を設計すれば古い情報を使わせない。
- 根拠有効状態と版で現行情報だけを検索し、文書更新時に関連する回答キャッシュも無効化する。
- 最初の一歩まず主要文書に版、発効日時、失効日時、非推奨状態を付けて現行版を判定する。
第1章 朝の画面に残った古い手順

第1章 朝の画面に残った古い手順 - 本文
風見ソフトのサポート窓口に、始業前の静かな朝が広がっていた。空調の低い音に、葵のキーボードをたたく音が重なる。机の横では、昨夜の雨にぬれた傘が、まだ小さな水たまりを作っていた。
葵は、届いた問い合わせを一つずつ開いていった。名前を見れば、前に話したお客様の声まで思い出す。返事は早く、けれど急いで決めつけない。それが、葵の仕事の仕方だった。
そのとき、返品についての問い合わせが画面に現れた。葵は社内向けAIエージェントのコトハを開き、いつものように質問を入力した。
「現在の返品手順は?」
コトハは、すぐに答えを返した。画面には、返品申請の場所、返送方法、確認に必要な書類が、整った文章で並んでいる。文の最後には、「以上が現在の手順です」と、自信のある一文まで添えられていた。
葵は、返事をお客様へ転記しかけた。けれど、画面の端に表示された参照文書の名前で、指が止まった。そこには、昨年の秋に更新された「返品運用手順」と書かれていた。
机の隅には、先週配られた運用通知が置かれている。新しい通知では、返品の受付場所が変わり、返送前にウェブフォームへ申請することになっていた。コトハが示した古い手順とは、入口から違っていた。
「どうして、前の手順が出てくるの?」
葵の声に、隣の席の真島が振り向いた。真島はいつも、質問を聞くとすぐに画面を閉じない。まず、表示された文書と、その文書が選ばれた道筋を、静かに見ていく。
「検索できることと、今使える情報を選べることは、同じじゃないんだ」
真島は、コトハの検索結果を指で追った。古い手順書の下には、先週の運用通知も並んでいる。その上には、前の日にコトハが作った回答のキャッシュ、つまり一度作った答えを一時的に保存したものまで残っていた。
「コトハは、見つかった文書を読むことはできる。でも、文書の時間の順番を、何もしなくても正しく判断できるわけじゃない。古い文書と新しい文書が一緒に見つかると、前の答えを現在のことのように返す場合があるんだ」
葵は、問い合わせの画面へ目を戻した。お客様は、今日返送するつもりで待っている。もし古い手順を伝えれば、受付場所を間違え、荷物が戻ってくるかもしれない。
「検索の結果を、日付の新しい順に並べれば解決しますか?」
「それだけでは足りないよ。作られた日が新しくても、まだ使い始めていない文書かもしれない。反対に、古く見える文書でも、今も有効な規程かもしれないからね」
真島は、紙の運用通知を葵の前へ置いた。文書の名前だけでなく、版、更新日時、発効日時、失効日時が必要だと書かれている。発効日時は、その文書を使い始めてよい時刻。失効日時は、その文書を回答に使ってはいけなくなる時刻だ。
「更新期限は、文書を消す日を決めるだけじゃないんだ。回答に使ってよい期間を決めるものなんだよ」
葵は、コトハの参照文書を一つずつ開いた。古い手順書には更新日時はあったが、失効日時がなかった。新しい通知には発効日時があったが、前の手順を無効にすることが書かれていなかった。
画面の中では、二つの文書が同じ明るさで並んでいた。新しい情報が古い情報を押しのけるのではなく、どちらも「使えそうな文書」として扱われていた。
「これでは、コトハにとっては、古い道と新しい道が同じ地図に描かれているようなものですね」
「そう。だから、文書に時間の札をつけるんだ」
真島は、空の一覧表を開いた。取得した時刻、文書が更新された時刻、発効日時、失効日時、版、情報源。その項目を一つずつ並べ、最後に「期限切れなら回答に使わない」と書き加えた。
「この札を見て、期限を過ぎた文書は検索結果から外す。期限が分からなければ、コトハに勝手に決めさせず、もう一度探すか、人に確認してもらう」
葵は、古い手順書の横に赤い印をつけた。削除はしなかった。記録として残しながら、現在の回答には使わない文書として扱うためだ。新しい通知には、発効日時と、前の版を失効させる日時を結びつけて入力した。
その途中で、葵は別のメモを見つけた。社内で参照していたRAG提供資料「古い情報を使う原因と実態」には、回答時に古い値が返る確率が「15〜40%」になることもある、と記されていた。数字を見た葵は、画面の端に残る一つの古い答えが、偶然の小さな間違いとは限らないことを感じた。
「思ったより、近くにある問題なんですね」
「だから、答えの上手さだけを見ないんだ。参照元と時刻が確かか、今も使える文書か。そこまで見て、初めてお客様に渡せる答えになる」
葵は、もう一度コトハに同じ質問を送った。今度の画面には、新しい受付方法が表示され、参照元の版と発効日時も添えられていた。古い手順は一覧の下に残っていたが、「期限切れ」と静かに表示されている。
葵はお客様への返事を書いた。送信ボタンを押す前に、参照元と手順を見比べる。窓の外では、雨上がりの道路を走る車の音が、朝の窓口へゆっくり届いていた。
第2章 新しい文書の隣で、古い答えが動き出す

第2章 新しい文書の隣で、古い答えが動き出す - 本文
顧客への返品案内を作っていた葵は、コトハが旧手順を選んだことに気づかなかった。送信ボタンを押す直前、新しい運用通知が画面の横で光った。朝の窓から入る光が、二つの日付を照らしていた。
「返品したいというお客様ですね。コトハ、現在の手順を教えて」
画面には、落ち着いた文章がすぐに現れた。商品到着から七日以内なら、サポート窓口へメールで申請すること。確認後、返送先を案内すること。いつもの答えだった。
葵はその文章を、顧客への返信欄に貼り付けた。名前と注文番号を確かめ、最後にもう一度だけ、社内の通知を見ようとした。そのとき、机の隅に置いた新しい運用通知の赤い印が目に入った。
「待って。返品の受付は、昨日からフォームに変わってる」
葵は手を止めた。通知には、発効日時が昨日の午前九時と書かれている。コトハの答えは、メールで申請する旧版のままだった。
真島が椅子を寄せ、葵の画面をのぞき込んだ。葵は送信欄を閉じずに、コトハへ同じ質問をもう一度入力した。今度は答えの下にある参照文書も開いた。
「返品手順_v2。更新日が先月になってる」
検索結果には、二つの文書が並んでいた。上には旧版の返品手順があり、その下には、昨日から使う返品手順_v3があった。新しい文書にはフォームのURLが載っていたが、検索結果の順位は旧版のほうが高かった。
「どうして古いほうが上なの?」
「文章が似ているからだよ。コトハは、質問と文書の言葉が近い順に並べている」
真島は、画面に表示された検索の流れを指でたどった。コトハは社内文書を探し、その内容を使って答えを作る。こうした仕組みはRAGと呼ばれるが、簡単に言えば、必要な資料を探してから答える仕組みだ。
「でも、似ていることと、今使えることは別なんだね」
「そう。検索は見つける仕事。どれを現在の手順にするかは、別に決めないといけない」
葵は、二つの文書を並べた。旧版には失効日時がなかった。新しい文書には発効日時があったが、旧版を回答から外す条件は、検索の設定に入っていなかった。
「文書を消せば、解決するんじゃない?」
真島は、すぐには答えなかった。古い文書を削除すれば、過去にどんな手順で案内したかを確認できなくなる。残しておけば履歴は守れるが、今の回答に混ざってしまう。
「古い文書は、捨てずに残す。でも、使える期間を別に持たせるんだ」
葵はうなずいた。似ている部分を探すだけでは、「返品方法が変わった」という出来事を、確実な置き換えとして扱えない。版番号と発効日時、失効日時を結び、現在の時点で有効かどうかを先に確認する必要があった。
二人は旧版を履歴として保存し、新版に有効期間を設定した。葵はコトハの検索結果から旧版が外れたことを確認し、新しい質問を入力した。ところが、画面にはまた、メール申請の答えが現れた。
「えっ……文書を直したのに、まだ古い答えが出る」
真島が回答の隅にある小さな表示を開いた。そこには、回答キャッシュと書かれていた。コトハは同じ質問への答えを一時的に保存していたため、文書を探し直さず、前に作った答えをそのまま返していた。
「キャッシュは、答えの控えだよ。毎回作り直さないから速い。でも、控えにも期限がいる」
「文書の期限と、答えの期限は別なんだ」
「その通り。文書が新しくなっても、古い回答キャッシュが生きていれば、過去の案内が戻ってくる」
真島は、文書の期限を表すTTLという言葉をメモに書いた。TTLは、いつまで使ってよいかを示す時間のことだ。文書には文書のTTLを置き、回答キャッシュには、それより短い別のTTLを置く案が出た。
葵は、さきほどの顧客の返信欄を開いた。送信前に人が確かめたから、誤案内は止められた。けれど、問い合わせが重なれば、同じ確認を毎回手作業で続けることになる。
「コトハが答えた、だけでは完了にしない。参照した版と時刻まで見えるようにしよう」
午後のはじめ、葵はホワイトボードの中央に三つの言葉を書いた。取得時点。確認時点。次回確認期限。真島はその横に、文書の期限と回答キャッシュの期限を並べた。
「次に答えるときは、いつ取った情報かを確認する。期限を過ぎていたら、再検索するか、人に確認してから送る」
葵は顧客への返信を、新しいフォームの案内に直した。送信後、コトハの画面には新版の参照元と確認時点が表示された。窓の外では、朝から止まっていた風が、ようやく新しい方向へ吹いていた。
第3章 古いカードを捨てずに裏返す

第3章 古いカードを捨てずに裏返す - 本文
葵と真島は、情報管理の設計を手伝う外部アドバイザーの澪を、風見ソフトに招いた。午後の会議室には、社内AIエージェント「コトハ」の回答履歴と、更新途中の文書が並んでいた。
窓から入る光が、長い机の上をゆっくり動いていた。澪はあいさつを終えると、かばんから色の違うカードを取り出した。
「今日は、古い情報を消す話から始めません。まず、古い情報をどう扱えば、今の回答を守れるかを考えましょう」
澪はカードを一枚ずつ並べた。カードには、同じ商品の価格、返品方法、受付条件、操作手順が書かれていた。新しいカードと古いカードはよく似ていて、葵には文章の違いが小さく見えた。
「このカードには、三つの部品があります。主語は、対象になる商品や業務です。関係は、価格や返品方法のような項目です。値は、その時点での具体的な内容です」
澪は白いカードを指で軽くたたいた。
「たとえば、主語が『商品A』、関係が『返品方法』、値が『専用フォームから申請』です。ここが変わったら、似た文章を探し続けるのではなく、同じ項目が更新されたと決められます」
真島は、昨日コトハが返した回答を思い出した。新しい文書には「購入履歴画面から申請」とあるのに、古い文書の「メールで申請」が回答に混じっていた。
「古いカードは、捨てないのですか?」
「捨てると、あとで何が起きたか分からなくなります。古いカードは裏返して、台帳に『現在の回答には使わない』と記録します。履歴としては残し、現行の検索からは外すのです」
澪はカードの裏に小さな赤い丸を描いた。表には過去の案内があり、裏には「失効」と、その理由を書く欄があった。葵は、古い情報を消すことと、使わせないことは違うのだと気づいた。
「ここで使う考え方が、バイテンポラル台帳です。名前は難しく見えますが、時間を二本に分けて記録するだけです」
澪は、カードの横に二本の線を引いた。
「一本目は、その情報が実際に有効だった時間です。もう一本は、会社のシステムが、その情報を登録したり更新したりした時間です。現場では月曜日から有効でも、台帳への登録が水曜日になることがあります。この二つを分ければ、過去の時点で何が正しかったかと、いつ会社が知ったかを別々に追えます」
「つまり、いま有効かどうかだけでなく、いつから、いつまで有効だったかも見るのですね」
「そうです。取得日時、発効日時、更新日時、失効日時をそろえておけば、コトハは現在の質問には現行カードを使い、過去の問い合わせには当時のカードを出せます」
澪が見せた資料には、MemStrataの設計例として、主語・関係・値を一組にして、二つの時間を台帳に持たせる形が紹介されていた。葵は、AIに文章の似ている順を決めさせるより、更新の規則を先に置くほうが、ずっと静かで確かな仕組みに思えた。
「AIに、似ているかどうかを判断させ続けるのではなく、同じ項目の更新として決められる形にするのですね」
「はい。AIは説明をつくるのが得意です。でも、いつまで使えるかを決める時計の役目は、別の仕組みに任せたほうが安全です」
真島はホワイトボードを二つに分けた。左には、会社の住所、製品仕様、サービスの基本説明を書いた。右には、料金、キャンペーン、受付方法、操作手順を書いた。
「左は、変わりにくい情報です。右は、よく変わります。全部に同じ更新期限をつけるのではなく、情報の種類ごとに、確認する間隔を変えましょう」
「その間隔が、TTLです。情報鮮度の有効期限、と考えてください。期限を過ぎたら、コトハは古いカードを答えに使わず、再検索か人の確認へ進みます」
葵は、前章で作った文書の期限表を思い出した。文書と回答キャッシュに別々の期限を置いても、期限だけを見ていては足りない。規定の改定、情報源の非推奨化、廃止通知が出たときは、期限を待たずに、その情報に結びつくキャッシュを無効にする必要があった。
「更新通知が来た瞬間に、回答キャッシュを止める仕組みも入れましょう。あとで期限が来るのを待つより、知らせをきっかけに止めるほうが早いです」
澪は、赤い付せんを「改定」「非推奨」「廃止」の三つに分けた。付せんが貼られたカードは、履歴には残るが、現行回答の候補から外れる。急な変更があったときだけは、コトハが「確認できる情報がありません」と返し、人に確認を求める道も残した。
最後に澪は、Salesforceの旧手順と現行方針が食い違った事例を示した。旧情報を完全に消すのではなく、過去の案内として保存し、利用者には現行情報が先に見える構成だった。
「これなら、なぜ昔の案内が出たのかを調べられます。けれど、今の利用者が古い手順を先に読むことはありません」
会議が終わるころ、机の上のカードは二つの山に分かれていた。表を向いた現行カードと、裏を向いた履歴カードである。葵は赤い丸のついたカードを一枚手に取り、静かにうなずいた。
「消さずに裏返す。今の答えから外して、過去の記録は守る。まずは返品方法と料金から、この形でやってみましょう」
真島が期限表を開き、澪が台帳の欄を整えた。夕方の会議室には、紙の擦れる音と、小さな前進を確かめる声が残った。
第4章 期限を刻む時計と、止まらないつまずき

第4章 期限を刻む時計と、止まらないつまずき - 本文
朝の会議室で、葵たちはコトハに更新期限と無効化ルールを組み込む作業を始めた。けれど試験初日から、更新された文書を使わず、古い答えを返す問題が続いた。
「まず、情報の種類ごとに、時計の速さを変えよう」
澪はホワイトボードに三つの箱を描いた。製品の基本仕様や会社の案内は、変化が少ないので確認間隔を長めにする。一方、料金や返品の操作手順は、少しの変更でも顧客や担当者を困らせるため、短い間隔で確認する方針にした。
「期限は一律にしないのですね」
「そう。変更頻度だけでは決めないよ。間違えたときの影響と、確認する手間も一緒に見るの」
澪は、料金表の誤りなら請求や信頼に響き、操作手順の誤りなら作業のやり直しが起きると説明した。基本情報は変わりにくく、確認にも時間がかからないが、だからといって無期限にはしない。コトハが再検索するかどうかは、言葉の雰囲気ではなく、独立したポリシーで決めることにした。
葵は台帳の項目を整えた。主語、関係、値に加え、文書の版、更新時刻、取得時刻、発効時刻、失効時刻、情報源の状態、キャッシュの有効期限を書き込む欄を作った。時刻はUTCで保存し、表示するときだけ利用者の地域の時刻へ変えることにした。
「経過時間の測定には、壁時計をそのまま使わないで」
澪はPythonのtime.monotonic_ns()を示した。時計の調整で時刻が前後しても、処理の経過時間を測りやすい仕組みだと、澪はやさしく言い直した。葵はその値を、再検索までの待ち時間を測る処理へ組み込んだ。
午後、二人は返品手順の文書を更新した。元文書の版は新しくなり、本文にも新しい受付方法が書かれている。葵がコトハへ尋ねると、画面には前の受付方法が表示された。
「文書は新しくなったのに、答えは古いままです」
原因は回答キャッシュだった。Redisに残っていたキャッシュには、答えの文章だけが保存されていた。どの文書のどの版から作られた答えかが結びついていなかったため、期限が来るまで古い答えが使われ続けた。
澪はキャッシュの中身を開き、文書ID、source_version、source_updated_at、expires_atを加えた。文書の更新通知を受けたら、保存された版が現在の版と一致するかを確認し、一致しなければTTLを待たずにキャッシュを無効にする。期限は最後の安全網であり、更新通知はすぐに動く扉にした。
「版だけでなく、更新時刻も持たせるのはなぜですか?」
「版の付け忘れや、同じ版の差し替えを見つけるためだよ。版と更新時刻の両方が違えば、古い答えを現行として残さないと判断できるの」
次の試験では、FAQの参照元を非推奨にした。ところがコトハは、そのFAQをまだ検索結果に出した。参照元の状態を台帳へ書いただけで、検索対象から外す処理を追加していなかったからだ。
葵は検索条件にsource_state=activeを加えた。非推奨や廃止になった情報源は、通常の検索から外す。さらに状態が変わった瞬間、そこから作られた回答キャッシュをすべて無効にする処理を、更新イベントの中へ移した。
「履歴として残す場所と、答えを作る場所を分けるのですね」
「そう。消さなくても、現行の検索集合から外せるよ」
しかし、まだ答えは安定しなかった。同じ返品手順を説明する旧版と新版が検索結果に並び、文章の似ている順では旧版が先に来ることがあった。旧版には以前の受付方法が詳しく書かれていたため、類似度だけを信じる検索では、古い文書が勝ってしまった。
澪は回答の組み立て順を変えた。まず現行情報だけを候補にする。次に背景説明や代替案を続ける。それでも旧版を参照する必要があるときは、本文に混ぜず、「旧版・現行手順には使用しない」と注記した別枠に置く。現行情報が見つからない場合は、無理に答えず、再検索か人間の確認へ分岐させた。
「残すことと、混ぜないことは両立できるんですね」
葵は、過去の手順が消えていない台帳を見た。削除しないから監査や経緯の確認に使える。けれど通常の回答には入れない。その二つを分けることで、履歴を守りながら、今の仕事を守れるのだと気づいた。
澪はさらに、MemStrataの考え方を参考にした処理を示した。同じ主語と関係に新しい値が登録されたら、古い値を現行集合から決定論的に無効化する仕組みだ。今回なら、返品手順と受付方法に新しい値が入った時点で、前の値には自動で失効時刻を付ける。
葵は同じ更新を何度も流して試した。順番が入れ替わって届いても、版と更新時刻を比べれば、古い値が新しい値を上書きしない。台帳の状態は再現され、同じ入力から同じ無効化結果が出た。
最後に、更新担当者が情報源を変更したときの通知を加えた。変更イベントには、担当者、変更前後の情報源、文書の版、更新時刻を記録し、Slackの運用チャンネルと評価・報告の一覧へ送る。評価担当は、回答本文だけでなく、参照元、取得時刻、TTL、失効状態まで確認できるようになった。
夕方の再試験で、コトハは現行の返品方法を先に表示した。旧版は注記付きの履歴欄に残り、非推奨のFAQは検索結果から消えていた。葵が小さく息を吐くと、画面の隅で更新通知と評価記録が静かにそろった。
第5章 コトハが現在のカードを選ぶ日

第5章 コトハが現在のカードを選ぶ日 - 本文
更新後のコトハが、古い手順と新しい手順を同時に読み込み、現在のカードだけを選ぶテストの日が来た。本番に近い確認環境へ、前の返品手順と、改定された返品手順を同じタイミングで登録する。窓の外では、春の風が街路樹の若葉を揺らしていた。
「前の手順も、消さずに残すんですね」
葵がたずねると、真島は二枚のカードを画面に並べた。旧カードには失効日時があり、新しいカードには発効日時と次回確認期限がある。どちらも「返品」という言葉を含んでいたが、コトハは文章の似ている順だけで選ばない仕組みになっていた。
「主語は誰か。何と何の関係を説明しているか。答えの値は何か。そして、そのカードが今も有効か。そこを順番に確かめるんだよ」
「言葉が似ているかではなく、誰の、どの手順で、今使える値かを見るんですね」
画面の検索結果には、二枚のカードが表示された。けれど、現行カードには緑の印が付き、旧カードには灰色の「履歴」という印が付いている。コトハは、旧カードの受付方法を現行の答えへ混ぜず、現在のカードに結びついた値だけを回答の材料へ送った。
葵は、あの日と同じ質問を入力した。朝の窓口で、古い日付の手順が自信ありげに並んでいた場面が、静かによみがえった。
「今の返品手順は?」
回答の中心には、現行の手順だけが表示された。旧カードは候補の端に紛れ込まず、現在の受付方法と混ざらない場所に分けられている。回答の下には、取得時点、確認時点、次回確認期限が並び、どの時間の情報を使ったのかが見えるようになっていた。
「前は、答えの文章だけを見ていました」
葵の声には、以前の焦りがなかった。真島はうなずき、履歴を確かめるための質問を入力するよう促した。
「以前はどうだった?」
今度は旧カードが履歴として現れた。カードの上には「現在の手順ではありません」という注記があり、回答の中心には現行カードが残っている。過去を確認できても、過去を現在の指示として扱わない境目が、画面の中にはっきり見えた。
昼前、規定改定の通知が届いた。次回確認期限まではまだ時間があったが、通知に結びついた返品関連の回答キャッシュは、その場で無効になった。コトハは古い値を追い出し、改定された文書を取りに行ってから、新しい版と確認時点を付けて回答を作り直した。
「期限を待つだけではないんですね」
「そう。更新を検知したら、期限前でも止める。旧値を無効にして、キャッシュを追い出す。必要なら人が確認する。流れ全体で、今を守るんだ」
葵たちは、検索結果、回答、履歴、通知後のキャッシュを一つずつ確認した。更新期限を設定しただけではなく、版と有効状態が検索に反映され、旧値が回答から外れ、表示時点まで残ることが確かめられた。
その後、チームは動的知識を使った局所ベンチマークの記録も開いた。『RAG提供資料「類似度ではなく、構造化された更新管理を使う」』に記載された7Bモデル局所ベンチマークでは、MemStrataは0.95〜1.00、通常のRAGは0.20〜0.47だった。同じ評価で、陳腐化エラーはMemStrataで約0%まで低下し、検索レイテンシは約2.1秒だった。これは提供資料に記載された局所ベンチマークの結果であり、すべての環境で同じ性能になることを示すものではない。
数字が画面に並んでも、誰も大きな声を上げなかった。代わりに、葵の肩から力が抜け、真島の表情がやわらいだ。以前なら回答の末尾を何度も読み返していた窓口の人たちも、今はカードの状態と確認時点を見て、落ち着いて次の問い合わせへ進めるようになっていた。
夕方、葵は最初の画面をもう一度開いた。あの朝は、古い手順が現在の顔をしていた。今のコトハは、現在のカードを選び、過去は過去として残し、更新が来れば待たずに答えを入れ替えていた。
「コトハが、時間まで読めるようになりましたね」
窓辺のカードには、現行の印が静かに灯っていた。葵はその光を確かめてから、次の問い合わせを開いた。
第6章 夕方の窓に映る、いつ時点の答えか

第6章 夕方の窓に映る、いつ時点の答えか - 本文
夕方のサポート窓口では、運用が静かに落ち着いていた。葵はその日の問い合わせ履歴と、届いた更新通知を画面に並べた。朝、古い返品手順が答えた画面とは違い、今のコトハには小さな時刻が添えられている。
「今日の答えは、いつの情報かな」
葵が履歴を開くと、返品手順への回答が表示された。画面には「現在の情報:返品手順、現行版」「確認時点:回答を作った時刻」「次回確認期限:設定された更新期限」と静かに並んでいた。答えの下には、参照した文書の版と情報源も表示されている。
「これなら、答えだけでなく、答えの時間も見えるね」
真島は葵の隣でうなずいた。記録欄には、取得日時と発効日時があった。失効日時、版、情報源、推奨・非推奨の状態も残っていた。
「取得日時は、コトハが文書を取り込んだ時刻。発効日時は、その手順を使い始めてよい時刻だよ。失効日時は、使ってはいけなくなる時刻。だから、同じ文書でも時間を分けて見られるんだ」
葵は過去の問い合わせを開いた。そこには、前の返品手順も消えずに残っていた。昔の質問に対して、当時どの版で答えたのかを調べるための記録になっている。
「古い手順は、消さなくていいんだね」
「うん。過去を調べるときには必要だからね。ただし、今の質問では現行版だけが前に出る。古い版は履歴の棚に戻っているよ」
そのとき、画面の右上で通知がひとつ光った。コトハが情報源の更新を検知し、商品担当へ確認を求めていた。通知には、更新された送料表の情報源、取得日時、更新時刻、版が添えられている。
「確認が終わるまでは、推奨にはしないの?」
「そう。担当者が内容を見て、発効日時を決める。確認前の文書を、今の答えに混ぜないためだよ」
葵は更新期限の設定画面を開いた。送料や在庫のように変わりやすい情報には、短い確認間隔が設定されている。会社案内のように変化が少ない情報は、必要以上に取り直さない設定になっていた。
「情報ごとに、見直す速さを変えているんだね」
「うん。コトハの気分で決めないように、更新期限、つまりTTLを規則として持たせている。期限を過ぎたら、再確認か人の確認へ進むんだ」
回答キャッシュにも、参照した文書の版と更新時刻がひもづいていた。キャッシュは、前に作った答えを一時的に置く場所だ。RedisのようなKVSを使う場合も、答えだけでなく、その鍵に文書の版と更新時刻を一緒に記録する。
通知を受けた担当者が更新を承認すると、古い回答キャッシュは使われなくなった。過去の記録は残ったまま、現在の質問には新しい版が選ばれた。
窓の外が暗くなった。ガラスには、葵の顔と、コトハの画面が淡く映っている。
「この答えは、いつのもの?」
葵が最後に確認すると、画面には現在の情報、確認時点、次回確認期限が静かに表示された。古い手順は遠くへ消えたのではない。必要なときに戻れる場所で、現在の答えからそっと離れていた。窓に残った明かりが、履歴の棚と、今日の答えを同じ画面に照らしていた。
関連キーワード
著者について
鈴木信弘(SNAMO)
鈴木信弘(SNAMO)- 静岡県を拠点に活動する総経験19年のフルスタックエンジニア。AI時代の次世代検索最適化技術「レリバンスエンジニアリング」の実装者として、GEO(Generative Engine Optimization)最適化システムを開発。2024年12月からSNAMO Portfolioの開発を開始し、特に2025年6月〜9月にGEO技術を集中実装。12,000文字級AI記事自動生成システム、ベクトル検索、Fragment ID最適化を実現。製造業での7年間の社内SE経験を通じて、受注システム自動化による業務時間の短縮や検品作業のデジタル化など、現場の課題を技術で解決してきた。富山大学工学部卒、基本情報技術者保有。
プロフィールを見るよくある質問
Q1AIエージェントが古い情報を回答するのを防ぐにはどうすればよいですか?
Q2文書の類似度が高い旧版をAIが選んでしまうのはなぜですか?
Q3AIの回答キャッシュが古い案内を返す問題はどう解決できますか?
Q4古い文書は削除したほうがよいですか?
Q5情報のTTL(有効期限)はすべて同じにすべきですか?
Q6AIエージェントに過去の時点の情報を確認させることはできますか?
Q7バイテンポラル台帳とは何ですか?
関連記事

シンセサイザー工房で学ぶ生成AIの業務別テストデータ設計
生成AIの業務回答は、業務別テストデータで検索と回答生成を分けて評価すると品質を確かめられます。質問・検索文脈・回答・模範回答・根拠本文を分けると、検索漏れと生成ミスを切り分けられます。まず業務文書からテストケースを作り、担当者が最新版の根拠と照合して失敗例を追加してください。
読む
生成AIの利用ログから、サプライチェーンDXの改善テーマを見つける方法
生成AIの利用ログを処理全体で追跡すれば、サプライチェーンDXの改善テーマを見つけられます。検索資料やRAG、ツール、権限、エラー処理までトレースすると、回答の失敗箇所を特定できます。まず入力から最終回答まで、参照資料の版とツール操作、エラー経路をシナリオ単位で記録します。
読む
止まったAIエージェントが冪等性で仕事を再開するまで
AIエージェントはCheckpointと冪等性を設計すれば、停止後も未完了の仕事から安全に再開できる。処理状態を外部保存し、処理IDとIdempotency-Keyで再実行時の二重処理を防ぐためである。まず処理をステップ分割し、各進捗をCheckpointに保存して外部API呼び出しに冪等性キーを付ける。
読む
生成AIで変わる業務手順の影響範囲を見つめ直す方法
生成AIで変わる業務手順の影響範囲は、回答作成から業務全体へ広げて見直す。入力情報、根拠資料、確認者、記録先、システム、契約、例外時の責任まで影響するためだ。今日の業務を入力・処理・出力・確認に分解し、担当者と利用システムを付せんで整理する。
読む
