Gemma Gem: Agente de IA en el dispositivo para automatización de navegadores a través de WebGPU

Gemma Gem es una extensión de Chrome que carga el modelo Gemma 4 de Google (2B o 4B) a través de WebGPU en un documento fuera de pantalla, dándole herramientas para interactuar directamente con páginas web en el navegador sin llamadas a API externas.
Detalles Clave
La extensión proporciona varias herramientas que se ejecutan en diferentes contextos:
read_page_content: Leer texto/HTML de la página o un selector CSS (Script de contenido)take_screenshot: Capturar la página visible como PNG (Worker de servicio)click_element: Hacer clic en un elemento por selector CSS (Script de contenido)type_text: Escribir en un campo de entrada por selector CSS (Script de contenido)scroll_page: Desplazarse hacia arriba/abajo por cantidad de píxeles (Script de contenido)run_javascript: Ejecutar JS en el contexto de la página con acceso completo al DOM (Worker de servicio)
La arquitectura utiliza tres componentes principales:
- Documento fuera de pantalla: Aloja el modelo vía @huggingface/transformers + WebGPU, ejecuta el ciclo del agente
- Worker de servicio: Enruta mensajes entre scripts de contenido y documento fuera de pantalla, maneja take_screenshot y run_javascript
- Script de contenido: Inyecta icono de gema + superposición de chat en DOM sombra, ejecuta herramientas DOM
Configuración y Uso
Requisitos:
- Chrome con soporte WebGPU
- ~500MB de disco para modelo E2B, ~1.5GB para E4B (en caché después de la primera ejecución)
Comandos de configuración:
pnpm install
pnpm build
Carga la extensión en chrome://extensions (modo desarrollador) desde .output/chrome-mv3-dev/.
Uso:
- Navega a cualquier página
- Haz clic en el icono de gema (esquina inferior derecha) para abrir el chat
- Espera a que cargue el modelo (progreso mostrado en icono + chat)
- Haz preguntas sobre la página o solicita acciones
Ajustes y Configuración
Ajustes disponibles mediante icono de engranaje en cabecera del chat:
- Modelo: Cambiar entre Gemma 4 E2B (~500MB) y E4B (~1.5GB) - selección persiste entre sesiones
- Pensamiento: Activar/desactivar pensamiento nativo de Gemma 4
- Iteraciones máximas: Límite en bucles de llamadas a herramientas por solicitud
- Borrar contexto: Reiniciar historial de conversación para la página actual
- Desactivar en este sitio: Deshabilitar la extensión por nombre de host (persistente)
Desarrollo y Depuración
Tecnologías utilizadas:
- WXT — Framework para extensiones de Chrome (basado en Vite)
- @huggingface/transformers — Inferencia de ML en navegador
- marked — Renderizado de Markdown en chat
- Gemma 4 E2B / E4B (onnx-community/gemma-4-E2B-it-ONNX, onnx-community/gemma-4-E4B-it-ONNX) — Cuantización q4f16, contexto de 128K
Comandos de construcción:
pnpm build # Construcción de desarrollo (con registro, mapas de origen)
pnpm build:prod # Construcción de producción (registro silenciado, minimizado)
Ubicaciones de depuración:
- Registros de worker de servicio: chrome://extensions → Gemma Gem → "Inspect views: service worker"
- Registros de documento fuera de pantalla: chrome://extensions → Gemma Gem → "Inspect views: offscreen.html"
- Registros de script de contenido: Abrir DevTools en cualquier página → Consola
- Todas las páginas de extensión: chrome://inspect#other lista todos los contextos de extensión inspeccionables
Los registros del documento fuera de pantalla muestran carga del modelo, construcción de prompts, conteos de tokens, salida cruda del modelo y ejecución de herramientas.
Notas Técnicas
El directorio agent/ tiene cero dependencias y define interfaces (ModelBackend, ToolExecutor) que pueden extraerse como biblioteca independiente. La extensión incluye un modo de pensamiento que muestra razonamiento paso a paso mientras trabaja.
Según la fuente, el agente funciona para preguntas simples sobre páginas y ejecución de JavaScript, pero las cadenas de herramientas de múltiples pasos son poco confiables y a veces ignora sus herramientas por completo.
📖 Leer la fuente completa: HN AI Agents
👀 Ver también

Sherlock: Documentación de Apple Developer como MCP Local para Claude Code
Sherlock indexa 70.000 símbolos de la API de Apple en SQLite FTS5 y proporciona 5 herramientas MCP + 3 habilidades de activación automática para basar a Claude Code en documentación real, evitando alucinaciones.

AgentPVP: Una arena competitiva LLM centrada en agentes con ELO, rivalidades y caja de arena de inyección de prompts
AgentPVP permite que agentes LLM se registren, jueguen 5 juegos de mesa a través de APIs JSON, mantengan un ELO por juego, escriban archivos de rivalidad y se insulten mutuamente en un salón global. El HTML es opcional: la API es el sitio.

Sistema de traducción autoactualizable para OpenClaw mantiene glosarios de dominio automáticamente.
Un script de Python envuelve la API de Kimi2.5 para traducir archivos .srt de subtítulos mientras preserva los índices de bloque, las marcas de tiempo y la segmentación. El sistema utiliza perfiles de proyecto con archivos glossary.json, style.md y memory.jsonl, e incluye un trabajo cron que escanea fuentes oficiales cada 6 horas para actualizar la terminología.

Clawmates: OpenClaw para equipos
Un nuevo proyecto permite desplegar OpenClaw para todo el equipo con base de conocimiento compartida, visibilidad de costes y controles de administrador.