Prism Coder
Memoria de sesión persistente para agentes de codificación de IA: recuperación local-first, detección de deriva e inferencia en el dispositivo.
Documentación
Prism Coder
Dale a tu agente de IA memoria que perdura. Sesiones persistentes, grafos de conocimiento y enrutamiento de herramientas sin conexión — totalmente local y gratuito.
Prism Coder es un servidor MCP que le da a Claude, Cursor y otras herramientas de IA memoria a largo plazo que sobrevive entre sesiones. Incluye la familia de modelos de peso abierto prism-coder (2B–27B) para enrutamiento de herramientas rápido y sin conexión — sin necesidad de nube.
No se necesita cuenta. No hay claves API. Se ejecuta en tu máquina.
Una suscripción de pago añade sincronización en la nube, niveles de modelo superiores y funciones de equipo a través del portal Synalux.
Lo que Prism te ofrece
- Memoria de sesión que sobrevive a los reinicios — retoma proyectos con notas de traspaso, trabajo reciente, TODOs abiertos y contexto rápido, estándar o profundo configurable.
- Inferencia local primero — el trabajo acotado se enruta primero a través de modelos locales de Ollama, con selección automática 2B/4B/9B/27B según los modelos instalados, la RAM disponible, el ajuste del contexto y los derechos de suscripción.
- Aplicación de la salida de ruta — el modo de ruta devuelve solo llamadas bien formadas a
herramientas que el host realmente anunció. Los planes estándar y superiores pueden añadir
corrección determinista autenticada;
route_guard: "local"mantiene el prompt y el borrador completamente en el dispositivo. - Una sola configuración para cada agente —
prism connectconfigura Claude Code, Claude Desktop, Cursor, Gemini CLI y Codex preservando la configuración no relacionada. - Habilidades conscientes de la suscripción — las habilidades autorizadas se sincronizan antes de que el host se lance, con actualizaciones seguras, degradaciones, preservación de conflictos y recuperación sin conexión de la última versión buena.
- Inicio sin hooks — los metadatos MCP y las instrucciones nativas solicitan el contexto de inicio de Prism sin requerir hooks de ciclo de vida ni un lanzador propiedad de Prism.
- Escalada segura y observabilidad — los resultados de inferencia son explícitos, el contenido reservado permanece con fallo cerrado, y el uso local/nube se registra para revisión.
Comenzar
npm install -g prism-mcp-server
prism connect
Usa prism connect --dry-run para previsualizar cambios, prism connect --all para
configurar cada host detectado, o prism connect --refresh para reconciliar
las entradas gestionadas por Prism después de una actualización. Reinicia el host después de conectar.
Prism funciona localmente sin cuenta, clave API o suscripción en la nube. Añade una suscripción Synalux cuando quieras memoria en la nube, habilidades de nivel de pago o funciones de equipo.
Instalar como plugin
Prism también se distribuye como plugin, que registra el servidor MCP y la habilidad de inicio por ti.
Claude Code — desde el marketplace de la comunidad:
/plugin marketplace add anthropics/claude-plugins-community
/plugin install synalux-prism@claude-community
Codex — este repositorio es en sí mismo un marketplace de plugins:
codex plugin marketplace add dcostenco/prism-coder
codex plugin add synalux-prism@prism
El plugin registra prism-mcp a través de npx -y prism-mcp-server. Si ya
configuraste Prism manualmente — prism connect escribe una entrada mcp_servers.prism-mcp —
tienes ese servidor dos veces bajo una misma clave. Instala el plugin o
ejecuta prism connect, no ambos.
Lo que prism connect cambia sobre los subagentes del host
connect dirige el trabajo acotado a prism_infer en tu máquina en lugar de a
agentes generados por el host. Lo que escribe difiere según el host, y no desactiva
los subagentes en todas partes — Claude Code los mantiene y se apunta a un modelo
económico en su lugar. Los trabajadores locales de Prism permanecen disponibles a través de MCP en todos los casos.
| Host | Configuración escrita | Efecto |
|---|---|---|
| Claude Code | env.CLAUDE_CODE_SUBAGENT_MODEL = "sonnet" en ~/.claude/settings.json | Los subagentes permanecen habilitados, fijados a un modelo económico. La dispersión se desaconseja mediante texto de política, no mediante configuración |
| Gemini CLI | experimental.enableAgents = false en ~/.gemini/settings.json | Subagentes desactivados. Gemini expone un solo booleano, así que eso es todo lo que hay que configurar |
| Codex | features.multi_agent = false en $CODEX_HOME/config.toml (por defecto ~/.codex), más un respaldo acotado: 2 hilos, profundidad 1, modelo de subagente económico, límite de 900s | Subagentes desactivados, con un perfil acotado debajo para que una re-habilitación deliberada aterrice en un lugar sensato |
Dos cosas que vale la pena saber:
experimentales el espacio de nombres de Gemini, no nuestro. Prism no está habilitando nada experimental — escribefalseen una bandera que Gemini ya define en esa ruta. Escribir en cualquier otro lugar no tendría efecto.- Ese espacio de nombres es por definición temporal. Si Gemini promueve
enableAgentsfuera deexperimental, Prism sigue escribiendo la ruta antigua, Gemini lee la nueva, y los subagentes del host se reactivan silenciosamente. Nada da error y el archivo de configuración sigue viéndose correcto. Si ves subagentes del host ejecutándose mientrasenableAgentsleefalse, comprueba si la clave se ha movido antes de asumir queconnectfalló al escribirla.
Ambas escrituras son idempotentes en el sentido de que un host ya configurado de esta manera
se deja intacto — pero se re-aplican en cada ejecución de prism connect,
no solo en --refresh. Si re-habilitas deliberadamente los subagentes del host, la siguiente
connect los desactivará de nuevo. Mantenlos activados no volviendo a ejecutar connect,
o re-habilitándolos después de cada ejecución.
Historial de versiones (opcional)
Novedades en v20.12.1
prism connect --refreshahora converge cada registro que posee, no solo el de nivel superior — las entradas con ámbito de directorio podrían seguir lanzando una compilación antigua indefinidamente.prism updatecomprueba el paquete instalado, no el CLI que casualmente se está ejecutando, por lo que ya no puede informar "actual" mientras la instalación está obsoleta.- El actualizador programado opcional puede iniciarse de verdad — el LaunchAgent ahora lleva un PATH que incluye node y npm.
Novedades en v20.12.0
- Prism ahora te avisa cuando está desactualizado. El inicio de sesión muestra un
aviso de actualización de una línea cuando existe una versión más reciente — respaldado por caché, como máximo
una comprobación de registro por día, silencioso sin conexión.
PRISM_NO_UPDATE_CHECK=1opta por no participar. - Actualizaciones sin intervención, si las quieres.
prism autoupdate enableconfigura unprism update --if-idlediario: actualiza solo el paquete npm global, se aplaza mientras cualquier servidor Prism esté ejecutándose, y nunca toca la configuración del host — eso permanece detrás de unprism connectvisible.
Novedades en v20.11.1
- Guardar memoria nunca se rechaza. La ruta de guardado solía rechazar
llamadas
session_save_ledger/save_handoffcuando su heurística de ruta-a-proyecto discrepaba con el proyecto que declaraste — y el registro en el que la heurística confiaba podía contener basura de auto-registros anteriores, por lo que sesiones legítimas terminaban sin guardar. Tu declaración ahora siempre gana; la discrepancia se devuelve como advertencia informativa, y el auto-registro solo acepta raíces de repositorio reales. - Las capturas de pantalla vuelven a ser evidencia.
prism browsercapturas en macOS se escalaban silenciosamente al límite de tamaño, por lo que una captura ya no mostraba lo que realmente se renderizaba. Solo las capturas genuinamente sobredimensionadas se redimensionan ahora, y el límite ya no recorta una ventana estándar de 1920 de ancho.
Novedades en v20.10.0 – v20.11.0
- El enrutamiento de habilidades ahora funciona a mitad de sesión. Los nuevos prompts se comparan en el dispositivo a medida que la conversación avanza — no solo en el primer turno — y se inyectan dentro de los límites de contexto reales de cada host (Claude Code limita la salida de hooks a 10k caracteres; Codex trunca por defecto), con entrega prioritaria de puntero cuando una carga útil no cabe en línea.
prism connectes un comando de convergencia. Se auto-actualiza primero, se re-ejecuta, y luego reconcilia el registro MCP, las habilidades y los hooks — no más máquinas con "configuración nueva, código obsoleto".- Las habilidades con ámbito se enrutan también en prompts, y la salida de inicio sobrevive a hosts que descartan contenido estructurado de herramientas.
Novedades en v20.9.0 – v20.9.3
-
Tus habilidades siguen a tu cuenta.
skill_savealmacena una habilidad en el ámbito que elijas: solo esta máquina (local, funciona sin conexión y con sesión cerrada), tu cuenta (user— cada máquina en la que inicies sesión la recibe), o un espacio de trabajo (team— compartida con miembros, gestionada por administradores, opcionalmente dirigida a personas específicas). -
Recorta el catálogo que no usas.
skill_managepuede liberar habilidades de plataforma que nunca tocas — liberando presupuesto del catálogo de habilidades del host — y restaurarlas en cualquier momento, sin pérdidas. Eliminar una habilidad con ámbito archiva su contenido final localmente primero, por lo que nada queda silenciosamente irrecuperable. -
Entrega que se pone en cola en lugar de fallar. Las sesiones concurrentes ya no privan de sincronización de habilidades al almacén de configuración local (WAL + tiempo de espera de ocupado) — un fallo que antes informaba solo "parcial" donde nadie podía verlo.
-
Las reglas retenidas siguen vinculando. Cuando el presupuesto de contexto no puede incluir en línea el texto de una habilidad, el manifiesto de nombres retenidos ahora declara que esas habilidades siguen rigiendo el trabajo y nombra todas las formas de cargarlas antes de que la finalización lo reclame.
-
El presupuesto que el suelo nunca gastó. Un error contable de larga data significaba que ninguna habilidad no protegida se incluía en línea en ningún nivel de contexto normal — el suelo protegido siempre incluido estaba debitando el presupuesto destinado a todo lo demás. Las habilidades coincidentes con tareas (como la lista de verificación de evidencia de finalización) ahora llegan de verdad.
Novedades en v20.8.2
- La entrega de habilidades ahora admite el fallo en lugar de ocultarlo. Un caso límite
de permisos del sistema de archivos (un umask que elimina el bit de ejecución del propietario) podía dejar
la sincronización de habilidades sin escribir nada mientras se informaba como actual — medido en nueve
días en una máquina real. Los directorios gestionados rotos se reparan en su lugar,
cada directorio se crea a prueba de umask, y la ruta de reparación rechaza enlaces simbólicos
mediante un descriptor
O_NOFOLLOW. - Una instalación obsoleta te lo dice al inicio. Prism ahora rastrea la generación que realmente llegó al disco por separado de la que la base de datos aceptó; si divergen, el banner de inicio lo dice en una advertencia colocada donde el truncamiento de pantalla no puede cortarla. Una sincronización exitosa la limpia automáticamente.
Novedades en v20.7 – v20.8.0
- La primera ejecución demuestra la memoria en lugar de describirla —
session_bootstrapsiembra una memoria de demostración y la muestra recuperada del disco, para que el bucle guardar→recuperar se sienta en la sesión 1. De una sola vez, contenida en su propio proyectoprism-demo, eliminable con una llamada. - Panel corregido — un error tipográfico de comillas (publicado 2026-05-29) mató el script
en línea en el momento del análisis, por lo que cada panel desde entonces renderizaba "Cargando proyectos..."
para siempre. Corregido, y el lint ES5 ahora
node --checkel script en línea compilado para que un panel no analizable nunca pueda volver a publicarse. - Publicación de confianza — los lanzamientos npm se autentican mediante GitHub OIDC. Sin token
almacenado que expire o se filtre, y cada lanzamiento lleva una atestación de procedencia
firmada — puedes
verificar que el tarball que instalas fue construido desde este repositorio por CI
(
npm audit signatures). - TLS obligatorio para la sincronización en la nube — una URL de almacenamiento
http://remota se actualiza ahttps://en lugar de enviar silenciosamente el contenido de la sesión en claro. - Colisión de plugin de Codex + detección de estado habilitado —
prism connectomite su propio registro solo cuando un plugin realmente proporcionaprism-mcp(caché presente y habilitado), evitando tanto servidores duplicados como faltantes. - CI de Windows estabilizado; listados de registro/npm realineados y deduplicados.
Novedades en v20.6.0
La Entrega No Es Una Sugerencia
Una auditoría de un incidente real (un agente borró datos de demostración después de anunciar el borrado — con la regla de preguntar-primero confirmada, empaquetada y ausente de lo que cualquier agente realmente recibió) encontró que el suelo protegido había superado todos los presupuestos de entrega: "no protegido" había llegado silenciosamente a significar "nunca entregado".
ask-firstyfeature-preservationse unen al piso protegido (14 → 16). Las habilidades protegidas siempre se incluyen en línea; estas dos ahora llegan a cada sesión.- Los conflictos de sincronización son ruidosos y con nombre. El inicio solía decir "· 2 conflictos locales preservados" mientras las habilidades de seguridad permanecían meses desactualizadas; ahora nombra cada habilidad congelada y explica cómo reanudar las actualizaciones.
--storageaceptaautoysynalux— la CLI rechazaba su propio valor predeterminado documentado y el backend de producción.- Divulgación: la entrega de habilidades informa; no bloquea. Una sonda en vivo mostró que un agente anfitrión aún editaba fuentes no verificadas con la regla cargada. Si tu modelo de amenazas incluye un agente que actúa contra una regla cargada bajo presión de tarea, combina este paquete con barreras mecánicas (ganchos, permisos, roles de privilegio mínimo). Cierto en cada versión anterior; declarado desde esta.
Novedades en v20.5.3
La Evidencia de Base Lleva su Edad
Las respuestas basadas en memoria etiquetaban sus fuentes pero nunca las fechaban, por lo que una nota de hace dos años y una de ayer llegaban al modelo de manera idéntica. Nada en la evidencia permitía descartar la obsoleta. Impulsado por una revisión externa que nombró el riesgo correcto para la memoria local-primero: los datos permanecen locales, pero la mala base se vuelve permanente — almacenar todo en tu máquina elimina la presión externa que de otro modo sacaría a la superficie una nota obsoleta.
La evidencia ahora dice:
[SOURCE 1: ledger:8286581d (recorded 2025-05-29, 431 days ago)]
La fecha ya existía en el almacenamiento y se descartaba en la capa de fragmentos, así que esto es plomería en lugar de nueva recopilación de datos. Las marcas de tiempo SQLite sin zona se normalizan a UTC — leídas como locales, un registro de hace diez minutos se analizaba horas en el futuro y su edad se suprimía por completo, lo que significa que la función silenciosamente no hacía nada en las memorias más frescas. Una fecha ausente o no analizable se muestra como nada en lugar de predeterminarse a ahora; predeterminarse haría que las memorias más antiguas, las más propensas a estar obsoletas, parecieran las más frescas.
tests/integration/grounding-staleness.test.ts ejecuta la propia sonda del revisor —
siembra una nota deliberadamente desactualizada junto a una fresca contradictoria y afirma
que el modelo recibe ambas, visiblemente fechadas. Cualquiera puede ejecutarla.
No resuelto, y no reclamado: la recuperación no pondera la actualidad. Una nota obsoleta
mostrada junto a una fresca es el caso fácil — el modelo ve ambas fechas y puede
ponderarlas. El caso difícil es una nota obsoleta recuperada sola, porque la clasificación es
por coincidencia de palabras clave y un almacén antiguo devuelve resultados antiguos; entonces la etiqueta de edad es la
única defensa y no hay un registro más fresco con el que comparar. Rastreado como
TECH_DEBT.md #4.
Novedades en v20.5.0 – v20.5.2
El Primer Mensaje Nunca Sale de tu Máquina
Las habilidades activadas por síntomas — las reglas que se disparan en "no puedo ver X", "sin filas",
"la lista está vacía" — están destinadas a cargarse en el turno en que llega un informe de incidente.
Nunca lo hicieron: cada plantilla de anfitrión llamaba a session_bootstrap con {}, por lo que
no había un aviso con el que coincidir.
Arreglar eso planteó la pregunta de dónde ocurre la coincidencia. Ahora ocurre
localmente. Las 28 reglas de palabras clave ya son públicas, por lo que no había nada que una coincidencia
local no pudiera calcular, y callPortal() no tiene ningún parámetro prompt en absoluto —
la garantía es estructural, no una promesa. La solicitud del portal lleva el
proyecto y el rol solamente.
Una regla coincidente ahora llega como contenido, no como un nombre. Los anfitriones nativos fuera del espejo de archivos de habilidades no tenían forma de leer una regla de la que solo se les informaba, por lo que el cuerpo de la regla se incluye en línea en la pantalla de inicio, limitado y dimensionado contra el presupuesto real por proyecto.
Novedades en v20.4.0
Un Backend en la Nube Explícitamente Nombrado Falla Ruidosamente
Configurar PRISM_STORAGE=synalux o =supabase con credenciales incompletas
solía degradar silenciosamente a SQLite local. El cambio se registraba en stderr, que
los anfitriones MCP descartan, por lo que nada lo sacaba a la superficie: las sesiones seguían sirviendo contexto local obsoleto
mientras la nube tenía historial más nuevo, y context_source leía local
en lugar de cualquier tipo de advertencia. Una sesión podía funcionar así durante semanas.
Nombrar un backend explícitamente es una fuerte declaración de intención, por lo que ahora lanza una excepción —
nombrando las variables faltantes y la opción de exclusión PRISM_STORAGE=local — en lugar de
dividir silenciosamente tu historial de sesión. auto no cambia: mantiene su
degradación documentada synalux > supabase > local, fijada por una prueba.
Nota de actualización: si configuras explícitamente PRISM_STORAGE=synalux|supabase y
tus credenciales están incompletas, el inicio ahora falla con un error nombrado en lugar
de usar silenciosamente datos locales. Ese error es la solución — configura la variable faltante,
o elige PRISM_STORAGE=local deliberadamente. Las configuraciones predeterminadas (auto) no se ven
afectadas.
La excepción deliberadamente no se trata como una falla de inicio recuperable: esa ruta existe para errores transitorios (límites de tasa, 5xx, DNS), que pueden degradarse detrás de un aviso visible. Una credencial faltante es una falla de configuración y no debe encubrirse.
También: el bloque de habilidades ahora se presupuesta por defecto en lugar de solo a petición, por lo que una carga útil grande de habilidades no puede desplazar el informe y el historial.
Novedades en v20.3.2
Web Scholar: Endurecimiento SSRF
Lanzamiento de seguridad. Web Scholar extrae URLs de artículos que provienen de la salida del motor de búsqueda, por lo que el objetivo es influenciable por el atacante a través de envenenamiento SEO — y porque lo que extrae se escribe en el corpus de memoria y se pasa al LLM configurado, una redirección a una dirección local significaba leer un servicio interno y enviar el resultado.
La protección del anfitrión coincidía con prefijos de cadena en lugar de analizar la dirección, y seis
ortografías de una dirección local pasaban: [::1] (URL.hostname mantiene los
corchetes), 127.0.0.2 (solo .1 se enumeraba, no todos los 127.0.0.0/8),
0.0.0.0, [::ffff:127.0.0.1], localhost. (un punto final derrotaba cada
verificación de sufijo a la vez), y [64:ff9b::7f00:1] (NAT64 incrusta IPv4 en sus bits
bajos). La clasificación del anfitrión ahora analiza direcciones y también cubre CGNAT,
benchmarking, multicast, reservado, y rangos IPv6 únicos-locales y enlace-local.
El rebinding de DNS también está cerrado. Cada verificación leía la cadena de URL, por lo que un nombre de host que el
atacante controla pasaba todas ellas y aún podía resolverse a 127.0.0.1.
Los objetivos ahora se resuelven primero, cada dirección devuelta se valida, y la
conexión se fija a esas direcciones para que el nombre nunca se resuelva una segunda
vez — lo que también cierra la ventana entre la verificación y la conexión.
Los fallos de extracción ya no desaparecen en un catch {} desnudo, una ejecución está limitada por
PRISM_SCHOLAR_SCRAPE_BUDGET_MS (predeterminado 60s) en lugar de estancarse en un recuento
elevado de artículos, y las respuestas están limitadas a 8 MiB.
Esto solo es alcanzable cuando el académico realmente se ejecuta — scholar_research, o el
bucle en segundo plano bajo PRISM_SCHOLAR_ENABLED=true — y cuando el atacante también
controla DNS o un resultado de búsqueda. Actualiza si usas Web Scholar.
Novedades en v20.3.1
Prism Browser Informa Fallos Reales
prism browser no podía fallar una prueba. eval 1 === 2 devolvía status: ok
con código de salida 0, una página que servía HTTP 500 informaba status: ok, y los errores
de consola y excepciones de página no capturadas se descartaban por completo. Esta versión agrega
afirmaciones — assert-text, assert-visible, assert-count, assert-url,
assert-title, assert-eval, assert-no-page-errors — que devuelven
status: failed y un código de salida distinto de cero. open ahora informa http_status y
falla en 400 o superior, las capturas de pantalla se validan en lugar de asumirse, y
eval devuelve JSON nativo con su tipo en lugar de un repr de Python.
La capa de huella digital nunca se había aplicado: un argumento de palabra clave incorrecto hacía
que la biblioteca sigilosa lanzara una excepción en cada lanzamiento — 1,139 fallos y 0 éxitos
desde abril — mientras el ejecutor la informaba como activa. Está arreglado, y una capa
que no puede aplicarse ahora falla ruidosamente. La compilación sin cabeza ya no se
anuncia a través de navigator.userAgentData o el encabezado Sec-CH-UA,
y un parche que corrompía Object.getOwnPropertyDescriptor en cada página
bajo prueba se ha eliminado. Estos siguen siendo ayudas de prueba de mejor esfuerzo, no una
garantía contra la detección de bots.
--local-only ahora realmente aísla: WebSocket, EventSource, WebRTC y
el egreso sendBeacon eludían el enrutamiento de solicitudes y nunca se bloqueaban, y los trabajadores
de servicio se permitían. --cleanup era una operación nula en los dos modos que los agentes
usan. El aislamiento del sitio, la detección de phishing y el bloqueo de ventanas emergentes ya no están
deshabilitados por defecto, ya que estos perfiles contienen cookies autenticadas en vivo.
Nuevo para ejecuciones de prueba: --ephemeral-profile y --storage-state para flujos
autenticados herméticos, pages/switch-page para que las ventanas emergentes de OAuth sean alcanzables,
--fail-fast, --fast, --trace/--video/--har, y
profiles --prune-older-than para mantenimiento de perfiles.
Novedades en v20.2.7
Los Guardados de Sesión Sobreviven a Reinicios del Agente
Prism ahora recuerda que una conversación cargó exitosamente su contexto de proyecto
cuando el servidor MCP se reinicia u otro proceso de Prism maneja la siguiente solicitud.
session_save_ledger y session_save_handoff ya no fallan con un error falso
context_not_loaded en ese flujo.
La recuperación sigue siendo de cierre seguro: la autorización se limita al proyecto exacto y la conversación, expira con la ventana de contexto existente, y no almacena un identificador de conversación en texto plano. Los recibos entre proyectos, falsificados, malformados, expirados, o con fecha futura aún se rechazan. La versión también actualiza PostCSS a la versión parcheada 8.5.23.
Novedades en v20.3.0
Búsqueda de Memoria Híbrida (Nivel Portal)
session_search_memory en el nivel portal (instalaciones respaldadas por Synalux) ahora
fusiona la similitud semántica con la coincidencia léxica de términos exactos mediante fusión
ponderada de rango recíproco. Medido en sondas ciegas contra un corpus real
de 8.5k entradas: la recuperación fusionada nunca fue peor que la semántica
sola en los 5 principales, y los identificadores exactos — TPNs, nombres de funciones, cadenas
de error — ahora rescatan consultas que la similitud de incrustaciones difumina. Los resultados dicen cómo se encontraron — encabezados hybrid retrieval,
brazos sem#/lex# por acierto — y un rescate solo léxico se etiqueta
exact-term match en lugar de pretender una puntuación de similitud. Las instalaciones
SQLite locales mantienen la búsqueda vectorial pura; el híbrido necesita el
índice léxico del portal.
Novedades en v20.2.6
Actualizaciones de Configuración Más Seguras en Cada Agente
prism connect ahora lee la configuración de Claude, Cursor, Gemini y Codex
a través de una única instantánea de archivo verificada, evitando que otro proceso intercambie
un archivo entre la verificación de seguridad de Prism y su lectura. Los dotfiles con enlaces simbólicos
compatibles aún funcionan, mientras que los enlaces simbólicos colgantes o plantados fallan ruidosamente en lugar de
ser seguidos o sobrescritos. Esta versión también lleva las dependencias
parcheadas y las verificaciones de lanzamiento multiplataforma introducidas en v20.2.5.
La alternativa en la nube ahora se documenta consistentemente como Gemini 3.6 Flash. Los techos
de plan gobiernan el enrutamiento automático prism_infer; el uso directo de cualquier modelo
descargado a través de Ollama local sigue siendo gratuito en cada nivel.
Novedades en v20.2.4
Memoria de Sesión Confiable que Muestra Trabajo, No Saludos
Las respuestas de asistente solo de saludo se omiten antes de las escrituras en el libro mayor. Las filas
de saludo existentes se filtran en el momento de la lectura en el inicio nativo, el contexto MCP y
prism load --json, mientras que las entradas que contienen decisiones, TODOs, archivos
cambiados o eventos no de sesión permanecen visibles. Las filas históricas no se eliminan
destructivamente. Si Synalux tiene una falla de inicio transitoria, Prism muestra una instantánea
local limitada de último buen estado y la etiqueta claramente; las fallas permanentes de autorización o
validación aún fallan ruidosamente, y las escrituras posteriores permanecen enrutadas a la nube.
Novedades en v20.2.2
Un flujo de trabajo local-primero en todos los agentes
prism connect ahora instala un contrato de orquestación para Claude Code, Claude Desktop, Cursor, Gemini CLI y Codex. El trabajo delegado acotado va primero a session_task_route y al trabajador local prism_infer; el trabajo rutinario no debe crear agentes host en segundo plano. Los trabajadores locales pueden recibir la memoria rápida, estándar o profunda configurada en el panel del proyecto activo y seleccionar un modelo 2B/4B/9B/27B seguro para RAM en el momento de la llamada. El enrutador reenvía la complejidad pero no elige el modelo; prism_infer posee la decisión final usando memoria y ajuste de contexto, modelos instalados, RAM en vivo, derechos y anulaciones explícitas del llamador.
La expansión de agentes nativos de Codex y Gemini se desactiva durante la conexión. Codex mantiene un perfil de respaldo Terra/bajo de dos hilos y un nivel si el desarrollador rehabilita explícitamente los agentes nativos más tarde. Claude Code mantiene los agentes nativos como una ruta de último recurso pero fija su modelo a Sonnet. Cursor y Claude Desktop no exponen un archivo de política global de subagentes compatible, por lo que reciben el mismo flujo de trabajo a través de las instrucciones del servidor MCP de Prism. Los límites de seguridad de prism_infer y la responsabilidad final de verificación del host no cambian.
Las habilidades por nivel de suscripción llegan antes del primer lanzamiento del host
prism connect ahora descarga el manifiesto de habilidades autoritativo de Synalux y materializa los paquetes con derecho en el directorio nativo ~/.agents/skills antes de que el comando salga. Por lo tanto, Codex ve el conjunto de habilidades actual en su primer lanzamiento en lugar de requerir un segundo reinicio. Prism vuelve a verificar la misma instantánea al inicio de MCP, en la carga de sesión y cada cinco minutos, sin enganches de ciclo de vida del host.
En el primer turno del usuario, la habilidad nativa de Prism, los metadatos de MCP y las instrucciones del host gestionado solicitan una llamada session_bootstrap({}). Prism luego usa el nombre del desarrollador del panel, Auto-Load Projects y la configuración rápida, estándar o profunda. La respuesta se mantiene enfocada en el saludo y el estado de la sesión porque las habilidades de nivel ya están presentes en el directorio de habilidades nativas del host.
El MCP sin enganches puede proporcionar y priorizar ese bloque listo para mostrar, pero el modelo del host aún posee el mensaje final del asistente y puede resumirlo. Prism no reclama un saludo determinista palabra por palabra en superficies de chat de terceros; eso requeriría un enganche de ciclo de vida del host, un lanzador, una extensión o un panel propiedad de Prism. La carga de contexto en sí permanece completa incluso cuando un host acorta la respuesta visible.
Las cuentas gratuitas reciben solo el paquete público sin enganches prism-startup; el servidor MCP aún proporciona un contrato compacto de seguridad y evidencia no propietario. Las cuentas de pago autenticadas reciben los paquetes protegidos de comportamiento e ingeniería más el conjunto de enrutamiento suscrito actual. El evidence-first-protocol de pago mantiene la codificación ordinaria ligera: una reproducción correlacionada es suficiente para comenzar una edición, mientras que la aceptación estricta comienza solo antes de una reclamación de finalización, push o lanzamiento e inspecciona solo los artefactos exactos utilizados como prueba. Las actualizaciones instalan paquetes recién con derecho; las degradaciones verificadas eliminan solo los paquetes propiedad de Prism mientras preservan las habilidades locales y los conflictos modificados localmente.
Al actualizar una instalación antigua de Claude Code, prism connect elimina solo las acciones exactas de enganche de inicio, sincronización de habilidades, traspaso y deriva propiedad de Prism del bootstrap heredado. También elimina las secciones de inicio heredadas reconocidas de Prism de ~/CLAUDE.md, preserva todas las demás instrucciones e instala un pequeño bloque nativo marcado como propiedad que selecciona session_bootstrap({}) en el primer turno. Los enganches de usuario, las secciones de instrucciones personalizadas y las coincidencias cercanas permanecen intactos; las habilidades nativas y los recordatorios del lado del servidor preservan esas características de Prism sin enganches de ciclo de vida del host. Debido a que los hosts no exponen una devolución de llamada nativa de fin de sesión, el traspaso al apagar se impulsa por instrucciones en lugar de un evento de ciclo de vida garantizado.
Después de que el registro de usuario nativo de Claude Code tenga éxito, el mismo comando predeterminado o --refresh verifica el .mcp.json más cercano desde el directorio actual hasta el directorio de inicio. Elimina solo la entrada heredada exacta prism-mcp { "command": "npx", "args": ["-y", "prism-mcp-server"] } que de otro modo ocultaría el registro de usuario. Las entradas personalizadas de Prism y sus campos adicionales, así como los servidores no relacionados, se preservan; los archivos malformados fallan ruidosamente sin cambios. --dry-run informa la migración reconocida sin cambiar el archivo.
Novedades en v20.2.1
Almacenamiento de memoria consciente de la suscripción
prism connect ahora lleva un PRISM_STORAGE=auto|local|synalux|supabase explícito a cada registro de host gestionado y rechaza valores inválidos antes de cambiar un archivo de configuración. En auto, un nivel gratuito confirmado por el portal usa SQLite local, mientras que Standard, Advanced y Enterprise usan memoria en la nube de Synalux. Si la resolución de derechos no está disponible, Prism falla cerrado en lugar de dividir el historial entre backends. El almacenamiento permanece independiente del enrutamiento de modelos local-primero.
Novedades en v20.2.0
Un comando conecta cada host compatible
Instala Prism globalmente y ejecuta prism connect. Detecta Claude Code, Claude Desktop en macOS, Windows y Linux (beta), Cursor, Gemini CLI y Codex, luego registra de forma segura el servidor desde el paquete instalado. Las entradas personalizadas existentes no se tocan; --dry-run previsualiza los cambios y --refresh actualiza solo las entradas gestionadas por Prism.
Novedades en v20.1.0
Cada resultado de inferencia ahora es observable
prism_infer gana un contrato de fallo: pasa escalation: "report" y cada llamada devuelve un gate_outcome estructurado — success, degraded (salida que falló la compuerta servida de todos modos, marcada explícitamente), o refused (tipado, con razón, en lugar de un error lanzado). La salida degradada ya no puede servirse en silencio.
Los prompts grandes funcionan localmente
Los prompts de más de 4000 caracteres se rechazaban de forma general cuando la nube estaba apagada. Ahora el texto completo recibe un escaneo determinista de palabras clave reservadas más una clasificación de extractos cabeza+medio+cola: los prompts sobredimensionados limpios se sirven localmente con un marcador de auditoría UNCERTAIN_LENGTH distinto. El manejo clínico/reservado no cambia (y su piso de palabras clave se fortaleció).
No más truncamiento silencioso
Los límites de contexto de nivel ahora coinciden con los Modelfiles en vivo (27b/9b son modelos de 4096 tokens; 4b/2b son 32768 — la tabla anterior lo tenía al revés). Los niveles que no pueden contener tu prompt se omiten con una razón visible ctx_insufficient; si nada encaja, obtienes el prompt completo en la nube o un error ruidoso — nunca una respuesta calculada a partir de un prompt recortado en silencio.
Sepa bajo qué plan está ejecutando realmente
Los derechos llevan un campo source: portal (real), unconfigured (gratuito por diseño), o fallback_free (portal inalcanzable — límites gratuitos ASUMIDOS). Pasa strict_entitlements: true para fallar ruidosamente en lugar de ejecutar degradado.
Novedades en v20.0.8
verify_behavior funciona de nuevo
La herramienta verify_behavior fallaba en cada llamada (-32602 expected object, received string) — el manejador devolvía una cadena simple en lugar de un objeto MCP CallToolResult. Corregido, con pruebas de regresión de contrato + fallo cerrado para que la compuerta de seguridad nunca pueda romperse silenciosamente de nuevo. Si estás en 20.0.6/20.0.7, actualiza.
Desde v20.0.7: Seguridad de contenido reservado, autenticación de habilidades, métricas de delegación
El contenido clínico reservado ahora es Claude-o-rechazar (nunca servido por un modelo más pequeño que el que lo rechazó), la entrega de habilidades ganó un respaldo de autenticación JWT (las habilidades de nivel de pago ahora llegan a máquinas usando solo PRISM_SYNALUX_API_KEY), y cada llamada prism_infer se registra en un libro mayor persistente infer_metrics. Detalles completos en CHANGELOG.md.
Novedades en v20.0.5
Delegación local-primero — 15 categorías, tasa medida
La habilidad local-inference-first cubre 15 categorías de disparo duro (generación de código, regex, conversión de formato, resumen, documentación, búsqueda factual, clasificación, comandos de shell, generación de configuración y más). Los bloques de código pegados ahora activan la delegación independientemente de la redacción de la pregunta. Tasa de delegación medida: 30-35% en sesiones de ingeniería, 40-60% en sesiones de transformación/contenido. La tasa depende de la mezcla de prompts, no de la habilidad — los instrumentos ahora se autovalidan con nonDelegatedCount para prevenir tautologías de conjuntos curados.
Reintento solo de pensamiento (v20.0.4)
Los modelos Qwen 3.5 (9B/27B) con pensamiento habilitado podían quemar todos los tokens en bloques <think> y devolver contenido vacío, causando una cascada a 4B. Ahora detecta respuestas solo de pensamiento y reintenta el mismo nivel con pensamiento deshabilitado — preservando la calidad del modelo en lugar de caer a un modelo más pequeño.
Novedades en v20.0.3
Resiliencia de modelo frío en la capa 1
El clasificador de categorías reservadas ahora reintenta una vez con un tiempo de espera más largo en fallo de modelo frío, luego cae a un respaldo determinista de palabras clave antes de rechazar. Los prompts de longitud excesiva (>4K caracteres) se clasifican como INCIERTO antes de llegar al clasificador — el relleno de prompts ya no puede forzar la rama ERROR. Esto elimina el problema de rechazo de arranque en frío sin debilitar la compuerta de seguridad.
Respaldo de palabras clave para contenido reservado
Cuando el clasificador LLM falla (tiempo de espera, inyección, presión de recursos), un piso regex determinista captura vocabulario reservado (restricción, aislamiento, autolesión, suicidio, sobredosis, desescalada de crisis, etc.) incluyendo formas flexionadas y verbales. Bloquea el relleno de prompts y los ataques de inyección al clasificador en la ruta ERROR.
Texto de seguridad de fuente única
La declaración de seguridad en el campo instructions del servidor MCP ahora se importa desde boundaries.ts — una fuente de verdad en lugar de dos copias mantenidas a mano. La versión de límites se incrementó a v3 con una decisión de entrega explícita documentada en el código.
Compuerta de seguridad de categorías reservadas — todos los niveles (v20.0.2)
El clasificador semántico de la capa 1 ahora se ejecuta para cada usuario, no solo para los niveles de pago. El contenido clínico reservado se rechaza en el nivel gratuito cuando la nube no está disponible — fallo cerrado.
Deduplicación de libro mayor (v20.0.2)
session_save_ledger deduplica entradas idénticas dentro de una ventana de 5 minutos.
Script de evidencia (v20.0.2)
scripts/generate-evidence.sh regenera los 5 archivos de evidencia con aserciones integradas. Ejecuta bash scripts/generate-evidence.sh para verificar el pipeline completo.
Novedades en v20.0.0
Licencia: AGPL-3.0 → Apache-2.0
Prism MCP ahora es Apache-2.0. La arquitectura de cliente delgado significa que todo el valor propietario (resolución de habilidades, control de niveles, facturación, inferencia en la nube) vive en el lado del servidor — el cliente abierto no lleva ningún foso que proteger. Apache-2.0 elimina la fricción de adopción empresarial que causó AGPL.
Arquitectura de cliente delgado
El enrutamiento de habilidades, la gestión de presupuesto y la resolución de contenido se han movido al lado del servidor, al portal Synalux. El cliente MCP ahora es un llamador de API delgado — más simple, más pequeño y portátil a través de cualquier host (Claude Code, Gemini, Cursor, scripts autónomos). El respaldo sin conexión lee la última respuesta exitosa de SQLite local.
Adaptador Voyage AI de sala limpia
El adaptador de incrustaciones de Voyage AI se reimplementó de forma independiente desde la documentación de la API de Voyage para garantizar un 100% de copyright propiedad del proyecto. El modelo predeterminado se actualizó a voyage-3.5. Consulta PROVENANCE.md para más detalles.
Detección de deriva en el lado del servidor
La detección de deriva de sesión (GATE 5) ya no requiere enganches de Claude Code. El temporizador se ejecuta en el lado del servidor por conversación, aprovechando cada respuesta de herramienta MCP. Funciona para cualquier host.
Requisito de CLA
Las contribuciones externas ahora requieren firmar la CLA individual. La verificación de CLA bloquea la fusión en la rama main.
Inicio rápido
El nivel gratuito no necesita cuenta, ni clave API, ni nube. Instala Prism, luego regístralo con cada host MCP compatible ya instalado en tu máquina:
npm install --global prism-mcp-server
prism connect
prism connect detecta Claude Code, Claude Desktop (macOS/Windows/Linux), Cursor,
Gemini CLI y Codex.
Usa prism connect --all para apuntar a los cinco, --host <name> para un solo host, o
--dry-run para previsualizar los archivos que cambiarían. Las entradas existentes de prism y
prism-mcp nunca se sobrescriben por defecto. --refresh actualiza solo
una entrada creada previamente por Prism; las entradas personalizadas permanecen intactas.
Para Claude Code, tanto el comando predeterminado como --refresh también eliminan la entrada
legada exacta de npx -y prism-mcp-server con ámbito de proyecto del
.mcp.json ancestro efectivo después de que el registro de usuario nativo tenga éxito. No se modifica ninguna entrada de proyecto personalizada o de coincidencia aproximada.
Cierra los hosts MCP de destino antes de un registro que no sea de prueba para que no puedan
editar su configuración al mismo tiempo.
La misma conexión instala el contrato de orquestación local-primero:
| Host | Contención gestionada |
|---|---|
| Codex | features.multi_agent=false; se conserva un perfil de respaldo Terra/bajo de 2 hilos y profundidad 1 para re-habilitación explícita |
| Gemini CLI | experimental.enableAgents=false |
| Claude Code | CLAUDE_CODE_SUBAGENT_MODEL=sonnet; las instrucciones gestionadas lo reservan para respaldo de último recurso |
| Cursor | Política canónica entregada a través de instrucciones de inicialización de MCP |
| Claude Desktop | Política canónica entregada a través de instrucciones de inicialización de MCP |
Los cinco reciben PRISM_AGENT_POLICY=local-first en su entrada MCP gestionada de Prism.
Las tareas rutinarias usan el trabajador local consciente de RAM; la expansión nativa/en segundo plano
no es el flujo de trabajo predeterminado. session_task_route proporciona una pista de complejidad;
prism_infer sigue siendo el único propietario de la selección de modelo y pensamiento y puede
elegir 27B cuando sus puertas de viabilidad lo respalden.
Establece PRISM_STORAGE antes de ejecutar prism connect para preservar una elección
explícita de almacenamiento en las entradas de host generadas. Esto no cambia el
enrutamiento del modelo local; el almacenamiento en la nube de Synalux requiere por separado una
habilitación activa de memoria en la nube.
El registro de Codex preserva el contenido no relacionado de ~/.codex/config.toml, agrega
solo el bloque MCP marcado de Prism y actualiza solo las claves documentadas de
funciones/agentes local-primero. CODEX_HOME se respeta cuando se establece y ya debe existir,
coincidiendo con el propio contrato de Codex. Reinicia la CLI de Codex, la
extensión del IDE o la aplicación de escritorio de ChatGPT después de conectarte.
Reinicia el host conectado y tu agente ahora tiene memoria respaldada por una
base de datos SQLite local (~/.prism-mcp/data.db). Consulta Configuración del IDE
para la configuración manual y las rutas específicas del host.
Opcional — flota de modelos local para enrutamiento de herramientas sin conexión. Descarga el que se ajuste a tu hardware:
ollama pull dcostenco/prism-coder:2b # 3.3 GB · on-device / lowest RAM · sees images (100% on our routing suite)
ollama pull dcostenco/prism-coder:4b # 3.5 GB · verifier · sees images (100%)
ollama pull dcostenco/prism-coder:9b # 6.7 GB · default router · sees images (95.7%, reasons before answering)
ollama pull dcostenco/prism-coder:27b # 16.8 GB · complex code / quality · text only (100%)
Prism detecta automáticamente tanto las etiquetas de Ollama con espacio de nombres (dcostenco/prism-coder:9b) como las simples (prism-coder:9b).
Los niveles 2b/4b/9b llevan una torre de visión y aceptan capturas de pantalla a través de
prism_infer({ images: [...] }) — pasa rutas absolutas o base64. Las solicitudes de
imagen se rechazan en lugar de responderse a ciegas cuando ningún nivel (o el
clasificador de seguridad de Capa 1) puede ver realmente la imagen, por lo que un modelo solo de texto nunca
recibe un aviso sobre una captura de pantalla que nunca recibió. El 27b es solo texto.
Qué hace
Tu agente de IA olvida todo entre sesiones. Prism lo soluciona — y añade verificación, detección de desviación y coordinación multiagente encima.
Palacio de la Mente — memoria persistente que sobrevive entre sesiones
Cada conversación alimenta un almacén persistente. La siguiente sesión carga el contexto correcto automáticamente — sin re-explicar.
El panel muestra el estado actual de tu proyecto, TODOs pendientes, salud de intenciones y un grafo de conocimiento neuronal — todo construido automáticamente desde tus sesiones de agente.
Exportar — lee el registro fuera del agente
session_export_memory escribe tu memoria como archivos de texto plano que puedes leer,
comparar y confirmar. Nada pasa por un modelo para producirlo.
markdown human-readable — drop it in a PR to show what the agent actually did
json machine-readable — import into another Prism instance
vault zipped Markdown with YAML frontmatter and [[wikilinks]] (Obsidian, Logseq)
Esta es la superficie a la que recurrir cuando quieras responder "¿verificó el agente esto, o está afirmando que lo hizo?" — la exportación es un registro que revisas después del hecho, en una comparación o solicitud de extracción, en lugar de una vista en vivo que tienes que ir a abrir. Los mismos datos están disponibles desde los botones Exportar ZIP y Exportar Vault del panel.
Grafo de Conocimiento — búsqueda semántica + de palabras clave + de grafo
Pregunta "¿qué decidí sobre el flujo de autenticación el mes pasado?" y obtén una respuesta con citas, combinando similitud vectorial, búsqueda de texto completo y recorrido de grafo.
Historial de Sesiones — rastro de auditoría inmutable
Cada sesión se registra con archivos cambiados, decisiones tomadas y TODOs. Busca, filtra y reproduce cualquier sesión pasada.
Métricas de Inferencia — mira a dónde van tus tokens
Cada llamada a prism_infer rastrea qué modelo la manejó (Ollama local vs. nube) y cuántos tokens se consumieron. Cuando guardas una sesión, Prism muestra un resumen:
📊 Inference Metrics (this session):
Total calls: 12 — Local: 10 (83%) | Cloud: 2 (17%)
Prompt tokens: 7,840 evaluated / 8,420 submitted est.
Completion tokens: 3,150
Cloud tokens saved (est.): 11,570 — token volume handled locally instead of cloud
Avg latency: 1,240ms
By model:
prism-coder:27b: 6 calls, 7,200 tokens, avg 1,800ms
prism-coder:9b: 4 calls, 2,870 tokens, avg 620ms
synalux-27b: 2 calls, 1,500 tokens, avg 1,100ms
Tokens de nube guardados es la métrica de enrutamiento honesta — se acumula solo cuando Ollama local maneja una llamada que de otro modo habría ido a la inferencia en la nube de Synalux. Una versión compacta aparece en línea después de cada 5ª llamada a prism_infer: 📊 local 10 (83%) · cloud 2 (17%) · ~11,570 tok · avg 1,240ms · 11,570 cloud tok saved.
Las llamadas locales usan recuentos reales de tokens de Ollama (prompt_eval_count / eval_count de Ollama); las llamadas en la nube usan estimaciones de char/4. Las métricas se rastrean localmente — sin dependencia del portal, sin variables de entorno, funciona sin conexión. Los datos por llamada también se reenvían al portal de Synalux como análisis de mejor esfuerzo (independiente de la visualización).
Detección de Desviación de Sesión
Las sesiones largas de agente pueden alejarse de su objetivo original. session_detect_drift compara el trabajo actual con el objetivo declarado y devuelve on_track / minor_drift / major_drift para que el agente pueda autocorregirse.
Verificación de Comportamiento — detecta ediciones incorrectas antes de que ocurran
Los agentes de IA aplican patrones de listas de verificación sin comprender el impacto en el mundo real. La herramienta verify_behavior desafía al agente con un escenario que debe responder antes de editar — forzándolo a pensar en lo que experimentará el usuario final.
Agent: "I'll revert this kitchen display change"
Prism: "⚠️ Scenario: A cook sees a 3-item ticket. One item is voided.
What should the cook see after the void?"
Agent: "The ticket stays visible with the remaining 2 items."
Prism: "Correct — your revert would hide the ticket entirely."
17 dominios integrados (facturación, autenticación, pedidos, clínico, RRHH y más). Dominios personalizados por espacio de trabajo en Enterprise. Sin enganches necesarios — funciona en cualquier cliente MCP.
Viaje en el Tiempo
Revierte a cualquier estado de sesión anterior. Compara diferencias entre versiones. Restaura un estado conocido-bueno con un clic.
Enrutamiento Cognitivo
Tres tipos de memoria, ordenados automáticamente: episódica (lo que pasó — registros de sesión, decisiones), semántica (lo que es verdad — hechos, arquitectura) y procedimental (cómo hacer X — flujos de trabajo, patrones). Cuando buscas, el enrutador elige el almacén correcto en lugar de volcar todo.
Mente Colmena Multiagente
Coordina múltiples agentes de IA trabajando en el mismo proyecto. Cada agente tiene su propia sesión, pero comparten memoria a través del grafo de conocimiento. El Radar de Colmena muestra el estado del agente, las tareas y la actividad en tiempo real.
Búsqueda Neuronal
Busca en todas las memorias con resultados resaltados, edición del grafo de conocimiento y métricas de densidad de memoria.
Local-primero y privacidad
El nivel gratuito se ejecuta completamente en tu máquina. Los niveles de pago añaden sincronización en la nube a través del portal de Synalux, que es lo que permite la memoria entre dispositivos y el intercambio en equipo.
| Nivel local (gratuito) | Nivel en la nube (de pago) | |
|---|---|---|
| Almacenamiento de memoria | SQLite local | Portal de Synalux (respaldado por Supabase) |
| Inferencia | Modelos Ollama locales | Modelos locales + respaldo Gemini 3.6 Flash |
| Claves API requeridas | Ninguna | Clave de suscripción de Synalux |
| Búsqueda web / raspado | No incluido | Vía portal de Synalux (claves de proveedor en el servidor) |
| Lo que sale de tu máquina | Nada | Texto de memoria, rutas de archivo, consultas de búsqueda y avisos/borradores de inferencia cuando se usa su función en la nube, enviados al portal a través de TLS. Las escrituras de memoria en la nube están redactadas de PHI; las solicitudes de inferencia y enrutamiento son transitorias. |
| Funciona sin conexión | ✅ | Funciones locales sí; sincronización/nube no |
Manejo de datos sensibles. Las escrituras de memoria en la nube pasan por redacción
automática (SSN, fechas de nacimiento, números de registro médico, números de teléfono, correos electrónicos
e identificadores clínicos se eliminan antes del almacenamiento). La inferencia en la nube y la
corrección de ruta envían la solicitud a través de TLS para su procesamiento y no la almacenan
como memoria de Prism; usa route_guard: "local" o el nivel local para un
aislamiento total. Enterprise incluye un Acuerdo de Asociación Comercial HIPAA.
Modelos
La flota prism-coder usa Qwen3.5 para el enrutamiento de herramientas MCP Y la inferencia general. El 9B y el 27B están ajustados con LoRA (r=128, las 64 capas incluyendo DeltaNet); el 2B y el 4B usan Qwen3.5-4B estándar en diferentes niveles de cuantización. El 27B obtuvo 100% en nuestra suite interna de 115 casos de enrutamiento de herramientas y 100% en una evaluación interna de codificación de 15 problemas, a un costo de inferencia de $0. Estas son evaluaciones auto-ejecutadas, no envíos a la tabla de clasificación BFCL.
prism_infer admite tres modos: route (enrutamiento de herramientas, rápido, sin pensar), chat (conversación con pensamiento) y code (generación de código con pensamiento). En los modos de chat/código, el modelo usa bloques <think> para el razonamiento de cadena de pensamiento, que se eliminan antes de que se sirva la respuesta. Si el modelo local falla un control de calidad (vacío, solo-pensamiento o truncado), los niveles de pago escalan automáticamente a Gemini 3.6 Flash a través del portal de Synalux.
Cada resultado del modo de ruta se analiza localmente y se verifica contra allowed_tools
antes de que llegue al host. Las llamadas malformadas o no anunciadas se convierten en NO_TOOL.
Con route_guard: "auto" (el predeterminado), los planes Standard y superiores también envían
un borrador bien formado para una de las siete herramientas entrenadas de Prism—o un borrador
no anunciado que puede necesitar corrección—a Synalux para una corrección determinista
autenticada. Las herramientas de host personalizadas anunciadas permanecen locales. Establece
route_guard: "local" para una ruta completamente en el dispositivo.
| Modelo | Etiqueta Ollama | Tamaño | Visión | Precisión de enrutamiento¹ | Rol | Nivel de enrutamiento automático |
|---|---|---|---|---|---|---|
| Qwen3.5-4B Q4_K_S | prism-coder:2b | 3.3 GB | ✅ | 100% | En el dispositivo / RAM más baja (4.5 GiB libres) | Gratuito |
| Qwen3.5-4B Q4_K_M | prism-coder:4b | 3.5 GB | ✅ | 100% | Verificador (5.2 GiB libres) | Gratuito |
| Qwen3.5-9B (LoRA) | prism-coder:9b | 6.7 GB | ✅ | 95.7%² | Enrutador predeterminado / caballo de batalla (9 GiB libres) | Standard+ |
| Qwen3.5-27B (LoRA) | prism-coder:27b | 16.8 GB | — | 100% | Código complejo / calidad (21 GiB libres) | Advanced+ |
¹ Auto-ejecutado en una suite estrecha de 115 casos de selección de herramientas MCP, temperature: 0,
medido a través de la ruta de llamada que prism_infer realmente usa (/api/chat, la
plantilla propia de cada modelo). Dice que estos modelos eligen la herramienta correcta en nuestra propia evaluación,
nada más — no es una medida de capacidad general, ni un resultado de
benchmark independiente. Revisiones anteriores de esta tabla citaban 99.1–100% de un
harness que improvisaba un aviso ChatML con raw: true, omitiendo la
plantilla; esos números describían una ruta que ningún llamador ejercita. Advertencias completas de metodología
a continuación.
² El 9B es el único nivel que razona antes de responder, y se mide con
razonamiento habilitado: 95.7% con pensamiento, 83.5% sin. prism_infer establece esto
por nivel (MODEL_TIERS.prefersThinking), por lo que los llamadores obtienen la ruta del 95.7% por
defecto. El razonamiento cuesta aproximadamente 600 tokens, por eso el 9B también lleva un
piso local de 2,048 tokens.
Visión. Las etiquetas 2B/4B/9B incluyen una capa separada de projector (0.68–0.92 GB)
y leen imágenes; el 27B es solo texto. prism_infer sondea esa capa y
omite un nivel sin visión en lugar de enviarle una imagen — preguntado directamente, un modelo
solo de texto aún responderá con confianza sobre píxeles que nunca recibió.
Ejercitado contra los modelos reales en tests/integration/visionScreenshot.test.ts.
Estos niveles controlan la selección automática de prism_infer, no a Ollama en sí. Cualquier
usuario puede ejecutar cualquier modelo descargado en el dispositivo directamente a través de Ollama en cada
plan.
Pesos: huggingface.co/dcostenco (GGUF público). La latencia depende del tamaño del modelo y del hardware; consulta Puntos de referencia para medirla en tu propia máquina en lugar de confiar en un número impreso.
Cascade
query → prism-coder:9b (local router, default)
→ prism-coder:4b (grounding verifier)
→ prism-coder:2b (iPhone / mobile, auto-selected by RAM)
→ prism-coder:27b (complex tasks, on demand)
→ Gemini 3.6 Flash cloud fallback (paid tiers, for max quality)
Verificación multicapa
Las respuestas de salida de ruta y las basadas en evidencia utilizan compuertas separadas. Cada nivel obtiene el analizador de ruta local y el registro de herramientas anunciadas; los planes Standard y superiores pueden añadir la corrección de ruta determinista privada. La verificación de evidencia es opcional (o automática cuando se proporciona evidencia) y permanece separada de la selección de ruta.
| Capa | Qué | Modelo | Costo |
|---|---|---|---|
| L1 | Compuerta de seguridad de crisis/médica | Ninguno (regex) | 0 ms |
| L3-Registro | Validación de sobre + aplicación de herramientas anunciadas (todos los niveles) | Ninguno | 0 ms |
| L3-Ruta | Corrección de ruta determinista autenticada (Standard+) | Ninguno | Latencia de red |
| L3-Tier0 | Fundamentación de enteros (pertenencia a conjuntos) | Ninguno (determinista) | 0 ms |
| L3-Tier2 | Verificador NLI (afirmación → ENTAILED/NEUTRAL/CONTRADICTED) | prism-coder:2b | ~200 ms |
| L4 | Juez de alucinaciones (opt-out para clínico) | prism-coder:4b | ~500 ms |
Cierre ante fallo en la ruta verificada: cuando el verificador de fundamentación se ejecuta, el tiempo de espera, la ambigüedad o la falta de evidencia producen un rechazo, no un paso directo. Si la corrección de ruta de pago no está disponible, el registro local aún bloquea llamadas malformadas y no anunciadas e informa una ruta permitida preservada como degradada.
Puntos de referencia
Los números de referencia publicados son resúmenes concisos de la evaluación determinista interna. Los evaluadores, los casos exhaustivos, las matrices exactas de enrutamiento por niveles y las salidas brutas del modelo permanecen en el repositorio privado de ingeniería y no se incluyen en el paquete npm ni en el árbol de código fuente público.
Evaluación de enrutamiento. En un conjunto reducido de selección de herramientas, la flota logró resultados casi saturados en tres semillas. Esto mide la fiabilidad del enrutamiento MCP sin conexión, no la capacidad general del modelo.
| Modelo | Precisión de enrutamiento | Notas |
|---|---|---|
| prism-coder:2b (Q4_K_S) | 100% | El 2B fue recuantizado cuando se lanzó la visión; el antiguo 99,1% era Q3_K_M |
| prism-coder:4b | 100% | |
| prism-coder:9b | 95,7% con razonamiento | 83,5% sin — el único nivel donde esto difiere |
| prism-coder:27b | 100% | |
| Claude (frontier, misma evaluación) | ~98% | Más fuerte en todos lados fuera de esta tarea reducida |
Medido a través de /api/chat con la plantilla propia de cada modelo — la ruta que usa prism_infer. temperature: 0, por lo que las tres semillas solo reordenan el orden de los casos y no pueden discrepar; revisiones anteriores citaron ese acuerdo como confirmación, lo que nunca fue.
Mejora de memoria (LoCoMo-Plus, autopublicado). Un punto de referencia separado de diálogo de contexto largo (dcostenco/Locomo-Plus) mide cuánto ayuda la memoria estructurada a un modelo base a retener contexto de varios días. Los resultados muestran grandes ganancias cuando un modelo se combina con la memoria de Prism en comparación con ejecutarse en bruto. Ten en cuenta que este punto de referencia es creado, ejecutado y juzgado por LLM por este proyecto — trátalo como una demostración reproducible, no como un resultado independiente de terceros, y ejecútalo tú mismo con los comandos de ese repositorio.
Evaluación de generación de código. En una pequeña comprobación de ejecución determinista de julio de 2026, el 9B local pasó 2/3 tareas; el 27B local y Gemini 3.6 Flash pasaron cada uno 3/3. Esta es una señal de regresión autopublicada, no una tabla de clasificación independiente ni una afirmación de equivalencia amplia de modelos.
Escalada en la nube (cloud_fallback: true)
Prism siempre intenta primero un modelo local elegible. Si la compuerta de calidad detecta una respuesta vacía, truncada, solo de pensamiento o en bucle, los niveles de pago pueden reintentar la solicitud a través de Gemini 3.6 Flash. El enrutamiento del nivel gratuito permanece local e informa el resultado de la compuerta de calidad sin realizar una llamada a la nube.
Por qué Prism Coder
vs asistentes de codificación con IA
Las capacidades y planes de los productos cambian con frecuencia. La comparación a continuación se limita intencionalmente a diferencias documentadas públicamente; no es una afirmación de que otro producto carezca de una característica no listada.
Leyenda: ✅ documentado, ◐ condicional o dependiente del plan, — no comparado, ? verificar con el proveedor.
| Capacidad | Prism Coder | GitHub Copilot | Cursor | Amazon Q Developer |
|---|---|---|---|---|
| Inferencia local/de peso abierto | ✅ | ◐ | ◐ | ◐ |
| Flujo de trabajo sin conexión | ✅ | ◐ | ? | ? |
| Memoria entre sesiones | ✅ | ◐ (documentación) | ◐ | ◐ |
| Integración MCP | ✅ | ✅ (documentación) | ✅ (precios) | ◐ |
| Enrutamiento de modelos local primero | ✅ | ◐ | ◐ | ◐ |
| Comprobaciones de deriva de sesión y fundamentación | ✅ | — | — | — |
| Superficie de configuración | ✅ cinco hosts | ✅ CLI/IDE | ✅ editor/agentes | ✅ IDE/CLI (resumen) |
| Modelo de precios | ✅ niveles Synalux | ◐ | ◐ (precios) | ✅ gratis + $19 Pro (precios) |
Los términos de cumplimiento, contractuales y de precios específicos de Prism están documentados en el acuerdo de servicio de Synalux. No infiera el estado de HIPAA, BAA o manejo de datos de un competidor a partir de esta tabla.
vs herramientas locales de IA / memoria
| Característica | Prism Coder | Ollama | LM Studio | Mem0 | Zep |
|---|---|---|---|---|---|
| Cascada de inferencia local | ✅ | ✅ tiempo de ejecución | ✅ aplicación | — | — |
| Respaldo en la nube | ✅ opcional | — | ◐ dependiente del proveedor | ◐ | ◐ |
| Memoria persistente | ✅ | — | ◐ contexto de proyecto | ✅ | ✅ |
| Integración de conocimiento/herramientas | ✅ MCP + ingesta | ◐ APIs | ◐ integraciones | ✅ SDK/API | ✅ SDK/API |
| Servidor MCP | ✅ nativo | — | ◐ integración de cliente | ◐ integración de cliente | ◐ integración de cliente |
Precios
Los niveles publicados actuales de Prism se enumeran a continuación. Los precios de los competidores dependen del uso y del plan, así que consulte directamente al proveedor: https://github.com/features/copilot/plans, Cursor y Amazon Q Developer.
Planes
Todos los modelos en el dispositivo son gratuitos para ejecutarse localmente a través de Ollama en todos los niveles. Una suscripción controla las funciones en la nube, los techos más altos de enrutamiento automático y los límites aumentados. Los modelos en el dispositivo se ejecutan a través de tu Ollama independientemente del plan; el techo se aplica solo a la inferencia en la nube y al enrutamiento automático de prism_infer.
| Gratis | Standard $19/mes | Advanced $49/mes | Enterprise $99/mes | |
|---|---|---|---|---|
| Asientos | 1 | 1 | hasta 5 | hasta 25 |
Techo automático de prism_infer | hasta 4b | hasta 9b | hasta 27b | hasta 27b |
| Inferencia en la nube | -- | ✅ | ✅ | ✅ (prioridad) |
| Cloud Coder (IDE web) | -- | ✅ | ✅ | ✅ (prioridad) |
| Búsqueda en la nube | -- | ✅ | ✅ | ✅ |
| Máximo de tokens de salida | 512 | 1,024 | 2,048 | 4,096 |
| Respaldo en la nube | -- | Gemini 3.6 Flash | Gemini 3.6 Flash | Gemini 3.6 Flash (prioridad) |
| Verificador de fundamentación (verificación de hechos de la salida de IA) | -- | ✅ | ✅ | ✅ |
| Sincronización de memoria (nube) | -- | ✅ | ✅ | ✅ |
| Conocimiento / memoria de sesión | limitado | ilimitado | ilimitado | ilimitado |
| Panel de análisis | -- | ✅ | ✅ | ✅ |
| HIPAA BAA | -- | -- | -- | ✅ |
Prueba gratuita de 14 días en planes de pago. 25+ asientos: contactar ventas
Cómo lo usan los agentes
Prism expone más de 40 herramientas MCP. El bucle de memoria central:
| Herramienta | Qué hace |
|---|---|
session_bootstrap | Saludo de primer turno sin hooks y contexto configurado desde el panel |
session_load_context | Recarga explícita de proyecto o respaldo de inicio para servidores antiguos |
session_save_ledger | Agregar una entrada de registro de sesión inmutable |
session_save_handoff | Guardar el estado en vivo para la próxima sesión |
knowledge_search | Búsqueda semántica + por palabras clave en todas las memorias |
query_memory_natural | Preguntas y respuestas con prioridad de memoria y respaldo de fuente viva fundamentada en niveles de pago |
session_detect_drift | Detectar cuando una sesión se ha desviado de su objetivo |
verify_behavior | Desafío de escenario previo a la edición: detectar cambios malos antes de que ocurran |
knowledge_ingest | Enseñar a Prism un código base o documento |
prism_infer | Inferencia local primero (modos de ruta/chat/código, pensamiento, escalada en la nube) |
inference_metrics | Delegación de sesión o estadísticas locales/nube del panel MCP + VS Code persistido |
query_memory_natural — memoria primero, fuentes actuales cuando sea necesario
Haz una pregunta en lenguaje natural en lugar de elegir herramientas separadas de memoria, búsqueda, raspado e inferencia. Prism primero busca en su memoria de proyecto acumulada. Si no existe evidencia útil, los niveles de pago ejecutan una búsqueda limitada de Synalux (Firecrawl, fundamentación de Búsqueda de Google de Gemini 3.6, luego respaldo heredado de Brave), resuelven y preservan las URL de origen, raspan la página principal y piden a un modelo local Prism Coder seguro para RAM que responda con esa evidencia. El verificador Gemini 3.6 de nivel de pago comprueba el borrador antes de servirlo. El contenido clínico reservado o incierto nunca entra en la ruta local fundamentada en la web; sigue el límite de seguridad de nube-o-rechazo de Prism.
prism_infer — inferencia local primero con escalada en la nube
prism_infer({
prompt: "Write a binary search in Python",
mode: "code", // "route" | "chat" | "code"
think: true, // enable <think> reasoning (default: true for chat/code)
model_ceiling: "27b", // use the quality tier
})
// → 27B generates code locally ($0), with thinking for quality
// → If quality gate fails + paid tier → auto-escalate to Gemini 3.6 Flash
| Modo | Pensar | Modelo | Caso de uso |
|---|---|---|---|
route | Apagado (rápido) | 9B predeterminado | Enrutamiento de herramientas MCP |
chat | Encendido | 27B preferido | Conversación, razonamiento |
code | Encendido | 27B preferido | Generación de código, depuración |
Las firmas completas de TypeScript viven en src/tools/; la arquitectura en docs/ARCHITECTURE.md.
inference_metrics — ve el uso de tu modelo local bajo demanda
Llama a inference_metrics en cualquier momento durante la sesión para ver cuántas llamadas de prism_infer se ejecutaron localmente vs en la nube. Usa period: "all" para importar atómicamente el spool del panel VS Code de Synalux e incluir su tasa de servicio local en los totales persistidos:
📊 Inference Metrics — local-model delegation (this session):
Total calls: 5 — Local: 5 (100%) | Cloud: 0 (0%)
Tokens: 1,240 in + 380 out = 1,620 total
Avg latency: 420ms
By model:
prism-coder:27b: 3 calls, 1,100 tokens, avg 520ms
prism-coder:9b: 2 calls, 520 tokens, avg 270ms
El mismo bloque también aparece automáticamente en las respuestas de session_save_ledger y session_save_handoff al final de la sesión.
Nota: La vista de sesión predeterminada rastrea la delegación de prism_infer de este proceso MCP. La vista de todos los tiempos combina llamadas MCP persistidas con inferencia del panel VS Code de Synalux. Ninguna vista incluye el gasto de tokens del propio agente anfitrión; usa el informe de uso nativo de ese anfitrión cuando esté disponible.
Delegación de modelo local (predeterminada)
Prism enruta trabajo acotado que califica (clasificación masiva, extracción de campos, formato mecánico, generación de pruebas y tareas similares) a modelos locales de Ollama antes que a cualquier subagente nativo del anfitrión. El agente verifica gate_outcome, valida el resultado y continúa en el hilo del anfitrión actual cuando el trabajador local no está disponible, se niega o está degradado.
Pasa la memoria del proyecto cuando la subtarea depende de trabajo previo:
{
"prompt": "Generate the bounded regression-test cases.",
"project": "prism-mcp",
"context_depth": "standard",
"conversation_id": "<from session_bootstrap>",
"mode": "code",
"cloud_fallback": false,
"escalation": "report"
}
Omite context_depth para usar la configuración del panel. Desactiva el interruptor del Enrutador de Tareas del panel o establece PRISM_TASK_ROUTER_ENABLED=false para una exclusión explícita.
Protecciones:
- Local por defecto — se preserva una exclusión explícita del operador
- Nunca delega: código/texto que se envía al usuario, lógica de seguridad/protección, planificación/razonamiento, cualquier cosa donde una caída silenciosa de calidad no sea obvia
- Siempre verifica: comprueba
quality_gate_failedyused_cloudantes de confiar en la salida local
Cómo Prism sobrevive a la compactación de contexto
La ventana de contexto del LLM se trata como espacio de trabajo efímero; el estado duradero vive en el almacén persistente (SQLite localmente, el portal en la nube). Cada sesión comienza con una llamada obligatoria sin argumentos a session_bootstrap, por lo que Prism aplica la configuración de proyecto y rápida/estándar/profunda del panel antes de que el agente escriba una respuesta. Cuando un proyecto supera un umbral (predeterminado 50 entradas), session_compact_ledger resume las entradas antiguas en un resumen, archiva suavemente los originales y los enlaza en el gráfico. Ver docs/COMPACTION.md
CLI
prism load <project> # load session context
prism save # save ledger + handoff
prism search <query> # search code across repos (exact / regex / symbol / semantic)
prism review <files...> # AI code review — security, performance, style
prism scan <files...> # security scan — secrets, licenses, Dockerfile
prism browser ... # persistent local browser testing and structured automation
prism push # push local SQLite to the cloud backend
prism register-models # alias dcostenco/prism-coder:* -> prism-coder:*
prism browser — pruebas de navegador local
El paquete npm incluye el ejecutor de navegador Python/Playwright de Prism; no se requiere una aplicación Prism Browser separada ni un DMG. Añade una CLI estable orientada a agentes alrededor de Playwright con perfiles nombrados reutilizables, sesiones de pipe/REPL de múltiples acciones, registros de auditoría local redactados y scripts de precarga protegidos para aplicaciones locales. Usa el modo pipe o REPL cuando varias acciones deban compartir una sesión de página:
printf 'open http://127.0.0.1:3000\nwait-for #app\nread-dom #app\n' | \
prism browser --headless --local-only pipe
Las aplicaciones locales pueden cargar ayudantes de prueba repetibles previos a la navegación con --inject ./tests/browser-init.js. La inyección personalizada requiere --local-only; la navegación pública y las solicitudes no loopback se rechazan en ese modo. Instale el runtime local una vez con pip3 install playwright playwright-stealth y python3 -m playwright install chromium.
Use Playwright puro para suites autorizadas que necesiten sus APIs completas de aserción, trazado, fixtures y trabajadores paralelos. Use prism browser cuando un agente de IA necesite una sesión de navegador local pequeña, persistente y auditable a través de una CLI consistente. Los parches de compatibilidad son de mejor esfuerzo; no son una garantía de evasión de CAPTCHA. Consulte Pruebas locales de Prism Browser para la superficie de comandos, el modelo de seguridad y los casos de aceptación verificados.
prism search — búsqueda semántica de código
prism review — revisión de código con IA con comprobaciones HIPAA
prism scan — escáner de seguridad para secretos, Dockerfiles y licencias
Compañeros
Prism funciona junto con estas herramientas — use la que se adapte a su flujo de trabajo.
Web IDE — Prism Coder
Un IDE basado en navegador en synalux.ai/coder. Importe cualquier repositorio de GitHub y obtenga:
- Editor Monaco con pestañas múltiples, vista dividida, resaltado de sintaxis y atajos de teclado de VS Code
- Node.js en el navegador mediante WebContainer (su código se ejecuta en el sandbox del navegador, no en un servidor)
- Terminal integrada — shell de WebContainer en el navegador; PTY de servidor opcional mediante WebSocket cuando se conecta a un servidor de desarrollo
- Modo Agente de IA — describa una tarea y el agente crea archivos, ejecuta comprobaciones de tipos y verifica
- Control de código fuente — commit, rama, push/pull, stash, blame, gestión de etiquetas
- Live Share — edición colaborativa en tiempo real con enlaces de sesión
- Depurador de Node.js mediante el Protocolo de Chrome DevTools
- Ejecutor de tareas (compatible con
tasks.jsonde VS Code), panel de Problemas (diagnósticos de Monaco) - i18n en 12 idiomas — localización completa de la interfaz
Los planes Standard+ obtienen IA en la nube y límites de tarifa más altos. El nivel gratuito funciona con Ollama local. La ejecución de código usa el WebContainer en el navegador por defecto; Live Share y la terminal PTY opcional se conectan a servidores externos cuando se habilitan explícitamente.
Extensión de VS Code — Synalux
IA con memoria aumentada dentro de VS Code con funciones de gestión de práctica clínica. Instale desde el marketplace:
code --install-extension synalux-ai.synalux
Chat de IA, entrada de voz, generador de notas SOAP, colaboración en equipo y videollamadas — todo dentro de VS Code. Enruta a través de Ollama local por defecto; nube en niveles de pago.
Detalles de funciones
- IA: Participante de chat (
@synalux), pipeline multiagente, entrada de voz, cambio de modelo, 10 tonos - Clínico: Generador de notas SOAP, acceso basado en roles, firma de documentos, tablero de pacientes
- Colaboración: Chat de equipo, mensajes directos, videollamadas, tablero de clientes, constructor visual, DevContainers
- Privacidad: Ollama local por defecto.
preferLocal=trueintenta local primero. BAA empresarial disponible.
Prism AAC
Aplicación de comunicación para usuarios no hablantes, impulsada por la flota prism-coder en el dispositivo para la predicción de frases. macOS / iOS / web.
Vea github.com/dcostenco/prism-aac
Hooks de Git (Portátiles)
Hooks de seguridad pre-commit y pre-push que funcionan con cualquier editor, cualquier herramienta de IA y CLI directa. Sin dependencia de Claude Code.
# Install in all repos (one-time)
bash hooks/install.sh
# Or install manually in a single repo
cp hooks/pre-commit .git/hooks/pre-commit && chmod +x .git/hooks/pre-commit
cp hooks/pre-push .git/hooks/pre-push && chmod +x .git/hooks/pre-push
| Hook | Qué comprueba | Modo |
|---|---|---|
pre-commit | Código muerto, servicios huérfanos, código de andamiaje, autenticación faltante | PRECOMMIT_MODE=advisory|block|off |
pre-push | Auditoría de seguridad de 19 reglas (SSRF, inyección SQL, secretos, IDOR, etc.) | PREPUSH_MODE=advisory|block|off |
El modo predeterminado es advisory (advertir pero permitir). Establezca *_MODE=block para aplicación estricta. Los hooks buscan primero scripts de auditoría completos en el repositorio (hooks/lib/), luego el respaldo ~/.claude/hooks/, y luego comprobaciones mínimas en línea.
Autoalojamiento (Empresarial)
Ejecute la pila completa de modelos en su propio hardware — sin nube, soberanía total de datos.
Requisitos: Mac M2 Pro+ (48 GB recomendados) o Linux + GPU NVIDIA, además de Ollama.
ollama pull dcostenco/prism-coder:9b # default router
export LOCAL_LLM_URL=http://localhost:11434
El enrutamiento autoalojado permanece local: 9b → 4b en escritorio/servidor y 2b en móvil/iPhone, con 27B disponible cuando se instala y seguro para RAM. Los niveles de pago alojados por Synalux pueden usar Gemini 3.6 Flash como respaldo en la nube. Para iOS u otra máquina en la misma red, ejecute OLLAMA_HOST=0.0.0.0 ollama serve y apunte LOCAL_LLM_URL a la IP del host.
Referencia de configuración
| Variable | Propósito | Predeterminado |
|---|---|---|
PRISM_STORAGE | local / synalux / supabase / auto | auto |
PRISM_SYNALUX_API_KEY | Clave de portal de nivel de pago (synalux_sk_...) | -- (local si no se establece) |
LOCAL_LLM_URL | Punto de conexión de Ollama | http://localhost:11434 |
PRISM_FORCE_LOCAL | Forzar SQLite local independientemente de las credenciales | false |
TELEMETRY_WRITE_TOKEN | Token de análisis del portal (opcional — la visualización de métricas funciona sin él) | -- |
Sin variables establecidas, Prism se ejecuta completamente local. Con una suscripción activa de memoria en la nube, establezca PRISM_SYNALUX_API_KEY (y deje PRISM_STORAGE=auto) para usar el backend de Synalux; un nivel gratuito confirmado por el portal permanece en SQLite local.
Pruebas
npm test # full suite (vitest) — 95 files, 2841 tests
npm test -- --coverage # coverage report
La cobertura abarca la recuperación HRR, la ingesta de conocimiento, la cascada de inferencia y el verificador de fundamentos, las métricas de inferencia, la lista blanca de telemetría, la puerta de delegación, la compactación, el selector de modelos y los viajes de ida y vuelta de almacenamiento.
Migración: de local a la nube
Para mover el historial del nivel gratuito al portal de pago:
node scripts/migrate-local-to-portal.mjs --dry-run # preview, no network
PRISM_SYNALUX_API_KEY=synalux_sk_... \
node scripts/migrate-local-to-portal.mjs # push ledger + handoffs
Lee ~/.prism-mcp/data.db y envía entradas al portal mediante POST. Las entradas del libro mayor son de solo añadido y se deduplican en el servidor; las transferencias usan última escritura gana por proyecto. Volver a ejecutar en la misma base de datos es seguro. Esta es una migración de una sola vez, no un demonio de sincronización — después, establezca PRISM_STORAGE=synalux (o déjelo en auto).
Licencia y niveles
Este repositorio (el cliente Prism MCP) está licenciado bajo Apache-2.0.
Gratuito (sin cuenta)
| Característica | Detalles |
|---|---|
| Inferencia local | El uso directo de Ollama no tiene restricciones; el enrutamiento automático prism_infer selecciona hasta 4B |
| Memoria de sesión | Sesiones persistentes, transferencias, libro mayor — todo en SQLite local |
| Búsqueda de conocimiento | Búsqueda semántica en el historial de sesiones |
| Habilidades | Todas las habilidades disponibles localmente (ejecute sync-skills.sh para poblarlas) |
| Detección de deriva | Recordatorios GATE 5 en el servidor |
De pago (suscripción a Synalux)
Todo lo del nivel gratuito, más:
| Característica | Detalles |
|---|---|
| Techo de modelo | Enrutamiento automático prism_infer hasta 27B + respaldo de Gemini 3.6 Flash cuando el local no está disponible |
| Enrutamiento de habilidades | El portal resuelve qué habilidades cargar según su proyecto y prompt |
| Memoria entre dispositivos | Sincronización en la nube de Supabase — las sesiones sobreviven entre máquinas |
| Verificador de fundamentos | Verificación L3 NLI en las salidas del modelo |
| Funciones de equipo | Hivemind multiagente, colaboración en espacio de trabajo |
El nivel de pago añade enrutamiento inteligente — el portal de Synalux determina qué habilidades son relevantes para su proyecto y prompt actuales, para que su agente obtenga experiencia de dominio (patrones de stripe, protocolos de entrenamiento, estándares clínicos) en lugar de cargar todo. Los usuarios gratuitos con el repositorio pueden ejecutar sync-skills.sh para poblar todas las habilidades localmente; el enrutamiento de pago añade selección consciente del proyecto y del prompt.
- Las contribuciones requieren firmar el CLA.
- "Prism" y "Synalux" son nombres comerciales de Synalux LLC; la licencia Apache no otorga derechos de marca (ver §6 de la licencia).
Cambio de licencia (v20)
A partir de esta versión, prism-mcp se relice bajo Apache-2.0 en lugar de AGPL-3.0. Las versiones anteriores permanecen bajo AGPL-3.0. Los forks existentes conservan todos los derechos recibidos bajo la licencia original.
| Producto | Licencia |
|---|---|
| prism-mcp-server (este repositorio) | Apache-2.0 |
| Extensión de VS Code (synalux-ai.synalux) | BSL-1.1 |
| Web IDE (synalux.ai/coder) | Términos de servicio de Synalux |
| Prism AAC | Apache-2.0 |
Este repositorio está licenciado bajo Apache-2.0. Las funciones en la nube (inferencia alojada, memoria entre dispositivos, funciones de equipo) son proporcionadas por el servicio en la nube de Synalux bajo términos separados.
© 2026 Synalux, LLC.