アーキテクチャ概要
Triggerfishshは、1つのコアな不変条件を持つセキュアなマルチチャンネルAIエージェント プラットフォームです:
セキュリティ セキュリティは決定論的でLLMの下にあります。 すべての
セキュリティ決定は、LLMが回避・上書き・影響を与えることができない純粋なコードによって 行われます。LLMは権限ゼロです — アクションを要求するだけであり、ポリシーレイヤーが 決定します。 :::
このページではTriggerfishshがどのように機能するかの全体像を示します。各主要コンポーネント は専用の詳細ページにリンクしています。
システムアーキテクチャ
データフロー
すべてのメッセージはシステムを通じてこのパスを辿ります:
すべての適用ポイントで、決定は決定論的です — 同じ入力は常に同じ結果を生成します。 hookの中にLLM呼び出しはなく、ランダム性もなく、LLMが結果に影響を与える方法もありません。
主要コンポーネント
分類システム
データは4つの順序付けられたレベルを流れます: RESTRICTED > CONFIDENTIAL > INTERNAL > PUBLIC。コアルールはライトダウン禁止: データは等しいか高い分類にのみ流れます。CONFIDENTIALセッションはPUBLICチャンネルに データを送信できません。例外なし。LLMの上書きなし。
ポリシーエンジンとHook
8つの決定論的な適用hookがデータフローの重要なポイントですべてのアクションを インターセプトします。Hookは純粋な関数です:同期、ログ記録、偽造不可能。ポリシー エンジンは固定ルール(設定不可)、管理者調整可能ルール、エンタープライズ向けの 宣言的YAMLエスケープハッチをサポートしています。
セッションとTaint
各会話は独立したtaint追跡を持つセッションです。セッションが分類されたデータに アクセスすると、そのtaintはそのレベルにエスカレートし、セッション内では決して 低下しません。完全なリセットでtaintと会話履歴が両方クリアされます。すべての データ要素は系譜追跡システムを通じてプロベナンスメタデータを持ちます。
Gateway
GatewayはWebSocket JSON-RPCエンドポイントを通じてセッション、チャンネル、ツール、 イベント、エージェントプロセスを管理する中央制御プレーン — 長時間実行されるローカル サービスです。通知サービス、cronスケジューラー、webhookインジェスト、チャンネル ルーティングを調整します。
ストレージ
すべてのステートフルデータは統一されたStorageProvider抽象化を通じて流れます。 名前空間付きキー(sessions:、taint:、lineage:、audit:)は懸念を分離しながら、 ビジネスロジックに触れることなくバックエンドを交換できます。デフォルトは ~/.triggerfish/data/triggerfish.dbのSQLite WALです。
多層防御
セキュリティはチャンネル認証、権限対応データアクセス、セッションtaint、ポリシー hook、プラグインサンドボックス、ファイルシステムツールサンドボックス、監査ログを 含む13の独立したメカニズムに層状に実装されています。単独では1つの層で十分ではなく、 合わせて1つの層が侵害されても緩やかに低下する防御を形成します。
設計原則
| 原則 | 意味 |
|---|---|
| 決定論的適用 | ポリシーhookは純粋な関数を使用します。LLM呼び出しなし、ランダム性なし。同じ入力は常に同じ決定を生成します。 |
| Taint伝播 | すべてのデータは分類メタデータを持ちます。セッションtaintはエスカレートのみ、低下しません。 |
| ライトダウン禁止 | データは低い分類レベルに流れることができません。絶対に。 |
| すべてを監査 | すべてのポリシー決定が完全なコンテキストでログ記録されます:タイムスタンプ、hookタイプ、セッションID、入力、結果、評価されたルール。 |
| Hookは偽造不可能 | LLMはポリシーhookの決定を回避・変更・影響できません。HookはLLMレイヤーの下のコードで実行されます。 |
| セッション分離 | 各セッションは独立してtaintを追跡します。バックグラウンドセッションはPUBLIC taintで生成されます。エージェントワークスペースは完全に分離されています。 |
| ストレージ抽象化 | どのモジュールも独自のストレージを作成しません。すべての永続化は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) |
| シークレット | OSキーチェーン(個人)、vault統合(エンタープライズ) |
Triggerfishshは外部ビルドツール、Docker、クラウド依存関係を必要としません。
ローカルで実行し、ローカルでデータを処理し、ユーザーにデータの完全な主権を与えます。 :::
