第 0 回では、2026 年の情報漏えいの状況と、中小企業が今すぐやるべき 6 つの対策を整理しました。今回は、私たち自身の話です。
私たちは、100 本を超えるプロジェクトを AI エージェントと一緒に開発してきました。AI エージェントは便利な反面、人とは違う道筋で情報に触れます。その道筋に合わせて、情報の守り方をどう組み立ててきたかを書きます。
AI エージェントが情報に触れる 5 つの通り道
AI エージェントは、文章を書くだけの道具ではありません。手元のファイルを読み、コマンドを動かし、外のサービスに書き込めます。人が一度も開いたことのないファイルにも、指示のしかたによっては手が届きます。
情報が外に出うる通り道は、大きく 5 つあります。
| 通り道 | 起こりうること | この回で書く守り方 |
|---|---|---|
| AI への入力 | 顧客の情報を、扱いの合わない AI の環境に入れてしまう。会話の窓に、顧客の一覧をそのまま貼ってしまう | 入れてよいデータを分類で決め、中身は会話の窓に出さない |
| 鍵・認証情報 | 設定ファイルの鍵を、AI が読んだり書き写したりする | 鍵は AI に読ませない |
| 外への送信 | チャット・メール・会計のサービスへ、AI が書き込む | 外に出す前に、人が確かめる |
| 本番への変更 | 本番への配備や、データベースの変更を AI が行う | 人が決めてから行う |
| 公開物 | 公開する文章に、顧客名やフォルダ名が混ざる | 試験で混入を見張る |
私たちの考え方は、「気をつけてね」と頼むより、止まる仕組みを置くことです。AI エージェントへの指示書は「読んで考える材料」で、書いたことを必ず守らせるものにはなりません(Claude Code の公式ドキュメントもそう説明しています)。本当に止めたいことは、止まる仕組みにしておく必要があります。
入れてよいデータは分類で決める
最初に決めたのは、「どのデータを、どの AI の環境に入れてよいか」の基準です。社内では、データを 4 段階、AI の環境を 4 段階に分けて判断しています。
| データの分類 | 例 |
|---|---|
| L1 公開情報 | 会社のサイト、公開しているオープンデータ |
| L2 社内一般 | 個人名のない議事録、技術メモ、一般的なコード |
| L3 個人情報 | 社員や顧客の氏名・連絡先・契約や請求の情報、支援先から預かったデータ |
| L4 機密 | 経営の機密、秘密保持契約の対象、鍵・認証情報 |
| AI の環境 | 例 |
|---|---|
| Tier A 自社管理 | 社内の機械で動かすモデル(外に出ない) |
| Tier B 商用の契約 | 事業向けの契約・API |
| Tier C 一般向け(学習なしの設定) | 個人向けの有料プランなど |
| Tier D 一般向け(学習ありの設定) | 業務では使わない |
データの分類が高いほど、使える環境は限られます。L4 の鍵や認証情報は、どの環境にも入れません。迷ったときは、AI に入れる前に人が判断します。
この基準を、社内の誰でも使える「相談窓口」として、AI エージェントのスキル(手順書)にしています。さらに、依頼の文面に個人情報や機密に関わる言葉があると、作業の前にこの判定を促す仕組みも入れています。
会話の窓に中身を出さない
AI に頼むとき、こちらが送った文章と、AI が読んだものは、すべて「コンテキストウィンドウ」に入ります。AI が一度に読んで考えられる範囲のことで、ここでは「会話の窓」と呼びます。
生成 AI を使い始めたばかりのころは、顧客の一覧や契約書を、そのまま会話の窓に貼って「まとめて」と頼みがちです。けれども、会話の窓に入ったものは、AI のサービスに送られます。手元の画面に打ち込んだつもりでも、中身はサービスのサーバーに届きます。どう保存され、どう使われるかは、サービスと契約・設定によって変わります。
AI エージェントの場合は、AI が読んだものも窓に入ります。人が貼らなくても、AI エージェントがファイルを開いたり、コマンドの結果を表示したりすれば、その中身が窓に入ります。顧客の一覧の CSV を「開いて中身を見て」と頼めば、全行が入ります。
そして、一度入ったものは、その会話のあいだ残ります。あとの返事や要約に、そのまま出てくることもあり、入れたあとで取り消すことはできません。
中身はプログラムに、窓には結果だけ
そこで私たちは、データの中身を会話の窓に出さないやり方を基本にしています。同じ集計でも、頼み方で窓に入るものが変わります。
| 頼み方 | 会話の窓に入るもの |
|---|---|
| 「顧客の CSV を貼るので、地域別に集計して」 | 全行(氏名や連絡先も) |
| 「顧客の CSV の列名だけを見て、地域別に集計するプログラムを書いて。動かして、集計の表だけを出して」 | 列名、プログラム、集計の結果 |
AI エージェントは、手元でプログラムを書いて動かせます。CSV やデータベース、外のサービスの API の中身は、そのプログラムが手元で読みます。AI には、件数や合計、エラーの有無といった結果だけを返させます。AI のサービスに届くのは、データの形と、プログラムと、結果です。
鍵も同じ考え方です。たとえば、この特集の作業の現在地を社内のダッシュボードに記録するとき、AI エージェントは用意されたコマンドを動かすだけです。鍵は、コマンドの中のプログラムが別の場所から読みます。AI エージェントに返ってくるのは「更新した」という結果だけで、鍵は会話の窓に一度も出ません。
ただし、プログラムを使っても、表示したものは窓に入ります。中身を確かめたいときは、件数や列ごとの空欄の数を出し、行を見るときは名前や連絡先を伏せた形にします。プログラムを作る段階では、本物のデータではなく、形だけをまねた見本のデータを使います。
CSV を読ませるときの手順
架空の例で書きます。顧客の一覧 customers.csv(氏名・メール・電話・地域・契約日の 5 列)を、地域別に数えたいとします。
最初に、中身ではなく形だけを出してもらいます。
customers.csv の値は表示せずに、行数と列名、列ごとの空欄の数を出すプログラムを書いて、動かしてください。
会話の窓に返ってくるのは、次のような結果です。
行数: 1240
列: 氏名, メール, 電話, 地域, 契約日
空欄: 電話 37, 地域 12
形が分かったら、集計を頼みます。
地域別の件数を数えるプログラムを書いて、動かしてください。地域が空欄の行は「(空欄)」として数えてください。出すのは集計の表だけにしてください。
AI エージェントは、たとえば次のようなプログラムを書いて、手元で動かします。
import pandas as pd
df = pd.read_csv("customers.csv")
counts = df["地域"].fillna("(空欄)").value_counts()
print(counts.to_string())
CSV の全行を読むのは手元のプログラムで、会話の窓に入るのは、頼んだ文・プログラム・地域ごとの件数だけです。氏名やメールは、一度も窓に出ません。
行を見て確かめたいときは、名前や連絡先を伏せて、数行だけ出させます。
先頭の 3 行を、氏名・メール・電話を「***」に置き換えて表示してください。
プログラムを直すときや、ほかの人に手順を見せるときは、本物の CSV ではなく見本を使います。「customers.csv と同じ列名で、架空の値の見本を 5 行作って sample.csv に保存して」と頼めば、AI エージェントが作ります。研修や社内の説明で画面に映すのも、この見本です。
気をつけたいのは、頼み方によっては、プログラムを使っていても中身が窓に入ることです。「CSV を読み込んで内容を確認して」とだけ頼むと、AI エージェントは確かめるために先頭の行を表示することがあります。「値は表示しない」「出すのは集計だけ」と、窓に出してよいものを頼む文の中に書いておくと、表示されずに済みます。
議事録と会話ログを使うとき
私たちは、会議の記録に tl;dv を使っています。会議を記録して会話ログを集める、議事録のエージェントです。議事録は、集まった会話ログをもとに AI エージェントで作っています。
議事録には、CSV の集計と違うところがあります。要約するには、AI が会話そのものを読む必要があるので、中身を会話の窓に出さずに済ませることはできません。会話ログには、参加者や顧客の名前、数字や事情が入ります。そのため議事録では、「どの環境の窓に、どこまで入れるか」を先に決めます。
私たちの決めごとは、まだ途中です。使っている AI の環境は、チームで契約している ChatGPT と Claude で、1 つにはそろっていません。話者名をどう扱うかも、まだ決めていません。そこで、ここでは私たちがこれから決めていく順番を、始めるときの手順として書きます。
1. 会議の前に、AI で記録して議事録を作ることを参加者に伝える
2. 会話ログを入れてよい AI の環境を決める
3. 入れないものを決める(健康・家庭の事情・人事の評価・公開前の数字など)
4. 話者名を役割に置き換え、必要な部分だけを渡す
5. できた議事録を人が確かめ、元の会話ログと録画を残す期間を決める
1 つ目は、私たちはすでにしています。AI を使う会社であることを会議の前にお伝えしていて、tl;dv を紹介しながら、AI について話すこともあります。録画していると伝えるだけでなく、AI が文字起こしと要約をすることまで伝えておくと、参加者が自分で判断できます。
2 つ目は、前の節の分類で考えます。名前の入った会話ログは、多くの場合 L3(個人情報)です。個人情報保護委員会の注意喚起(2023 年 6 月)は、個人情報を含む文を生成 AI に入れるとき、利用目的の範囲内かを確かめるよう求めています。本人の同意なく入れる場合は、サービスがそのデータを機械学習に使わないことなどを確かめる必要がある、としています。学習に使うかどうかや保存される期間は、同じ製品でも契約と設定で変わるので、製品の名前で決めずに確かめます。tl;dv のような記録のサービスも会話を預ける先の 1 つなので、同じように確かめます。
4 つ目は、AI エージェントなら CSV と同じやり方ができます。会話ログはプログラムが手元のファイルに保存し、話者名や、会話に出てくる顧客の名前を、「営業担当」「先方の部長」「A 社」のような呼び方に置き換えます。置き換えの対応表は手元に残し、AI が読むのは置き換えたあとの会話ログだけです。名前に戻すのは、議事録ができたあと、必要なところだけを手元で行います。反対に、AI エージェントに「会議の記録を読んで議事録にして」とだけ頼むと、会話ログが名前のまま全文、窓に入ってしまいます。
議事録に何を残すか(決まったこと、宿題と担当、次に話すことなど)を先に決めておくと、渡す部分も絞りやすくなります。
会話の窓でやり取りすること
会話の窓は、目的と決めごとをやり取りする場所として使っています。データの中身は、そこに載せません。
| 窓に出してよいもの | 窓に出さないもの |
|---|---|
| 目的と、何を決めたいか | 顧客や社員の氏名・連絡先の一覧 |
| データの形(列名、件数、型)と、見本のデータ | 契約書・請求書・預かったデータの本文 |
| 手順とルール(どの列を使うか、何を除くか) | 鍵・パスワード・トークン |
| 集計の結果と、エラーのメッセージ(個人名や鍵が混ざっていないか見てから) | 画面の写しのうち、個人の情報が写っているもの |
| AI が書いたプログラムと、その説明 |
迷ったときは、前の節の分類で確かめます。L4(機密・鍵)は、どの環境の窓にも入れません。L3(個人情報)は、入れてよい環境が決まっていても、まず中身を出さずに済む頼み方がないかを考えます。多くの場合、プログラムに扱わせれば、中身を窓に出さずに同じ結果が得られます。
鍵は AI に読ませない
サービスにつなぐための鍵(API キーなど)は、AI エージェントに読ませず、書かせず、チャットにも貼ってもらわないと決めています。鍵を設定するのは人で、ターミナルや OS の鍵の保管庫(キーチェーン)から設定します。
これを文章で頼むだけにせず、AI エージェントがコマンドを実行する直前に、中身を見て止める仕組みを置いています。
- 鍵の入ったファイル(
.envなど)を読み出す・書き写す操作は止める - 環境変数をまとめて表示する操作は止める(鍵が一緒に出るため)
- 見本のファイル(
.env.exampleなど)は止めない
報告の文面に「.env」と書いただけで止まる、といった止めすぎがあると、仕組みそのものが使われなくなります。止めるのは「本当に鍵に触れる操作」だけになるよう、試験を書いて確かめながら直しています。
外に出す前に人が確かめる
AI エージェントに任せることと、人が決めることの線は、3 つの問いで引いています。取り消せるか。外に出るか。お金・人・信頼に関わるか。取り消せない操作、公開・送信・本番に触れる操作、課金・評価・個人情報・会社名義の文章は、人が決めます。
この線も仕組みにしています。チャットやメールへの送信、会計のサービスへの書き込み、本番への配備は、実行の直前に人の確認を求めます。調べもの・下書き・コード・試験・社内の記録への書き込みは、AI エージェントが自分で進めます。
全部を確認にすると、確認が多すぎて読まずに「はい」を押すようになります。確認は、対象と宛先が決まっていない操作にだけ使う、というのが私たちの考え方です。
公開する文章に固有名詞を混ぜない
この特集のように、AI エージェントと一緒に書いた文章を公開するときは、顧客名・人名・フォルダ名を出さないことにしています。作業フォルダの名前には、支援先の名前が入っていることがあるからです。
これも目で確かめるだけにせず、記事の本文に作業フォルダの名前が混ざったら試験が落ちるようにしています。
仕組みは何層かで重ねる
ここまでの仕組みは、AI エージェントの側に置いたものです。コマンドの文字の並びを見て判定するので、すべての書き方を止められるわけではありません。そこで、守りを何層かで重ねる設計にしています。
| 層 | 置き場所 | 役割 |
|---|---|---|
| 1. 指示 | AI エージェントの指示書 | 振る舞いの決まりと、理由を伝える |
| 2. 権限 | AI エージェントの設定 | 禁止・確認のルールで、操作を絞る |
| 3. 実行前の見張り | AI エージェントの設定 | コマンドの中身を見て、実行の直前に止める |
| 4. 関所 | 各リポジトリ | コミット前の検査、公開物の試験 |
| 5. サービス側 | GitHub・配備先・データベース | 重要な場所への変更を、サービスの設定で守る |
| 6. OS | 手元の機械 | 決めた場所の外に、そもそも手が届かないようにする |
AI エージェントが自分で外せない層(5 と 6)を最後の守りにし、その手前の層で多くを止める、という考え方です。
振り返り
こうすればよかった
止める仕組みは、もっと早く始めればよかったと思います。最初の数か月は、指示書に「やらないこと」を書く形が中心でした。指示書は読む材料なので、止める仕組みを早めに重ねるべきでした。
AI に入れてよいデータの基準も、プロジェクトを始める前に決めておけばよかったところです。始めてから基準を当てはめると、見直す範囲が広くなります。
一般的なやり方と比べて
| 一般的なやり方 | 私たちのやり方 |
|---|---|
| 生成 AI に入力してよいデータの基準を決める(第 0 回のチェックリスト) | データ 4 段階 × AI の環境 4 段階で判断し、依頼の時点で判定を促す |
| 生成 AI に、個人情報や機密を入力しない | 中身はプログラムが手元で扱い、会話の窓には形と結果だけを返す |
| 鍵や認証情報は、決まった保管場所で管理する | 鍵は人が設定し、AI エージェントには読ませない仕組みで止める |
| 重要な変更は、承認してから行う | 取り消せない・外に出る・信頼に関わる操作は、実行の直前に人の確認を求める |
次に試すこと(候補)
今後の運用の中で試し、続けるかどうかを決めます。
1. サービス側の守りを固める。重要なリポジトリの保護と、AI エージェントが使う鍵の権限を、本番に書き込めないものに絞る
2. 手元の機械での隔離を、1 つのプロジェクトで試す
3. 月に 1 回、止めた記録と止めすぎの記録を読み返し、仕組みを直す
御社で始めるなら
AI エージェントを業務で使い始めるときに、最初にやっておくとよいことを 6 つに絞りました。
1. 入れてよいデータの基準を、1 枚の表にする(データの分類と、使う AI の環境の組み合わせ)
2. データの中身は、会話の窓に貼らない。プログラムに扱わせ、AI には列名などの形と結果だけを渡す
3. 鍵や認証情報は、人が設定する。AI エージェントにもチャットにも渡さない
4. 取り消せない操作と、外に出る操作を書き出し、人の確認を必須にする
5. 確認は絞る。全部を確認にすると、確認が形だけになる
6. 止める仕組みは、何層かで重ねる。指示書だけに頼らず、サービスの設定や権限でも守る
次回は、取引先から対策の水準を確認される時代への備えとして、国の新しい評価制度の基礎水準(★3)に沿った自己点検を取り上げます。
この記事について
書いている仕組みは、2026 年 10 月時点で私たちが使っているものです。AI のサービスの条件(データの保持や学習の扱いなど)は契約やプランで変わるので、使う前に各サービスの公式の条件で確かめてください。