Base de Conocimiento de Sofía
La Base de Conocimiento es una única fuente de verdad para la propiedad intelectual de Axel:
sus frameworks (RoLoCoDePre, WORKIA, RICA, Método FIA), principios, metáforas, voz, casos reales,
ICP y productos. Vive en la tabla knowledge_base de Supabase (la misma base que comparten FIA
Copilot y el Engine de Sofía) para que se pueda editar sin deploy y la consulten múltiples agentes.
La administrás desde /admin/knowledge-base: crear, editar, archivar filas y generar embeddings.
Categorías
Cada fila tiene una category:
| category | Qué agrupa |
|---|---|
framework |
Frameworks con nombre: RoLoCoDePre, WORKIA, RICA, Método FIA |
principio |
Creencias núcleo (ej: "Primero claridad, después copiloto, recién autopiloto") |
metafora |
Las analogías de Axel (auto/piloto, F1, sous-chef, LEGO…) |
voz |
Cómo habla Axel / cómo debe sonar Sofía |
caso |
Prueba social: casos reales con números |
producto |
FIA Copilot, FIA Ventas, FIA Empresas, Diagnóstico |
icp |
Quién es el alumno/cliente ideal y sus dolores |
Cómo se consulta
Una fila tiene slug (identificador estable), summary (respuesta breve), content (desarrollo
en Markdown), voice_notes (tono), tags y related. Solo se sirven filas con status = 'active'.
Hay tres formas de traer contenido (ver src/lib/knowledge-base.ts):
- Por slug —
getKnowledgeBySlug('workia')para una pregunta directa ("¿qué es WORKIA?"). - Por categoría —
getKnowledgeByCategory('caso')para listar, ordenado porpriority. - Semántica —
matchKnowledge(query)embebe la pregunta y usa el RPCmatch_knowledge_base(pgvector) para traer las filas más relevantes por significado.
El Engine de Sofía (otro repo, corre con
service_role) consulta esta misma tabla. El cableado al chat in-app es un paso posterior: hoy la tabla queda creada, cargada y lista para consumir.
Editar el contenido
En /admin/knowledge-base:
- Seedear carga las filas semilla (no pisa ediciones manuales que ya hayas hecho).
- Generar embeddings vectoriza las filas que aún no tienen embedding (requiere
OPENAI_API_KEY). - Editar una fila recalcula su embedding automáticamente al guardar.
La fuente original de cada fila (source) apunta al Vault de Obsidian de Axel; si algo cambia ahí,
se actualiza la fila acá.