← 一覧へ

企業AIエージェントは、まずデータ基盤を片づけないと働けない

この記事の読み方
企業AIエージェントのデモは簡単です。チャット欄に「先月の売上を地域別に出して」と打つ。モデルがSQLを書く。表とグラフが出る。拍手。

企業AIエージェントのデモは簡単です。チャット欄に「先月の売上を地域別に出して」と打つ。モデルがSQLを書く。表とグラフが出る。拍手。

本番はそこから急に泥臭くなる。

どのテーブルが正しいのか。誰が見ていいのか。PIIは隠れているのか。指標の定義はどこにあるのか。古いデータと新しいデータが混ざっていないか。SQLが合っていても、口径が間違っていたら答えは間違いです。

CloudflareのTown LakeとSkipperの記事が良いのは、この泥臭さを隠していないところです。彼らが作ったのは「自然言語でSQLを書くAI」ではない。AIが安全に働けるデータ基盤です。

問題は、データがあることではなく、会社の中で散らばっていること

Cloudflareは毎秒10億件以上のイベントを処理し、330以上の都市、120以上の国にネットワークを持つ。データは当然多い。ただ、多いだけでは価値にならない。

記事によると、データはPostgres、ClickHouse、Kafka、BigQuery、R2、長いパイプライン群に散っていた。簡単な問いにも、どのシステムを叩くか、どの認証情報が要るか、どのクエリ言語を書くか、データがサンプリングされているか、新鮮かを知る必要があった。

これは多くの企業で起きている。データはある。でも、知っている人しか使えない。聞ける人が辞めると、地図も一緒に消える。

Skipperはこの上に直接置かれたわけではない。まずTown Lakeを作った。

Town Lakeは、AIのための床を作っている

Town Lakeの中核は、統一SQL入口です。Apache TrinoでPostgres、ClickHouse、R2上のIcebergテーブルをまたいでクエリできる。R2 Data CatalogとIcebergで古いデータも安く問い合わせ可能にする。DataHubにテーブル、カラム、所有者、血縁、用語を入れる。Lifeguardでアクセス制御をする。SkimmerでPIIを検出する。TransformerでSQL変換のDAGを管理する。

ここで大事なのは、派手な新技術ではない。むしろ退屈な部品です。メタデータ、権限、血縁、PII、監査、取り込み、スキーマ進化。

でもAIエージェントにとっては、この退屈さが命です。

モデルは、テーブル名の羅列だけを渡されると平気で幻覚する。ありそうなjoinを書く。似たカラムを使う。古い口径で数字を出す。自信満々に間違える。

だからCloudflareは、モデルにただSQLを書かせない。DataHubのスキーマ、所有者、カラム説明、過去のjoinパターン、人間の注釈、Transformerから出るSQL由来の血縁、短いデータモデル文書、必要なら実行時のDESCRIBEや小さな探査クエリを渡す。

つまりSkipperの賢さは、プロンプトではなく文脈の地層から来ている。

セキュリティモデルが、そのままデータモデルになる

もう一つ重要なのは、default-closedです。

統一データ基盤を作ると、便利さと同時に巨大な漏洩面を作る。Cloudflareは、開けてから閉じるのではなく、レビューされるまで閉じる方向を選んだ。新しいテーブルやカラムはSkimmerでスキャンされ、PIIや敏感情報が分類され、承認されるまでクエリできない。PIIはデフォルトでマスクされ、必要なときだけ権限とログ付きで解除する。

Skipperもこの境界を越えない。ユーザーが見られないテーブルは、Skipperも見られない。共有ダッシュボードを開く人にも、その時点の権限を確認する。

これが本番のAIエージェントです。モデルに特別な鍵を渡さない。ユーザーの権限で動かす。監査できる。あとから追える。

日本企業がここを飛ばすと、たぶん事故る。自然言語SQLは便利です。でも、便利なものほど権限境界を溶かしやすい。

Code Modeは、道具呼び出しをコードにする

SkipperのMCP実装で面白いのはCode Modeです。

普通のツール型エージェントは、ツールを一つずつ呼ぶ。検索、スキーマ取得、SQL作成、実行、結果取得、グラフ作成。何度もモデル往復が発生する。遅いし高いし、文脈も毎回膨らむ。

Cloudflareは、30個の細かいツールをそのまま出すのではなく、searchとexecuteのような入口を用意し、モデルにJavaScriptを書かせる。そのコードがDynamic Worker isolateで動く。複数ステップの作業を一つのコードとして表現でき、速く、安く、監査しやすい。

これはかなり実務的な発想です。エージェントの思考を、チャットの散らばったツール呼び出しではなく、実行可能で読めるコードに寄せている。

個人的な見方

この話の主役はSkipperではないと思う。主役はTown Lakeです。

AIエージェントは、新人社員に似ている。やる気はある。手も動く。でも、会社の地図、権限、用語集、正しい帳簿、禁止事項がなければ、ろくに働けない。Cloudflareは新人を賢くする前に、会社側を働ける形にした。

企業AIでよくある失敗は、ここを逆にすることです。先にチャットUIを作る。SQL生成を試す。プロンプトを直す。幻覚に怒る。違う。先に片づけるべきは、データ基盤です。

日本企業にもかなり刺さる。部門ごとにデータが散り、ExcelとDWHと業務DBとBIが並び、指標の口径が人に依存している会社は多い。そこにAIを置いても、AIは会社の混乱を速く喋るだけです。

Skipperの教訓は冷たい。AIエージェントを働かせたいなら、まず会社を、エージェントが安全に読める形にする。地図、鍵、帳簿、監査。退屈なものが、いちばん効く。

―― AI未来編集室「AIウォッチ」

← 一覧へ