Skip to content

Arkitekturöversikt

Triggerfish är en säker, flerkanals AI-agentplattform med en enda kärnprincip:

SÄKERHET Säkerhet är deterministisk och sub-LLM. Varje säkerhetsbeslut fattas av ren kod som LLM:en inte kan kringgå, åsidosätta eller påverka. LLM:en har noll auktoritet — den föreslår åtgärder; policylagret beslutar. :::

Den här sidan ger en överblick över hur Triggerfish fungerar. Varje huvudkomponent länkar till en dedikerad fördjupningssida.

Systemarkitektur

Systemarkitektur: kanaler till vänster ansluter via den centrala Gateway till tjänster till höger

Dataflöde

Varje meddelande följer den här vägen genom systemet:

Dataflöde: 9-stegs pipeline från inkommande meddelande via policy-hooks till utgående leverans

Vid varje hanteringspunkt är beslutet deterministiskt — samma indata ger alltid samma resultat. Det finns inga LLM-anrop inuti hooks, ingen slumpmässighet och inget sätt för LLM:en att påverka utfallet.

Huvudkomponenter

Klassificeringssystem

Data flödar genom fyra ordnade nivåer: RESTRICTED > CONFIDENTIAL > INTERNAL > PUBLIC. Kärnregeln är inget nedskrivningsförbud: data kan bara flöda till lika eller högre klassificering. En CONFIDENTIAL-session kan inte skicka data till en PUBLIC-kanal. Inga undantag. Ingen LLM-åsidosättning.

Läs mer om klassificeringssystemet.

Policymotor och Hooks

Åtta deterministiska hanteringshooks fångar upp varje åtgärd vid kritiska punkter i dataflödet. Hooks är rena funktioner: synkrona, loggade och ofalsknliga. Policymotorn stöder fasta regler (aldrig konfigurerbara), administratörsjusterbara regler och deklarativa YAML-undantag för företag.

Läs mer om policymotorn.

Sessioner och Taint

Varje konversation är en session med oberoende taint-spårning. När en session kommer åt klassificerade data eskalerar dess taint till den nivån och kan aldrig minska inom sessionen. En fullständig återställning rensar taint OCH konversationshistorik. Varje dataelement bär provenansmetadata via ett lineage-spårningssystem.

Läs mer om Sessioner och Taint.

Gateway

Gateway är det centrala kontrollplanet — en långvarig lokal tjänst som hanterar sessioner, kanaler, verktyg, händelser och agentprocesser via en WebSocket JSON-RPC-endpoint. Den koordinerar notifieringstjänsten, cron-schemaläggaren, webhook-intagning och kanalroutning.

Läs mer om Gateway.

Lagring

All tillståndsdata flödar via en enhetlig StorageProvider-abstraktion. Namnrymdsnycklar (sessions:, taint:, lineage:, audit:) håller ansvarsområden separerade samtidigt som backends kan bytas utan att påverka affärslogiken. Standard är SQLite WAL på ~/.triggerfish/data/triggerfish.db.

Läs mer om Lagring.

Försvar på djupet

Säkerheten är lagrad över 13 oberoende mekanismer, från kanalautentisering och behörighetsmedveten dataåtkomst via session-taint, policy-hooks, plugin-sandlåda, filsystemsverktygssandlåda och revisionsloggning. Inget enskilt lager är tillräckligt ensamt; tillsammans bildar de ett försvar som försämras varsamt även om ett lager komprometteras.

Läs mer om Försvar på djupet.

Designprinciper

PrincipVad det innebär
Deterministisk hanteringPolicy-hooks använder rena funktioner. Inga LLM-anrop, ingen slumpmässighet. Samma indata ger alltid samma beslut.
Taint-spridningAll data bär klassificeringsmetadata. Session-taint kan bara eskalera, aldrig minska.
Inget nedskrivningsförbudData kan inte flöda till en lägre klassificeringsnivå. Aldrig.
Granska alltAlla policybeslut loggas med fullständigt sammanhang: tidsstämpel, hooktyp, sessions-ID, indata, resultat, utvärderade regler.
Hooks är ofalsknligaLLM:en kan inte kringgå, ändra eller påverka policy-hook-beslut. Hooks körs i kod under LLM-lagret.
SessionsisoleringVarje session spårar taint oberoende. Bakgrundssessioner skapas med rent PUBLIC taint. Agent-arbetsytor är fullt isolerade.
LagringsabstraktionIngen modul skapar sin egen lagring. All persistens flödar via StorageProvider.

Teknikstack

KomponentTeknik
RuntimeDeno 2.x (TypeScript strikt läge)
Python-pluginsPyodide (WASM)
TestningDenos inbyggda testverktyg
KanalerBaileys (WhatsApp), grammY (Telegram), Bolt (Slack), discord.js (Discord)
Webbläsarautomationpuppeteer-core (CDP)
RöstWhisper (lokal STT), ElevenLabs/OpenAI (TTS)
LagringSQLite WAL (standard), företagsbackends (Postgres, S3)
HemligheterOS-nyckelring (personlig), vault-integration (företag)

Triggerfish kräver inga externa byggverktyg, ingen Docker och inget molnberoende. Det körs lokalt, bearbetar data lokalt och ger användaren full suveränitet över sina data. :::