$cd ../use-cases/
👾 開発者v1.4+8 分で設定
$ cat sql-natural-language.md
SQL 自然言語クエリインターフェース
/** 人間の好奇心と構造化データの間の溝を埋める。OpenClaw は、ネイティブなスキーマ認識と安全ガードレールを備えた、プロダクション級の SQL に自然言語を変換します。 */
schema_sentinel.log
スキーマ認識と安全第一の設計
ほとんどの「テキスト to SQL」ツールは質問テキストに基づいてカラム名を推測するだけで、テーブル構造を幻覚し、サイレントに失敗するか誤ったデータを返すクエリを生成します。OpenClaw は根本的に異なるアプローチを取ります。最初の SQL 文字を生成する前に、データベースの完全な DDL イントロスペクションを実行し、すべてのテーブル定義・カラム型・外部キー関係・インデックス構造をスキーマ認識コンテキストウィンドウに読み込みます。結果は動作するだけでなく、アーキテクチャ的に正確な SQL です。 本番データベースでは安全性が絶対条件です。OpenClaw はデータベースロールレベルで読み取り専用アクセスを強制します。LLM が UPDATE や DELETE ステートメントを生成しても、接続層がそれを拒否します。設定でフラグを立てた機密カラム(メール・マイナンバー・電話番号)は結果表示前に自動的にマスクされます。生成された各クエリはローカルの SQL リンターと LLM ベースの意図検証ステップを通過し、「先月の収入」が年初来の集計にならないよう微妙な誤訳を検出します。
query_pipeline.md
⚙️ クエリパイプライン
1
メタデータ探索
OpenClaw は読み取り専用の認証情報を使用してデータベースに接続し、すべてのスキーマメタデータ(テーブル名・カラム型・インデックス・外部キー・チェック制約)を内省します。行レベルのデータは一切読み取りません。スキーマスナップショットはキャッシュされ、DDL 変更を検出すると自動更新されます。
2
意味論的マッピング
RAG で強化されたスキーマコンテキストを使用して、ユーザーの意図を特定のテーブルとカラムにマッピングします。「売上」「ユーザー」「先四半期」などの曖昧な用語は、実際のスキーマ命名規則とプロジェクトごとに設定可能なドメイン別名辞書で解決されます。
3
SQL 合成と検証
PostgreSQL・MySQL・BigQuery 向けの方言固有の最適化を含む ANSI 標準 SQL を生成します。2 段階検証:まずローカルリンターで構文の正確性を確認し、次に LLM の再読取りで意味の正確性を検証してから実行します。
4
マルチモーダル視覚化
結果セットは最適な形式で自動レンダリングされます。テーブルデータはソート可能なインタラクティブ表、時系列データは折れ線グラフ、カテゴリ集計は棒グラフで表示されます。外部ツールでの追加分析用に生の CSV ダウンロードも常に利用可能です。
database_pool.json
⚙️ データベース接続設定
{
"provider": "postgresql",
"connection": "postgres://readonly:***@prod-db:5432/analytics",
"security": {
"enforce_read_only": true,
"pii_masking": ["email", "phone"]
}
}
💡# 💡 高度なヒント:'postgres-read-only' ロールを使用して、AI が本番データを変更できないようにします。
example_queries.sql
💬 プロダクション級の例
QUERY:
"第3四半期の Pro ユーザーのチャーン率を計算して"
OUTPUT:
WITH churn AS (SELECT user_id FROM subs WHERE status='expired'...) SELECT count(*) / (SELECT count(*) FROM users)...
QUERY:
"会議室202の重複する予約を見つけて"
OUTPUT:
SELECT t1.id, t2.id FROM appts t1 JOIN appts t2 ON t1.room=t2.room AND t1.start < t2.end...
❓ FAQ
Q1. 本番データベースを誤って変更する可能性はありますか?
ありません。OpenClaw は 2 層で読み取り専用アクセスを強制します。データベースロール(postgres-read-only)と、生成された SQL の DML・DDL ステートメントをパターンマッチングして実行前に拒否する実行層です。侵害された LLM の出力でも、スキーマへの書き込み・削除・変更は不可能です。
Q2. 対応データベースは何ですか?
PostgreSQL・MySQL 8+・Google BigQuery が完全な方言サポートで標準搭載されています。コミュニティコネクターにより MSSQL・SQLite・Oracle・Snowflake も追加できます。スキーマイントロスペクションエンジンは各データベースの information_schema 形式に自動的に適応します。
Q3. JOIN や CTE などの複雑なクエリを処理できますか?
はい。OpenClaw は実際の DDL を読み取るため、外部キー関係を理解し、正確な多テーブル JOIN・CTE・ウィンドウ関数(RANK・LAG・LEAD)・相関サブクエリを生成します。単純なツールでは対応できない複雑な質問に対して、正確な複雑クエリが生成されることをユーザーが継続的に報告しています。
Q4. データはクラウドに送信されますか?
スキーマメタデータ(テーブル名・カラム名・型)と生成された SQL クエリが処理されます。テーブル内の実際のレコード(行レベルのデータ)はサーバー外に出ることはありません。Ollama 経由のローカル LLM を使用する場合、スキーマメタデータもオンプレミスに留まり、外部ネットワーク呼び出しはゼロです。
Q5. PII マスキングはどのように機能しますか?
設定ファイルで正確な名前または glob パターンを使用して機密カラムパターン(email・phone・ssn・ip_address)を定義します。クエリ結果は表示前にマッチするフィールド値を自動的にマスクされた等価物('***@***.com'・'***-**-1234')に置換します。マスキングは API 層で実行されるため、生データは送信されません。
Q6. 技術的でないチームメンバーも使えますか?
それが主なユースケースです。プロダクトマネージャー・グロースアナリスト・カスタマーサクセスチームが自然な日本語で質問し、SQL を書いたりデータエンジニアを待ったりすることなくリアルなデータ回答を得られます。OpenClaw の Telegram と Web UI インターフェースにより、データベースクライアントなしでどのデバイスからもアクセスできます。
Q7. 曖昧な質問をどのように処理しますか?
ユーザーの質問が複数の有効な解釈にマッピングできる場合(例:「売上を表示して」は今日・今月・製品別いずれかの可能性がある)、OpenClaw は SQL を生成する前に確認の質問を返します。この曖昧性解消ステップは自信を持って誤った回答をすることを防ぎ、プロジェクトごとに設定可能です。