En desarrollo activo

Alyss

Agente personal soberano

Mi agente personal y la suite de productividad que lo rodea.

Corre al 100% en mi propia infraestructura.

Captura de la SPA de Alyss: el chat conversacional a pantalla completa con streaming

El sistema, en cifras

10
paneles funcionales
correo · agenda · RSS · música…
3
tiers cognitivos
cognitive · executor · reasoning
0
datos fuera sin permiso
egress bloqueado por defecto
100%
infraestructura propia
hardware doméstico · ROCm + CUDA

La suite

Una suite con el chat integrado.

Correo, agenda, RSS, música, previsión meteorológica… son paneles que manejas como en cualquier aplicación —clicar, abrir, arrastrar—, pero también por voz o por chat.

Todo cuelga del mismo núcleo y comparte estado: el chat ve lo que tienes abierto. Le dices «resume este correo» o «mueve esta cita» y sabe a qué te refieres, sin pegarle el contexto a mano. Esa es la simbiosis: paneles y conversación sobre la misma base.

Suite multipanel de Alyss: el panel de El Tiempo y el chat compartiendo estado

El motor

Un pipeline tipado que verifica antes de responder.

Un orquestador PydanticAI coordina varios modelos locales por tiers cognitivos. El detector de herramientas y el respondedor corren en paralelo; después, la respuesta pasa por verificación antes de salir.

Las herramientas son ejecutores deterministas: nunca llaman al LLM. La inteligencia vive en el pipeline, no escondida dentro de cada función.

Un turno, paso a paso

 consulta
 │
 ▼
 tool_detector ∥ core_responder      · executor ∥ cognitive · streaming
 │
 ├─ sin tools → el turno lo cierra core_responder
 │
 ▼ con tools
 param_extractor      · intent_parsers en paralelo
 ▼
 tools deterministas  · nunca llaman al LLM
 ▼
 consolidator         · confidence_globalgrounding            · guardarraíl · executorauditorretrier    · solo si confidence < 0.7 · reasoning ×2
 ▼
 data_integrator      · integra texto personal + datos · cognitive
 ▼
 channel_adapter      · web · voz · telegram
 ▼
 respuesta

Observabilidad

Cada paso del pipeline emite traza a Langfuse: latencias, coste por modelo, qué herramienta se llamó y con qué argumentos.

Traza del pipeline de Alyss en Langfuse: spans con latencias y tokens por paso, del detector paralelo al data_integrator

Estado real

Funciona hoy

  • Chat conversacional con streaming (SSE)
  • Recordatorios y notificaciones proactivas
  • Panel de correo (IMAP directo, local-first)
  • Panel de RSS, El Tiempo y Música
  • Voz bidireccional: TTS (Fish Speech) + STT (faster-whisper)
  • Búsqueda web soberana (SearXNG) e investigación profunda
  • Hipertimesia: archivo inmutable de conversaciones

En desarrollo

  • Integración de Sama (memoria) en el pipeline
  • Nuevos dominios para la suite de paneles
  • Re-medición de rendimiento sobre ROCm / 7900 XTX

Stack

Orquestación
Python · asyncio · PydanticAI
Modelos
Gemma 4 26B · Qwen3 14B vía LiteLLM
Frontend
SvelteKit 5 (runes mode)
Datos
Postgres · SQLite local-first
Hardware
AMD 7900 XTX (ROCm) + RTX 5060 Ti
Infra
Docker · Caddy · Langfuse · OpenTelemetry

Principios no negociables

  • Local-first: ningún dato personal sale sin decisión explícita.
  • Los contratos Pydantic son la verdad — nunca dicts sin tipar entre capas.
  • El flujo entre capas no se salta: las interfaces hablan con el core solo por HTTP.
  • Las herramientas son ejecutores deterministas: nunca llaman al LLM.
  • Observabilidad desde el primer día — cada paso emite traza a Langfuse.

El proceso, decisión a decisión

Más de 70 decisiones de arquitectura documentadas y razonadas. Cada reescritura y cada hito quedan escritos, paso a paso.