En octubre de 2026 pasamos ocho modelos gratuitos de OpenCode por una misma cadena: un brief de nicho, una plantilla de prompt y, a partir de ahí, el agente escribe solo un sitio-catálogo en Astro, corrige la compilación, investiga un artículo en la web, pule el sitio y lo publica en Vercel. Sin clave de API y sin nada que pagar. Resultado: 8 sitios operativos de 19 a 21 páginas, cero enlaces internos rotos y una diferencia clara entre modelos en velocidad, fiabilidad y calidad de redacción.
En resumen
- Para compilar y desplegar, Beam rindió mejor: sitio en 12 minutos, artículo en 7, despliegue en 11, sin fallos. No está disponible en varios países, entre ellos Rusia. La alternativa es DeepSeek V4.1 Flash: nunca rompió una compilación, pero es lento bajo carga.
- Para artículos, MiniMax M3.1 Flash escribió los textos más profundos, pero el agente suele no terminar el trabajo y deja erratas. Una opción más estable es GLM-5.3-Flash.
- Conviene asignar un modelo por paso, no por sitio. La misma cadena puede montarse con modelos distintos.
- Dos de los ocho modelos no dieron resultado: Flint 40B no logró compilar el sitio y LongCat 2.5 Preview no respondió a la petición de prueba.
Cómo está montada la cadena
Cada sitio tiene un brief en JSON: nicho, público, servicios de ejemplo, campos de filtro propios del nicho, tema del artículo y nombre del proyecto. Un script inserta el brief en la plantilla de prompt y lanza el agente con opencode run -m opencode/<modelo> (documentación de la CLI). Cada paso es una sesión nueva con un límite de 60 minutos y un reintento si falla el agente.
brief (JSON) ─► plantilla de prompt ─► opencode run -m opencode/<modelo>
1. site sitio Astro: datos, páginas, marcado SEO
2. npm run build comprobación por script; si hay error — fix-build (hasta 2 veces)
3. article artículo de 10–12 mil caracteres, búsqueda web
4. deploy logos, imagen OG, revisión de enlaces, vercel deploy --prod
5. control 200 en la portada y el artículo, métricas de calidad
Qué incluye cada paso:
- Sitio. Astro estático sin frameworks de interfaz, 12 servicios reales en
tools.json, portada con filtros y orden, página de servicio, comparativa, sección de artículos con tres textos, «Acerca de», 404, JSON-LD, sitemap y robots.txt. - Corrección de la compilación. El agente recibe el texto del error y modifica el código hasta que
npm run buildpasa. - Artículo. El agente busca por sí mismo en la web (herramientas integradas
websearchywebfetch), elige la estructura y escribe en estilo informativo: cifras, tablas, sin relleno. - Pulido y despliegue. Logos de los servicios, plurales correctos, imagen OG de 1200×630, revisión de todos los enlaces internos en
dist/, despliegue con la CLI de Vercel y comprobación de las direcciones en vivo.
Plantilla abreviada del paso «site»
Las plantillas de trabajo estaban en ruso; esta es una versión abreviada y traducida:
Estás construyendo un sitio-catálogo estático en la carpeta ACTUAL. Trabaja solo dentro de ella.
## Nicho
«{{NICHE}}» — catálogo y ranking. {{NICHE_DESCRIPTION}}
Público: {{AUDIENCE}}. Idioma del sitio: ruso.
## Stack (estricto)
- Astro, output: 'static', sin SSR ni adaptadores.
- Sin React/Vue: solo componentes .astro y CSS normal.
- Sin generadores interactivos: crea package.json a mano.
## Datos
src/data/tools.json — {{COUNT}} servicios reales y existentes.
Campos: slug, name, url, short, description, free_plan, price_from,
features, pros, cons, best_for, rating + {{FILTER_FIELDS}}.
## Páginas
/ (filtros JS, cuadrícula de tarjetas), /tools/[slug]/, /compare/,
/articles/ + 3 artículos, /about/, 404.
## Terminado cuando
npm run build pasa sin errores, dist/ contiene todas las páginas,
el sitemap y robots.txt.
Archivos temporales solo en ./.tmp/. /tmp y las rutas fuera del proyecto están bloqueadas.
Condiciones del experimento
- Fechas: 21 y 22 de octubre de 2026.
- Modelos: ocho modelos gratuitos de OpenCode: Beam, DeepSeek V4.1 Flash, GLM-5.3-Flash, MiniMax M3.1 Flash, MiMo-V2.6-Flash, Nemotron 3 Ultra, Flint 40B, LongCat 2.5 Preview.
- Tareas: 9 ejecuciones, un nicho por sitio. Son catálogos de servicios de temáticas distintas; los nichos no se revelan en este artículo.
- Carga: hasta 6 sesiones a la vez. Los tiempos de las tablas están inflados por el trabajo en paralelo; más abajo se explica.
- Muestra: uno o dos sitios por modelo. Es una comparación en tareas prácticas, no un benchmark.
Resumen por modelo
| Modelo | Sitios | Sitio → artículo → despliegue, min | Llegó a producción | Lo principal |
|---|---|---|---|---|
| Beam | 1 | 12 → 7 → 11 | solo, sin fallos | El más rápido y sin problemas. No disponible desde Rusia |
| DeepSeek V4.1 Flash | 2 | 60–68 → 18 → 24–37 | solo en 1 de 2 ejecuciones | Constructor fiable, sin correcciones de compilación. Lento bajo carga |
| GLM-5.3-Flash | 1 | 27 → 9 → 29 | tras reiniciar el despliegue | Resultado estable, el artículo con más tablas (5 tablas) |
| MiniMax M3.1 Flash | 2 | 25–28 → 5–6 → 55–145 | 0 de 2 solo | Artículos más profundos y autocomprobación, pero bloqueos y erratas |
| MiMo-V2.6-Flash | 1 | 45 → 31 → 29 | tras un reinicio | Lento, artículo de estructura más pobre |
| Nemotron 3 Ultra | 1 | 25 → 47 → 27 | solo | Artículo muy lento, restos de marcado en los títulos |
| Flint 40B | 0 | — | no | El sitio no compiló en 3 intentos: endpoint no disponible |
| LongCat 2.5 Preview | 0 | — | no | Error del servidor en la petición de prueba |
El tiempo de despliegue incluye los reinicios del paso: con MiniMax, un endpoint no disponible y sesiones cerradas obligaron a lanzar el paso de nuevo.
Métricas por ejecución
| Ejecución | Sitio, min | Artículo, min | Despliegue, min | Correcciones de compilación | Páginas | Artículo, caracteres | H2 / tablas / enlaces externos |
|---|---|---|---|---|---|---|---|
| Beam | 12 | 7 | 11 | 0 | 21 | 11.940 | 10 / 2 / 2 |
| GLM-5.3-Flash | 27 | 9 | 29 | 0 | 21 | 12.857 | 9 / 5 / 0 |
| DeepSeek V4.1 Flash, n.º 1 | 60 (límite de tiempo) | 18 | 37 | 0 | 21 | 11.921 | 9 / 2 / 0 |
| DeepSeek V4.1 Flash, n.º 2 | 68 | 18 | 24 | 0 | 21 | 10.639 | 10 / 2 / 4 |
| MiniMax M3.1 Flash, n.º 1 | 25 | 5 | 55 | 0 | 21 | 11.198 | 9 / 4 / 0 |
| MiniMax M3.1 Flash, n.º 2 | 28 | 6 | 145 | 0 | 21 | 11.445 | 10 / 1 / 1 |
| MiMo-V2.6-Flash | 45 | 31 | 29 | 1 | 21 | 11.980 | 9 / 1 / 0 |
| Nemotron 3 Ultra | 25 | 47 | 27 | 1 | 19 | 12.540 | 8 / 3 / 7 |
| Flint 40B | 9 | — | — | 2 (sin éxito) | — | — | — |
La primera ejecución de DeepSeek chocó con el límite de 60 minutos en el paso «site», aunque la compilación pasó. Como referencia, una ejecución aislada de DeepSeek tardó 14 minutos en el sitio, 3 más en corregir la compilación, 4,5 en el artículo (unos 11 mil caracteres y 10 búsquedas web) y 9 en el pulido y el despliegue. Bajo carga paralela, el paso «site» del mismo modelo se alargó entre 4 y 5 veces.
Cómo quedaron los sitios terminados
- 0 enlaces internos rotos en los 8 sitios, 0 frases de servicio en el texto público.
- De 19 a 21 páginas por sitio, 12 servicios con logos, la portada y el artículo responden 200.
- Artículos de 10,6 a 12,9 mil caracteres, de 8 a 10 secciones y de 1 a 5 tablas. Las muletillas aparecen de 0 a 3 veces por artículo.
- El diseño es correcto en todos, pero los modelos convergen en un mismo aspecto por defecto: fondo crema, títulos con serifa y etiquetas monoespaciadas en mayúsculas. Para una red de sitios que no deben parecerse, fije el estilo en el brief: paleta, tipografías, forma de las tarjetas.
Los modelos, uno por uno
Beam
La ejecución más rápida y la única sin un solo fallo: 30 minutos desde la carpeta vacía hasta el sitio en vivo. Un artículo de 11,9 mil caracteres con 10 secciones y texto limpio. La limitación es la disponibilidad: está bloqueado en varios países, entre ellos Rusia (por IP).
DeepSeek V4.1 Flash
Nunca rompió una compilación y escribió artículos cuidados con pocas muletillas. Con seis sesiones en marcha, el paso «site» tardó de 60 a 68 minutos. En una de las dos ejecuciones el agente se cerró solo: accedió a una carpeta temporal fuera del proyecto y OpenCode terminó la sesión.
GLM-5.3-Flash
El artículo más largo (12,9 mil caracteres) y cinco tablas. El borrador tenía palabras híbridas con letras latinas y cirílicas, que el modelo encontró y limpió por sí mismo durante el pulido. El fallo del despliegue vino de un conflicto en la base de datos de OpenCode, no del modelo.
MiniMax M3.1 Flash
La mejor sustancia: los artículos más profundos y autocomprobación; el agente escribió sus propios scripts para revisar enlaces y maquetación con Playwright. Puntos débiles: bloqueos, un endpoint no disponible y erratas. Ninguna de las dos ejecuciones llegó a producción sin un reinicio manual.
MiMo-V2.6-Flash
Sitio en 45 minutos, artículo en 31 y una corrección de compilación. El artículo tiene una tabla y ningún enlace externo. Funciona, pero es más lento y más pobre que el resto.
Nemotron 3 Ultra
El sitio estuvo listo en 25 minutos y una corrección de compilación (otros 22 minutos), y el artículo tardó 47 minutos. En los títulos quedaron anclas como {#formatting-issues}, algunos enlaces usan la dirección como texto y hay 19 páginas en lugar de 21. A su favor, tiene más enlaces externos: 7.
Qué falló y cómo se resolvió
| Problema | Causa | Solución |
|---|---|---|
| «Failed to execute statement» en ejecuciones paralelas | Todos los sitios estaban en un único repositorio git, así que OpenCode tenía un solo proyecto en su base local | Un git init propio para cada sitio |
| La sesión se cierra a mitad de un paso | El agente accede a /tmp y el acceso fuera del proyecto está bloqueado | Regla en cada plantilla: archivos temporales solo en ./.tmp/ |
| Un paso se queda colgado durante horas | Bloqueo del modelo o del endpoint; opencode run --continue también se colgaba | Límite de 60 minutos, sesión nueva en cada paso, un reintento si falla |
| Quedan servidores locales en marcha | El agente comprobaba el sitio y no detenía el servidor | Regla: detener el servidor tras la comprobación |
| Competencia por recursos | 6 sesiones a la vez | Límite práctico: 2–3 sesiones en paralelo |
Condiciones del acceso gratuito
- Solo a través de OpenCode. Una petición directa a la API de un modelo gratuito devuelve 403
FreeTierErrory explica que el plan gratuito solo funciona dentro de OpenCode. No hace falta clave. - La búsqueda web es gratuita. La búsqueda integrada en OpenCode pasa por el servidor de OpenCode y no requiere una suscripción aparte.
- La lista cambia a diario. Durante el experimento, dos modelos gratuitos desaparecieron de la lista en un día y apareció MiniMax. La lista actual está en la página de OpenCode y en la documentación.
Las políticas de datos varían según el modelo:
| Modelo | Qué se sabe sobre los datos |
|---|---|
| DeepSeek, GLM, MiniMax, LongCat | El proveedor declara una política de cero retención: las peticiones no se conservan |
| MiMo, Flint | Los datos pueden usarse para entrenar |
| Nemotron | Acceso de prueba de NVIDIA con registro de las peticiones |
| Beam | No disponible en varios países, entre ellos Rusia |
Para catálogos públicos no es crítico, pero conviene no enviar código privado, claves ni datos de clientes a modelos que puedan entrenarse con las peticiones.
Conclusión: un modelo por paso, no por sitio
| Paso | A quién asignar | Por qué |
|---|---|---|
| Construir el sitio y corregir la compilación | Beam; alternativa — DeepSeek V4.1 Flash | La compilación más rápida y más fiable |
| Despliegue | Beam o DeepSeek V4.1 Flash | Beam terminó el despliegue sin reinicios; DeepSeek, en una de dos ejecuciones |
| Artículo | MiniMax M3.1 Flash con revisión, o GLM-5.3-Flash | Profundidad y tablas; con MiniMax hay que revisar erratas, con GLM palabras híbridas |
| No para pasos largos | Nemotron 3 Ultra, MiMo-V2.6-Flash | Un artículo tarda de 30 a 47 minutos y el resultado es más pobre |
Reglas prácticas para una cadena así:
- Dé a cada sitio su propio repositorio git y a cada paso una sesión nueva.
- Limite el tiempo de cada paso (60 minutos resultó un tope razonable) y reintente si falla.
- Prohíba los archivos temporales fuera de la carpeta del proyecto: es la causa más frecuente de sesiones cerradas.
- Lance 2–3 sesiones en paralelo en lugar de 6: el tiempo de cada paso baja de forma notable.
- Fije el estilo en el brief; de lo contrario, los sitios saldrán iguales.
- Verifique el resultado con un script: compilación, respuesta 200, enlaces rotos, frases de servicio en el texto.
Si apenas está configurando OpenCode, empiece por la guía Cómo usar LLM gratis en Cursor, Cline y OpenCode y consulte la página de modelos gratuitos para programar para elegir modelo.