Se completo el perfil de produccion para OpenCode. Ahora OpenCode usa el AI-LAB Router como unico entrypoint, con protecciones explicitas contra tool_use accidental, HARD_FACTS no solicitado y wrappers internos.
Principio
Section titled “Principio”Separar “developer runtime” de “cognitive runtime”. OpenCode no debe sentirse como “estoy hablando con el runtime” sino como “tengo un coding assistant rapido”.
Cambios
Section titled “Cambios”Config files limpiados
Section titled “Config files limpiados”| Archivo | Cambio |
|---|---|
OPENCODE.md | Reescrito: sin Plan Mode, sin HARD_FACTS, developer-first |
~/.config/opencode/opencode.jsonc | Provider lm eliminado. Single ingress = AI-LAB Router |
opencode.ialab.memory.json | Provider lmstudio disabled. Solo ailab-router |
runtime/prompts/opencode_prompt.md | Nuevo: prompt limpio para desarrollo |
Guard duro (router + gateway)
Section titled “Guard duro (router + gateway)”Ejecutado ANTES del clasificador general:
- Strip question tool — siempre, no configurable
- No tool_use sin tools explicitas — si no hay tools en el payload, se eliminan
tool_choiceytools - Suppress HARD_FACTS — solo si el usuario pide explicitamente: razonamiento, auditoria, arquitectura, debug profundo
- Metadatos de replay —
_client_profile: opencode,_wrapper_suppressed: true
Rutas explicitas en manifest_profiles.json
Section titled “Rutas explicitas en manifest_profiles.json”{ "opencode_minimal": "observe_profile.json", "opencode_chat": "chat_profile.json", "opencode_coding": "coding_profile.json", "opencode_reasoning": "analysis_profile.json"}Validacion
Section titled “Validacion”| Escenario | Resultado |
|---|---|
| ”hola” + tools (question, bash) | llama-3.1-8b, 64 tokens, tools eliminadas |
| ”escribe un script python” | coding, qwen2.5-14b, sin HARD_FACTS |
| ”analiza la arquitectura” | reasoning, con HARD_FACTS |
| ”hola” sin tools | minimal/observe |
Lo que NO se toco
Section titled “Lo que NO se toco”- Router, gateway (solo se anadio guard, no se refactorizo)
- Politicas de tools, politicas de memoria
manifest_memory.json,manifest_tools.jsonprofile_loader.py,model_router.py
Rollback
Section titled “Rollback”cp /opt/ai-lab/snapshots/fase25-backup/* /opt/ai-lab/sudo systemctl restart ailab-router ailab-gatewaySiguiente fase
Section titled “Siguiente fase”FASE 26 — OpenWebUI Production Profile