Chuyển đến nội dung
tinAI
Quay lại

Keenable SELECT: tìm kiếm web bằng SQL cho agent

keenableai.github.io · Loại nguồn: web 2026-09-01T20:07:23.585Z
Bản dịch tiếng Việt của tinAI · Từ Keenable SELECT: an agent that searches the web in SQL (keenableai.github.io) · Ngày gốc: · Dịch ngày:

và giữ bối cảnh từ bản tin tinAI đã giới thiệu bài này .

Bài gốc: Keenable SELECT: an agent that searches the web in SQL (keenableai.github.io)

Tác giả: Keenable AI

Ngày đăng: Dịch ngày:

TL;DR

Keenable SELECT đưa web search, fetch và semantic extraction vào một câu lệnh DuckDB SELECT read-only qua MCP. Điểm đáng chú ý là result set và trajectory có thể audit, nhưng output semantic vẫn cần kiểm tra lại với nguồn gốc.

Ước tính đọc: 5 phút

Giới thiệu

Keenable SELECT là một MCP server cho phép agent tìm kiếm web bằng câu lệnh SQL. Thay vì trả về một danh sách link để agent tự đọc toàn bộ, server đưa dữ liệu web vào row set, áp dụng filter và extraction, rồi chạy phần SELECT cuối bằng DuckDB.

Sản phẩm tập trung vào research report có cấu trúc. Mỗi report trong showcase đi kèm kết quả cuối, các query đã chạy, tool result và result set, nhờ đó người đọc có thể xem lại trajectory thay vì chỉ nhận một đoạn tổng hợp.

Tính năng chính

MCP server có hai tool chính:

Các toán tử web và semantic được viết bên trong SQL:

Server parse câu SQL, chạy toán tử web và semantic bên ngoài DuckDB, thay chúng bằng các cột dữ liệu thường rồi mới chạy SELECT cuối. Exact SQL filter được áp dụng trước, nên chỉ những row còn lại mới đi qua toán tử dùng LLM. Cách này có thể giảm số lần gọi model khi điều kiện có thể biểu diễn bằng filter xác định.

WEB_SEARCHWEB_FETCH cũng có thể nhận giá trị từ từng row. Ví dụ, sau khi có cột tên công ty, query tiếp theo có thể ghép tên đó với cụm “founding year” để tìm năm thành lập cho từng row.

Kiến trúc tạo report

Showcase mô tả hai agent:

  1. Research agent dùng tool select, tự viết và chạy query cho đến khi đủ dữ liệu trả lời. Câu hỏi follow-up tiếp tục trên transcript đã lưu.
  2. Report agent nhận brief và các result set, rồi dựng trang trong một Python sandbox có dữ liệu dạng dataframe. Sau mỗi lần publish nháp, server render trang, trả screenshot và số lỗi JavaScript để agent sửa trong một budget cố định. Chỉ bản cuối được giữ ở link công khai.

Việc đưa row trực tiếp vào dataframe giúp model không phải gõ lại dữ liệu khi tạo trang. Tuy vậy, nó không tự bảo đảm dữ liệu đúng: WEB_SEARCH phụ thuộc nguồn tìm được, còn các toán tử SEM_* vẫn dùng model để phân loại và trích xuất.

Cách sử dụng

Một query research phù hợp nên tách phần xác định và phần semantic. Chẳng hạn, để lập danh sách nhà nghiên cứu chuyển giữa các AI lab từ năm 2025:

  1. Dùng nhiều WEB_SEARCH query để thu nguồn đa dạng.
  2. Áp dụng filter SQL cho ngày, domain hoặc field có thể kiểm tra chính xác.
  3. Dùng SEM_MATCH để giữ trang thực sự nói về một lần chuyển việc có tên cụ thể.
  4. Dùng SEM_EXTRACT cho tên, lab cũ, lab mới và tháng chuyển.
  5. Giữ URL nguồn trong result set và kiểm tra lại các row quan trọng trước khi viết kết luận.

Khi dùng trong workflow agent, dev nên lưu câu SQL, result-set ID, link nguồn và phiên bản prompt mô tả field. Report nên phân biệt giá trị trích nguyên văn, giá trị do model chuẩn hóa và kết luận do report agent viết.

Điểm cần kiểm tra

Read-only SQL giới hạn thao tác với DuckDB, nhưng không biến semantic operator thành hàm xác định. Trước khi dựa vào kết quả, cần kiểm tra:

Keenable SELECT đáng chú ý vì biến research trajectory thành artifact có thể xem lại và cho phép exact filter chạy trước model. Lợi ích đó chỉ giữ được khi report cuối vẫn liên kết đến row và nguồn gốc, thay vì biến SQL thành lớp vỏ chắc chắn cho một câu trả lời semantic chưa được xác minh.


Đường dẫn nguồn

tinAI dịch bài này sang tiếng Việt từ Keenable SELECT: an agent that searches the web in SQL (keenableai.github.io) · Loại nguồn: web và giữ bối cảnh từ bản tin tinAI đã giới thiệu bài này .

Bản tin này có 3 bài dịch liên quan từ cùng bản tin.

Đọc tiếp từ đây

Bạn có thể quay lại bản tin nguồn hoặc mở kho bài dịch để đọc tiếp.

Các bài bên dưới cùng xuất hiện trong bản tin nguồn, nên giữ chung bối cảnh đọc với bài này.

Các bài liên quan trong cùng bản tin trải trên 2 loại nguồn (2 bài). Loại nguồn: công ty/blog 1 Loại nguồn: web 1