---
title: "Caveman 3.0 para Claude Code: compresión de entrada"
canonical: https://wavect.io/es/blog/caveman-3-claude-code-input-compression/
language: es
description: "Cómo Caveman 3.0 comprime localmente resultados de Claude Code, conserva recuperación exacta, usa Apache-2.0 y qué demuestra su benchmark del 33,2%."
image: "https://wavect.io/img/general/bak/open_graph_preview.jpg"
---

[**Volver**](/es/blog/overview/)

[![Kevin Riedl](/img/team/kevin.webp)](/es/team/kevin-riedl/)

[Kevin Riedl](/es/team/kevin-riedl/) https://linkedin.com/in/wsdt

16 min de lectura · 2 oct 2026 Última revisión 2 de octubre de 2026

[**Siguiente**](/es/blog/context-language-models-vs-compaction/)

# Caveman 3.0 para Claude Code: compresión local, recuperación y benchmarks

Resumen

Caveman 3.0 ya no es solo una regla para que el agente responda con menos palabras. Su proxy local puede comprimir logs, JSON, YAML, resultados de tests y otros resultados de herramientas antes de enviarlos al modelo, conservando los originales exactos para recuperarlos cuando hagan falta. El benchmark publicado con Claude Code informa un 33,2% menos de tokens de entrada medidos por el proveedor en 18 ejecuciones emparejadas, con 18/18 comprobaciones de respuesta correctas. Sin embargo, un caso HTML usó un 9,9% más de entrada y los artefactos brutos del benchmark no están publicados. La versión 3.0 también cambia todo el repositorio público a Apache-2.0 y estabiliza el middleware TypeScript y Python en 1.0.0. Esta guía explica qué probar y qué límites de privacidad y retención siguen siendo relevantes.

**Revisado el 2 de octubre de 2026.** Baseline de producto: Caveman 3.0.0, runtime `bin-v2.0.0`, SDK 1.2.0 y middleware 1.0.0. Esta es una revisión de fuentes y metodología de benchmark, no un benchmark de producción de Wavect. [release Caveman 3.0.0](https://github.com/JuliusBrussee/caveman/releases/tag/v3.0.0)

**Caveman 3.0 es interesante por una razón distinta al meme que lo hizo conocido.** La idea original era sencilla: hacer que un agente de programación respondiera con menos palabras. La arquitectura nueva ataca el lado que puede pesar más en sesiones largas, lo que el modelo vuelve a leer. Un proxy local puede comprimir resultados grandes de herramientas antes de la siguiente petición al modelo y conservar los bytes originales para recuperarlos después. [README de Caveman 3.0](https://github.com/JuliusBrussee/caveman/blob/v3.0.0/README.md)

La intención de búsqueda es más estrecha que nuestra [guía general para optimizar tokens en coding agents](/es/blog/smarter-token-usage-with-your-ai-coding-agent/), que cubre caché, routing y reducción de contexto como un sistema completo. También es más específica que nuestra [guía de compresión de tool output](/es/blog/codag-cost-control/). Aquí analizamos específicamente **Caveman 3.0, compresión de entrada en Claude Code, recuperación exacta, ejecución local y la evidencia que sostiene sus claims**.

## ¿Qué cambió en Caveman 3.0?

Caveman 3.0.0 se publicó el 30 de septiembre de 2026. La versión reúne varias decisiones que antes estaban separadas y crea una historia de despliegue más clara. [Notas de la versión](#source-release).

| Área | Caveman 3.0 | Por qué importa |
| --- | --- | --- |
| Licencia | Todo el repositorio público pasa a Apache-2.0 desde 3.0.0. | Engine, proxy, CLI, SDKs y middleware se pueden bifurcar, integrar y autoalojar bajo una licencia permisiva. |
| Middleware | Los paquetes TypeScript y Python llegan a 1.0.0 y requieren SDK 1.2.0. | El mismo patrón de compresión se puede integrar dentro de agentes propios, no solo alrededor de un agente de terminal. |
| `caveman learn` | Refresh en segundo plano, memory checks, tendencias y cambios con consentimiento. | Permite localizar contexto repetido antes de decidir qué comprimir. |
| Runtime | `bin-v2.0.0` mejora ciclo de vida, retención y primitivas de despliegue. | Los originales para recovery se pueden asociar a un scope y borrar con la sesión. |

El cambio de licencia requiere precisión. Antes de 3.0.0, parte del repositorio era MIT y el runtime ligado al engine usaba BSL-1.1. Desde 3.0.0 el repositorio es Apache-2.0, sin restricción de hosted service ni Change Date para ese código. Las versiones anteriores mantienen la licencia con la que se publicaron. Caveman Cloud es un producto alojado separado y no está cubierto por la licencia del repositorio. [notas de licencia de Caveman](https://github.com/JuliusBrussee/caveman/blob/v3.0.0/LICENSING.md)

## En una sesión de agente, releer puede costar más que la respuesta final

Un coding agent no paga solo por la explicación que escribe al final. Las sesiones largas arrastran instrucciones, mensajes anteriores y resultados de herramientas a peticiones posteriores. Un test que produce 80 KB una vez puede seguir inflando varias llamadas si el framework mantiene ese output en el historial. Lo mismo ocurre con JSON, YAML, diffs y resultados de búsqueda.

Caveman separa dos mecanismos:

- **El skill de respuesta** hace que el agente escriba de forma más compacta y reduce output.
- **El proxy y el middleware** transforman contexto elegible antes de la inferencia y reducen input.

El segundo es el cambio más interesante. El modelo no necesita cada línea INFO de un log para diagnosticar una excepción, pero truncar sin criterio es peligroso porque la línea eliminada podría ser la que resuelve la tarea. Por eso la idea es **comprimir y recuperar**, no simplemente descartar. [Arquitectura del proyecto](#source-readme).

## Cómo funciona el proxy local

```
Claude Code / Codex / otro agente
        |
        | petición + resultados de herramientas
        v
proxy local de Caveman
        |-- detecta contenido elegible
        |-- sustituye bloques ruidosos por representaciones más cortas
        |-- guarda originales exactos localmente
        |-- expone handles de recuperación
        v
proveedor del modelo elegido por el agente
```

El proxy sigue enviando la inferencia al proveedor que ya usaba el agente. Ejecutar Caveman en local **no convierte Claude, GPT u otro modelo alojado en un modelo local**. Lo que controlas es la capa de transformación y recovery. Si el modelo upstream sigue siendo una API cloud, ese proveedor continúa recibiendo la petición resultante. La documentación de seguridad de Caveman separa explícitamente estos flujos. [modelo de seguridad y privacidad](https://github.com/JuliusBrussee/caveman/blob/v3.0.0/SECURITY.md)

Para agentes propios, middleware 1.0 aplica la misma lógica sin reemplazar el framework. El adaptador copia la petición saliente, comprime texto elegible de resultados de herramientas en esa copia y mantiene intacto el historial original de la aplicación. La compresión solo se activa en rutas capaces de registrar una herramienta real de recuperación. Si no puede vincular recovery, el comportamiento documentado es dejar pasar el contenido original en lugar de degradarlo silenciosamente. [middleware TypeScript 1.0](https://github.com/JuliusBrussee/caveman/blob/v3.0.0/packages/middleware/typescript/README.md) [middleware Python 1.0](https://github.com/JuliusBrussee/caveman/blob/v3.0.0/packages/middleware/python/README.md)

## Qué demuestra realmente el benchmark de 33,2% con Claude Code

La mejor evidencia pública del repositorio no es un claim de que cualquier bloque se reduzca un 98 o 99%. Es un benchmark emparejado a nivel de agente que mide tokens de entrada reportados por el proveedor después de que se ejecuta el comportamiento completo de la sesión. [CaveBench wrap benchmark](https://github.com/JuliusBrussee/caveman/blob/v3.0.0/docs/WRAP-BENCHMARK.md)

| Carga | Input directo | Input Caveman | Cambio reportado | Checks |
| --- | --- | --- | --- | --- |
| Log needle | 148.807 | 74.068 | -50,2% | 3/3 |
| Deployment JSON | 147.975 | 108.939 | -26,4% | 3/3 |
| Fraud CSV | 165.823 | 74.484 | -55,1% | 3/3 |
| Test output | 150.377 | 108.514 | -27,8% | 3/3 |
| Configuration YAML | 132.124 | 71.027 | -46,2% | 3/3 |
| Dashboard HTML | 140.687 | 154.641 | **+9,9%** | 3/3 |

En los 18 pares directos versus Caveman, el informe suma **885.793 tokens de entrada directos frente a 591.673 con Caveman**, una reducción del 33,2%. Las 18 comprobaciones exactas de respuesta pasaron. El intervalo del 95% clusterizado por caso reportado es de 14,6 a 48,5%. El caso HTML negativo se mantiene dentro del total porque no se aplicó una transformación útil, pero el overhead de Caveman siguió existiendo. [Método y resultados](#source-benchmark).

Esa fila negativa importa: una gran ratio de compresión de un payload no equivale automáticamente a ahorro de sesión. Si el contenido ya está compacto, no es compatible o el resto del contexto domina, una capa adicional puede consumir más tokens.

**También hay un límite de evidencia.** El repositorio publica la tabla, el método y hashes de procedencia, pero indica que no incluye el harness bruto ni los artefactos de ejecución. Debe tratarse como un informe fijado del proyecto, no como un benchmark completamente reproducible desde el checkout público. [Disponibilidad de reproducción](#source-benchmark).

El material de lanzamiento contiene ejemplos de compresión individual todavía más extremos para logs, CSV, YAML y tests. Son útiles como smoke tests, pero no deberían convertirse directamente en una previsión de gasto. Para planificación, el benchmark a nivel de agente es la evidencia más sólida publicada.

## Por qué 98% menos tool output no significa 98% menos coste

Un resultado de herramienta es solo una parte de la petición. Siguen existiendo system prompt, instrucciones del repositorio, historial, otros tool results y comportamiento de caché. Además, el agente puede pedir el original si la versión comprimida no basta. Por eso un piloto debe medir por separado:

- tokens de entrada reportados por el proveedor por tarea completa,
- cache reads y cache writes,
- tokens de salida,
- llamadas de recovery y bytes recuperados,
- reintentos y llamadas LLM adicionales,
- calidad de tareas aceptadas.

El objetivo correcto no es la cifra de compresión más espectacular, sino **un coste menor por tarea aceptada**.

## `caveman learn`: medir primero dónde se van los tokens

`caveman learn` analiza historial y archivos de configuración locales para localizar fuentes recurrentes de tokens. La documentación incluye instrucciones siempre cargadas, skills sin usar, texto repetido, profundidad de contexto y problemas de memory. El análisis es local y los números se etiquetan como `inferred`, no como gasto verificado. [documentación de caveman learn](https://github.com/JuliusBrussee/caveman/blob/v3.0.0/docs/technical/learn.md)

Esto importa porque el contexto más barato es el que nunca necesitabas cargar. Un `CLAUDE.md` de cientos de líneas, descripciones de skills no utilizadas o el mismo procedimiento pegado en cada sesión pueden ser problemas más estructurales que un único test ruidoso.

```
caveman learn --plain --since 7d --sources claude,codex
caveman learn --all
caveman learn implement
```

La versión 3.0 también añade autopilot para volver a analizar en segundo plano después de sesiones, como máximo cada seis horas. Las notas de versión indican que los cambios siguen requiriendo consentimiento, se vuelven a medir y se revierten si no reducen cada mensaje. Se desactiva con `caveman learn autopilot off`. [Notas de 3.0](#source-release).

## Local no significa que desaparezca el trabajo de privacidad

### 1. El proveedor del modelo sigue recibiendo la petición

Si Claude Code sigue conectado a Anthropic, la petición comprimida va a Anthropic. Si tu aplicación usa OpenAI, sigue yendo a OpenAI. Para inferencia completamente local necesitas también un endpoint de modelo local o autoalojado.

### 2. Los originales de recovery son datos locales sensibles

El runtime guarda resultados originales exactos para que el agente pueda recuperarlos. Desde `bin-v2.0.0`, los originales del middleware pertenecen al scope, la retención puede cubrirlos y borrar una sesión puede borrar sus originales. Hay cifrado at rest cuando se configura una clave; sin ella, la protección depende del sistema de archivos. La documentación también advierte que el ciclo de vida anterior a `bin-v2.0.0` era más débil. [ciclo de vida del almacenamiento](#source-security).

### 3. La telemetría del CLI está activada por defecto

El skill por sí solo no envía nada. El CLI y los hooks de 3.0 usan telemetría opt-out. Según release y SECURITY.md incluye un identificador aleatorio de instalación, agregados de tokens y la IP del remitente, pero no prompts, código, rutas, argumentos o resultados de herramientas. El propio proyecto la describe como pseudónima, no anónima. CI no envía por defecto. [detalles de telemetría](#source-security).

```
caveman telemetry status
caveman telemetry off
# o
export DO_NOT_TRACK=1
```

## Un piloto práctico de Caveman 3.0 con Claude Code

### Paso 1. Fija versiones y revisa qué vas a ejecutar

```
npm install -g @caveman-ai/cli@2.0.0
caveman setup
caveman telemetry off   # si coincide con tu política
```

El release 3.0 vincula CLI 2.0.0 con runtime `bin-v2.0.0`. Fijar versiones importa porque pueden cambiar retención, contratos y adaptadores. [Matriz de versiones](#source-release).

### Paso 2. Mide primero tus fuentes de tokens

```
caveman learn --plain --since 7d
```

Si el mayor desperdicio viene de instrucciones siempre cargadas, corrígelo antes de interpretar la compresión del proxy como solución universal.

### Paso 3. Escoge tareas con criterios exactos

Busca una línea fatal en un log grande, detecta un drift concreto en JSON, identifica el test que falla o extrae un outlier de CSV. Cada tarea debería tener un oracle verificable por script.

### Paso 4. Ejecuta brazo directo y brazo comprimido

Mantén fijo modelo, versión del agente, fixtures, permisos y estado inicial del repositorio. Registra input del proveedor, cache reads/writes, output, latencia, reintentos y recovery. Alterna el orden de ejecuciones para reducir sesgos de caché.

### Paso 5. Gatea el rollout por economía de tarea aceptada

| Métrica | Qué exigir |
| --- | --- |
| Corrección | Sin caída operacionalmente relevante en tareas holdout. |
| Input del proveedor | Menor mediana y total en workloads comprimibles. |
| Casos negativos | Payloads pequeños o no compatibles siguen visibles en el informe. |
| Recovery | El original exacto se puede recuperar cuando la versión corta no basta. |
| Reintentos | No aumentan hasta borrar el ahorro o el tiempo humano. |
| Storage | Retención, borrado, cifrado y telemetría cumplen la clasificación de datos. |

## Usar Caveman Middleware 1.0 en tu propio agente

La decisión clave es si la integración puede registrar recovery. TypeScript documenta rutas certificadas para Vercel AI SDK, OpenAI, Anthropic y LangChain; otros adaptadores son experimentales. Python documenta rutas certificadas para LangChain, OpenAI, Anthropic y LiteLLM. Versiones no soportadas y fallos del runtime suelen ser fail-open: la petición original sigue y se registra el motivo. [contrato TypeScript](#source-ts) [contrato Python](#source-py).

Un rollout sano usa tres modos:

- `record` para validar integración sin cambiar el input.
- `compress` para el brazo de tratamiento.
- `off` como rollback explícito.

Los quickstarts oficiales permiten probar runtime, compresión y recuperación paginada exacta sin hacer una llamada al proveedor por defecto. Es una buena secuencia para un piloto de infraestructura.

## ¿Apache-2.0 significa que ahora “posees tu IA”?

Da mucho más control sobre esta capa. Se puede inspeccionar, modificar, bifurcar e integrar el runtime público sin la restricción BSL anterior. Eso importa para plataformas internas que no quieren un optimizador propietario en cada petición. [alcance de licencia](#source-license).

Pero ownership tiene capas. Puedes poseer el proxy y seguir alquilando el modelo. Puedes autoalojar el modelo y depender de herramientas propietarias. La pregunta útil es **qué partes de inferencia, contexto, memory, tooling y observabilidad puedes inspeccionar, reemplazar y operar tú mismo**.

## Cuándo merece la pena probar Caveman

| Prueba Caveman cuando... | Empieza por otra cosa cuando... |
| --- | --- |
| Las sesiones ingieren repetidamente logs, tests, JSON o YAML grandes. | Las peticiones ya son cortas. |
| Puedes definir resultados exactos o verificables. | No puedes detectar una regresión de calidad. |
| Necesitas recuperación local exacta, no truncado irreversible. | Tu política no permite retener originales localmente. |
| Quieres una capa Apache-2.0 que puedas bifurcar e integrar. | El problema real es routing, caché o demasiadas llamadas. |
| Usas una ruta de middleware soportada. | Tu framework está fuera del rango probado y no puedes validarlo. |

Para el panorama general, nuestra [guía de uso de tokens](/es/blog/smarter-token-usage-with-your-ai-coding-agent/) empieza por cacheability y routing. Para comparar la categoría usa [la guía de compresión de tool output](/es/blog/codag-cost-control/). Para contexto gestionado por el propio modelo, consulta [Context Language Models vs Compaction](/es/blog/context-language-models-vs-compaction/).

## Preguntas frecuentes

### ¿Caveman 3.0 es completamente open source?

El repositorio público desde 3.0.0 está bajo Apache-2.0, incluidos engine, proxy, CLI, SDKs y middleware. Releases anteriores conservan sus licencias. Caveman Cloud es software comercial separado. [Detalles](#source-license).

### ¿Reduce los tokens de entrada de Claude Code?

En el benchmark publicado de seis workloads, Caveman usó 33,2% menos input reportado por el proveedor y pasó 18/18 checks exactos. Es evidencia específica de ese benchmark, no una promesa universal, y los artefactos brutos no están publicados. [Benchmark](#source-benchmark).

### ¿Caveman envía mi código a servidores de Caveman?

El proxy local y el middleware no necesitan cuenta y no envían prompts o tool results a Caveman. El proveedor de modelo sí recibe la inferencia. El CLI tiene telemetría opt-out separada con metadatos de uso e IP, sin prompts o rutas según la documentación. [Security](#source-security).

### ¿Puede recuperar el agente contenido comprimido?

Sí. Las rutas compatibles conservan originales exactos y registran recovery. Si recovery no se puede vincular, el contenido debe pasar sin compresión. [Recovery contract](#source-ts).

### ¿`caveman learn` es local?

El análisis lee historial y archivos locales y documenta que no envía esos datos. Es independiente de la telemetría del CLI, que se puede desactivar. [Learn](#source-learn) [Telemetría](#source-security).

### ¿Es lo mismo que prompt caching?

No. Prompt caching reutiliza cómputo del proveedor en prefijos repetidos; Caveman transforma contexto antes de enviarlo. Pueden complementarse y por eso conviene medir ambos.

### ¿Soporta LiteLLM?

La documentación Python 1.0 enumera LiteLLM como familia certificada en rutas async y proxy compatibles, con requisitos explícitos de recovery. [Matriz Python](#source-py).

## Fuentes y notas de verificación

- [Caveman 3.0.0 release](https://github.com/JuliusBrussee/caveman/releases/tag/v3.0.0), versiones, Apache-2.0, Learn y middleware.
- [LICENSING.md](https://github.com/JuliusBrussee/caveman/blob/v3.0.0/LICENSING.md), límites entre repositorio y Cloud.
- [CaveBench benchmark](https://github.com/JuliusBrussee/caveman/blob/v3.0.0/docs/WRAP-BENCHMARK.md), tokens, checks, intervalo, caso HTML y límites de reproducción.
- [SECURITY.md](https://github.com/JuliusBrussee/caveman/blob/v3.0.0/SECURITY.md), flujos, recovery local y telemetría.
- [documentación de caveman learn](https://github.com/JuliusBrussee/caveman/blob/v3.0.0/docs/technical/learn.md).
- [TypeScript middleware 1.0](https://github.com/JuliusBrussee/caveman/blob/v3.0.0/packages/middleware/typescript/README.md).
- [Python middleware 1.0](https://github.com/JuliusBrussee/caveman/blob/v3.0.0/packages/middleware/python/README.md).
- [README Caveman 3.0](https://github.com/JuliusBrussee/caveman/blob/v3.0.0/README.md).

## Reflexiones finales

Caveman 3.0 convierte una broma sobre respuestas cortas en una capa de eficiencia de contexto mucho más seria. La relicencia Apache-2.0, la compresión local recuperable y el middleware estable merecen una prueba cuando los coding agents vuelven a ingerir grandes outputs. El rollout correcto no confía en una captura con 98% de compresión: ejecuta tareas emparejadas, mide uso del proveedor, conserva casos negativos, verifica recovery exacto y rechaza cualquier ahorro que reduzca la calidad aceptada.

## También te puede gustar..

[**Smarter Token Usage with Your AI Coding Agent** La guía general de control de costes con caché, routing y reducción de contexto.](/es/blog/smarter-token-usage-with-your-ai-coding-agent/) [**Context Language Models vs Compaction** Un enfoque distinto donde el modelo edita su contexto en lugar de usar un proxy compresor.](/es/blog/context-language-models-vs-compaction/)

Modelos e infraestructura

## Continúa por este clúster

Selección de modelos, economía de inferencia, despliegue local, compresión y serving.

[Empieza por el artículo fundamental**Alojar LLMs en la UE: Cuándo Salen a Cuenta los Open Weights**](/es/blog/self-hosting-llms-eu-cost/)

- [Cloudflare Clef vs. Jev: precios, pruebas y migración](/es/blog/cloudflare-clef-vs-jev/)
- [Context Language Models frente a compactación: qué probar](/es/blog/context-language-models-vs-compaction/)
- [LiteLLM Lens: analizar trazas de agentes con SQL y APIs](/es/blog/litellm-lens-agent-trace-analysis/)
- [SmythOS Studio en tu servidor: Docker, costes y límites](/es/blog/smythos-studio-self-hosting/)
- [DeerFlow 2.0: Docker, sandboxes y memoria](/es/blog/deerflow-2-docker-setup-sandbox-memory/)

[**Volver**](/es/blog/overview/)

[![Kevin Riedl](/img/team/kevin.webp)](/es/team/kevin-riedl/)

[Kevin Riedl](/es/team/kevin-riedl/) https://linkedin.com/in/wsdt

16 min de lectura · 2 oct 2026 Última revisión 2 de octubre de 2026

[**Siguiente**](/es/blog/context-language-models-vs-compaction/)

## Structured Data

```json
{
  "@context": "https://schema.org",
  "@graph": [
    {
      "@id": "https://wavect.io/#organization",
      "@type": [
        "Organization",
        "ProfessionalService",
        "LocalBusiness"
      ],
      "employee": [
        {
          "@id": "https://wavect.io/team/kevin-riedl/#person",
          "@type": "Person",
          "jobTitle": "Managing Director",
          "name": "Kevin Riedl",
          "url": "https://wavect.io/team/kevin-riedl/",
          "worksFor": {
            "@id": "https://wavect.io/#organization",
            "@type": [
              "Organization",
              "ProfessionalService",
              "LocalBusiness"
            ]
          }
        },
        {
          "@id": "https://wavect.io/team/christof-jori/#person",
          "@type": "Person",
          "jobTitle": "Managing Director",
          "name": "Christof Jori",
          "url": "https://wavect.io/team/christof-jori/",
          "worksFor": {
            "@id": "https://wavect.io/#organization",
            "@type": [
              "Organization",
              "ProfessionalService",
              "LocalBusiness"
            ]
          }
        }
      ],
      "founder": [
        {
          "@id": "https://wavect.io/team/kevin-riedl/#person",
          "@type": "Person",
          "jobTitle": "Managing Director",
          "name": "Kevin Riedl",
          "url": "https://wavect.io/team/kevin-riedl/",
          "worksFor": {
            "@id": "https://wavect.io/#organization",
            "@type": [
              "Organization",
              "ProfessionalService",
              "LocalBusiness"
            ]
          }
        },
        {
          "@id": "https://wavect.io/team/christof-jori/#person",
          "@type": "Person",
          "jobTitle": "Managing Director",
          "name": "Christof Jori",
          "url": "https://wavect.io/team/christof-jori/",
          "worksFor": {
            "@id": "https://wavect.io/#organization",
            "@type": [
              "Organization",
              "ProfessionalService",
              "LocalBusiness"
            ]
          }
        }
      ],
      "legalRepresentative": [
        {
          "@id": "https://wavect.io/team/kevin-riedl/#person",
          "@type": "Person",
          "jobTitle": "Managing Director",
          "name": "Kevin Riedl",
          "url": "https://wavect.io/team/kevin-riedl/",
          "worksFor": {
            "@id": "https://wavect.io/#organization",
            "@type": [
              "Organization",
              "ProfessionalService",
              "LocalBusiness"
            ]
          }
        },
        {
          "@id": "https://wavect.io/team/christof-jori/#person",
          "@type": "Person",
          "jobTitle": "Managing Director",
          "name": "Christof Jori",
          "url": "https://wavect.io/team/christof-jori/",
          "worksFor": {
            "@id": "https://wavect.io/#organization",
            "@type": [
              "Organization",
              "ProfessionalService",
              "LocalBusiness"
            ]
          }
        }
      ],
      "name": "Wavect GmbH",
      "subjectOf": {
        "@id": "https://wavect.io/verified-claims.json#dataset",
        "@type": "Dataset",
        "creator": {
          "@id": "https://wavect.io/#organization",
          "@type": [
            "Organization",
            "ProfessionalService",
            "LocalBusiness"
          ]
        },
        "description": "A machine-readable registry of quantitative and qualitative claims published by Wavect, with review dates, localized page appearances and public third-party citations where available.",
        "inLanguage": "en",
        "isAccessibleForFree": true,
        "license": "https://creativecommons.org/licenses/by/4.0/",
        "name": "Wavect verified publication claims",
        "url": "https://wavect.io/verified-claims.json"
      },
      "url": "https://wavect.io/"
    },
    {
      "@id": "https://wavect.io/team/kevin-riedl/#person",
      "@type": "Person",
      "jobTitle": "Managing Director",
      "name": "Kevin Riedl",
      "sameAs": [
        "https://www.wikidata.org/wiki/Q139796365",
        "https://www.linkedin.com/in/wsdt",
        "https://github.com/wsdt"
      ],
      "url": "https://wavect.io/team/kevin-riedl/",
      "worksFor": {
        "@id": "https://wavect.io/#organization",
        "@type": [
          "Organization",
          "ProfessionalService",
          "LocalBusiness"
        ]
      }
    },
    {
      "@id": "https://wavect.io/team/christof-jori/#person",
      "@type": "Person",
      "jobTitle": "Managing Director",
      "name": "Christof Jori",
      "sameAs": [
        "https://www.wikidata.org/wiki/Q139796367",
        "https://www.linkedin.com/in/jocr77/",
        "https://github.com/jo-chris"
      ],
      "url": "https://wavect.io/team/christof-jori/",
      "worksFor": {
        "@id": "https://wavect.io/#organization",
        "@type": [
          "Organization",
          "ProfessionalService",
          "LocalBusiness"
        ]
      }
    },
    {
      "@id": "https://wavect.io/#website",
      "@type": "WebSite",
      "inLanguage": [
        "en",
        "de",
        "es",
        "zh"
      ],
      "name": "Wavect",
      "potentialAction": {
        "@type": "SearchAction",
        "query-input": "required name=search_term_string",
        "target": {
          "@type": "EntryPoint",
          "urlTemplate": "https://wavect.io/search/?q={search_term_string}"
        }
      },
      "publisher": {
        "@id": "https://wavect.io/#organization",
        "@type": [
          "Organization",
          "ProfessionalService",
          "LocalBusiness"
        ]
      },
      "url": "https://wavect.io/"
    },
    {
      "@id": "https://wavect.io/es/blog/caveman-3-claude-code-input-compression/#webpage",
      "@type": "WebPage",
      "dateModified": "2026-10-04",
      "inLanguage": "es",
      "isPartOf": {
        "@id": "https://wavect.io/#website",
        "@type": "WebSite"
      },
      "lastReviewed": "2026-10-04",
      "url": "https://wavect.io/es/blog/caveman-3-claude-code-input-compression/"
    }
  ]
}
```

```json
{
  "@context": "https://schema.org",
  "@type": "BlogPosting",
  "abstract": "Caveman 3.0 ya no es solo una regla para que el agente responda con menos palabras. Su proxy local puede comprimir logs, JSON, YAML, resultados de tests y otros resultados de herramientas antes de enviarlos al modelo, conservando los originales exactos para recuperarlos cuando hagan falta. El benchmark publicado con Claude Code informa un 33,2% menos de tokens de entrada medidos por el proveedor en 18 ejecuciones emparejadas, con 18/18 comprobaciones de respuesta correctas. Sin embargo, un caso HTML usó un 9,9% más de entrada y los artefactos brutos del benchmark no están publicados. La versión 3.0 también cambia todo el repositorio público a Apache-2.0 y estabiliza el middleware TypeScript y Python en 1.0.0. Esta guía explica qué probar y qué límites de privacidad y retención siguen siendo relevantes.",
  "articleBody": " Resumen del blog/IA y agentes/Modelos e infraestructura Caveman 3.0 para Claude Code: compresión local, recuperación y benchmarks Resumen Caveman 3.0 ya no es solo una regla para que el agente responda con menos palabras. Su proxy local puede comprimir logs, JSON, YAML, resultados de tests y otros resultados de herramientas antes de enviarlos al modelo, conservando los originales exactos para recuperarlos cuando hagan falta. El benchmark publicado con Claude Code informa un 33,2% menos de tokens de entrada medidos por el proveedor en 18 ejecuciones emparejadas, con 18/18 comprobaciones de respuesta correctas. Sin embargo, un caso HTML usó un 9,9% más de entrada y los artefactos brutos del benchmark no están publicados. La versión 3.0 también cambia todo el repositorio público a Apache-2.0 y estabiliza el middleware TypeScript y Python en 1.0.0. Esta guía explica qué probar y qué límites de privacidad y retención siguen siendo relevantes. Revisado el 2 de octubre de 2026. Baseline de producto: Caveman 3.0.0, runtime bin-v2.0.0, SDK 1.2.0 y middleware 1.0.0. Esta es una revisión de fuentes y metodología de benchmark, no un benchmark de producción de Wavect. release Caveman 3.0.0 Caveman 3.0 es interesante por una razón distinta al meme que lo hizo conocido. La idea original era sencilla: hacer que un agente de programación respondiera con menos palabras. La arquitectura nueva ataca el lado que puede pesar más en sesiones largas, lo que el modelo vuelve a leer. Un proxy local puede comprimir resultados grandes de herramientas antes de la siguiente petición al modelo y conservar los bytes originales para recuperarlos después. README de Caveman 3.0 La intención de búsqueda es más estrecha que nuestra guía general para optimizar tokens en coding agents, que cubre caché, routing y reducción de contexto como un sistema completo. También es más específica que nuestra guía de compresión de tool output. Aquí analizamos específicamente Caveman 3.0, compresión de entrada en Claude Code, recuperación exacta, ejecución local y la evidencia que sostiene sus claims. ¿Qué cambió en Caveman 3.0? Caveman 3.0.0 se publicó el 30 de septiembre de 2026. La versión reúne varias decisiones que antes estaban separadas y crea una historia de despliegue más clara. Notas de la versión. Cambios de Caveman 3.0 relevantes para equipos de ingeniería ÁreaCaveman 3.0Por qué importa LicenciaTodo el repositorio público pasa a Apache-2.0 desde 3.0.0.Engine, proxy, CLI, SDKs y middleware se pueden bifurcar, integrar y autoalojar bajo una licencia permisiva. MiddlewareLos paquetes TypeScript y Python llegan a 1.0.0 y requieren SDK 1.2.0.El mismo patrón de compresión se puede integrar dentro de agentes propios, no solo alrededor de un agente de terminal. caveman learnRefresh en segundo plano, memory checks, tendencias y cambios con consentimiento.Permite localizar contexto repetido antes de decidir qué comprimir. Runtimebin-v2.0.0 mejora ciclo de vida, retención y primitivas de despliegue.Los originales para recovery se pueden asociar a un scope y borrar con la sesión. El cambio de licencia requiere precisión. Antes de 3.0.0, parte del repositorio era MIT y el runtime ligado al engine usaba BSL-1.1. Desde 3.0.0 el repositorio es Apache-2.0, sin restricción de hosted service ni Change Date para ese código. Las versiones anteriores mantienen la licencia con la que se publicaron. Caveman Cloud es un producto alojado separado y no está cubierto por la licencia del repositorio. notas de licencia de Caveman En una sesión de agente, releer puede costar más que la respuesta final Un coding agent no paga solo por la explicación que escribe al final. Las sesiones largas arrastran instrucciones, mensajes anteriores y resultados de herramientas a peticiones posteriores. Un test que produce 80 KB una vez puede seguir inflando varias llamadas si el framework mantiene ese output en el historial. Lo mismo ocurre con JSON, YAML, diffs y resultados de búsqueda. Caveman separa dos mecanismos: El skill de respuesta hace que el agente escriba de forma más compacta y reduce output. El proxy y el middleware transforman contexto elegible antes de la inferencia y reducen input. El segundo es el cambio más interesante. El modelo no necesita cada línea INFO de un log para diagnosticar una excepción, pero truncar sin criterio es peligroso porque la línea eliminada podría ser la que resuelve la tarea. Por eso la idea es comprimir y recuperar, no simplemente descartar. Arquitectura del proyecto. Cómo funciona el proxy local Claude Code / Codex / otro agente | | petición + resultados de herramientas v proxy local de Caveman |-- detecta contenido elegible |-- sustituye bloques ruidosos por representaciones más cortas |-- guarda originales exactos localmente |-- expone handles de recuperación v proveedor del modelo elegido por el agente El proxy sigue enviando la inferencia al proveedor que ya usaba el agente. Ejecutar Caveman en local no convierte Claude, GPT u otro modelo",
  "articleSection": "AI Agents",
  "author": {
    "@id": "https://wavect.io/team/kevin-riedl/#person",
    "@type": "Person",
    "name": "Kevin Riedl",
    "sameAs": [
      "https://www.wikidata.org/wiki/Q139796365",
      "https://www.linkedin.com/in/wsdt",
      "https://github.com/wsdt"
    ],
    "url": "https://wavect.io/team/kevin-riedl/"
  },
  "citation": [
    {
      "@type": "WebPage",
      "name": "release Caveman 3.0.0",
      "url": "https://github.com/JuliusBrussee/caveman/releases/tag/v3.0.0"
    },
    {
      "@type": "WebPage",
      "name": "README de Caveman 3.0",
      "url": "https://github.com/JuliusBrussee/caveman/blob/v3.0.0/README.md"
    },
    {
      "@type": "WebPage",
      "name": "notas de licencia de Caveman",
      "url": "https://github.com/JuliusBrussee/caveman/blob/v3.0.0/LICENSING.md"
    },
    {
      "@type": "WebPage",
      "name": "modelo de seguridad y privacidad",
      "url": "https://github.com/JuliusBrussee/caveman/blob/v3.0.0/SECURITY.md"
    },
    {
      "@type": "WebPage",
      "name": "middleware TypeScript 1.0",
      "url": "https://github.com/JuliusBrussee/caveman/blob/v3.0.0/packages/middleware/typescript/README.md"
    },
    {
      "@type": "WebPage",
      "name": "middleware Python 1.0",
      "url": "https://github.com/JuliusBrussee/caveman/blob/v3.0.0/packages/middleware/python/README.md"
    },
    {
      "@type": "WebPage",
      "name": "CaveBench wrap benchmark",
      "url": "https://github.com/JuliusBrussee/caveman/blob/v3.0.0/docs/WRAP-BENCHMARK.md"
    },
    {
      "@type": "WebPage",
      "name": "documentación de caveman learn",
      "url": "https://github.com/JuliusBrussee/caveman/blob/v3.0.0/docs/technical/learn.md"
    }
  ],
  "dateModified": "2026-10-02",
  "datePublished": "2026-10-02",
  "description": "Caveman 3.0 ya no es solo una regla para que el agente responda con menos palabras. Su proxy local puede comprimir logs, JSON, YAML, resultados de tests y otros resultados de herramientas antes de enviarlos al modelo, conservando los originales exactos para recuperarlos cuando hagan falta. El benchmark publicado con Claude Code informa un 33,2% menos de tokens de entrada medidos por el proveedor en 18 ejecuciones emparejadas, con 18/18 comprobaciones de respuesta correctas. Sin embargo, un caso HTML usó un 9,9% más de entrada y los artefactos brutos del benchmark no están publicados. La versión 3.0 también cambia todo el repositorio público a Apache-2.0 y estabiliza el middleware TypeScript y Python en 1.0.0. Esta guía explica qué probar y qué límites de privacidad y retención siguen siendo relevantes.",
  "headline": "Caveman 3.0 para Claude Code: compresión local, recuperación y benchmarks",
  "image": "https://wavect.io/img/blog/headers/header_caveman-3-claude-code-input-compression.svg",
  "inLanguage": "es",
  "keywords": "AI Coding Agents, Context Compression, Claude Code",
  "mainEntityOfPage": {
    "@id": "https://wavect.io/es/blog/caveman-3-claude-code-input-compression/",
    "@type": "WebPage"
  },
  "publisher": {
    "@id": "https://wavect.io/#organization",
    "@type": [
      "Organization",
      "ProfessionalService",
      "LocalBusiness"
    ]
  },
  "url": "https://wavect.io/es/blog/caveman-3-claude-code-input-compression/",
  "wordCount": 2957
}
```

```json
{
  "@context": "https://schema.org",
  "@type": "BreadcrumbList",
  "itemListElement": [
    {
      "@type": "ListItem",
      "item": "https://wavect.io/es/",
      "name": "Inicio",
      "position": 1
    },
    {
      "@type": "ListItem",
      "item": "https://wavect.io/es/blog/overview/",
      "name": "Resumen del blog",
      "position": 2
    },
    {
      "@type": "ListItem",
      "item": "https://wavect.io/es/blog/topics/ai-agents/",
      "name": "IA y agentes",
      "position": 3
    },
    {
      "@type": "ListItem",
      "item": "https://wavect.io/es/blog/clusters/models-infrastructure/",
      "name": "Modelos e infraestructura",
      "position": 4
    },
    {
      "@type": "ListItem",
      "item": "https://wavect.io/es/blog/caveman-3-claude-code-input-compression/",
      "name": "Caveman 3.0 para Claude Code: compresión de entrada",
      "position": 5
    }
  ]
}
```
