आर्किटेक्चर अवलोकन
Triggerfish एक सुरक्षित, मल्टी-चैनल AI agent प्लेटफ़ॉर्म है जिसका एक मूल अपरिवर्तनीय सिद्धांत है:
सुरक्षा सुरक्षा निश्चयात्मक और sub-LLM है। प्रत्येक सुरक्षा
निर्णय शुद्ध कोड द्वारा लिया जाता है जिसे LLM बायपास, ओवरराइड या प्रभावित नहीं कर सकता। LLM के पास शून्य अधिकार है -- यह कार्यों का अनुरोध करता है; policy परत निर्णय लेती है। :::
यह पृष्ठ Triggerfish कैसे काम करता है इसकी बड़ी तस्वीर प्रदान करता है। प्रत्येक प्रमुख घटक एक समर्पित विस्तृत पृष्ठ से जुड़ा है।
सिस्टम आर्किटेक्चर
डेटा प्रवाह
प्रत्येक संदेश सिस्टम में इस मार्ग का अनुसरण करता है:
प्रत्येक प्रवर्तन बिंदु पर, निर्णय निश्चयात्मक है -- समान इनपुट हमेशा समान परिणाम उत्पन्न करता है। hook के अंदर कोई LLM कॉल नहीं, कोई यादृच्छिकता नहीं, और LLM के लिए परिणाम को प्रभावित करने का कोई तरीका नहीं।
प्रमुख घटक
वर्गीकरण प्रणाली
डेटा चार क्रमबद्ध स्तरों से प्रवाहित होता है: RESTRICTED > CONFIDENTIAL > INTERNAL > PUBLIC। मूल नियम no write-down है: डेटा केवल समान या उच्चतर वर्गीकरण तक प्रवाहित हो सकता है। एक CONFIDENTIAL session PUBLIC चैनल को डेटा नहीं भेज सकता। कोई अपवाद नहीं। कोई LLM ओवरराइड नहीं।
वर्गीकरण प्रणाली के बारे में और पढ़ें।
Policy Engine और Hooks
आठ निश्चयात्मक प्रवर्तन hook डेटा प्रवाह में प्रत्येक महत्वपूर्ण बिंदु पर हर कार्य को इंटरसेप्ट करते हैं। Hook शुद्ध फ़ंक्शन हैं: सिंक्रोनस, लॉग किए गए, और जाली नहीं बनाए जा सकते। Policy engine निश्चित नियमों (कभी कॉन्फ़िगर करने योग्य नहीं), admin-ट्यूनेबल नियमों, और एंटरप्राइज़ के लिए घोषणात्मक YAML escape hatches का समर्थन करता है।
Policy Engine के बारे में और पढ़ें।
Sessions और Taint
प्रत्येक वार्तालाप एक session है जिसमें स्वतंत्र taint ट्रैकिंग होती है। जब कोई session वर्गीकृत डेटा तक पहुँचता है, तो उसकी taint उस स्तर तक बढ़ जाती है और session के भीतर कभी कम नहीं हो सकती। पूर्ण रीसेट taint और वार्तालाप इतिहास दोनों को साफ़ करता है। प्रत्येक डेटा तत्व lineage ट्रैकिंग प्रणाली के माध्यम से उत्पत्ति मेटाडेटा रखता है।
Sessions और Taint के बारे में और पढ़ें।
Gateway
Gateway केंद्रीय नियंत्रण विमान है -- एक लंबे समय तक चलने वाली स्थानीय सेवा जो WebSocket JSON-RPC endpoint के माध्यम से sessions, चैनलों, tools, इवेंट्स, और agent प्रक्रियाओं का प्रबंधन करती है। यह notification सेवा, cron scheduler, webhook अंतर्ग्रहण, और चैनल रूटिंग का समन्वय करता है।
Storage
सभी स्टेटफुल डेटा एक एकीकृत StorageProvider अमूर्तन के माध्यम से प्रवाहित होता है। नेमस्पेस्ड कुंजियाँ (sessions:, taint:, lineage:, audit:) चिंताओं को अलग रखती हैं जबकि backend को व्यावसायिक तर्क को छुए बिना बदलने की अनुमति देती हैं। डिफ़ॉल्ट ~/.triggerfish/data/triggerfish.db पर SQLite WAL है।
गहन रक्षा (Defense in Depth)
सुरक्षा 13 स्वतंत्र तंत्रों में स्तरित है, चैनल प्रमाणीकरण और अनुमति-जागरूक डेटा एक्सेस से लेकर session taint, policy hooks, plugin sandboxing, filesystem tool sandboxing, और ऑडिट लॉगिंग तक। कोई एकल परत अकेले पर्याप्त नहीं है; साथ में वे एक ऐसी रक्षा बनाते हैं जो एक परत के समझौता होने पर भी सुचारू रूप से काम करती है।
गहन रक्षा के बारे में और पढ़ें।
डिज़ाइन सिद्धांत
| सिद्धांत | इसका अर्थ |
|---|---|
| निश्चयात्मक प्रवर्तन | Policy hooks शुद्ध फ़ंक्शन का उपयोग करते हैं। कोई LLM कॉल नहीं, कोई यादृच्छिकता नहीं। समान इनपुट हमेशा समान निर्णय उत्पन्न करता है। |
| Taint प्रसार | सभी डेटा वर्गीकरण मेटाडेटा रखता है। Session taint केवल बढ़ सकती है, कभी कम नहीं होती। |
| No write-down | डेटा निचले वर्गीकरण स्तर तक प्रवाहित नहीं हो सकता। कभी नहीं। |
| सब कुछ ऑडिट करें | सभी policy निर्णय पूर्ण संदर्भ के साथ लॉग किए जाते हैं: टाइमस्टैम्प, hook प्रकार, session ID, इनपुट, परिणाम, मूल्यांकित नियम। |
| Hook जाली नहीं बनाए जा सकते | LLM policy hook निर्णयों को बायपास, संशोधित, या प्रभावित नहीं कर सकता। Hook LLM परत के नीचे कोड में चलते हैं। |
| Session अलगाव | प्रत्येक session स्वतंत्र रूप से taint ट्रैक करता है। Background sessions ताज़ा PUBLIC taint के साथ शुरू होते हैं। Agent workspaces पूरी तरह से अलग हैं। |
| Storage अमूर्तन | कोई मॉड्यूल अपना स्वयं का storage नहीं बनाता। सभी persistence StorageProvider के माध्यम से प्रवाहित होती है। |
प्रौद्योगिकी स्टैक
| घटक | प्रौद्योगिकी |
|---|---|
| रनटाइम | Deno 2.x (TypeScript strict mode) |
| Python plugins | Pyodide (WASM) |
| परीक्षण | Deno अंतर्निहित test runner |
| चैनल | Baileys (WhatsApp), grammY (Telegram), Bolt (Slack), discord.js (Discord) |
| Browser automation | puppeteer-core (CDP) |
| वॉइस | Whisper (स्थानीय STT), ElevenLabs/OpenAI (TTS) |
| Storage | SQLite WAL (डिफ़ॉल्ट), एंटरप्राइज़ backends (Postgres, S3) |
| Secrets | OS keychain (व्यक्तिगत), vault एकीकरण (एंटरप्राइज़) |
Triggerfish को कोई बाहरी बिल्ड टूल, कोई Docker, और कोई क्लाउड निर्भरता
की आवश्यकता नहीं है। यह स्थानीय रूप से चलता है, डेटा को स्थानीय रूप से प्रोसेस करता है, और उपयोगकर्ता को उनके डेटा पर पूर्ण संप्रभुता देता है। :::
