テクノロジー更新: 2026年11月2日

AIに過去の会話を探させるとき、お客様ごとの情報をどう分けるか

「AI エージェントに、前に決めたことの経緯まで覚えていてほしい」。AI を毎日使っていると、こう思う場面が増えてきます。いちばん手っ取り早いのは、過去の会話をそのまま残して、AI に検索させることです。ところが、複数のお客様の案件を同じ AI で扱っていると、すぐに別の心配が出てきます。A社の作業中に、B社の会話が検索結果に出てこないか。契約が終わったとき、その会社の会話をきちんと消せるか。

この記事では、AI に過去の会話を探させる仕組みを作ったときに決めた、3つのことを紹介します。「AI が探せる範囲」「消せる人」「本当に消える置き場」です。それぞれ、なぜその形にしたかも書きます。

アストラルコードでは、役割の違う複数の AI エージェント(以下、AI 社員)を社内で毎日動かしています。お客様の案件も並行して扱っています。この記事は、2026年11月にその社内基盤へ実際に入れた仕組みをもとに書いています。以前の記事「AIエージェントの権限管理はどう設計する?」では、使える道具の権限を扱いました。今回は、AI が読める「情報」の権限の話です。

会話を長く残すと決めた時点で、「誰が何を見られるか」が問題になる

会話を長く残すと決めたら、最初に「誰が、どの会話を見られるか」を決め直す必要があります。残す量が増えるほど、範囲の決め方の甘さがそのまま漏れる量になるからです。

30日で消えていたから、目立たなかった「範囲の穴」

当社の AI 社員は、もともと過去の会話を検索できました。ただし会話は、1つの会話につき最新200件まで、AI 社員1人につき40本まで、30日使わなければ消える、という上限付きでした。

この仕組みで、AI 社員が探せた範囲は「自分の会話」と「今のプロジェクトの会話」です。一見問題なさそうですが、「自分の会話」には、ほかのお客様の案件で話した分も入っています。つまり A社の作業中でも、自分が以前 B社の案件で話した内容は検索に出る作りでした。

これまで目立たなかったのは、30日で消えていたからです。上限を外して1年残すと、同じ穴から1年分の会話が見えることになります。上限を外す前に、範囲の決め方から直す必要がありました。

権限を「見る・探す・消す」の3つに分ける

そこで、会話に対してできることを3つに分け、それぞれ誰に許すかを決めました。

  • 探す:AI 社員が、仕事の途中で過去の会話を検索すること。AI 社員に許す。ただし範囲を絞る。
  • 見る:会話をそのまま一覧で読むこと。人(オーナー)の画面だけに許す。
  • 消す:記録から本当に消すこと。人(オーナー)の画面だけに許す。

分けた理由は、AI 社員に必要なのは「今の仕事に関係する経緯を探すこと」だけだからです。全部を読める必要も、消せる必要もありません。AI 社員が自分の仕事のために使う「探す」は許し、それ以外は人だけに残しました。セキュリティでいう「最小権限の原則」(仕事に必要な分だけ権限を渡す考え方)を、会話の記録に当てはめた形です。

会話に対する「探す・見る・消す」の3つの操作と、人とAI社員それぞれに許す範囲の表

長く残すと決めたら、まず範囲を決め直す。これが最初にやったことです。

AI に探させる範囲は、AI に言わせず仕組みで決める

AI が探せる範囲は、AI 自身に指定させず、仕組みの側で決めるのが安全です。AI は検索の条件を自由に書けるので、条件の中身を信じてしまうと範囲を越えられるからです。

範囲は「今のプロジェクト」か「同じ会社全体」の2択。会社はまたがない

AI 社員が選べる検索の範囲は、次の2つだけにしました。

  • 今のプロジェクト(何も指定しなければこちら)
  • 同じ会社全体:今の作業のプロジェクトが属する会社の、すべてのプロジェクトの会話

どちらを選んでも、ほかの会社の会話は出ません。A社の作業中に「会社全体」で探しても、出るのは A社の会話だけです。

一方で、同じ範囲の中なら、ほかの AI 社員の会話も探せるようにしました。同じお客様の案件で、別の AI 社員が決めた経緯を知りたいことがあるからです。境目は「AI 社員ごと」ではなく「会社ごと」に引いています。

どのプロジェクトにも付けずに話した会話は、当社(アストラルコード)の会話として扱います。お客様の側に混ざる心配のない、安全な側に倒すためです。

どの会社かは、リクエストの中身ではなく「その作業」から決める

検索のときに AI 社員が送るのは、「探す言葉」と「プロジェクトか会社全体か」の2つだけです。どの会社の会話を探すかは、送らせません。

オフィスは、AI 社員に仕事を始めさせるとき、その作業専用の合言葉(鍵)を渡します。合言葉には「どの AI 社員が、どの作業場所で動いているか」が結び付いています。検索が来たら、合言葉から作業場所を引き、作業場所からプロジェクトと会社を決めます。

もし「会社名」を検索の条件として受け取る作りだと、AI が別の会社の名前を書くだけで範囲を越えられます。AI は悪意がなくても、目的のために手段を広げることがあります。だから、範囲を決める材料は、AI が書き換えられない側に置きました。

会話の置き場を会社ごとに分け、A社の作業中のAI社員はA社の中だけを探せることを示す図

途中でプロジェクトが付いた会話は、発言した時点の会社に書く

困ったのは、会話の途中でプロジェクトが付く場合です。最初は雑談のつもりで話し始め、途中から「この話は A社の案件で」と作業場所を決めることがあります。

この場合、発言ごとに「その発言を書いた時点のプロジェクトの会社」の置き場へ書くことにしました。プロジェクトが付く前の発言は当社の置き場に、付いた後の発言は A社の置き場に入ります。1本の会話が2か所に分かれますが、同じ発言が両方に入ることはありません。

会話ごと A社の置き場へ移す方法も考えましたが、採りませんでした。移している途中で失敗すると、会話がずれたり、二重になったりするおそれがあるからです。書いた時点で行き先が決まるなら、あとから移す処理はいりません。

範囲は AI に言わせず、作業から決める。そして発言を書いた時点で行き先を決める。この2つで、検索の結果に別の会社の会話が混ざらないようにしています。

「消す」は人だけに。そして本当に消えるように

会話を消す操作は人だけに許し、消したら本当に読めない形で消えるようにしました。お客様との契約が終わったとき、「消しました」と言える状態にしておく必要があるからです。

「画面から消す」と「記録から消す」を分ける

チャットの画面で会話を消しても、記録には残すようにしました。画面を片付けるための「消す」と、記録を処分するための「消す」は、目的が違うからです。画面から消した会話は、印を付けたうえで、AI 社員がこれまでどおり探せます。

記録から本当に消す操作は、オーナーの画面にだけ置きました。消せる単位は「会話1本」「プロジェクト全部」「会社全部」の3つです。消す前に、消える会話の本数と発言の数を出し、確認を取ってから消します。

消す順番にも気をつけました。今動いている会話の状態を持つ側を先に消して保存し、そのあとで記録を消します。逆の順番だと、途中で止まったとき、状態の側に残った会話から記録へ書き戻されてしまうおそれがあるからです。

「人の画面から来たか」を、目印だけで判断しない

「オーナーの画面からだけ」を守るには、受け口が「この依頼は人の画面から来たのか」を見分ける必要があります。

よくあるのは、画面が送る通信に目印(専用のヘッダー)を付けて、それを確かめる方法です。しかし目印だけでは足りません。コマンドを実行できる AI 社員は、同じ目印を付けた通信を自分で送れるからです。以前の記事では、この点を「まだ防げていないこと」として書きました。

そこで会話の記録の受け口では、目印に加えて、通信を送ってきたプロセスが何かを OS 側で確かめるようにしました。その接続を、オフィスが動かしている AI 社員側のプロセスが持っていたら断ります。どのプロセスの接続か判断がつかないときも断ります。迷ったら通さない側に倒す、という決め方です。

この記事を書くときに、AI 社員の作業の中から、会話の一覧を返す受け口を呼んで確かめました。画面と同じ目印を付けて呼んでも、「画面からだけ使えます」という拒否(403)が返りました。

人の画面からの依頼は2つの関門を通り、目印を真似したAI社員の依頼は2つ目の関門で止まる流れの図

会社ごとに1ファイルにした理由

置き場は、会社ごとに1つの SQLite(ファイル1つで動くデータベース)にしました。契約が終わったとき、その会社のファイルを消すだけで、記録も目録も検索の索引もまとめて消えるからです。

ほかに2つの案と比べました。

案

会社の記録を1回で消せるか

判断

全員・全部の会話を1つのファイルに入れる

消せない。ファイルの中から探して書き直す必要がある

採らない

会話1本ごとに1ファイル+目録

目録で絞って何百ものファイルを消す。取りこぼしの心配が残る

採らない

会社ごとに1つのファイル

ファイル(フォルダ)を消すだけ

採る

もう1つの理由があります。SQLite は、行を消しても、そのデータがファイルの中の空き領域にしばらく残ることがあります。1つのファイルに全社の会話を入れて A社の行だけ消すと、「消したはずの A社の会話が、ファイルの中に読める形で残っている」ことが起こりえます。会社ごとにファイルを分けておけば、ファイルごと消せるので、この心配がありません。

なお、容量はほとんど問題になりません。当社の場合、会話の本文は1か月で約3.4MB、1年でも約41MBの見込みです。外部のサービスに置けば PC の容量は減らせますが、それはお客様の話を外へ持ち出すことになります。手元の PC に会社ごとに分けて置く形にしました。

誰がいつ何を探したかも、会社ごとに記録する

AI 社員が過去の会話を検索するたびに、その記録を1回1行で残しています。あとから「どの AI 社員が、いつ、どの作業場所から、何を探して、どの会話を受け取ったか」を確かめられるようにするためです。

お客様から「うちの話を AI が見たことはありますか」と聞かれたとき、仕組みの説明だけでなく、記録で答えられる状態にしておきたいからです。

残しているのは次の項目です。

  • 時刻
  • 検索した AI 社員と作業場所(会社・プロジェクト)
  • 範囲(今のプロジェクト/会社全体)
  • 探した言葉(先頭400字まで)
  • 返した件数と、どの会話を返したか(会話の本文は残さない)
  • 検索が失敗したときは、その印と理由

この記録も、会話と同じく会社ごとの置き場に入れています。探した言葉には、お客様の案件の話がそのまま入ることがあるからです。会社をまたぐ1つのログに書くと、会社ごとに分けた意味がなくなります。会社の記録を消すと、その会社で探した記録も一緒に消えます。

記録を読めるのは、会話の記録と同じく人の画面だけです。この記事を書くときに、AI 社員の作業から実際に検索を1回行い、その会社の記録に1行増えたことを確かめました。同じ作業から記録を読む受け口を呼ぶと、拒否(403)が返りました。

なお、記録を書くのに失敗しても、検索の結果は AI 社員に返します。記録のために仕事を止めると、AI 社員が経緯を確かめられないまま作業を進めてしまうからです。そのかわり、記録の失敗はオフィスのログにエラーとして残します。

この仕組みの外に残るもの

正直に書いておくと、会社のファイルを消しても、すべてが消えるわけではありません。

  • どのプロジェクトにも付けずに話した会話は、中身が A社の話でも当社の会話として残ります。A社と一緒には消えません。
  • プロジェクトの記憶(AI 社員が残した1行のメモ)や、プロジェクトのフォルダそのものは、別の場所にあります。会社を消すときに一覧で見せますが、消すかどうかは人がその場で決めます。
  • AI ツール自身が手元に残す記録は、この仕組みの外にあり、消していません。

「消せる人を絞る」ことと「消したら本当に消える」ことは、別々に作る必要があります。そのうえで、消えないものは消えないと分かる形にしておくことが大事です。

まとめ

  • 会話を長く残すと決めた時点で、「誰が何を見られるか」を決め直す。30日で消えていたから目立たなかった範囲の穴も、1年残すと漏れる量が増える。
  • 権限は「見る・探す・消す」に分ける。AI 社員には、範囲を絞った「探す」だけを許す。
  • AI が探せる範囲は、AI に指定させず、作業の鍵から仕組みが決める。会社はまたがない。
  • 途中でプロジェクトが付いた会話は、発言した時点の会社の置き場に書く。あとから移さない。
  • 「消す」は人の画面だけに許す。人の画面から来たかは目印だけで判断せず、接続元のプロセスまで確かめる。
  • 誰がいつ何を探したかも、会社ごとの置き場に記録する。記録を読めるのも人の画面だけ。
  • 置き場を会社ごとのファイルに分け、契約が終わったらファイルごと消す。消えないものは一覧で見せる。

AI エージェントの権限は、使える道具だけでなく、読める情報についても決める必要があります。道具の権限の話は「AIエージェントの権限管理はどう設計する?大手2社の事故と、自社で権限を絞って分かった残りの課題」、AI 社員の記憶の決め方は「AIエージェントの記憶に「失敗だけ」を書くと逆効果?査読論文で決め直した社内AIの記憶ルール5つ」で紹介しています。あわせて読んでみてください。

「複数のお客様の案件で AI エージェントを使いたいが、情報の分け方が決められない」という方は、お問い合わせからお気軽にご相談ください。

CONTACT

自社のケースのAI活用について相談する

現在の課題をうかがったうえで、導入イメージと概算費用をご案内します。相談は無料です。

AC
久場星河

合同会社アストラルコード 代表。AI・LLMを活用したシステム開発を通じて、企業の生産性向上を支援しています。