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 determinística y está por debajo del 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 de detalle dedicada.

Arquitectura del sistema

Arquitectura del sistema: los canales fluyen a través del Channel Router hacia el Gateway, que coordina el Session Manager, el Policy Engine y el Agent Loop

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 hooks de políticas hasta la entrega de salida

En cada punto de aplicación, la decisión es determinística — la misma entrada siempre produce el mismo resultado. No hay llamadas al LLM dentro de los hooks, no hay aleatoriedad ni 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 no write-down: los datos solo pueden fluir a 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 por parte del LLM.

Leer más sobre el sistema de clasificación.

Motor de políticas y hooks

Ocho hooks de aplicación determinística 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 soporta reglas fijas (nunca configurables), reglas ajustables por administradores y válvulas de escape declarativas en YAML para empresas.

Leer más 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 escala a ese nivel y nunca puede disminuir dentro de la sesión. Un reinicio completo elimina el taint Y el historial de conversación. Cada elemento de datos lleva metadatos de procedencia a través de un sistema de rastreo de linaje.

Leer más 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 programador cron, la ingesta de webhooks y el enrutamiento de canales.

Leer más 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 al tiempo que permiten intercambiar backends sin modificar la lógica de negocio. El valor predeterminado es SQLite WAL en ~/.triggerfish/data/triggerfish.db.

Leer más sobre el almacenamiento.

Defensa en profundidad

La seguridad se implementa en capas a través de 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, hasta el registro de auditoría. Ninguna capa es suficiente por sí sola; juntas forman una defensa que degrada de manera controlada incluso si una capa se ve comprometida.

Leer más sobre la defensa en profundidad.

Principios de diseño

PrincipioQué significa
Aplicación determinísticaLos 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.
No write-downLos 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 de tiempo, tipo de hook, ID de sesión, entrada, resultado, reglas evaluadas.
Hooks infalsificablesEl LLM no puede eludir, modificar ni influir en las decisiones de los hooks de políticas. Los hooks se ejecutan en código por debajo de la capa del LLM.
Aislamiento de sesionesCada sesión rastrea el taint de forma independiente. Las sesiones en segundo plano inician con taint PUBLIC limpio. Los espacios de trabajo de los agentes están completamente aislados.
Abstracción de almacenamientoNingún módulo crea su propio almacenamiento. Toda la persistencia fluye a través de StorageProvider.

Stack tecnológico

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

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

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