Skip to content

סקירת ארכיטקטורה

Triggerfish היא פלטפורמת סוכני AI מאובטחת ורב-ערוצית עם עיקרון ליבה אחד:

אבטחה האבטחה היא דטרמיניסטית ומתחת ל-LLM. כל החלטת אבטחה מתקבלת

על ידי קוד טהור שה-LLM לא יכול לעקוף, לדרוס או להשפיע עליו. ל-LLM אין סמכות כלל -- הוא מבקש פעולות; שכבת המדיניות מחליטה. :::

עמוד זה מספק את התמונה הגדולה של איך Triggerfish עובדת. כל רכיב עיקרי מקושר לעמוד ייעודי מפורט.

ארכיטקטורת המערכת

ארכיטקטורת מערכת: ערוצים זורמים דרך נתב הערוצים אל ה-Gateway, שמתאם בין מנהל סשנים, מנוע מדיניות ולולאת הסוכן

זרימת נתונים

כל הודעה עוברת את הנתיב הזה דרך המערכת:

זרימת נתונים: צינור בן 9 שלבים מהודעה נכנסת דרך Hook-י מדיניות ועד למשלוח יוצא

בכל נקודת אכיפה, ההחלטה היא דטרמיניסטית -- אותו קלט תמיד מייצר את אותה תוצאה. אין קריאות LLM בתוך Hook-ים, אין אקראיות, ואין דרך ל-LLM להשפיע על התוצאה.

רכיבים עיקריים

מערכת הסיווג

נתונים זורמים דרך ארבע רמות מסודרות: RESTRICTED > CONFIDENTIAL > INTERNAL > PUBLIC. הכלל הליבתי הוא אי-כתיבה למטה: נתונים יכולים לזרום רק לסיווג שווה או גבוה יותר. סשן CONFIDENTIAL לא יכול לשלוח נתונים לערוץ PUBLIC. ללא חריגות. ללא דריסה על ידי ה-LLM.

קראו עוד על מערכת הסיווג.

מנוע המדיניות ו-Hook-ים

שמונה Hook-י אכיפה דטרמיניסטיים מיירטים כל פעולה בנקודות קריטיות בזרימת הנתונים. Hook-ים הם פונקציות טהורות: סינכרוניות, מתועדות ובלתי ניתנות לזיוף. מנוע המדיניות תומך בכללים קבועים (שאינם ניתנים להגדרה), כללים הניתנים לכוונון על ידי מנהל, ו-escape hatches הצהרתיים ב-YAML לסביבות ארגוניות.

קראו עוד על מנוע המדיניות.

סשנים ו-Taint

כל שיחה היא סשן עם מעקב Taint עצמאי. כאשר סשן ניגש לנתונים מסווגים, ה-Taint שלו עולה לרמה זו ולעולם לא יכול לרדת בתוך הסשן. איפוס מלא מנקה את ה-Taint וגם את היסטוריית השיחה. כל אלמנט נתונים נושא מטא-נתונים של מקור דרך מערכת מעקב שושלת.

קראו עוד על סשנים ו-Taint.

Gateway

ה-Gateway הוא מישור הבקרה המרכזי -- שירות מקומי שרץ לאורך זמן ומנהל סשנים, ערוצים, כלים, אירועים ותהליכי סוכן דרך נקודת קצה WebSocket JSON-RPC. הוא מתאם את שירות ההתראות, מתזמן cron, קליטת webhook-ים וניתוב ערוצים.

קראו עוד על ה-Gateway.

אחסון

כל הנתונים בעלי מצב זורמים דרך הפשטת StorageProvider מאוחדת. מפתחות עם מרחבי שמות (sessions:, taint:, lineage:, audit:) שומרים על הפרדת אחריות תוך מתן אפשרות להחלפת תשתיות ללא נגיעה בלוגיקה עסקית. ברירת המחדל היא SQLite WAL ב-~/.triggerfish/data/triggerfish.db.

קראו עוד על אחסון.

הגנה בעומק

האבטחה מרובדת ב-13 מנגנונים עצמאיים, מאימות ערוצים וגישה לנתונים מודעת הרשאות, דרך Taint של סשן, Hook-י מדיניות, ארגז חול לתוספים, ארגז חול לכלי מערכת קבצים ורישום ביקורת. אף שכבה בודדת אינה מספיקה לבדה; יחד הן מרכיבות הגנה שמתדרדרת בחן גם אם שכבה אחת נפרצת.

קראו עוד על הגנה בעומק.

עקרונות תכנון

עיקרוןמה זה אומר
אכיפה דטרמיניסטיתHook-י מדיניות משתמשים בפונקציות טהורות. ללא קריאות LLM, ללא אקראיות. אותו קלט תמיד מייצר את אותה החלטה.
הפצת Taintכל הנתונים נושאים מטא-נתונים של סיווג. Taint של סשן יכול רק לעלות, לעולם לא לרדת.
אי-כתיבה למטהנתונים לא יכולים לזרום לרמת סיווג נמוכה יותר. לעולם.
תיעוד הכולכל החלטות המדיניות מתועדות עם הקשר מלא: חותמת זמן, סוג Hook, מזהה סשן, קלט, תוצאה, כללים שהוערכו.
Hook-ים בלתי ניתנים לזיוףה-LLM לא יכול לעקוף, לשנות או להשפיע על החלטות Hook-י המדיניות. Hook-ים רצים בקוד מתחת לשכבת ה-LLM.
בידוד סשניםכל סשן עוקב אחר Taint באופן עצמאי. סשני רקע מתחילים עם Taint PUBLIC טרי. סביבות עבודה של סוכנים מבודדות לחלוטין.
הפשטת אחסוןאף מודול לא יוצר אחסון משלו. כל ההתמדה זורמת דרך StorageProvider.

מחסנית טכנולוגית

רכיבטכנולוגיה
סביבת ריצהDeno 2.x (TypeScript strict mode)
תוספי PythonPyodide (WASM)
בדיקותDeno built-in test runner
ערוציםBaileys (WhatsApp), grammY (Telegram), Bolt (Slack), discord.js (Discord)
אוטומציית דפדפןpuppeteer-core (CDP)
קולWhisper (STT מקומי), ElevenLabs/OpenAI (TTS)
אחסוןSQLite WAL (ברירת מחדל), תשתיות ארגוניות (Postgres, S3)
סודותOS keychain (אישי), אינטגרציית vault (ארגוני)

Triggerfish לא דורשת כלי בנייה חיצוניים, לא Docker ולא תלות בענן. היא

רצה מקומית, מעבדת נתונים מקומית ומעניקה למשתמש ריבונות מלאה על הנתונים שלו. :::