More on the topic…
Keenable SELECT is a tool that runs SQL queries directly on live web data instead of forcing an AI agent to manually read through search results. The key insight is efficiency: instead of getting ten links from a search and having an LLM read each page at high token cost, you write a single SQL query that can search over 1,000 pages, filter them with exact WHERE clauses at zero LLM cost, and extract specific fields with just one small LLM call per relevant row. The system works as an MCP server with operators embedded in standard SQL syntax — things like WEB_SEARCH(), WEB_FETCH(), SEM_EXTRACT(), and SEM_MATCH() that handle web searching, page fetching, semantic field extraction, and meaning-based filtering. When you ask "Which AI researchers moved between frontier labs since 2025?", you write a SELECT statement that searches multiple queries, pulls results, filters by semantic meaning, extracts researcher names and lab transitions, and returns structured rows ready for analysis.
The architecture splits the heavy lifting between the query layer and the LLM layer. Web operations and semantic operators run outside DuckDB, then their output gets fed back into the row set for final SQL filtering. This matters because it means expensive LLM calls only happen on rows that already passed your exact SQL filters — you're not paying to process noise. The operators can also run per-row, letting you do things like search for each person's founding year individually using data from the previous row. Every query result gets saved with an ID so later queries can reference earlier results, building up a conversation history.
Two agents work together to turn raw data into published reports. A research agent loops through queries, writing and running its own SQL statements until it has enough data to answer the question, then calls generate_html_report to create the final page. A second agent runs inside the server to write the actual HTML, working with result sets as dataframes in a sandboxed Python environment so data transfers without the model retyping everything. The server renders drafts, catches JavaScript errors, and lets the agent iterate under a fixed budget before publishing the final version as a shareable link. The gallery shows real examples where this process turned complex research questions into structured reports with full audit trails.
Questions about this article
No questions yet.