AI・機械学習
Keenable SELECT: SQLでウェブを検索するエージェント
Keenable SELECT: an agent that searches the web in SQL (keenableai.github.io)
要約
Keenable SELECTは、SQLを使用してウェブを検索し、研究レポートを生成するエージェントです。ユーザーが自然言語で質問すると、Keenable SELECTはこれをSQLクエリに変換し、ウェブ上のデータを検索・分析して、詳細なレポートと分析の軌跡を提供します。このシステムは、LLMのコストを抑えつつ、大量のウェブページを効率的に処理できる点が特徴です。
全文翻訳
Keenable SELECT、ウェブをSQLで検索するエージェントによって作成された研究レポート。
各カードは、完成したレポートと、その背後にある各クエリ、ツール結果、および結果セットの完全な軌跡へのリンクを示しています。
仕組み
「2025年以降にフロンティアラボ間を移動したAI研究者は誰か?各移動について、研究者、退職したラボ、移動先、および月をリストしてください。」と尋ねる
→Keenable SELECTはウェブ上でSQLを実行する
SELECT SEM_EXTRACT(content, 'researcher'), SEM_EXTRACT(content, 'left lab'), SEM_EXTRACT(content, 'joined lab'), SEM_EXTRACT(content, 'move month') FROM WEB_SEARCH(8 diverse queries) WHERE SEM_MATCH(content, 'named researcher moving between frontier labs, 2025+')
→レポートを取得する
ギャラリー
YCスタートアップ名の形態学の20年
2026-09-01 · 36メッセージ · 18クエリ
軌跡 →
検索エンジンの生きた歴史(1982–2026)
2026-08-31 · 18メッセージ · 10クエリ
軌跡 →
アメリカのギガワットAIデータセンター建設
2026-08-31 · 20メッセージ · 10クエリ
軌跡 →
記録された動物園の動物脱走のアトラス
2026-08-31 · 20メッセージ · 12クエリ
軌跡 →
ベイエリアの新しいカジュアルな東南アジア料理店
2026-08-31 · 18メッセージ · 9クエリ
軌跡 →
コピーされた、またはインスピレーションを受けたボリウッドの歌
2026-08-31 · 19メッセージ · 10クエリ
軌跡 →
GPSによる死:記録された水、砂漠、崖の事故
2026-08-31 · 15メッセージ · 9クエリ
軌跡 →
2025年以降のフロンティアAI研究者の移動
2026-08-31 · 16メッセージ · 9クエリ
軌跡 →
世界の偉大な鳥の渡り
2026-08-31 · 17メッセージ · 10クエリ
軌跡 →
インドの有名なマンゴーの起源マップ
2026-08-31 · 31メッセージ · 16クエリ
軌跡 →
主要なオープン・オープンウェイトLLMリリース — 2026年タイムライン
2026-08-31 · 14メッセージ · 9クエリ
軌跡 →
マーベルの画面連続性、2005–2026 — ライトエディション
2026-08-31 · 24メッセージ · 12クエリ
軌跡 →
メカニカルキーボードリリース — 10年間のタイムライン
2026-08-31 · 20メッセージ · 10クエリ
軌跡 →
最寄りの動物園ボロノイアトラス — アメリカ合衆国
2026-08-31 · 29メッセージ · 16クエリ
軌跡 →
軌道打ち上げアトラス、1957–2026
2026-08-31 · 16メッセージ · 9クエリ
軌跡 →
人気のオープンソースAIエージェントとエージェンティックフレームワーク
2026-08-31 · 17メッセージ · 9クエリ
軌跡 →
シアトル&ベルビューコーヒー愛好家ツアー
2026-08-31 · 18メッセージ · 9クエリ
軌跡 →
AIラボ創設者ファミリーツリー
2026-08-31 · 20メッセージ · 10クエリ
軌跡 →
偉大なシェフのキッチン系譜
2026-08-31 · 16メッセージ · 9クエリ
軌跡 →
米国スペシャルティコーヒーロースターアトラス
2026-08-31 · 13メッセージ · 9クエリ
軌跡 →
一般的なEDCパックには何が入っていますか?
2026-08-31 · 16メッセージ · 9クエリ
軌跡 →
オーストラリアのビッグシングス — マップとルート
2026-08-27
ベイエリア初デートプレイブック
2026-08-27
Braintrust (braintrust.dev) — 公開ソース組織図
2026-08-27
レポートの背後にあるシステム
Keenable SELECTは、selectという1つの主要ツールを持つMCPサーバーです。このツールは、ライブウェブデータに対して読み取り専用のDuckDB SELECTステートメントを実行します。サーバーは、DuckDBの外部でウェブオペレーターとセマンティックオペレーターを実行し、その出力を行セットに戻してから、DuckDBで最終的なSQLを実行します。
従来のウェブ検索では、エージェントに10個のリンクが与えられます。エージェントは各ページを読み取り、高価なトークンから回答を構築する必要があります。SELECTは、この作業をクエリに移行します。1回の呼び出しで1,000ページ以上を検索し、正確なWHERE句でLLMコストなしにフィルタリングし、行ごとに1回の小さなLLM呼び出しでフィールドを抽出し、行をグループ化できます。
MCPツール
selectはDuckDB SELECTクエリを受け取り、行を返します。サーバーは各クエリ結果を結果セットとしてIDとともに保存し、後続のクエリはそのIDから読み取ることができます。
generate_html_reportは、概要と結果セットIDを受け取ります。サーバー上のレポートモデルは、行からHTMLレポートを作成し、共有可能なリンクを返します。
セマンティックオペレーター
オペレーターは通常のSQL内に存在します。サーバーは解析されたステートメントでそれらを見つけ、実行し、プレーンな列に置き換えます。正確なSQLフィルタが最初に実行されるため、生き残った行のみがLLMオペレーターに渡されます。
オペレーター
何をするか
WEB_SEARCH('q1', 'q2', ...)
すべてのクエリを同時に検索し、ランク付けされた結果をマージして、重複するURLを削除します。
WEB_FETCH('https://a.com', ...)
指定されたURLをMarkdownとして取得します。1行につき1ページです。
SEM_EXTRACT(column, 'field description')
1行につき1回のLLM呼び出し。1つのフィールドを返します。テキストが値を提供しない場合はnullを返します。
SEM_EXTRACT_ALL(column, 'what one value is')
SEM_EXTRACTと同様ですが、一致するすべての値をリストとして返します。
SEM_MATCH(column, 'predicate')
1行につき1回のLLMテスト。意味に基づいたWHEREフィルタとして使用します。
SEM_SCORE(column, 'query')
低コストの埋め込みスコアを1行につき計算します。ORDER BY ... DESC LIMIT kを使用します。
SEM_NORM(column)
同じ意味を持つ値に同じキーを付与します。GROUP BYで使用します。
WEB_SEARCHとWEB_FETCHも行ごとに実行できます。引数には、例えばWEB_SEARCH(name || ' founding year')のように、行の列を使用できます。
メインエージェント
このギャラリーの各レポートは、2つのエージェントによって作成されます。1つはMCPサーバーを使用してデータを収集するリサーチエージェント、もう1つはgenerate_html_report内で実行され、ページを記述するレポートエージェントです。
リサーチエージェントは、プレーンなツールループです。LLMとselectツールを使用します。回答できるようになるまで独自のクエリを作成・実行し、ツール呼び出し、結果、回答をイベントとしてストリーミングします。フォローアップの質問は、保存されたトランスクリプトの上に会話を続けます。このショーケースの各実行はHTMLレポートを要求するため、エージェントは各回答をレポートリンクで終了します。
レポートエージェント
2番目のエージェントがサーバー上で各レポートを作成します。概要、結果セットの行、および執筆ガイドを受け取ります。結果セットをデータフレームとして保持するサンドボックス化されたPythonセッションでページを構築するため、モデルが再入力することなくデータがページに到達します。公開後、サーバーはドラフトをレンダリングし、スクリーンショットとページのJavaScriptエラー数を返します。エージェントはドキュメントを修正し、固定予算内で再度公開します。最終ドラフトのみがライブで公開され、リンクとして発行されます。