Se completo la limpieza defensiva de wrappers legacy en las rutas no cognitivas del AI-LAB Router y Gateway. Las rutas fast, general y coding ahora responden con texto natural, sin HARD_FACTS forzado, sin Plan Mode, sin reasoning wrappers y sin tool forcing.

CambioEfecto
build_system_context() solo se usa en reasoningfast/general/coding usan prompt ligero
final_instruction simplificado para fast/generalSin formato obligatorio de secciones
Inyeccion de reasoning={"effort":"none"} solo para reasoningfast/general/coding no reciben wrapper
Proteccion qwen2.5-14b: pop de reasoning/tools/tool_choiceMantenida de FASE 20A

Gateway (runtime/gateway/openai_gateway.py)

Section titled “Gateway (runtime/gateway/openai_gateway.py)”
CambioEfecto
max_tokens no machaca rutas minimal/observeLas rutas ligeras respetan su max_tokens original
Prioridad route_family sobre task_type en modelominimal/observe gana a fast/general
task_type fast/general/coding fuerza qwen2.5-14bCoherente con FASE 20A
RutaModeloHARD_FACTSWrappers
minimal/casualllama-3.1-8bNONO
minimal/greetingllama-3.1-8bNONO
minimal/reportllama-3.1-8bNONO
observellama-3.1-8bNONO
fastqwen2.5-14bNONO
generalqwen2.5-14bNONO
codingqwen2.5-14bNONO
reasoningqwen2.5-32bSISI (controlado)
tool_useqwen3.6-27bSISI (controlado)
  • Routing de modelos (FASE 20A)
  • Seleccion de agentes
  • Memoria semantica
  • Perfiles CHAT/AGENT (FASE 21)
  • Workflows
  • Observabilidad
PruebaModeloResultado
casual “que puedes hacer” con toolsllama-3.1-8btexto natural, sin tools
general “que es docker”qwen2.5-14bcontenido real, sin wrappers
minimal “hola”llama-3.1-8brespuesta breve
Terminal window
cp /opt/ai-lab/snapshots/fase20b-backup/* /opt/ai-lab/runtime/llm/
cp /opt/ai-lab/snapshots/fase20b-backup/openai_gateway.py /opt/ai-lab/runtime/gateway/
sudo systemctl restart ailab-router ailab-gateway

FASE 21 — Perfiles CHAT/AGENT/ANALYSIS/CODING con payload builders aislados.