Show HN: Sqlsure – AI 生成 SQL 用の決定論的セマンティックチェック

2026/07/12 5:03

Show HN: Sqlsure – AI 生成 SQL 用の決定論的セマンティックチェック

RSS: https://news.ycombinator.com/rss

要約

日本語訳:

まとめ

sqlsure は、実行前に論理エラーと晒された機密データ(PII)を瞬時に検出することで絶対的なデータ信頼性を確保するために設計された決定論的な SQL 検証ツールです。マシンが動作可能とする修正を活用することで、AI エージェントに「下書き - 確認 - 修正」という簡略化されたワークフローを通じて自己修復能力を付与します。確率的なツールとは異なり、sqlsure はネットワークアクセスやデータベース接続を必要とせず、決定論的な辞書ルックアップによってエラーの検出を保証し、宣言された事実に基づいて検証が不可能な場合、「検証できない」と素直に返答します。CI パイプラインのためのオフラインセキュリティゲートとして効果的に機能し、CI ゲート、MCP サーバー、Vanna や WrenAI のようなテキストから SQL を生成するツール用のドロップインラッパーなど、様々な統合方法に対応します。ゴールドベンチマークに対する検証でゼロの誤検知を実現し、Mattermost や Fivetran などの主要な本番リポジトリにおいて FANOUT ジョインや可加性違反といった複雑な問題の検出に優れています。本プロジェクトは Apache-2.0 ライセンスを採用しており、詳細な文書は sqlsure.ai で入手可能です。Snowflake や Cube 向けの新しいアダプターは現在開発中であり、互換性を拡大する予定です。

本文

SQL の意味論的検証ツール「sqlsure」

AI が生成する SQL クエリは、構文エラーがない場合でも静的に誤った値を返すリスクがあります。

  • JOIN による重複カウント
    • 例:売上データを JOIN した際、収益が過大計上されるケース。
  • 集計ロジックの不一致
    • 例:平均計算なのに合計(SUM)が行われ、結果が爆発的に大きくなるケース。
  • セキュリティリスク
    • 例:患者 ID など、機密情報が外部に漏洩するケース。

従来のデータベース Lint ツールや独自検証を施した LLM の場合、こうしたロジカルな誤りを検出できません。sqlsure は、クエリを実行する前に 0.1 ミリ秒以内 に決定論的に正誤を判定し、エラーを防ぎます。


実証結果:証拠に基づく検証

既存の AI モデルが生成した SQL を「金標準(Gold Standard)」解答として適用したベンチマークで、以下の成果を検出しました。

  • 異常検出
    • 専門家によって作成された総数 2,568 のクエリに対し、45 の異常を特定。
    • **0 の誤報(False Positive)**を記録。
  • BIRD ベンチマークの検証
    • BIRD デベロップメント環境の金標準解答では、不整合カテゴリーで厳密に 8 倍 の誤り検出能力を確認。
  • スキーマ欠陥の発見
    • 現在アップストリームで報告されているスキーマ上の欠陥も同様に検出。

仕組みと導入メリット

基本的な概念

sqlsure は、プロジェクト内で定義済み事実に基づいて SQL クエリを検証します。

  • 検証の基準(ルール)
    • dbt の「ユニーク性テスト」を
      grain
      (粒)として使用。
    • 関係性テストを「結合多重度(Join Cardinality)」として使用。
    • メタタグで「合計して安全」と明記する項目を管理。
  • 維持コストの低さ
    • 新しい言語やロジックも学習不要です。
    • ルール集は手動でのモデル維持が不要な設計になっています。
  • 動作特性
    • 辞書検索方式のため、LLM の呼び出しコストがありません。
    • 同じ入力に対して常に同じ判定を下します(決定論的)。
    • オフライン動作により、ネットワーク依存もありません。

AI エージェントの自己修復

拒否されたクエリには機械が実行可能な修正提案を自動付与し、AI エージェントによる自己修復サイクルを実現します。

  • フロー:下書き → 検証 → 修正 → 再検証 → 実行
  • ベンチマーク結果:この修正プロセスにより、10 回中 10 回のクエリを正常に通過させることができました。

すぐに始める方法

Python API(推奨)

Python クライアントを使用して、意味論的な安全性を直ちに確認できます。

from sqlsure import SemanticModel, check
violations = check(sql, model)   # [] なら意味論的に安全

コマンドラインツール

スクリプトや dbt リポジトリ全体への監査も可能です。

# クエリの検証と修正
python check.py                   # 誤りクエリは拒否され、修正付きで承認される

# dbt リポジトリ全体の監査とレポート作成
python -m sqlsure.scan path/to/dbt-repo --report report.md

3 つの活用シナリオ(エンドエンジン)

sqlsure を以下 3 つの方法でプロジェクトに組み込むことができます。

1. CI/CD ゲート

プルリクエストが収益重複カウントなどの違反を含む場合、マージを自動的にブロックします。違反がある場合は

exit 1
を返します。

python -m sqlsure.cli --model model.json query.sql

2. MCP サーバー(Model Context Protocol)

AI エージェントには実行前の検査を通らせた後でないと、アクションを実行させます。Claude や他の LLM にツールとして登録できます。

claude mcp add sqlsure -- python -m sqlsure.mcp_server --model /abs/path/model.json

3. ライブラリ埋め込み(SemanticGate)

Vanna や WrenAI などの「テキストから SQL」系製品、または AI エージェントフレームワーク内に

check()
関数を埋め込むことで、意味論的な評価指標をスコアリングに利用できます。


検証済みルール集 (v0.1)

以下の表は、sqlsure が検出する主要な問題とその重大度を示しています。

ルール名重大度検出対象(具体例)
FANOUTError1対多の JOIN の後に、加法的度量に対して
SUM
/
COUNT
を使用した場合
CHASMError複数のファンアウト JOIN が互いに影響し合い、データが膨張(ブリンキー爆発)する場合
ADDITIVITYError非加法的度量(割合・平均など)に対して
SUM
を使用している場合
SEMI_ADDITIVEErrorスナップショット次元や国勢調査などを合計している場合
JOIN_KEYError宣言された関係性とは異なる列で JOIN を行った場合
CROSS_JOINError条件(predicate)なしの CROSS JOIN を実行した場合
WEIGHTED_AVGWarningファンアウトによる再加重化された平均値が含まれる場合
UNDECLARED_JOINWarning宣言されていない関係性による JOIN(検証不能=不安全)
SENSITIVE_COLUMNPolicy出力に PHI(健康情報)や PII(個人識別情報)が含まれている場合
  • sqlsure は「問題なさそう」と曖昧な回答を返さず、「検証できません」という明確な結論のみ出します。

信頼性とセキュリティ特性

  • 決定論的
    • 同一の SQL とルール集であれば、常に同じ判定結果が出ます。
  • オフライン動作
    • ネットワーク呼び出しは不要。SQL クエリはお客様のマシンを離れません。
  • データアクセスなし
    • クエリのテキストのみをパースし、DB に接続したりデータを参照したりしません。
  • テレメトリ収集なし
    • 何らかの利用者データの収集を行いません(SECURITY.md を参照)。
  • サプライチェーンセキュリティ
    • PyPI Trusted Publishing (OIDC) を使用し、タグ付きコミットからの公開を行います。動作依存ライブラリは最小限です。

ルール集のサポート状況(出所)

sqlsure は以下のソースからルールを読み取り、意味論を検証対象とします。

  • dbt (対応可能)
    • manifest.json
      schema.yml
      から既存のテストを強制可能な意味論として活用します。追加設定不要。
  • プライマリーキー/外部キー宣言 (対応可能)
    • ベンチマーク監査の基盤となる簡易な定義に対応。
  • ライブデータベース (対応可能)
    • sqlsure.introspect
      により、カタログからルールを自動構築できます。
    • SQLite の PRAGMAs、Postgres/MySQL の
      information_schema
      を対象とします。
  • 手書き JSON ファイル
    • model.example.json
      のような独自フォーマットに対応。
  • MDL (統合ディレクトリ対応済み)
    • OSI や WrenAI などの仕様書・マニフェストを読み込み、
      primaryKey → grain
      などのマッピングを確認します。

検証結果の再確認

  • ベンチマークテスト
    • 16/16 のルールテストを通過。
    • Recall: 100% / False Positive: 0% を達成(METRICS.md)。
  • 実稼動環境での検証
    • Mattermost データウェアハウス、Fivetran パッケージ、dbt Jaffle Shop で確認済み。
    • 詳細は TEST-REPORTS.md を参照。
  • 外部監査
    • Spider ベンチマークおよび BIRD の金標準クエリにおいて、ゼロノイズの正確性を証明。

さらに詳しく知る (ドキュメント)

  • EVIDENCE: 主張に対する再実行可能な測定結果と機能一覧。
  • ARCHITECTURE: ELI5 から専門家レベルまでの仕組み解説と中間出力例。
  • FOR-DUMMIES: 初心者向けゼロからの概念解説。
  • INTEGRATIONS: GitHub Action、pre-commit hook、Snowflake UDF などへの統合事例。
  • CONTRIBUTING: 新ルールやロードャーの追加方法。

ライセンス: Apache-2.0
公式サイト: sqlsure.ai
MCP サーバー名:

io.github.sqlsure/sqlsure

同じ日のほかのニュース

一覧に戻る →

2026/07/12 7:38

イロウによる分散AI計算のためのメッシュ LLM

## Japanese Translation: ## 概要: Mesh LLM は、既存の GPU およびメモリを何台ものマシンから集約し、中央サーバーを必要としない軽量なインフラストラクチャとして統合することで、チームが人工知能を利用する方法を根本的に変革します。これは、OpenAI 互換 API(デフォルトアドレス:`localhost:9337/v1`)としてこの統合されたコンピューティングリソースを公開し、組織が高価でブラックボックス化しているクラウドプロバイダーへの依存を排除しながら、モデルの更新、データルーティング、および下位のハードウェアに対する完全な制御を維持できるようにします。これによりコストを増加させることはありません。 アーキテクチャは、MCP、HTTP、インференスストリーム、およびメッシュイベントを通じて暴露されるマニフェストベースのプラグインシステムにより拡張可能であり、ノートパソコンサイズから 235B パラメータの巨人までをカバーする 40 以上のモデルをサポートします。235B パラメータなど的大規模な mixture-of-experts モデルについては、Mesh LLM は内部名称「Skippy」を持つ「Split mode」を採用しており、モデルレイヤーを順次ステージに分割し、ピアツーピアルーティングを用いて活性化を適度なマシンのパイプラインを通って流します。 ネットワーク管理は、iroh エンドポイントメッシュによって行われ、ここで各ノード(サーバーまたはクライアント)は公開鍵を使用して独自のアイデンティティとして機能し、中央コーディネーターの必要性はありません。接続は認証されており、iroh リレーによる NAT 通過可能な QUIC セッションが支援され、地域をまたいでヒールパンチ/リレーフォールバック機構が備わっています。プロトコルには、ゴシップ、ルーティング、HTTP 用の`mesh-llm/1`、所有者コントロールプレーンのための`mesh-llm-control/1`、低遅延に敏感な活性化輸送のための`skippy-stage/2`という 3 つの特別な QUIC ALPN が使用されます。メイン接続内では、すべてのトラフィックは先頭のバイトでデマルックスされた双方向の QUIC ストリームとなり、特定のタイプ(`GOSSIP`、`TUNNEL_HTTP`、`ROUTE_REQUEST`、`PEER_DOWN`、`PLUGIN_CHANNEL` など)に分類されます。 ソフトウェアは非常に軽量であり、インストールには約 18 MB を必要とします。公開メッシュへの参加やベンダーロックインのないプライベートデプロイメントの完全な構成が可能です。将来の計画には、iroh の Swift SDK で構築された専用モバイルアプリが含まれており、これは台頭しつつあるエージェント通信プロトコル(ACP)をサポートし、他のクライアントがメッシュにシームレスに接続できるようにします。セキュリティ、バージョン互換性、および信頼に関する判断は、カスタムゴシップレイヤーを介して内部で管理され、スケーリングやネットワーク構成に関わらず自律性を確保しています。

2026/07/12 6:58

ゼロから設計されたオープンソースの携帯型ゲーム機「RISCBoy」

## Japanese Translation: RISCBoy は、RISC-V 互換 CPU とラスタグラフィックスパイプラインを从头設計されたオープンソースの携帯用ゲームコンソールです。その主要な成果は、合成可能な Verilog 2005 で記述され、完全に検証されたプロセッサ設計であり、Lattice iCE40-HX8k(7680 ロジック要素を使用、LUT4 ベース)などの特定 FPGA ハードウェアをターゲットとしています。プロジェクトは RV32IMC インスピーションセットに厳密に従い、M モード制御レジスタ、例外処理、ベクトored 外部割り込み向けの準拠拡張機能といった本質的な機能を実装することで、アーキテクチャ準拠の他、riscv-formal サイスイツを使用して厳格な形式的検証も実施しています。完全なソースコードは `git clone --recursive https://github.com/Wren6991/RISCBoy.git` で入手可能で、サブモジュールが必要な場合は手動での更新が必要です。開発には RV32IMC ツールチェーン(`./configure --with-arch=rv32imc` で構築)と Xilinx ISIM 14.x(Linux 専用)によるシミュレーション、そして `scripts/` フォルダ内の makefile を使用します。合成にはオープンソースのツールチェーンが使用され、Yosys が合成、nextpnr が配置・配線、Project Icestorm がビットストリーム生成を担当し、Lattice HX8k 評価ボード(`HX8k-EVN.mk`)や実験的な ECP5 サポート(`ECP5-EVN.mk`)などのターゲットをサポートしています。`hdl` ディレクトリにはバスファブ、グラフィックスユニット、hazard5 プロセッサコアの Verilog ソースが含まれており、`test` ディレクトリには Verilog テストベンチとソフトウェアケースを含む回帰テストが格納されています。現在、量産は iTead の 4 レイヤープロトタイピングサービスを活用し、10 ユニットを $65 で提供する Rev A PCB から開始されており、これらツールの合成と配線に使用されています。新たな Rev B PCB がゲートウェアの成熟に合わせて待機しています。この進化は、高レベルのソフトウェア開発と低レベルのハードウェアアーキテクチャを橋渡しする完全にカスタマイズ可能なプラットフォームを求める愛好家やエンジニアにとって意義のあるステップであり、現代のオープンソースコンピューティングエコシステムへの具体的な一瞥を提供しています。

2026/07/12 8:54

オデッセイ Linux

## Japanese Translation: 提供されたテキストには、本物のニュース記事、議論、または物語は含まれておらず、そのため、そのプレースホルダー的な性質を超えて主要メッセージを抽出することは不可能です。概して、コンテンツは「$ code」などの一般的なラベルを含む構造的テンプレートとして機能しだけであり、これは具体的な技術詳細のない抽象的なプログラミング概念を表しています。「$ constitution」や「$ governance」といった用語も、ここでは定義された法的・政治的文脈を欠いています。実際の出来事、意見、または事実主张を記述する文がないため、資料は歴史的背景、具体的な日付、または製品名を確立できていません。したがって、将来の動向に関する前向きな声明、予測、またはタイムラインも含まれていません。特定のユーザー、企業、産業を特定していないため、このコンテンツによって誰が影響を受ける可能性があるかを判断することはできません。記述言語が欠如していることは、いまだに核心的情報が表明されていないことを示しています。一言で言えば、文書は静的であり、読者が全体概要または潜在的な影響を理解しようとするとアクション可能な知見、データ、あるいは意味ある主題事項を全く含んでいません。 ## Text to translate The original summary is concise, accurate, and logically consistent with the provided key points. It clearly communicates that the document is a structural template devoid of substantive information. No improvements are necessary. ## Summary The provided text offers no substantive news story, argument, or narrative, making it impossible to derive a main message beyond its placeholder nature. Essentially, the content functions only as a structural template containing generic labels like "$ code," which represents abstract programming concepts without specific technical details, and terms such as "$ constitution" or "$ governance" that lack defined legal or political contexts here. Because there are no sentences describing actual events, opinions, or factual claims, the material fails to establish any historical background, specific dates, or product names. Consequently, the text contains no forward-looking statements, predictions, or timelines regarding future developments. Without identifying specific users, companies, or industries, it is impossible to determine who might be impacted by this content. The absence of descriptive language confirms that no core information has been articulated yet. In short, the document remains static and devoid of actionable intelligence, data, or any meaningful subject matter for a reader seeking to grasp an overall gist or potential consequences.