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.

toc

[]

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

Failed to generate image: PlantUML preprocessing failed: [From <input> (line 12) ]

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

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

package "🖥️ Terminal de Desarrollador" #E8F5E9 {
  rectangle "AGENT.adoc\n(reglas, backlog)" as AG
  rectangle "PROMPT_REPRISE\n(misión)" as PR
  rectangle "INDEX.adoc
^^^^^
 Syntax Error? (Assumed diagram type: component)

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

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

package "🖥️ Terminal de Desarrollador" #E8F5E9 {
  rectangle "AGENT.adoc\n(reglas, backlog)" as AG
  rectangle "PROMPT_REPRISE\n(misión)" as PR
  rectangle "INDEX.adoc
(hoja de ruta)" as IDX
}

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

package "⚙️ Codebase Gradle" #FFF9C4 {
  folder "buildSrc/" {
    file "codebase.kt"
    file "readme.kt"
    file "site.kt"
    file "slider.kt"
    file "snapshot.kt"
  }
  file "build.gradle.kts
(947 líneas)"
  file "embeds.yml"
}

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

DV4 --> "Base de código" : "TDD, refactorización,\nsnapshot"
KIMI --> "Base de código" : "Degradación\n desde 60K tokens"

note bottom of GLMG
  Meilleur que Kimi
  mais latence +
  DSA moins robuste
  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.

Failed to generate image: PlantUML preprocessing failed: [From <input> (line 9) ]

@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
^^^^^
 Syntax Error? (Assumed diagram type: class)

@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
completo" as KV1
  rectangle "Compresión\nlatente" as CL1
  rectangle "Decodificación
en el espacio latente" as DL1
  KV1 --> CL1
  CL1 --> DL1
  note bottom of DL1
    ⚠️ Au-delà de 60K tokens :
    perte de discrimination
  end note
}

rectangle "GLM-5.1 — MLA + DSA" as DSA #C8E6C9 {
  rectangle "KV Cache
completo" as KV2
  rectangle "Compresión
latente (MLA)" as CL2
  rectangle "Indexador ligero
(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 escasa\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

Failed to generate image: PlantUML preprocessing failed: [From <input> (line 9) ]

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

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

rectangle "Caché KV
^^^^^
 Syntax Error? (Assumed diagram type: class)

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

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

rectangle "Caché KV
1M tokens" as KV #E3F2FD

rectangle "CSA
Atención Dispersa Comprimida" as CSA #C8E6C9 {
  rectangle "Compresión
m tokens → 1" as CC
  rectangle "Atención dispersa\n(DSA, top-k)" as SA
  CC --> SA

  note bottom of SA
    Attention locale fine
    + sélection sparse
  end note
}

rectangle "HCA\nAtención altamente comprimida" as HCA #BBDEFB {
  rectangle "Compresión extrema
m' >> m → 1" as ECC
  rectangle "Atención densa
residual" as EDA
  ECC --> EDA

  note bottom of EDA
    Contexte global
    + connexions longue distance
  end note
}

rectangle "Fusión
híbrido" as FUSION #FFF9C4
rectangle "Decodificación\ncoherente" as DEC #FFE0B2

KV --> CSA : Précision locale
KV --> HCA : Vision globale

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

*Coeficiente de confianza = medida subjetiva de mi capacidad para tomar el código del agente y el commit sin revisión línea por línea.

Failed to generate image: PlantUML preprocessing failed: [From <input> (line 17) ]

@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
código" as qual #F5F5F5
^^^^^
 Syntax Error? (Assumed diagram type: activity)

@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
código" as qual #F5F5F5
rectangle "Razonamiento
arquitectónico" as arch #F5F5F5
rectangle "Resistencia
hallucinations" as hall #F5F5F5
rectangle "Velocidad\n(experiencia dev)" as speed #F5F5F5
rectangle "Conocimiento
Gradle/Kotlin" as kg #F5F5F5
rectangle "Tasa de
correcció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:

  1. Mira la arquitectura, no el tamaño del contexto anunciado— Un modelo que anuncia 256K de contexto pero solo tiene un MLA terminará como Kimi: teóricamente capaz, prácticamente inutilizable más allá de 60K.

  2. Prueba en TU contexto, no en un benchmark genéricoMi prompt inicial de 30K tokens AsciiDoc con reglas absolutas y backlog no tiene nada que ver con las preguntas de HLE o AIME.

  3. La latencia no es la enemiga si la calidad sigue— Un modelo lento que produce código correcto es más rápido que un modelo rápido que produce código incorrecto.

  4. Desconfía de los modelos sin un informe técnico público— Si el equipo no documenta su arquitectura de atención, es porque no tiene confianza en su desempeño en contextos largos.

Arbre de décision pour choisir un LLM pour le développement logiciel assisté

¿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.

</think> He elegido DeepSeek-V4-Pro porque es el único de los tres que transforma mi gobernanza de agente de una restricción defensiva ("¿cómo evitar que el agente olvide?") en una ventaja ofensiva ("¿qué podemos construir ahora que el agente recuerda todo?"). __


*Este artículo es el resultado de 13 sesiones de desarrollo real en el proyecto`codebase-gradle`, documentadas en`.agents/sessions/`según mi metodología de gobernanza de agente Eager/Lazy/Hot/Warm/Cold. Las fuentes técnicas citadas son accesibles públicamente en HuggingFace y arXiv.

Articles connexes