Una publicación de r/LangChain documentó una arquitectura DaaS autónoma: descubrimiento de Google Dorks, transformación Llama-3, servicio MCP con caché SQLite. Este tutorial recorre la misma arquitectura en Scavio.
Requisitos previos
- Python 3.10+
- Cadena Lang
- Clave API de Scavio
- SQLite (integrado)
Guia paso a paso
Paso 1: Lista de idiotas
Defina las consultas de descubrimiento.
DORKS = [
'site:gov.br filetype:pdf 2026 contratos',
'site:europa.eu filetype:pdf AI Act',
'site:sec.gov filetype:pdf 10-K 2026',
]Paso 2: Descubrimiento vía Scavio /búsqueda
Ejecute cada idiota.
import os, requests
H = {'x-api-key': os.environ['SCAVIO_API_KEY']}
def discover(q):
return requests.post('https://api.scavio.dev/api/v1/search', headers=H, json={'query': q}).json()Paso 3: Extracción de PDF mediante /extract
Por URL descubierta.
def fetch(url):
return requests.post('https://api.scavio.dev/api/v1/extract', headers=H, json={'url': url, 'format': 'markdown'}).json()Paso 4: Transformación LLM
Llama-3 (o cualquier LLM) convierte Markdown a JSON escrito.
# Prompt: 'Extract a strict JSON: {title, jurisdiction, deadline, summary, risk_level}.'
# Use Groq for cheap Llama-3, or Anthropic Sonnet for quality.Paso 5: Capa de caché SQLite
Búsquedas repetidas por debajo de 50 ms.
import sqlite3, json, time
conn = sqlite3.connect('daas.db')
conn.execute('CREATE TABLE IF NOT EXISTS items(url TEXT PRIMARY KEY, payload TEXT, ts REAL)')
def cache_set(url, payload):
conn.execute('INSERT OR REPLACE INTO items VALUES (?, ?, ?)', (url, json.dumps(payload), time.time()))
conn.commit()Paso 6: Servir a través de MCP para agentes posteriores
Envuelva el caché en un servidor FastMCP.
# from fastmcp import FastMCP
# mcp = FastMCP('daas')
# @mcp.tool()
# def get_item(url: str) -> dict:
# row = conn.execute('SELECT payload FROM items WHERE url=?', (url,)).fetchone()
# return json.loads(row[0]) if row else {}Ejemplo en Python
# Wrap discover + fetch + transform + cache in a daily cron.
# Downstream CrewAI / LangChain agents query the MCP for sub-50ms typed JSON.Ejemplo en JavaScript
// Same architecture in TS with better-sqlite3 and the MCP TS SDK.Salida esperada
Daily 4 AM cron pulls dorks, fetches PDFs, transforms to typed JSON, caches in SQLite. Downstream agents read from cache in 50ms instead of running real-time scrapers.