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.

Separar “developer runtime” de “cognitive runtime”. OpenCode no debe sentirse como “estoy hablando con el runtime” sino como “tengo un coding assistant rapido”.

ArchivoCambio
OPENCODE.mdReescrito: sin Plan Mode, sin HARD_FACTS, developer-first
~/.config/opencode/opencode.jsoncProvider lm eliminado. Single ingress = AI-LAB Router
opencode.ialab.memory.jsonProvider lmstudio disabled. Solo ailab-router
runtime/prompts/opencode_prompt.mdNuevo: prompt limpio para desarrollo

Ejecutado ANTES del clasificador general:

  1. Strip question tool — siempre, no configurable
  2. No tool_use sin tools explicitas — si no hay tools en el payload, se eliminan tool_choice y tools
  3. Suppress HARD_FACTS — solo si el usuario pide explicitamente: razonamiento, auditoria, arquitectura, debug profundo
  4. 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"
}
EscenarioResultado
”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 toolsminimal/observe
  • Router, gateway (solo se anadio guard, no se refactorizo)
  • Politicas de tools, politicas de memoria
  • manifest_memory.json, manifest_tools.json
  • profile_loader.py, model_router.py
Terminal window
cp /opt/ai-lab/snapshots/fase25-backup/* /opt/ai-lab/
sudo systemctl restart ailab-router ailab-gateway

FASE 26 — OpenWebUI Production Profile