Skip to content

Descripción general de la arquitectura

Triggerfish es una plataforma segura de agentes de IA multicanal con un único invariante fundamental:

SEGURIDAD La seguridad es determinista y sub-LLM. Cada decisión

de seguridad la toma código puro que el LLM no puede eludir, anular ni influenciar. El LLM tiene cero autoridad: solicita acciones; la capa de políticas decide. :::

Esta página ofrece una visión general de cómo funciona Triggerfish. Cada componente principal enlaza a una página dedicada con explicaciones detalladas.

Arquitectura del sistema

Arquitectura del sistema: los canales fluyen a través del enrutador de canales hacia el Gateway, que coordina el gestor de sesiones, el motor de políticas y el bucle del agente

Flujo de datos

Cada mensaje sigue esta ruta a través del sistema:

Flujo de datos: pipeline de 9 pasos desde el mensaje entrante a través de los hooks de políticas hasta la entrega saliente

En cada punto de aplicación, la decisión es determinista: la misma entrada siempre produce el mismo resultado. No hay llamadas al LLM dentro de los hooks, no hay aleatoriedad y no hay forma de que el LLM influya en el resultado.

Componentes principales

Sistema de clasificación

Los datos fluyen a través de cuatro niveles ordenados: RESTRICTED > CONFIDENTIAL > INTERNAL > PUBLIC. La regla fundamental es la prohibición de escritura descendente (no write-down): los datos solo pueden fluir hacia un nivel de clasificación igual o superior. Una sesión CONFIDENTIAL no puede enviar datos a un canal PUBLIC. Sin excepciones. Sin anulación del LLM.

Más información sobre el sistema de clasificación.

Motor de políticas y hooks

Ocho hooks de aplicación deterministas interceptan cada acción en puntos críticos del flujo de datos. Los hooks son funciones puras: síncronas, registradas e infalsificables. El motor de políticas admite reglas fijas (nunca configurables), reglas ajustables por el administrador y cláusulas de escape declarativas en YAML para empresas.

Más información sobre el motor de políticas.

Sesiones y taint

Cada conversación es una sesión con seguimiento de taint independiente. Cuando una sesión accede a datos clasificados, su taint se eleva a ese nivel y nunca puede disminuir dentro de la sesión. Un reinicio completo borra el taint Y el historial de conversación. Cada elemento de datos lleva metadatos de procedencia a través de un sistema de seguimiento de linaje.

Más información sobre sesiones y taint.

Gateway

El Gateway es el plano de control central: un servicio local de larga ejecución que gestiona sesiones, canales, herramientas, eventos y procesos de agentes a través de un endpoint WebSocket JSON-RPC. Coordina el servicio de notificaciones, el planificador cron, la ingesta de webhooks y el enrutamiento de canales.

Más información sobre el Gateway.

Almacenamiento

Todos los datos con estado fluyen a través de una abstracción unificada StorageProvider. Las claves con espacio de nombres (sessions:, taint:, lineage:, audit:) mantienen las responsabilidades separadas mientras permiten intercambiar backends sin tocar la lógica de negocio. El predeterminado es SQLite WAL en ~/.triggerfish/data/triggerfish.db.

Más información sobre el almacenamiento.

Defensa en profundidad

La seguridad se distribuye en 13 mecanismos independientes, desde la autenticación de canales y el acceso a datos con permisos, pasando por el taint de sesión, hooks de políticas, sandboxing de plugins, sandboxing de herramientas del sistema de archivos y registro de auditoría. Ninguna capa es suficiente por sí sola; juntas forman una defensa que se degrada con elegancia incluso si una capa se ve comprometida.

Más información sobre la defensa en profundidad.

Principios de diseño

PrincipioSignificado
Aplicación deterministaLos hooks de políticas usan funciones puras. Sin llamadas al LLM, sin aleatoriedad. La misma entrada siempre produce la misma decisión.
Propagación de taintTodos los datos llevan metadatos de clasificación. El taint de sesión solo puede escalar, nunca disminuir.
Sin escritura descendenteLos datos no pueden fluir a un nivel de clasificación inferior. Nunca.
Auditar todoTodas las decisiones de políticas se registran con contexto completo: marca temporal, tipo de hook, ID de sesión, entrada, resultado, reglas.
Los hooks son infalsificablesEl LLM no puede eludir, modificar ni influenciar las decisiones de los hooks de políticas. Los hooks se ejecutan en código por debajo del LLM.
Aislamiento de sesionesCada sesión rastrea el taint de forma independiente. Las sesiones en segundo plano se inician con taint PUBLIC nuevo. Los workspaces están aislados.
Abstracción de almacenamientoNingún módulo crea su propio almacenamiento. Toda la persistencia fluye a través de StorageProvider.

Pila tecnológica

ComponenteTecnología
Entorno de ejecuciónDeno 2.x (TypeScript modo estricto)
Plugins PythonPyodide (WASM)
PruebasEjecutor de pruebas integrado de Deno
CanalesBaileys (WhatsApp), grammY (Telegram), Bolt (Slack), discord.js (Discord)
Automatización webpuppeteer-core (CDP)
VozWhisper (STT local), ElevenLabs/OpenAI (TTS)
AlmacenamientoSQLite WAL (predeterminado), backends empresariales (Postgres, S3)
SecretosLlavero del SO (personal), integración con vault (empresa)

Triggerfish no requiere herramientas de compilación externas, ni Docker,

ni dependencia de la nube. Se ejecuta localmente, procesa datos localmente y otorga al usuario soberanía total sobre sus datos. :::