Sun'iy intellekt

Keenable SELECT: vebni SQL so'rovlari orqali qidiruvchi AI agent

2-sentabr, 2026, 05:536 ko'rish6 daqiqa o'qish
Keenable SELECT: vebni SQL so'rovlari orqali qidiruvchi AI agent

Sun'iy intellekt agentlari hozircha vebni qidirish uchun oddiy usuldan foydalangan: qidiruv tizimidan 10 ta havola oling, har bir sahifani o'qing, keyin natijani tokenlar sarflab yig'ing. Bu qimmat, sekin va xatolarga moyil. Keenable SELECT bu paradigmani o'zgartirib qo'ydi — u vebni SQL jadvali sifatida muomala qiladi va barcha "qidirish-o'qish-yig'ish" ishini bitta SQL so'roviga sig'diradi.

Nima ekanligi va qanday ishlaydi

Keenable SELECT — bu MCP (Model Context Protocol) serveri bo'lib, uning asosiy vositasi select toolidir. Server faqat o'qish uchun mo'ljallangan DuckDB SELECT so'rovlarini jonli veb ma'lumotlari ustida bajaradi. Asosiy fikr: veb qidiruv natijalari, sahifa tarkibi va semantik ajratma — har biri SQL jadvalining ustuni bo'lib, ularning ustida oddiy WHERE, GROUP BY, ORDER BY ishlatish mumkin.

Server so'rovni tahlil qiladi, ichidagi maxsus operatorlarni topib, ularni DuckDB tashqarisida bajaradi, natijalarni qayta jadvalga joylaydi va oxirgi SQL ni DuckDB da tugallaydi. Bu yondashuv LLM chaqiruvlarini minimalga yetkazib beradi: aniq filtrlar (WHERE) avval ishlaydi, faqat qolgan qatorlar semantik operatorlarga o'tadi.

Semantik operatorlar to'plami

Keenable SELECT oddiy SQL ga yettikcha semantik operatorlar qo'shadi. Ular quyidagilarni o'z ichiga oladi:

  • WEB_SEARCH('so'rov1', 'so'rov2', ...) — bir necha so'rovni parallel qidiradi, natijalarni birlashtiradi va takrorlanuvchi URL larni olib tashlaydi. Bitta chaqiruvda 1000+ sahifa qamrolishi mumkin.
  • WEB_FETCH('url1', 'url2', ...) — berilgan URL lardan Markdown ko'rinishida tarkibni oladi, har bir sahifa alohida qator bo'lib keladi.
  • SEM_EXTRACT(ustun, 'maydon tavsifi') — har bir qator uchun bitta kichik LLM chaqiruvi amalga oshiradi, bitta maydonni ajratib beradi (masalan, ishchi ismi, tashlagan labaratoriya). Ma'lumot yo'q bo'lsa null qaytaradi.
  • SEM_EXTRACT_ALL(ustun, 'nimani ajratish') — bir qatordan bir xil turdagi barcha qiymatlarni ro'yxat ko'rinishida qaytaradi.
  • SEM_MATCH(ustun, 'predikat') — ma'noli WHERE filtri. Masalan, SEM_MATCH(content, 'nomzod 2025 yildan keyin labaratoriyalar o'rtasida ko'chgan').
  • SEM_SCORE(ustun, 'so'rov') — arzon embedding balli hisoblaydi, ORDER BY ... DESC LIMIT k bilan eng mos keluvchilarni ajratib olish uchun.
  • SEM_NORM(ustun) — ma'nosi bir xil qiymatlarga yagona kalit beradi, GROUP BY da ishlatish uchun.

Muhim nuqta: WEB_SEARCH va WEB_FETCH qator-baqator ham ishlashi mumkin. Masalan, WEB_SEARCH(name || ' founding year') — har bir shaxs uchun alohida qidiruv yuboradi.

Ikki agent arxitekturasi

Ko'rinishdagi har bir hisobot ikkita agent ishi natijasidir:

  1. Tadqiqot agentiselect vositasiga ega oddiy LLM. U o'zi so'rovlarni yozadi, bajaradi, natijalarni ko'rib, kerak bo'lsa yangi so'rov yozib boradi. Bu jarayon voqealar oqimi (events) sifatida yuritiladi, shuning uchun keyingi savol avvalgi kontekst ustida davom ettiriladi.
  2. Hisobot agenti — server ichidagi generate_html_report vositasi orqali ishlaydi. U qisqa topshiriq, natija to'plamlari (result set ID lari) va yozish qo'llanmasini oladi. Ma'lumotlar Python dataframe lari sifatida sandboxga uzatiladi, shuning uchun model ma'lumotlarni qayta yozmasdan to'g'ridan-to'g'ri sahifaga joylaydi. Har bir nashrdan oldin server draftni render qiladi, skrinshotlar va JavaScript xatolar sonini qaytaradi; agent xatolarni tuzatib, cheklangan byudjet ichida qayta nashr qiladi. Faqat oxirgi versiya yashirin havola sifatida qoladi.

Nega bu muhim: tokenlar va vaqt tejash

Traditsion agent 10 ta havola olsa, har bir sahifa o'rtacha 3-5 ming token tug'diradi — jami 30-50 ming token faqat o'qish uchun. Keenable SELECT da aniq SQL filtri (WHERE) LLM chaqiruvsiz ishlaydi. Faqat o'tgan qatorlar SEM_EXTRACT ga boradi, ya'ni har bir qator uchun bitta kichik chaqiruv. 1000 ta sahifa qidirilsa ham, faqat mos kelgan 20-50 tasi LLM ga yetadi. Bu narxni 10-50 marta tushiradi va tezlikni orttiradi.

Qo'shimcha: natijalar result set sifatida saqlanadi (har biriga o'z ID si beriladi). Keyingi so'rov FROM result_set_123 deb yozib, avvalgi ishni qayta ishlatmasdan davom ettirishi mumkin. Bu dolzarb tadqiqotlarda (masalan, "2025 yildan beri frontier labaratoriyalar o'rtasida qaysi tadqiqotchilar ko'chgan?") juda qulay.

Taqqoslov: oddiy qidiruv agentlaridan farqi

XususiyatOddiy agent (10 havola)Keenable SELECT
Qidiruv hajmi10-20 sahifa1000+ sahifa
FiltrlashLLM tokenlari bilanSQL WHERE (token sarflanmas)
Ma'lumot ajratishHar sahifa uchun katta promptQator bo'yicha kichik LLM chaqiruvi
Natija saqlashKontekstda (cheklangan)Result set ID (doimiy, qayta ishlatiladigan)
HisobotModel matn yozadiAlohida agent HTML yasaydi, ma'lumotlar dataframe orqali o'tadi

Cheklovlar va ochiq savollar

Har qanday yangi vosita kabi, Keenable SELECT da ham e'tibor talab qilinadigan nuqtalari bor:

  • LLM aniqligi: SEM_EXTRACT va SEM_MATCH kichik modellarga ishonadi. Murakkab yoki noaniq matnlarda xato ajratish ehtimoli mavjud.
  • Qidiruv sifati: WEB_SEARCH ning natijasi asosiy qidiruv tizimi (Google, Bing yoki boshqa) sifatiga bog'liq. Agar qidiruv tizimi yangilikni topmasa, SQL ham yordam bermaydi.
  • DuckDB cheklovlari: Faqat SELECT (o'qish) ruxsat etilgan. INSERT, UPDATE, DELETE yo'q — bu xavfsizlik uchun ma'qul, lekin ba'zi senariylarda (masalan, kesh yaratish) cheklov tug'dirishi mumkin.
  • Hisobot agentining byudjeti: HTML tuzish, render qilish va xatolarni tuzatish cheklangan byudjetda amalga oshiriladi. Juda murakkab vizualizatsiyalar uchun byudjet yetarli bo'lmasligi mumkin.
  • MCP ek tizimi: Foydalanuvchi MCP serverini o'z infrastrukturasida ishga tushirishni yoki xosting xizmatidan foydalanganini bilishi kerak. Bu oddiy API chaqiruvidan murakkab.

Kimga va qanday foydasi bor

Eng katta foyda — tahlilchilarga, tadqiqotchilarga, jurnalistlarga va strategik rejalashtirishga ishlagan komandalarga. Ular endi "qaysi kompaniyalar 2024 yilida ochiq model e'lon qildi?" yoki "qaysi yuridik hujjatlarda yangi konsepsiya paydo bo'ldi?" kabi savollarga bitta so'rov bilan javob topishlari mumkin. Natija — tayyor HTML hisobot, ichida har bir fakt uchun manba havolasi va to'liq yo'l haritasi (trajectory) bilan.

Dasturchilar uchun bu — o'z ilovalariga veb tadqiqotni integratsiya qilishning yangi usuli. MCP serveri sifatida u har qanday LLM (Claude, GPT, lokal modellar) bilan ishlasa ham bo'ladi, shart faqat select vositasini chaqira olishi.

Kelajakdagi rivojlanish yo'nalishlari

Keenable SELECT hali erta bosqichda, lekin uning arxitekturasi kengaytirish imkoniyatlari beradi:

  • Yangi semantik operatorlar: masalan, SEM_SUMMARIZE, SEM_TRANSLATE, SEM_CLASSIFY.
  • Strukturali ma'lumotlar bazalari (Wikidata, DBpedia, kompaniya ro'yxatlari) ga to'g'ridan-to'g'ri WEB_FETCH orqali ulanish.
  • Hisobot agentining vizualizatsiya kutubxonasini kengaytirish (grafiklar, jadvallar, interfaol xaritalar).
  • Natijalarni vektor bazasiga avtomatik yuklash va keyingi so'rovlarda semantik qidiruvdan foydalana olish.

Xulosa

Keenable SELECT vebni "o'qish" vazifasini SQL ga aylantirib, eng qimmat va sekin qismni — token sarflab sahifa o'qishni — optimallashtiradi. U vebni strukturli ma'lumotlar manbasi sifatida muomala qiladi, natijalarni saqlab, qayta ishlatish imkonini beradi va tayyor professional hisobotlar yetkazib beradi. Bu — agentlar veb bilan qanday o'zaro ta'sirlashini o'zgartirishi mumkin bo'lgan arxitektura o'zgarishining birinchi namunasidan biri.

Asl manba: keenableai.github.io

Manba: Hacker News
#AI agent #MCP #DuckDB #web search #SQL
Telegram da muhokama qilish