Resumen
El modo IT Tutor es una nueva capacidad del Help Widget de CreaRack Pro que permite al usuario cambiar el comportamiento del asistente bib_ask de un modo help (asistente de la app, con grounding en la wiki) a un modo tutor (ingeniero IT senior & educador, sin grounding).
Activado mediante un toggle en el Help Widget del frontend, el modo Tutor responde preguntas sobre IT/Networking/Datacenter ops en general — Cisco, Juniper, Linux, IEEE/RFC, SNMP, hardware vendors — sin recuperar chunks de la wiki. El resultado es más rápido (zero embeddings) y con cobertura técnica más amplia que el modo help.
Comportamiento por modo
| Característica | Modo help (default) | Modo tutor |
|---|---|---|
| Grounding | Chunks recuperados de la wiki (vector search) | Ninguno — conocimiento general del modelo |
| Rol del modelo | Asistente in-app de CreaRack Pro | Senior IT engineer & educator |
| Dominio | CreaRack Pro features y operativa | Networking, Linux, Datacenter, IEEE/RFC |
| Archivado | Sí (utility hit registrado) | No (archive.attempted: false, reason: tutor-mode) |
sources[] | Chunks con relevance score | Siempre vacío ([]) |
| Velocidad | Embedding + vector search + síntesis | Solo síntesis (más rápido) |
| Longitud máx. | ~200 palabras | 250 palabras (más margen pedagógico) |
Arquitectura del cambio
archivo-core.ts — Refactor de prompts y firma de synthesizeAnswer
El commit extrae la lógica de construcción de prompts en dos funciones privadas, y extiende la firma pública:
// ANTES
export async function synthesizeAnswer(
apiKey: string,
question: string,
chunks: ChunkMatch[],
): Promise<AskResult>
// DESPUÉS
export async function synthesizeAnswer(
apiKey: string,
question: string,
chunks: ChunkMatch[],
mode: 'help' | 'tutor' = 'help', // nuevo parámetro, default retrocompatible
): Promise<AskResult>
buildHelpPrompts(question, chunks, lang) — modo por defecto. Usa los chunks recuperados como contexto de grounding. System prompt en inglés neutro + user prompt en el idioma detectado (patrón anti-sesgo ES documentado en s53).
buildTutorPrompts(question, lang) — modo tutor. Sin chunks. System prompt con rol de senior IT engineer, dominio explícito (Cisco/Juniper/Linux/RFC), instrucciones de redirect si el usuario pregunta sobre la app, y cap de 250 palabras. Advertencia explícita si el modelo no está seguro de un comando ("Consulta la doc del fabricante para la sintaxis exacta").
archivo.ts — Early-return para modo tutor
El handler handleAsk lee args.mode:
const mode = (args.mode as string) === 'tutor' ? 'tutor' : 'help';
if (mode === 'tutor') {
// Skip: embedTexts, searchChunks, utility hit, archivado
const result = await synthesizeAnswer(env.GOOGLE_AI_API_KEY, question, [], 'tutor');
return JSON.stringify({
answer: result.answer,
sources: [],
mode: 'tutor',
archive: { attempted: false, reason: 'tutor-mode' },
...
});
}
Notable: el binding env.AI (Workers AI) ya no es necesario en tutor mode — el check se desplazó post-early-return, eliminando también el error falso cuando AI no está configurado.
Dominio cubierto por IT Tutor
El system prompt delimita explícitamente el dominio para mantener respuestas útiles y evitar scope creep:
- Networking: Cisco, Juniper, MikroTik, Aruba · OSPF, BGP, STP/RSTP, VLAN trunking, ACL, DHCP/DNS, NAT, VPN.
- Linux/Unix: shell, systemd, journalctl, ip/iproute2, sysadmin básico.
- Estándares: IEEE 802.1Q, 802.11, 802.3 · RFC relevantes.
- Datacenter ops: cooling, racking, cabling, power, redundancia.
- Monitoring: SNMP v1/v2c/v3, ICMP, NetFlow/sFlow, syslog.
- Hardware: switches, routers, UPS, APs, servers, storage.
Reglas de redirección
Si el usuario pregunta sobre features de CreaRack Pro en modo Tutor, el modelo redirige:
“That question is about the app itself. Switch off IT Tutor mode at the top of the Help panel to get help with CreaRack Pro features.”
Esto preserva la separación de responsabilidades entre modos.
Frontend (pendiente)
El commit describe que el toggle UI, persistencia localStorage y el payload mode en el frontend vienen en un commit aparte sobre CreaRack-Pro. Esta página se actualizará cuando ese commit se mergee.
Consideraciones operativas
- Sin coste de embedding: el modo tutor omite completamente
embedTextsysearchChunks, reduciendo latencia y uso de Workers AI binding. - Sin archivado: las interacciones tutor no se registran en el historial de la Biblioteca. Es intencional (no son consultas sobre la wiki).
- Retrocompatibilidad:
modees opcional con default'help'. Clientes existentes que no envíenmodeno se ven afectados. - Detección de idioma:
detectLanguage()se sigue usando server-side en ambos modos para garantizar la respuesta en el idioma del usuario.
Véase también
- [[entity—biblioteca—handler—bib-ask]]
- [[entity—biblioteca—handler—archivo-core]]
- [[concept—biblioteca—synthesize-answer]]