OpenDev por dentro: cómo se construye un agente de terminal

OpenDev por dentro: cómo se construye un agente de terminal
5capas de seguridad independientes
35herramientas propias, organizadas por categorías
−54 %en el pico de contexto que ocupan las observaciones
40 % → 5 %del contexto en definiciones de herramientas MCP, antes y después
Cómo se construye un agente de programación para la terminal: OpenDev, por dentro
También lo cuento en este vídeo de veinte minutos, en mi canal Articulator ES.

Por qué la terminalenlace

Durante años, los asistentes de código vivieron dentro del editor, como copilotos que sugerían líneas y que había que vigilar de cerca. Ahora el cambio va hacia la terminal, y Claude Code abrió el camino. Tiene sentido: la terminal es el corazón del desarrollo. Ahí viven el control de versiones, la compilación, las sesiones remotas por SSH y los servidores sin pantalla.

El impacto ya es enorme. GitHub Copilot supera los quince millones de desarrolladores, y todos los grandes laboratorios tienen su propio agente de terminal. Pero hacerlo bien no es fácil: en Terminal-Bench, incluso los modelos punteros resuelven menos del 65 % de las tareas, y en LongCLI-Bench, con tareas largas, menos del 20 %.

El paper resume el problema en tres retos:

El contexto es finito

Las sesiones largas desbordan la ventana de contexto del modelo.

Los comandos son peligrosos

Un agente que puede ejecutar cualquier comando también puede destrozarlo todo.

El prompt se satura

Cada capacidad que le añades ocupa sitio en el prompt.

Andamiaje, arnés y un sistema compuestoenlace

Para resolverlos, el paper separa dos fases. El andamiaje (scaffolding) monta el agente antes del primer mensaje: el prompt de sistema, los esquemas de las herramientas y el registro de subagentes. El arnés (harness) lo orquesta todo después, mientras trabaja: lanza las herramientas, gestiona el contexto y hace cumplir la seguridad.

¿Y por qué un paper así? Porque casi nadie cuenta cómo están hechos estos agentes. Hay frameworks pensados para benchmarks, como SWE-Agent; otros funcionan en el navegador, como OpenHands; y agentes de terminal como Aider, Goose u OpenCode no publican informes técnicos. Claude Code, tampoco, y además es cerrado.

La idea central es que OpenDev es un sistema de inteligencia artificial compuesto. No es un único modelo, sino un conjunto de agentes y flujos de trabajo, y cada uno se conecta al modelo que elija el usuario. Así, cambiar de proveedor o abaratar costes es cuestión de configuración, no de código, y el agente mejora en cuanto salen modelos mejores.

Tres principios guían el diseño:

  • Separar responsabilidades: cada decisión (el modelo, el contexto, la seguridad, las herramientas) se configura y se cambia sin tocar las demás.
  • Degradarse con elegancia: seguir funcionando cuando se acaban los tokens, las iteraciones o la red.
  • Transparencia antes que magia: el desarrollador puede ver y corregir todo lo que hace el agente, desde cada llamada a una herramienta hasta cada compactación.

Cuatro capas y cinco de seguridadenlace

OpenDev se organiza en cuatro capas: arriba, la de entrada, con una interfaz de terminal y otra web; debajo, el agente, que razona; luego, las herramientas y el contexto; y al fondo, la persistencia, que lo guarda todo. Cada petición las recorre en orden, de arriba abajo.

Como el agente puede ejecutar comandos, sobrescribir archivos y lanzar procesos, un solo mecanismo de seguridad no basta. Hay cinco capas independientes, y si falla una, quedan cuatro:

  1. Reglas en el prompt.
  2. Herramientas que ni aparecen en el esquema del agente.
  3. Aprobación en tiempo de ejecución, con permisos que se guardan.
  4. Comprobaciones dentro de cada herramienta: patrones peligrosos, lecturas obsoletas, tiempos límite.
  5. Ganchos que define el usuario.
Cinco murallas de seguridad en fila; un ataque atraviesa la primera, que cae, y la segunda lo detiene: si falla una, quedan cuatro.
Cinco capas independientes: si falla una, quedan cuatro.

El núcleo del agenteenlace

La primera sorpresa: no hay una jerarquía de tipos de agente, sino una sola clase. El agente principal, los subagentes y los que definas tú son instancias de ella, y solo cambian sus parámetros, sobre todo qué herramientas pueden usar. Al principio tenían clases separadas (un planificador, un explorador, un generador web…) y combinar capacidades, como una web que también planifica, se volvió un lío.

Una fábrica monta los agentes en tres pasos y en un orden fijo: primero las skills, después los subagentes y, al final, el agente principal. El orden importa, porque la herramienta que lanza subagentes describe los que hay, así que tienen que existir antes. Y cada agente se construye entero desde el principio: con la construcción perezosa, la primera llamada tardaba más y las herramientas que llegaban tarde, como las de MCP, no aparecían en el prompt.

Dos modos: planificar y ejecutar

Si pides planificar, o escribes /plan, entra en juego un subagente planificador que solo tiene herramientas de lectura. Explora el código, lo analiza y escribe un plan con siete apartados: objetivo, contexto, archivos que cambian, archivos nuevos, pasos, verificación y riesgos. Tú lo apruebas (con o sin revisar cada edición) o pides cambios, y entonces se ejecuta con todas las herramientas.

A la izquierda, el modo plan con el planificador y sus herramientas de solo lectura y el plan de siete apartados; a la derecha, el modo normal con todas las herramientas tras aprobar el plan.
El planificador solo lee; al aprobar el plan, se ejecuta con todas las herramientas.

Antes, el modo plan era una máquina de estados con cuatro herramientas (entrar, salir, crear y editar el plan), y a veces el agente no salía nunca y se quedaba atascado en solo lectura. Ahora el planificador no puede escribir porque esas herramientas ni siquiera existen en su esquema. No hace falta bloquearlas.

El ciclo de cada mensaje

Cada mensaje sigue el mismo ciclo: el agente recoge lo que hayas escrito mientras trabajaba, comprime el contexto si hace falta, piensa si está activado y llama al modelo. Las lecturas se ejecutan en paralelo, hasta cinco a la vez, y las escrituras, una detrás de otra. Antes de terminar, comprueba que no quedan tareas pendientes.

El ciclo tiene diez eventos a los que puedes enganchar tus propios scripts: el inicio de la sesión, cada mensaje, antes y después de cada herramienta, los subagentes o la compactación. Un gancho previo puede bloquear la herramienta (con el código de salida 2) o reescribir sus argumentos, por ejemplo para añadir --dry-run o para pasar el linter tras editar un archivo.

Y no todo necesita al modelo: lo que empieza por una barra va directo a un comando (limpiar la sesión, compactar, cambiar de modo o de modelo, conectar un servidor MCP). Son operaciones deterministas: no piden aprobación y no gastan tokens.

Cinco modelos y el bucle ReActenlace

Cada fase del trabajo pide un modelo distinto, así que OpenDev reparte cinco papeles, y si falta alguno, otro ocupa su lugar:

Acción

El modelo principal, el que usa las herramientas.

Pensamiento

Razona sin herramientas, para no precipitarse.

Crítico

Revisa el razonamiento, solo en el nivel más alto.

Visión y compactación

Uno entiende capturas e imágenes; otro, pequeño y rápido, resume el contexto.

El corazón es un bucle ReAct ampliado. El ReAct clásico mezcla razonar y actuar en el mismo turno, y con las herramientas a la vista, el modelo tiende a actuar antes de pensar. Por eso hay una fase de pensamiento previa, con un modelo que no ve ninguna herramienta. Tiene cuatro niveles de profundidad; en el más alto, el crítico revisa el razonamiento y el modelo lo corrige. Aplicar la autocrítica siempre resultó demasiado lento.

El bucle ampliado: pensar sin herramientas, actuar y observar; los cuatro niveles de profundidad y el crítico que revisa el razonamiento en el nivel alto.
Pensar sin herramientas antes de actuar.

Bucles atascados

Otra trampa: el agente que repite lo mismo, como leer sin parar un archivo que no existe. OpenDev saca una huella de cada llamada, con la herramienta y sus argumentos, y vigila las veinte últimas. Si una se repite tres veces, avisa al modelo y no la ejecuta. Si insiste, se detiene y te pregunta si dejarla seguir o cortar. Como dice el paper, un aviso se puede ignorar; una pausa real, no.

La misma llamada read_file repetida con su huella; tras la tercera, un diálogo pausa al agente y pregunta si permitir o cortar.
A la tercera repetición, aviso; si insiste, pausa.

Subagentes especializados

El agente principal delega en subagentes: un explorador del código, un planificador, revisores de código y de seguridad, generadores de webs… Cada uno tiene solo las herramientas de su papel. Así su contexto es más pequeño, no se pisan la lista de tareas (solo la lleva el principal) y, si se equivocan, el daño queda acotado. Si le pides varias cosas independientes, lanza varios a la vez, cada uno en su hilo y con su propio contexto, y luego une los resultados en una sola respuesta. Al principio no sabían cuándo parar y el explorador releía los mismos archivos; ahora tienen condiciones de parada explícitas.

La ingeniería de contextoenlace

La calidad de cada respuesta depende, sobre todo, de lo que el modelo ve en su ventana: qué instrucciones recibe, cuánta conversación conserva, qué ha aprendido antes y qué información se le reúne en cada llamada. OpenDev lo trata como una prioridad de primer orden.

Un prompt por secciones, con caché

En vez de un prompt de sistema enorme, se compone de secciones independientes, cada una en su archivo y con una condición. Las reglas de git, por ejemplo, solo se cargan dentro de un repositorio. Se filtran, se ordenan por prioridad y se unen; lo que no aporta ni ocupa sitio ni distrae al modelo. Hay incluso secciones propias de cada proveedor de modelos.

Las tarjetas de las secciones del prompt, cada una con su condición; fuera de un repositorio, la de git se apaga.
Cada sección se carga solo si se cumple su condición.

Además, el prompt se parte en dos: una parte estable, que supone entre el 80 y el 90 % del total, y otra que cambia con la sesión. La estable se guarda en la caché del proveedor, y como el prompt viaja en cada llamada, el coste de esa parte baja en torno a un 88 %.

Resultados resumidos y salidas a un archivo

Lo que más ocupa son los resultados de las herramientas: leer un archivo puede costar tres mil tokens. Así que cada resultado se resume según su tipo: una lectura queda en «leído, 142 líneas»; una búsqueda, en «23 coincidencias». Y si una salida pasa de ocho mil caracteres, se guarda en un archivo aparte y en la conversación solo queda un avance con la ruta. Antes, una batería de pruebas podía comerse treinta mil tokens; con estos dos cambios, las sesiones pasaron de aguantar 15-20 turnos a 30-40 antes de llenar el contexto.

Memoria doble para pensar

La fase de pensamiento usa una memoria doble, inspirada en la ciencia cognitiva. La episódica es un resumen de toda la conversación, con los objetivos y las decisiones. La de trabajo son los seis últimos intercambios, palabra por palabra. Juntas dan el panorama y el detalle, con un presupuesto fijo de tokens.

La conversación larga se condensa en la memoria episódica y las seis últimas entradas pasan tal cual a la memoria de trabajo; las dos alimentan al modelo de pensamiento.
El panorama y el detalle, con un presupuesto fijo.

Probaron los dos extremos. Solo con resúmenes, se perdían rutas y nombres, y el agente citaba archivos que no existían. Solo con los mensajes recientes, olvidaba el objetivo a los diez turnos. Y un detalle fino: resumir un resumen acumula errores, así que el resumen se rehace cada cinco mensajes desde la conversación completa.

Instrucciones que se olvidanenlace

Este es el problema que más me ha gustado del paper, porque lo reconocerá cualquiera que use agentes. Le dices que pase siempre las pruebas después de editar. Los primeros turnos lo hace. Pero tras unas veinte llamadas a herramientas, deja de hacerlo. La instrucción sigue en el prompt, pero queda tan lejos que el modelo ya no le hace caso. Lo vieron de forma sistemática en sesiones de más de quince llamadas.

La solución son los recordatorios de sistema: mensajes cortos que se inyectan justo antes de que el agente se equivoque. Ocho detectores vigilan la conversación: herramientas que fallan sin reintento, demasiadas lecturas seguidas, tareas sin terminar, planes aprobados que no se ejecutan… Y cada recordatorio tiene un tope, para que no se convierta en ruido.

El agente da por terminada la tarea con una pendiente; justo antes entra un recordatorio y sigue con las pruebas. A la derecha, los ocho detectores con su tope.
Un recordatorio justo antes del error, y cada uno con su tope.

El detalle curioso: los recordatorios llegan como mensajes del usuario, no del sistema. Tras cuarenta turnos, otra instrucción de sistema se pierde en el fondo; lo que dice el usuario, en cambio, es lo más reciente, algo que acaba de pasar y pide respuesta. En sus pruebas, así el modelo obedecía bastante más.

Con los errores pasa algo parecido: ante un fallo, el agente suele pedir perdón en lugar de arreglarlo. OpenDev clasifica cada error en seis tipos (permiso denegado, archivo inexistente, edición que no encaja, sintaxis, límite de uso y tiempo agotado) y le da instrucciones concretas. «Vuelve a leer el archivo» funciona mucho mejor que «arréglalo». Y como mucho, lo intenta tres veces.

Compactar sin perder nadaenlace

Las salidas de las herramientas acaban ocupando del 70 al 80 % del contexto. Lo habitual es esperar a llenarlo casi del todo y resumir de golpe, perdiendo mucho. OpenDev comprime por etapas:

  • 70 %: solo avisa.
  • 80 %: cambia las salidas antiguas por referencias.
  • 85 %: poda las que quedan muy atrás.
  • 90 %: enmascara casi todo menos lo más reciente.
  • 99 %: resume la conversación con un modelo.
Un medidor de presión del contexto con marcas en 70, 80, 85, 90 y 99 %, y las observaciones pasando de activas a referencias, podadas y enmascaradas.
La compactación por etapas, según sube la presión del contexto.

Y ni siquiera entonces se pierde nada: la conversación entera se guarda en un archivo, y el resumen incluye su ruta y un índice de todo lo que ha tocado el agente. Según el paper, así el pico de contexto que ocupan las observaciones baja un 54 %, y en sesiones típicas de treinta turnos muchas veces ya no hace falta el resumen de emergencia.

El agente también aprende de una sesión a otra con un cuaderno de estrategias (playbook): frases cortas marcadas como útiles, dañinas o neutras. Antes de cada consulta elige las mejores por eficacia (0,5), antigüedad (0,3) y parecido con la pregunta (0,2). Y cada cinco mensajes, un reflector analiza qué ha funcionado y un curador actualiza el cuaderno.

Encontrar el código adecuadoenlace

Encontrar el código adecuado es lo más decisivo para un agente de programación: todo lo demás depende de eso. Por defecto, los agentes buscan cualquier cosa con grep. OpenDev busca primero el ancla más fuerte de la petición: un nombre de función va al servidor de lenguaje; un mensaje de error, a la búsqueda de texto; y un patrón de código, al buscador estructural.

Tres pistas con su herramienta: AuthController.validate al servidor de lenguaje, el mensaje de error a la búsqueda de texto y un patrón de código al buscador estructural.
Cada tipo de pista, a su herramienta.

Si la tarea exige explorar a fondo, delega en el subagente explorador, que encadena búsquedas en su propio contexto: localiza una clase, lee sus dependencias y rastrea dónde se usan. Los miles de líneas intermedias se quedan en su ventana, y al agente principal solo le llega el resumen.

Las herramientasenlace

OpenDev trae 35 herramientas propias, organizadas en un registro por categorías: archivos, procesos, web, símbolos, tareas… Antes estaban todas en un único espacio de nombres, con choques de nombres y una seguridad difícil de configurar; con categorías, las reglas se aplican por grupo.

Antes de ejecutar nada, tú decides cuánta autonomía le das: manual, con una aprobación para cada paso; semiautomática, que solo deja pasar las lecturas; o automática. Encima van reglas por patrón, por comando y por prefijo, y reglas de peligro, como borrar el disco entero, que siempre se deniegan. Lo que apruebas se guarda entre sesiones: si no, acabarías aprobándolo todo por cansancio.

Archivos y edición flexible

La lectura numera las líneas y, si el archivo es enorme, muestra el principio y el final. Antes de editar, se comprueba que nadie ha cambiado el archivo desde la última lectura, para no pisar tu trabajo. Y la escritura solo crea archivos nuevos: para modificar uno hay que editarlo, no reescribirlo de memoria.

Editar era la mayor fuente de errores. El modelo pide sustituir un texto que casi coincide con el del archivo, con espacios de más, otra sangría o caracteres escapados. OpenDev lo intenta con nueve pasadas, de la coincidencia exacta a otras cada vez más flexibles, y se queda con la primera que encaja. Después, el servidor de lenguaje le avisa de los fallos que haya metido.

Lo que pide el modelo frente a lo que hay en el archivo, con las diferencias marcadas, y la escalera de nueve pasadas que se detiene en la sangría flexible.
De la coincidencia exacta a la más flexible, hasta que una encaja.

Shell, web y servidores de lenguaje

Cada comando de shell pasa por seis etapas: filtros de seguridad, preparación, detección de servidores, ejecución, gestión de la salida y límites de tiempo. Si reconoce un servidor de desarrollo, lo manda a segundo plano. Antes, con un tiempo límite fijo, esos procesos morían siempre; ahora depende de la actividad: un minuto sin salida o diez en total.

Para la web usa un navegador de verdad, porque mucha documentación necesita JavaScript, y también busca y hace capturas. Para entender el código se conecta a los servidores de lenguaje, los mismos que usan los editores: encuentra símbolos y referencias, renombra en todo el proyecto y reescribe el cuerpo de una función sin tocar su firma.

Para hablar contigo, hace preguntas con opciones en lugar de texto libre (y siempre puedes contestar otra cosa), lleva una lista de tareas con una sola en curso, te presenta el plan para que lo apruebes y tiene una herramienta explícita para decir que ha terminado.

MCP y skills, bajo demanda

Cien herramientas MCP de unos doscientos tokens cada una suman veinte mil tokens solo en definiciones. Al principio las cargaban todas, y se comían hasta el 40 % del contexto antes del primer mensaje. Ahora el agente las busca por palabras clave cuando le hacen falta y solo carga esas: el coste inicial bajó a menos del 5 %. Con las skills hace lo mismo: al arrancar solo carga su nombre y su descripción.

Cien fichas de herramientas MCP; la barra del contexto antes del primer mensaje baja del 40 % a menos del 5 % al buscarlas por palabras clave.
Del 40 % a menos del 5 % del contexto en definiciones.

La persistenciaenlace

Todo se guarda en archivos normales, sin base de datos. Cada sesión son dos archivos, los metadatos y la transcripción (un mensaje por línea), que se escriben en un temporal y luego se renombran, así que nunca quedan a medias. Y si el índice de sesiones se corrompe, se reconstruye solo.

Los agentes se equivocan, así que cada operación con archivos queda registrada y se deshace con un solo comando. Pero un comando de shell también cambia archivos, por ejemplo al instalar dependencias. Para eso hay un repositorio de git en la sombra, aparte del tuyo, que guarda una instantánea en cada paso; deshacer restaura exactamente ese estado.

El registro de operaciones con /undo y, a la derecha, el git en la sombra con una instantánea por paso y la flecha de deshacer que vuelve a una anterior.
Un git en la sombra para deshacer también lo que hace el shell.

La configuración va por niveles (por defecto, entorno, usuario y proyecto, que manda sobre todo), las claves de la API solo se leen del entorno y los datos de los modelos se guardan en caché, así que el agente arranca incluso sin conexión.

Las cinco leccionesenlace

  1. El contexto es la restricción central. Lo consumen el propio sistema y las acciones del agente, y las salidas de las herramientas se llevan del 70 al 80 %. Un resultado más completo mejora cada turno, pero acorta la vida útil de la sesión.
  2. Guiar al agente es un problema de señal y ruido. La influencia del prompt se desvanece con la conversación. Para que no lo busque todo con grep, le dieron un árbol de decisión con criterios concretos: «si buscas una función o una clase, usa la búsqueda de símbolos». Nada de «usa la herramienta más adecuada».
  3. La seguridad va en la arquitectura, no en los permisos. Un modelo que ve una herramienta peligrosa puede razonar cómo usarla, argumentar por qué debería poder y buscar huecos en las reglas. Si la herramienta no está en su esquema, ni siquiera lo intenta. Es la diferencia entre una barrera y una carretera que no existe.
  4. Los modelos casi aciertan. Un sistema que exige exactitud se pasa la vida recuperándose de errores; mejor herramientas que absorban la imprecisión: la edición flexible, pasar a segundo plano lo que parece un servidor o instalar una dependencia que falta.
  5. Cargarlo todo al principio no escala. Mejor un índice ligero al arrancar y el contenido completo cuando haga falta. Lo que se pueda reconstruir, que se regenere solo. Y lo determinista, fuera del bucle del agente.
A la izquierda, una carretera con una barrera y el robot buscando cómo saltársela; a la derecha, una carretera que se acaba: no hay nada que intentar.
Una barrera frente a una carretera que no existe.

Lo que faltaenlace

El propio autor lo reconoce: el paper documenta decisiones, pero no trae una evaluación cuantitativa sistemática. Sus cifras salen de su experiencia con OpenDev, sin compararlo con otros agentes en benchmarks como Terminal-Bench o LongCLI-Bench. Medirlo así es el primer paso pendiente.

Y propone hacia dónde seguir: umbrales que se adapten a cada tarea (un fallo sencillo no necesita la fase de pensamiento), una memoria que pase de un proyecto a otro y entienda el código como un grafo, subagentes que hablen entre sí, recordatorios que se aprendan solos en vez de diseñarse a mano y el mismo agente también dentro del editor.

En una frase

Un buen agente de terminal no depende solo del modelo: es contexto bien administrado, seguridad por capas, herramientas que perdonan errores y una memoria que aprende.

¿Qué idea de OpenDev le pondrías a tu agente?

Fuentesenlace

Seguir leyendo

Últimos posts -->

¿Has visto estos proyectos?

Gymnasia

Gymnasia Gymnasia
Expo
React Native
TypeScript
OpenAI
Anthropic

App de fitness con dos agentes que se ejecutan íntegramente en el dispositivo, sin backend, de forma que los datos del usuario nunca salen del móvil. Un coach conversacional BYOK con tools locales y system prompt remoto con fallback offline, y un estimador de comidas que saca los macronutrientes de una foto del plato, con lectura de códigos de barras contra OpenFoodFacts.

LangGraph Deep Researcher

LangGraph Deep Researcher LangGraph Deep Researcher
Python
LangGraph
FastAPI
React
TypeScript
Docker

Sistema multiagente de investigación construido con LangGraph. Un supervisor descompone tu pregunta en temas y lanza subagentes de búsqueda en paralelo; cada uno comprime sus hallazgos antes de pasarlos a un agente redactor que escribe el informe final en markdown con sus fuentes. Streaming en vivo por WebSockets, modelo configurable por rol y claves de API propias que nunca se guardan en el servidor.

Tau

Tau Tau
Python
LangChain

Sistema multiagente de tutoría para estudiantes de secundaria, con un agente por asignatura y material de curso elaborado y validado por un equipo de profesores. Llegó a usarse con alumnos reales en un colegio privado en España y en un instituto en Colombia.

Ver todos los proyectos -->
>_ Disponible para proyectos

¿Tienes un proyecto con IA?

Hablemos.

maximofn@gmail.com

Especialista en Machine Learning e Inteligencia Artificial. Desarrollo soluciones con IA generativa, agentes inteligentes y modelos personalizados.

¿Quieres ver alguna charla?

Últimas charlas -->

¿Quieres mejorar con estos tips?

Últimos tips -->

Usa esto en local

Los espacios de Hugging Face nos permite ejecutar modelos con demos muy sencillas, pero ¿qué pasa si la demo se rompe? O si el usuario la elimina? Por ello he creado contenedores docker con algunos espacios interesantes, para poder usarlos de manera local, pase lo que pase. De hecho, es posible que si pinchas en alún botón de ver proyecto te lleve a un espacio que no funciona.

Flow edit

Flow edit Flow edit

Edita imágenes con este modelo de Flow. Basándose en SD3 o FLUX puedes editar cualquier imagen y generar nuevas

FLUX.1-RealismLora

FLUX.1-RealismLora FLUX.1-RealismLora
Ver todos los contenedores -->
>_ Disponible para proyectos

¿Tienes un proyecto con IA?

Hablemos.

maximofn@gmail.com

Especialista en Machine Learning e Inteligencia Artificial. Desarrollo soluciones con IA generativa, agentes inteligentes y modelos personalizados.

¿Quieres entrenar tu modelo con estos datasets?

short-jokes-dataset

HuggingFace

Dataset de chistes en inglés

Uso: Fine-tuning de modelos de generación de texto humorístico

231K filas 2 columnas 45 MB
Ver en HuggingFace →

opus100

HuggingFace

Dataset con traducciones de inglés a español

Uso: Entrenamiento de modelos de traducción inglés-español

1M filas 2 columnas 210 MB
Ver en HuggingFace →

netflix_titles

HuggingFace

Dataset con películas y series de Netflix

Uso: Análisis de catálogo de Netflix y sistemas de recomendación

8.8K filas 12 columnas 3.5 MB
Ver en HuggingFace →
Ver más datasets -->