نظرة عامة على البنية
Triggerfish هو منصة وكلاء ذكاء اصطناعي آمنة ومتعددة القنوات مع ثابت جوهري واحد:
SECURITY الأمان حتمي ودون مستوى LLM. كل قرار أمني يُتخذ بواسطة
كود برمجي صرف لا يستطيع LLM تجاوزه أو تعديله أو التأثير عليه. ليس لدى LLM أي صلاحية -- إنه يطلب إجراءات؛ وطبقة السياسات تقرر. :::
توفر هذه الصفحة الصورة الكبيرة لكيفية عمل Triggerfish. كل مكون رئيسي يحتوي على رابط لصفحة تفصيلية مخصصة.
بنية النظام
تدفق البيانات
كل رسالة تتبع هذا المسار عبر النظام:
في كل نقطة تنفيذ، يكون القرار حتمياً -- نفس المدخلات تنتج دائماً نفس النتيجة. لا توجد استدعاءات LLM داخل hooks، ولا عشوائية، ولا طريقة لـ LLM للتأثير على النتيجة.
المكونات الرئيسية
نظام التصنيف
تتدفق البيانات عبر أربعة مستويات مرتبة: RESTRICTED > CONFIDENTIAL > INTERNAL > PUBLIC. القاعدة الأساسية هي منع الكتابة للأسفل: يمكن للبيانات أن تتدفق فقط إلى تصنيف مساوٍ أو أعلى. لا يستطيع جلسة CONFIDENTIAL إرسال بيانات إلى قناة PUBLIC. بدون استثناءات. بدون تجاوز من LLM.
محرك السياسات و Hooks
ثمانية hooks تنفيذية حتمية تعترض كل إجراء في نقاط حرجة في تدفق البيانات. إن hooks هي دوال صرفة: متزامنة، مسجلة، وغير قابلة للتزوير. يدعم محرك السياسات قواعد ثابتة (غير قابلة للتكوين)، وقواعد قابلة للضبط من المسؤول، ومخارج طوارئ تصريحية بـ YAML للمؤسسات.
الجلسات و Taint
كل محادثة هي جلسة ذات تتبع taint مستقل. عندما تصل جلسة إلى بيانات مصنفة، يتصاعد taint الخاص بها إلى ذلك المستوى ولا يمكنه الانخفاض أبداً ضمن الجلسة. إعادة التعيين الكاملة تمسح taint وسجل المحادثة معاً. كل عنصر بيانات يحمل بيانات وصفية للمنشأ من خلال نظام تتبع النسب.
اقرأ المزيد عن الجلسات و Taint.
Gateway
Gateway هو مستوى التحكم المركزي -- خدمة محلية طويلة التشغيل تدير الجلسات والقنوات والأدوات والأحداث وعمليات الوكيل من خلال نقطة نهاية WebSocket JSON-RPC. ينسق خدمة الإشعارات، ومجدول cron، واستيعاب webhook، وتوجيه القنوات.
التخزين
جميع البيانات ذات الحالة تتدفق عبر تجريد StorageProvider موحد. المفاتيح المنظمة بمساحات أسماء (sessions:, taint:, lineage:, audit:) تفصل الاهتمامات مع السماح بتبديل الواجهات الخلفية دون لمس منطق الأعمال. الافتراضي هو SQLite WAL في ~/.triggerfish/data/triggerfish.db.
الدفاع في العمق
الأمان مطبق عبر 13 آلية مستقلة، من مصادقة القنوات والوصول للبيانات المدرك للصلاحيات عبر taint الجلسة، hooks السياسات، عزل plugin، عزل أدوات نظام الملفات، وتسجيل التدقيق. لا توجد طبقة واحدة كافية بمفردها؛ معاً تشكل دفاعاً يتدهور بشكل رشيق حتى لو تم اختراق طبقة واحدة.
اقرأ المزيد عن الدفاع في العمق.
مبادئ التصميم
| المبدأ | ما يعنيه |
|---|---|
| التنفيذ الحتمي | تستخدم hooks السياسات دوال صرفة. بدون استدعاءات LLM، بدون عشوائية. نفس المدخلات تنتج دائماً نفس القرار. |
| انتشار Taint | جميع البيانات تحمل بيانات وصفية للتصنيف. يمكن لـ taint الجلسة أن يتصاعد فقط، ولا ينخفض أبداً. |
| منع الكتابة للأسفل | لا يمكن للبيانات أن تتدفق إلى مستوى تصنيف أقل. أبداً. |
| تدقيق كل شيء | جميع قرارات السياسات تُسجل مع سياق كامل: الطابع الزمني، نوع hook، معرف الجلسة، المدخلات، النتيجة، القواعد المُقيّمة. |
| Hooks غير قابلة للتزوير | لا يستطيع LLM تجاوز أو تعديل أو التأثير على قرارات hook السياسات. تعمل Hooks في كود أسفل طبقة LLM. |
| عزل الجلسات | كل جلسة تتبع taint بشكل مستقل. جلسات الخلفية تبدأ بـ taint PUBLIC جديد. مساحات عمل الوكيل معزولة بالكامل. |
| تجريد التخزين | لا يوجد وحدة تنشئ تخزينها الخاص. كل الاستمرارية تتدفق عبر StorageProvider. |
مكدس التقنيات
| المكون | التقنية |
|---|---|
| بيئة التشغيل | Deno 2.x (TypeScript strict mode) |
| إضافات Python | Pyodide (WASM) |
| الاختبار | أداة اختبار Deno المدمجة |
| القنوات | Baileys (WhatsApp), grammY (Telegram), Bolt (Slack), discord.js (Discord) |
| أتمتة المتصفح | puppeteer-core (CDP) |
| الصوت | Whisper (STT محلي), ElevenLabs/OpenAI (TTS) |
| التخزين | SQLite WAL (افتراضي), واجهات خلفية مؤسسية (Postgres, S3) |
| الأسرار | سلسلة مفاتيح نظام التشغيل (شخصي), تكامل خزنة (مؤسسي) |
لا يتطلب Triggerfish أي أدوات بناء خارجية، ولا Docker، ولا اعتماد على
السحابة. يعمل محلياً، يعالج البيانات محلياً، ويمنح المستخدم سيادة كاملة على بياناته. :::
