Se completo la normalizacion de prompts del runtime AI-LAB. Todos los prompts de sistema estan ahora en archivos .md versionados bajo runtime/prompts/, cargados por un loader centralizado con validacion de wrappers prohibidos.

runtime/prompts/
├── manifest.json # Mapeo route_family → prompt file + marcadores prohibidos
├── prompt_loader.py # Loader unico con validacion
├── minimal_prompt.md # Para minimal/casual/greeting/report
├── chat_prompt.md # Para fast/general/chat
├── coding_prompt.md # Para coding
├── reasoning_prompt.md # Para reasoning
├── observe_prompt.md # Para observe
└── tool_use_prompt.md # Para tool_use/tool_fastpath
FuncionDescripcion
load_prompt(name)Carga un .md desde disco, cachea en memoria
get_prompt_name(route_family, capability)Resuelve que archivo usar segun ruta
get_prompt_for_route(route_family, capability)Carga + valida, devuelve (texto, warnings)
validate_prompt(text, route_key)Busca marcadores prohibidos definidos en manifest

El loader rechaza marcadores legacy en rutas no cognitivas:

RutaMarcadores bloqueados
minimalHARD_FACTS, follow_ups, Plan Mode, CRITICAL, STRICTLY FORBIDDEN, reasoning_content, tool_calls, FORMATO OBLIGATORIO
chatHARD_FACTS, follow_ups, Plan Mode, CRITICAL, STRICTLY FORBIDDEN, FORMATO OBLIGATORIO
codingHARD_FACTS, follow_ups, Plan Mode, CRITICAL, STRICTLY FORBIDDEN
observeHARD_FACTS, follow_ups, Plan Mode, CRITICAL, STRICTLY FORBIDDEN, reasoning_content, tool_calls, FORMATO OBLIGATORIO

El loader se usa en la rama else (cognitive) para fast/general. Si falla, usa el prompt legacy como fallback.

Gateway (runtime/gateway/openai_gateway.py)

Section titled “Gateway (runtime/gateway/openai_gateway.py)”

El loader se usa en inject_agent_context() para la rama else (cognitive/general). Si falla, usa load_agent_prompt() como fallback.

  • Prompts de minimal/casual/greeting/observe (ya estaban limpios)
  • Prompts de reasoning y tool_use (mantienen comportamiento)
  • build_system_context() (se usa como fallback para reasoning)
PruebaModeloPrompt tokensResultado
minimal “hola”llama-3.1-8b64texto natural
general “que es docker”qwen2.5-14b90contenido real, sin wrappers
casual “que puedes hacer”llama-3.1-8b69texto natural
observellama-3.1-8b150resumen correcto

La ruta general bajo de ~635 a ~90 prompt tokens al usar el prompt declarativo en vez de load_agent_prompt().

Terminal window
cp /opt/ai-lab/snapshots/fase20c-backup/router_api.py /opt/ai-lab/runtime/llm/
cp /opt/ai-lab/snapshots/fase20c-backup/openai_gateway.py /opt/ai-lab/runtime/gateway/
sudo systemctl restart ailab-router ailab-gateway

FASE 21 — Perfiles cognitivos: CHAT, CODING, AGENT, ANALYSIS, OBSERVE con prompts aislados.