tiempo de lectura : 18 minutes

La guerra de los LLMs también se libra en el terminal de un desarrollador. No en los benchmarks académicos estériles. En la vida real: un prompt de 30 000 tokens, una gobernanza de agente en AsciiDoc, plugins de Gradle Kotlin DSL por depurar y sesiones que se encadenan durante tres semanas. He probado para ti DeepSeek‑V4‑Pro, Kimi K2.6 y GLM‑5.1. Aquí tienes el veredicto, con pruebas técnicas a su disposición.

Contexto: no es un banco de pruebas, es una obra

Hace tres semanas, estaba trabajando en`codebase-gradle`, mi sistema meta-build que centraliza la configuración YAML de cuatro proyectos: un generador de README PlantUML, un constructor de diapositivas AsciiDoc, un sitio estático JBake y un chatbot LLM. El agente Opencode, gobernado por mi metodología de archivos de agentes en AsciiDoc, cargaba ~30K tokens de contexto EAGER al inicio de cada sesión — reglas absolutas, backlog, historial de las 10 sesiones anteriores.

Es en este terreno donde me enfrenté a tres modelos :

  • Kimi K2.6(Moonshot AI, 1T params / 32B activados, 256K contexto máximo, MLA) - GLM-5.1(Zhipu AI/Tsinghua, 744B parámetros / DSA, 200K contexto máximo) - DeepSeek-V4-Pro(DeepSeek, 1.6T params / 49B activados, 1M contexto máximo, CSA+HCA)

Todos servidos vía Ollama en servidor en la nube, todos en modo thinking (fase de reflexión activada). El reto: producir código correcto, mantener la coherencia en sesiones largas y no alucinar cuando el contexto supera los 80K tokens.

Mi entorno de prueba

@startuml
skinparam backgroundColor #FEFEFE
skinparam defaultTextAlignment center
skinparam wrapWidth 220

title Entorno de prueba — Sesiones Opencode × 3 LLMs
left to right direction

package "🖥️ Terminal Desarrollador" #E8F5E9 {
  rectangle "AGENT.adoc\n(règles, backlog)" as AG
  rectangle "PROMPT_REPRISE\n(mission)" as PR
  rectangle "INDEX.adoc\n(roadmap)" as IDX
}

package "☁️ Ollama Nube" #BBDEFB {
  rectangle "DeepSeek-V4-Pro\n1.6T / CSA+HCA" as DV4
  rectangle "Kimi K2.6\n1T / MLA" as KIMI
  rectangle "GLM-5.1\n744B / MLA+DSA" as GLMG
}

package "⚙️ Base de código Gradle" #FFF9C4 {
  folder "buildSrc/" {
    file "codebase.kt"
    file "readme.kt"
    file "site.kt"
    file "slider.kt"
    file "snapshot.kt"
  }
  file "build.gradle.kts\n(947 lignes)"
  file "embeds.yml"
}

AG --> DV4 : Sesiones 1-8 ✅
AG --> KIMI : Sesiones 9-10 ⚠️
AG --> GLMG : Sesiones 11-13 ⚠️

DV4 --> "Base de código" : "TDD, refactorización,\ninstantánea"
KIMI --> "Base de código" : "Degradación\nDepuis 60K tokens"

note bottom of GLMG
Mejor que Kimi
pero latencia +
DSA menos robusto
que CSA+HCA
end note

@enduml

Cada sesión comenzaba con aproximadamente 30K tokens de contexto EAGER :`AGENT.adoc`(287 líneas)PROMPT_REPRISE.adoc(51 líneas),.agents/INDEX.adoc(218 líneas),LAZY_EAGER_ESSENTIALS.adoc(50 líneas). El contexto crecía rápidamente con los intercambios — una sesión típica de 10 mensajes añadía 15-20K tokens al prompt acumulado.

La rúbrica de evaluación

He evaluado cada modelo en cuatro ejes críticos para el desarrollo de software asistido :

eje Criterio concreto

Coherencia de contexto largo

¿Recuerda el agente los acuerdos decididos hace 40 mensajes?

Calidad del código producido

¿El código compila a la primera? ¿Respeta los patrones existentes?

Razonamiento arquitectónico

¿Entiende el agente las relaciones entre los módulos sin que yo se los vuelva a explicar?

Resistencia a las alucinaciones

¿A partir de cuántos tokens el agente comienza a inventar APIs o clases inexistentes?

Y una métrica sintética casera : elcoeficiente de recuperación(cuánto tiempo paso corrigiendo al agente en lugar de programar con él)

Round 1 : Kimi K2.6 — La Falsa Salida

Kimi K2.6 ha sido mi primera elección. Sus benchmarks en SWE-Bench Verified (80.2) y Terminal-Bench 2.0 (66.7) son excelentes. Su arquitectura MLA promete una buena eficiencia en secuencias largas.

Session 9 : la mejora

Primera sesión con Kimi. Tarea: implementar el método`resolveActiveKey()dentro`codebase.kt— una función de resolución de clave API con fallback CLI. El contexto es de 30K tokens, Kimi razona rápido, produce un código limpio con gestión de expiración de claves.

fun resolveActiveKey(
    cfg: CodebaseConfiguration,
    logger: Logger,
    cliProvider: String? = null,
    cliAccount: String? = null,
    cliKey: String? = null
): NamedApiKey? {
    // Résolution provider → compte → clé avec CLI override
    // Kimi a parfaitement compris la chaîne de priorité
}

El código compila. Los 7 casos de prueba pasan. Soy optimista.

Sesión 10: el naufragio silencioso

Segunda sesión. El contexto se incrementa a ~90K tokens con los intercambios. Pido a Kimi que agregue un mecanismo de captura instantánea AsciiDoc que anonimice los secretos antes de la escritura.

Es aquí donde se desvía. Kimi empieza a inventar clases que no existen. Me propone`AnonymizedObjectMapper`— una clase ficticia. Él confunde`ReadmeYmlAnonymizer` et CodebaseYmlAnonymizer. Él me sugiere importar`com.fasterxml.jackson.anonymize.*`— un paquete que nunca ha existido

Peor: en su fase de reflexión, veo que construye razonamientos basados en premisas falsas. Él "se recuerda" que`GitConfig`a un campo`anonymizedToken`— no, es`resolvedToken(). Él atribuye a`SiteYmlAnonymizer`un método`maskSupabaseCredentials()— que no existe.

_ No era un error. Era una disolución progresiva de la coherencia. Como si cada token añadido al contexto diluyera un poco más la memoria de los primeros 30 000. _

Detengo a Kimi después de dos sesiones. El diagnóstico es claro: el MLA comprime bien el caché KV, pero sin un mecanismo de selección sparsa de grano fino, la atención se diluye mecánicamente más allá de 60K tokens. Cada token 've' cada vez peor el contexto distante — y comienza a rellenar los huecos con ruido.

Ronda 2 : GLM-5.1 — El Combatiente Honorable

GLM-5.1 llega con una arquitectura diferente: MLA para el modelo base, luego un continued pre-training con DSA (DeepSeek Sparse Attention) — un indexador ligero que selecciona dinámicamente los top-2048 tokens relevantes de todo el historial.

Arquitectura: el DSA contra el MLA puro

La diferencia es fundamental. Donde Kimi comprime el historial en un único espacio latente (y pierde gradualmente la capacidad de discriminar la información pertinente), GLM añade un indexador post-entrenamiento que realiza una selección esparsa explícita.

@startuml
skinparam backgroundColor #FEFEFE
skinparam defaultTextAlignment center

title Arquitecturas de atención — MLA vs MLA+DSA
left to right direction

rectangle "Kimi K2.6 — MLA puro" as MLA #FFCDD2 {
  rectangle "KV Cache\ncompleto" as KV1
  rectangle "Compresión\nlatente" as CL1
  rectangle "Decodificación\nsobre espacio latente" as DL1
  KV1 --> CL1
  CL1 --> DL1
  note bottom of DL1
⚠️ Más allá de 60K tokens : pérdida de discriminación
  end note
}

rectangle "**GLM-5.1 — MLA + DSA**" as DSA #C8E6C9 {
  rectangle "KV Cache\ncompleto" as KV2
  rectangle "Compresión\nlatente (MLA)" as CL2
  rectangle "Indexador ligero\n(DSA, top-k=2048)" as IL
  rectangle "Decodificación\nsobre tokens seleccionados" as DL2
  KV2 --> CL2
  CL2 --> IL
  IL --> DL2
  note bottom of DL2
    ✅ "Sin pérdida por construcción"
    Sélection explicite
    des tokens pertinents
  end note
}

MLA --> DSA : "Ganancia : selección dispersa\nque evita la dilución"

@enduml

El informe técnico lo dice explícitamente: DSA es "lossless by construction" — a diferencia de alternativas como SWA (búsqueda de patrones), Gated DeltaNet o SimpleGDN que pierden hasta 5.69 puntos en RULER@128K.

Sesiones 11-13 : sólido pero frustrante

GLM-5.1 mantiene mejor la distancia. En la sesión 11 (~60K tokens), sigue siendo coherente. Produce un`SnapshotManager`funcional con gestión correcta de los cuatro anonimizadores.

Pero la latencia es un problema. Las fases de reflexión DSA son más pesadas que el MLA puro — el indexador debe volver a escanear el historial en cada paso. Una respuesta que tardaba 8 segundos con Kimi ahora tarda 15 con GLM. En una sesión de 30 mensajes, se hace sentir.

Y luego están los errores sutiles. GLM no delira como Kimi — pero comete errores de nommage. Él llama`toAnonymizedYaml()el método que debería llamarse`anonymize(). Él invierte`loadReadmeConfiguration()` et loadCodebaseConfiguration()`en el`renderFileSection(). No son alucinaciones, son confusiones superficiales — pero en producción, una confusión superficial puede romper un build.

He tenido tres sesiones con GLM. Es mejor que Kimi, sin duda. Pero tres sesiones de corrección manual sobre detalles de nomenclatura, resulta agotador.

Ronda 3 : DeepSeek-V4-Pro — La Máquina de Guerra

DeepSeek-V4-Pro llega con la arquitectura más ambiciosa de las tres: un sistema híbrido que combina dos mecanismos de atención complementarios.

Arquitectura : CSA + HCA, el listel doble

@startuml
skinparam backgroundColor #FEFEFE
skinparam defaultTextAlignment center
skinparam wrapWidth 180

title DeepSeek-V4-Pro — Arquitectura Híbrida CSA + HCA
left to right direction

rectangle "KV Cache\n1M tokens" as KV #E3F2FD

rectangle "CSA\nCompressed Sparse Attention" as CSA #C8E6C9 {
  rectangle "Compression\nm tokens → 1" as CC
  rectangle "Sparse Attention\n(DSA, top-k)" as SA
  CC --> SA

  note bottom of SA
Atención local fina + selección sparse
  end note
}

rectangle "HCA\nHeavily Compressed Attention" as HCA #BBDEFB {
  rectangle "Compression extrema\nm' >> m → 1" as ECC
  rectangle "Atención densa\nresidual" as EDA
  ECC --> EDA

  note bottom of EDA
Contexto global + conexiones de larga distancia
  end note
}

rectangle "Fusión\nhíbrida" as FUSION #FFF9C4
rectangle "Decodificación\ncoherente" as DEC #FFE0B2

KV --> CSA : Precisión local
KV --> HCA : Visión global

CSA --> FUSION
HCA --> FUSION
FUSION --> DEC

@enduml

Dos niveles de compresión, dos granularidades de atención:

  • CSA: comprime el caché KV todos los`m`tokens, luego aplica una atención escasa (DeepSeek Sparse Attention) — solo se consulta el top-k de las entradas comprimidas. Preciso, local, eficiente. - HCA: compresión extrema (factor`m'`mucho más grande que`m`), pero atención densa sobre el residuo comprimido — mantenga las conexiones globales sin explosión cuadrática.

Resultado: a 1M de tokens, DeepSeek-V4-Pro solo consume27% de los FLOPs de inferencia et 10% del tamaño del caché KVen comparación con DeepSeek-V3.2. El modelo anterior.

Y sobre todo, el informe técnico (Figura 9) anuncia: "Retrieval performance remains highly stable within a 128K context window."

Sesiones 1-8: el alivio

Sesiones 1-8: el alivio

He pasado ocho sesiones con DeepSeek-V4-Pro en`codebase-gradle`. Ocho sesiones sin una sola alucinación, sin una sola clase inventada, sin una sola confusión de nomenclatura.

Sesión 1 : implementación de`CodebaseYmlConfig` et CodebaseYmlAnonymizer. 350 líneas de Kotlin, pruebas en línea, todo compila. Sesión 4 : adición del`SnapshotManager`con vista de árbol, recolección de archivos, renderizado AsciiDoc por archivo. 279 líneas, cero error. Sesión 7 : depuración de`renderFileSection()`que tenía que gestionar cuatro tipos de anonimizadores diferentes sin ambigüedad de resolución. Resuelto en tres mensajes.

La latencia es más alta que Kimi — aproximadamente 10-12 segundos por respuesta en modo thinking. Pero la tasa de corrección es prácticamente nula. No paso mi tiempo reparando los errores del agente. Codifico con él.

La prueba decisiva: refactoring a 100K tokens

En la sesión 8, el contexto acumulado supera los 100K tokens. Solicito un refactor intensivo: extraer las cuatro tareas de verificación en línea del`build.gradle.kts`a los archivos de prueba de JUnit5 en`buildSrc/src/test/`.

El agente propone un plan en tres fases :

  1. Crear las clases de prueba con migración de los casos existentes

  2. Agregar las dependencias de JUnit5 y Kotest en`buildSrc/build.gradle.kts`

  3. Eliminar el código en línea de`build.gradle.kts`

El plan es correcto. La ejecución es limpia. Incluso identifica un caso límite que yo había pasado por alto: las dependencias Jackson duplicadas entre`buildscript {}` et `buildSrc/build.gradle.kts`que deben ser unificadas durante la migración.

100K tokens de contexto, y el agente recuerda que`CodebaseYmlAnonymizer.TOKEN_MASK`es`"*"`, que`GitConfig.resolvedToken()es una función de extensión definida en`readme.kt, y que`SnapshotManager.PRUNED_DIRS`excluye`build`, .gradle et .git.

Así es, la diferencia.

El cara a cara : métricas comparativas

criterio Kimi K2.6 GLM-5.1 DeepSeek-V4-Pro

Contexto máximo

256K

200K

1M

Mecanismo atención

MLA puro

MLA + DSA

CSA + HCA híbrido

Parámetros totales

1T

744B

1.6t

Parámetros activados

32B

no publicado

49B

Umbral de degradación observado

~60K tokens

~120K tokens

</think>

Comportamiento más allá

Alucinaciones masivas

Confusiones de superficie

degradación progresiva lenta

Estabilidad NIAH

no publicado

100% @128K (DSA)

estable hasta 128K (Figura 9)

MRCR @128K

no publicado

no publicado

superior a Gemini 3.1 Pro

Sesiones celebradas antes del abandono

2

3

8 (y continúa)

Tiempo de corrección / tiempo de código

60%

30%

<5%

Latencia media (modo think)

8 s

15 s

11 s

Coeficiente de confianza*

2/10

6/10

9/10

@startuml
skinparam backgroundColor #FEFEFE
skinparam defaultTextAlignment center

title Radar Comparativo — 3 LLMs en Desarrollo Software Asistido
legend right
  |= Couleur |= Modèle |
  | <#FF5252> | Kimi K2.6 |
  | <#FFC107> | GLM-5.1 |
  | <#4CAF50> | DeepSeek-V4-Pro |
endlegend

rectangle " " as space #FFFFFF

rectangle "Coherencia\n80K+ tokens" as coh #F5F5F5
rectangle "Calidad\ncode" as qual #F5F5F5
rectangle "Razonamiento\narquitectónico" as arch #F5F5F5
rectangle "Resistencia\nalucinaciones" as hall #F5F5F5
rectangle "Velocidad\n(dev expérience)" as speed #F5F5F5
rectangle "Conocimiento\nGradle/Kotlin" as kg #F5F5F5
rectangle "Tasa de\ncorrección" as corr #F5F5F5

coh --> qual
qual --> arch
arch --> hall
hall --> speed
speed --> kg
kg --> corr

note top of coh
  Kimi      ████░░░░░░ 4/10
  GLM       ██████░░░░ 6/10
  DeepSeek  █████████░ 9/10
end note

note top of qual
Kimi      ███████░░░ 7/10 (bajo 60K)
GLM       ████████░░ 8/10
DeepSeek  █████████░ 9/10
end note

note top of arch
  Kimi      █████░░░░░ 5/10
  GLM       ███████░░░ 7/10
  DeepSeek  █████████░ 9/10
end note

note top of hall
  Kimi      ██████░░░░ 6/10 → ██░░░░░░░░ 2/10 (> 60K)
  GLM       ███████░░░ 7/10
  DeepSeek  █████████░ 9/10
end note

note top of speed
Kimi      █████████░ 9/10

GLM       ██████░░░░ 6/10
DeepSeek  █████░░░░░ 5/10
end note

note top of kg
  Kimi      ███████░░░ 7/10
  GLM       ███████░░░ 7/10
  DeepSeek  █████████░ 9/10
end note

note top of corr
Kimi      ██░░░░░░░░ 2/10 (muchas correcciones)
GLM       █████░░░░░ 5/10
DeepSeek  ██████████ 10/10 (casi nada que corregir)
end note

@enduml
@startuml
skinparam backgroundColor #FEFEFE
skinparam defaultTextAlignment center

title Radar Comparativo — 3 LLMs en Desarrollo Asistido por Software
legend right
  |= Couleur |= Modèle |
  | <#FF5252> | Kimi K2.6 |
  | <#FFC107> | GLM-5.1 |
  | <#4CAF50> | DeepSeek-V4-Pro |
endlegend

rectangle " " as space #FFFFFF

rectangle "Coherencia\n80K+ tokens" as coh #F5F5F5
rectangle "Calidad\ncódigo" as qual #F5F5F5
rectangle "Razonamiento\narquitectónico" as arch #F5F5F5
rectangle "Resistencia\nhallucinations" as hall #F5F5F5
rectangle "Velocidad\n(experiencia dev)" as speed #F5F5F5
rectangle "Conocimiento\nGradle/Kotlin" as kg #F5F5F5
rectangle "Tasa de\ncorrección" as corr #F5F5F5

coh --> qual
qual --> arch
arch --> hall
hall --> speed
speed --> kg
kg --> corr

note top of coh
  Kimi      ████░░░░░░ 4/10
  GLM       ██████░░░░ 6/10
  DeepSeek  █████████░ 9/10
end note

note top of qual
  Kimi      ███████░░░ 7/10 (sous 60K)
  GLM       ████████░░ 8/10
  DeepSeek  █████████░ 9/10
end note

note top of arch
  Kimi      █████░░░░░ 5/10
  GLM       ███████░░░ 7/10
  DeepSeek  █████████░ 9/10
end note

note top of hall
  Kimi      ██████░░░░ 6/10 → ██░░░░░░░░ 2/10 (> 60K)
  GLM       ███████░░░ 7/10
  DeepSeek  █████████░ 9/10
end note

note top of speed
  Kimi      █████████░ 9/10
  GLM       ██████░░░░ 6/10
  DeepSeek  █████░░░░░ 5/10
end note

note top of kg
  Kimi      ███████░░░ 7/10
  GLM       ███████░░░ 7/10
  DeepSeek  █████████░ 9/10
end note

note top of corr
  Kimi      ██░░░░░░░░ 2/10 (beaucoup de corrections)
  GLM       █████░░░░░ 5/10
  DeepSeek  ██████████ 10/10 (presque rien à corriger)
end note

@enduml

¿Por qué DeepSeek-V4-Pro gana en desarrollo de software?

La superioridad de DeepSeek-V4-Pro no se debe a un solo factor — es una convergencia:

La arquitectura CSA+HCA está diseñada para el código

El desarrollo de software asistido es un caso de uso extremo para la atención de largo contexto. Necesitas: - Precisión local (¿De qué hereda esta clase? ¿Dónde está definido este método?) →CSA - Visión global (¿por qué existe este módulo? ¿cómo interactúan los cuatro anonimizadores?) →HCA

Kimi con MLA solo gestiona la precisión local pero pierde la visión global más allá de 60K. GLM con DSA mejora la visión global pero sigue siendo mono-nivel. DeepSeek combina ambos explícitamente.

2. El contexto EAGER es su zona de confort

Mi sistema de gobernanza carga ~30K tokens de reglas y de backlog al iniciar. Con una ventana estable de hasta 128K, DeepSeek tiene ~100K tokens de margen para los intercambios de la sesión. Es de 3 a 4 veces más de lo que Kimi puede manejar sin degradación.

</think> La ventana de 128K de estabilidad perfecta corresponde exactamente a mis necesidades: 30K de EAGER + 70K de intercambios = una sesión productiva de 20-30 mensajes sin nunca salir de la zona verde. __

3. La relación calidad/latencia es óptima para el flujo

Sí, DeepSeek-V4-Pro es más lento que Kimi (11s vs 8s). Pero el tiempo total de una tarea es mucho menor porque no paso 20 minutos corrigiendo las alucinaciones del agente.

El desarrollador no mide la latencia de una respuesta. Mide el tiempo entre « me hago la pregunta » y « el código está en mi repositorio y funciona ». Con esta métrica, DeepSeek-V4-Pro es el más rápido de los tres.

Lecciones Aprendidas: Cómo Elegir su LLM para el Vibe Coding

Más allá de la clasificación puntual, esta experiencia me ha enseñado a evaluar un LLM para el desarrollo de software asistido según criterios que no aparecen en ningún benchmark:

@startuml
skinparam backgroundColor #FEFEFE
skinparam defaultTextAlignment center
skinparam wrapWidth 260

title Árbol de Decisión — Elegir su LLM para el Desarrollo Asistido
start

:Contexto inicial\n> 20K tokens?;

if (Oui) then
  :Arquitectura de atención híbrida o multinivel?;

  if (CSA+HCA) then
    :DeepSeek-V4-Pro
    Fenetre stable 128K
    Ideal pour gouvernance EAGER;
    stop
  elseif (MLA + DSA) then
    :GLM-5.1
    Correct jusqu'a ~120K
    Latence elevee;
    stop
  else (MLA seul)
    :Kimi K2.6 (sessions courtes)
    ou eviter pour long contexte
    Chercher un modele avec
    sparse attention;
    stop
  endif
else (Contexte < 20K)
  :N'importe lequel fonctionne.
  Privilegier la latence.;
  stop
endif

@enduml
@startuml
skinparam backgroundColor #FEFEFE
skinparam defaultTextAlignment center
skinparam wrapWidth 260

title Árbol de decisión — Elegir su LLM para el desarrollo asistido
start

:Contexte initial\n> 20K tokens ?;

if (Oui) then
  :Architecture d'attention\nhybride ou multi-niveau ?;

  if (CSA+HCA) then
    :DeepSeek-V4-Pro
    Fenetre stable 128K
    Ideal pour gouvernance EAGER;
    stop
  elseif (MLA + DSA) then
    :GLM-5.1
    Correct jusqu'a ~120K
    Latence elevee;
    stop
  else (MLA seul)
    :Kimi K2.6 (sessions courtes)
    ou eviter pour long contexte
    Chercher un modele avec
    sparse attention;
    stop
  endif
else (Contexte < 20K)
  :N'importe lequel fonctionne.
  Privilegier la latence.;
  stop
endif

@enduml

¿Y la Gouvernance Agent en todo eso?

Esta experiencia valida un punto que defiendo desde mi artículo sobre la gobernanza Eager/Lazy :la calidad del LLM y la calidad de la gobernanza son multiplicativas, no aditivas.

Con Kimi K2.6, mi gobernanza estaba impecable — pero el modelo diluía la información. Resultado: gobernanza perfecta × alucinación = cero.

Con DeepSeek-V4-Pro, la gobernanza EAGER (30K tokens de reglas) + LAZY (archivos de sesiones, referencias técnicas) + Hot/Warm/Cold (copia de seguridad rotativa) forma un ecosistema donde cada capa amplifica a la otra. El agente tiene las reglas a la vista (EAGER), puede consultar el historial (LAZY), y el contexto nunca se satura (rotación de copia de seguridad).

__ Un buen LLM sin gobernanza, es un motor de Ferrari sin volante. Una buena gobernanza sin buen LLM, es un volante sin motor. DeepSeek-V4-Pro + mi gobernanza agente = la primera vez que tengo la impresión de conducir. </think>

El mecanismo de backup rotativo (rotación cada 10 sesiones o >500 líneas EAGER) tiene todo su sentido con un modelo que maneja 128K de contexto: la ventana deslizante de 10 sesiones activas mantiene el contexto fresco sin nunca superar la zona de degradación.

Fuentes técnicas

Crucé mi experiencia empírica con los informes técnicos oficiales para validar mis observaciones:

  1. DeepSeek-V4 Technical Report — PDF recuperado desdehttps://huggingface.co/deepseek-ai/DeepSeek-V4-Flash[HuggingFace]. Figura 9 : "El rendimiento de recuperación se mantiene altamente estable dentro de una ventana de contexto de 128K. Mientras que una degradación del rendimiento se hace visible más allá de la marca de 128K, las capacidades de recuperación del modelo con 1M de tokens siguen siendo notablemente fuertes." Arquitectura CSA+HCA documentada sección 2.3.

  2. Informe técnico GLM-5 —https://arxiv.org/abs/2602.15763[arXiv:2602.15763]. DSA se introduce mediante pre-entrenamiento continuado, "sin pérdida por construcción". Contexto máximo 202,752 tokens. Las tablas 3/5/6 documentan el rendimiento de largo contexto frente a alternativas (SWA, Gated DeltaNet, SimpleGDN).

  3. Kimi K2.6 Model Card —https://huggingface.co/moonshotai/Kimi-K2.6[HuggingFace]. MLA, 256K contexto máximo. Estrategia de discard-all más allá del umbral en las tareas agenciales (confirmando implícitamente el límite práctico de MLA en contexto largo).

  4. Informe Técnico de Kimi K2—https://arxiv.org/abs/2507.20534[arXiv:2507.20534]. Arquitectura MoE, MuonClip optimizer, rendimientos agenticos (HLE, BrowseComp, Terminal-Bench).

El punto más revelador: en su propia evaluación, Moonshot aplica una estrategia de discard-all (eliminación del contexto antiguo) tan pronto como se supera la ventana de contexto. Esto confirma exactamente lo que he observado: el MLA solo no puede mantener la coherencia en toda la ventana de 256K. La arquitectura no sigue.

Conclusión : La Elección del Artesano

Después de tres semanas y trece sesiones de desarrollo real, el veredicto es sin apelación:

Kimi K2.6 GLM-5.1 DeepSeek-V4-Pro

Excelente por debajo de 60K

Sólido hasta 120K

Domina en todas partes

Inutilizable más allá

Confusiones de superficie

Estable hasta 128K

2 sesiones, abandonado

3 sesiones, abandonado

8 sessions, adoptado

DeepSeek-V4-Pro se ha convertido en mi LLM predeterminado para todas las sesiones de desarrollo de software asistido con Opencode. No porque sea el más reciente. No porque tenga los mejores benchmarks académicos. Pero porque en la vida real de un desarrollador que impulsa plugins Gradle Kotlin DSL con un contexto de agente de 30K tokens, es el único que no me falla cuando el contexto se extiende.

El CSA+HCA es un game changer arquitectónico. La compresión de doble nivel + esparsificación no es un detalle de implementación — es lo que marca la diferencia entre un asistente de código y un compañero confiable.



Artículos relacionados