PAMPAr-Coder — Roadmap
Plan de evolución. Última actualización: Mar 2026. Para la identidad del modelo ver
CONCIENCIA.md. Para el protocolo de despliegue verAGENTS.md.
1. Visión
PAMPAr es un físico con doctorado que puede especializarse en cualquier campo:
- El doctorado (razonamiento computacional) está en los pesos — 108M params.
- La especialización viene del entorno — se descubre al boot con el Scanner.
- El protocolo de 3 archivos (
CONCIENCIA.md+AGENTS.md+TOOLS.md) es la interfaz entre el modelo y su despliegue.
Las 3 fases del proyecto
| Fase | Qué | Estado |
|---|---|---|
| Fase 1 — SFT | Entrenar el doctorado: lógica Python, patrones, razonamiento | ✅ Completa (16/16 con reparadores, target superado) |
| Fase 2 — Runtime loop | El modelo usa herramientas, ejecuta, lee, aprende del loop | ✅ Completa (chat.py + ColaFinetune + mini-SFT wiring) |
| Fase 3 — Protocolo entrenado | El modelo genera su propio AGENTS.md al aterrizar en un sistema nuevo | Futuro |
2. Arquitectura actual — PamparV3
2.1 Grilla cortical 2D
Tokens (int)
│
▼
[Embeddings] 48K vocab, dim=640, weight-tied con lm_head
│
▼
┌─────────────────────────────┐
│ TalamoInicial │ routing: qué streams procesan cada token
│ 80% LLAVES (INT8 + reglas) │
│ 20% attn_proj (aprendido) │
│ + context_conv causal k=32 │
└────────────┬────────────────┘
│ [B, L, 4, dim] — 4 streams con pesos distintos
▼
┌──────────────────────────────────────────────┐
│ 5 × NivelProfundo │
│ TalamoNivel → 4× BloqueAttn GQA 4:1 │
│ → 4× StreamFFN SwiGLU → LateralGate │
│ → Early Exit (umbral 0.90) │
└──────────────────────────────────────────────┘
│
▼
RMSNorm + lm_head → logits [B, L, 48000]
2.2 Streams ↔ Capas lingüísticas
| Stream | Territorio | Zonas | Capa lingüística |
|---|---|---|---|
| 0 | SINTAXIS | B01-B15 | Sintaxis — estructura del código |
| 1 | SEMANTICA | B16-B30 | Semántica — significado |
| 2 | LOGICO | B31-B42 | Pragmática — intención, flujo |
| 3 | ESTRUCTURAL | B43-B52 | Discurso — organización, patrones |
Los 4 streams procesan en paralelo. Cada NivelProfundo tiene Lateral Gates (bottleneck=128) para comunicación entre streams — como las fibras blancas del cerebro.
2.3 Boot Protocol
1. CONCIENCIA.md → RAG L3 (identidad inmutable)
2. Scanner → workspace (ast), paquetes (importlib), servicios (socket), sistema (platform)
3. AGENTS.md contextual → RAG L2 (entorno mutable)
4. System prompt dinámico = identidad + contexto + acciones
Implementado en pampar.runtime.scanner + pampar.runtime.boot.
3. Estado de checkpoints
| Checkpoint | Datos | Eval open (temp=0.0) |
|---|---|---|
v3_sft.pt |
43K Magicoder (inglés) | 0/16 |
v3_sft_v5.pt |
SFT v5 (base post-catastrófico) | 6/16 |
v3_sft_v6.pt |
clean_sft.jsonl (555 ejemplos) | 10/16 |
v3_sft_v7.pt |
final_sft.jsonl (825 = clean + quirúrgico×3) | 15/16 |
v3_sft_v8.pt |
micro-SFT cuadrados (300 steps + reparadores) | 16/16 ✅ BEST |
Estado actual (v3_sft_v8.pt — 16/16 con reparadores)
| # | Función | Estado | Notas |
|---|---|---|---|
| 01 | contar_vocales | ✅ | — |
| 02 | suma_digitos | ✅ | — |
| 03 | es_palindromo | ✅ | — |
| 04 | maximo_lista | ✅ | — |
| 05 | fizzbuzz | ✅ | Corregido (dataset quirúrgico) |
| 06 | aplanar_lista | ✅ | — |
| 07 | frecuencia | ✅ | — |
| 08 | cuadrados_pares | ✅ | Genera x*i → reparador NameError word-boundary lo corrige |
| 09 | invertir_dict | ✅ | — |
| 10 | fibonacci | ✅ | — |
| 11 | busqueda_binaria | ✅ | — |
| 12 | merge_sort | ✅ | Corregido (self-contained) |
| 13 | Stack | ✅ | — |
| 14 | Punto | ✅ | Corregido (import math / **0.5) |
| 15 | memoize | ✅ | Corregido (usa fn, no func) |
| 16 | primos_hasta | ✅ | Reparador _reparar_bloques_huerfanos + stop endswith(\n\n) |
4. Plan de entrenamiento
Fase A — Entrenamiento curricular con MotorCuriosidad
Objetivo: reforzar las bases de lógica que el modelo falla.
python scripts/train_v3.py \
--checkpoint checkpoints/v3_sft_v4.pt \
--biblioteca data/biblioteca/ \
--lr 3e-5 --epochs 3
Temas prioritarios basados en fallos del eval:
bucles_for_while— fizzbuzz, cuadrados_paresdiccionarios— invertir_dictbusqueda_algoritmos— búsqueda binariarecursion— merge_sortclases_oop— Punto, memoizematematica_basica— primos, potencias
Fase B — SFT v5 (post-curricular)
- ~18K ejemplos curados (3K por topic × 6 topics)
- Formato Alpaca, filtrado con pytest
- Generados por el propio modelo + verificación automática
Fase C — Matriz lingüística como dato de entrenamiento
Incluir ejemplos que ejerciten explícitamente cada capa:
- Pragmática: "El usuario quiere X, yo debo hacer Y" (comprensión de intención)
- Semántica: Renombrar variables, inferir tipos, naming conventions
- Sintaxis: Indentación correcta, keywords, delimitadores, f-strings
- Discurso: Organización de código (imports → constantes → clases → funciones → main)
5. Roadmap de milestones
COMPLETADO ✅ COMPLETADO ✅ AHORA LARGO PLAZO
──────────── ──────────── ───────────── ────────────
15/16 eval → 16/16 eval → Mini-SFT auto → Protocolo
v3_sft_v7.pt v3_sft_v8.pt cuando cola≥50 entrenado
108M params + reparadores ColaFinetune Fase 3
SFT dataset chat.py Mini-SFT wiring El modelo
limpio+quirúrgico loop activo sft_v5.py genera su
Clean+surgical×3 gen→exec→retry auto-reload AGENTS.md
Milestone 1 — 16/16 eval ✅ COMPLETADO (target era ≥12/16)
- Dataset limpio (clean_sft.jsonl — 555 ejemplos sin contradicciones)
- Dataset quirúrgico (surgical_sft.jsonl — 90 ejemplos para 6 fallos)
- SFT v6 (10/16) desde clean data
- SFT v7 (15/16) desde clean + surgical×3
- Fix primos_hasta → reparador
_reparar_bloques_huerfanos+ stopendswith(\n\n) - Fix cuadrados_pares → reparador NameError word-boundary en verificador
- 16/16 confirmado con v3_sft_v8.pt + eval_v3.py cadena de reparadores
Milestone 2 — Runtime autónomo (EN PROGRESO)
- Scanner del sistema (
pampar.runtime.scanner) - Boot protocol (
pampar.runtime.boot) - CONCIENCIA.md como identidad invariante
- System prompt dinámico (identidad + contexto del scan)
- El agente ejecuta código que genera y observa output (
scripts/chat.py) - Si falla, agrega el par (prompt, error) a ColaFinetune
- Mini-SFT automático cuando la cola supera umbral (wiring con sft_v5.py + reload en proceso)
Milestone 3 — Protocolo entrenado ✅ Implementado (generador determinista)
-
pampar/runtime/generar_agents.py— genera AGENTS.md contextual desde el scan (determinista) -
BootProtocol._inyectar_contexto()actualizado: genera AGENTS.md → fragmenta por secciones → RAG L2 - 23 tests en
tests/test_generar_agents.py(132/132 en suite completa) - Quick Reference, Sistema detectado, Paquetes clave, Servicios, Boot protocol generados dinámicamente
- El modelo "sabe" escanear: genera
scan_sistema()como código (largo plazo — necesita mucho más SFT) - CONCIENCIA se refuerza con RLHF/DPO sobre interacciones reales (largo plazo)
- Nota: entrenar 108M params para generar markdown desde cero requiere 10K+ pasos — protocolo funcionando vía boot determinista es la aproximación correcta para este tamaño de modelo
Milestone 4 — VS Code extension
- Extension que carga PamparV3 localmente (CPU/GPU)
- Completado inline de código
- Panel de chat con el agente
- Memoria persistente entre sesiones (RAG en disco)
Milestone 5 — Voz (cuando el sistema la tiene)
- Detectar motores de voz al boot (espeak, SAPI, say) — ya implementado en Scanner
- TTS para respuestas cuando el usuario lo pide
- Zero-dependency: usa lo que el OS tiene instalado
6. Estructura de carpetas
PAMPAr-Coder/
├── CONCIENCIA.md # Identidad invariante del modelo
├── AGENTS.md # Protocolo de despliegue (mutable)
├── ROADMAP.md # Este archivo
├── pampar/
│ ├── coder/v3/ # Arquitectura activa (108M)
│ │ ├── modelo.py # PamparV3
│ │ ├── config.py # ConfigV3, presets
│ │ ├── talamo.py # TalamoInicial
│ │ ├── bloques.py # BloqueAttn, StreamFFN, LateralGate
│ │ ├── llaves.py # LlavesV2 — lookup INT8
│ │ └── zonas.py # 52 Zonas de Brodmann
│ ├── memoria/
│ │ ├── clasificador.py # ClasificadorPareto — L0 a L3
│ │ ├── rag.py # RAGResidual — vector store
│ │ └── cola_finetune.py # ColaFinetune — buffer SFT
│ ├── runtime/
│ │ ├── agente.py # Agente — orquestador principal
│ │ ├── scanner.py # Scanner — inspección del entorno
│ │ └── boot.py # BootProtocol — secuencia de arranque
│ └── training/
│ ├── curiosidad.py # MotorCuriosidad — ZPD
│ └── lector.py # LectorBiblioteca
├── checkpoints/
│ └── v3_sft_v4.pt # Mejor checkpoint (8/16)
└── tests/ # 109+ tests