インテグレーションの構築
Triggerfishは拡張性を考慮して設計されています。新しいデータソースを接続したり、ワークフローを自動化したり、 エージェントに新しいスキルを付与したり、外部イベントに反応したりする場合でも、明確に定義された インテグレーションパスがあります。そしてすべてのパスは同じセキュリティモデルに従います。
インテグレーションパス
Triggerfishにはプラットフォームを拡張するための5つの異なる方法があります。それぞれ異なる目的を 持ちますが、すべて同じセキュリティ保証を共有します:分類の強制、Taint追跡、ポリシーフック、 完全な監査ログです。
| パス | 目的 | 最適なユースケース |
|---|---|---|
| MCP Gateway | 外部ツールサーバーの接続 | Model Context Protocolを介した標準的なエージェント-ツール通信 |
| プラグイン | カスタムツールでエージェントを拡張 | エージェントが構築したインテグレーション、APIコネクター、外部システムクエリ、ワークフロー |
| Exec環境 | エージェントが自身のコードを書いて実行する | インテグレーションの構築、プロトタイピング、テスト、フィードバックループでの反復 |
| スキル | 指示によりエージェントに新しい能力を与える | 再利用可能な動作、コミュニティマーケットプレイス、エージェントによる自己作成 |
| ブラウザ自動化 | CDPを介してブラウザインスタンスを制御する | ウェブリサーチ、フォーム入力、スクレイピング、自動化されたウェブワークフロー |
| Webhook | 外部サービスからのインバウンドイベントを受信 | メール、アラート、CI/CDイベント、カレンダー変更へのリアルタイム反応 |
| GitHub | 完全なGitHubワークフローインテグレーション | PRレビューループ、課題トリアージ、Webhook + exec + スキルによるブランチ管理 |
| Google Workspace | Gmail、カレンダー、タスク、ドライブ、スプレッドシートを接続 | OAuth2インテグレーション、Google Workspace用14ツール |
| Obsidian | Obsidianボルトのノートを読み書き・検索 | フォルダマッピング、wikiリンク、デイリーノートを伴う分類ゲート付きノートアクセス |
セキュリティモデル
すべてのインテグレーションは、パスに関わらず、同じセキュリティ制約の下で動作します。
すべてはUNTRUSTEDから始まる
新しいMCPサーバー、プラグイン、チャンネル、WebhookソースはすべてデフォルトでUNTRUSTED状態に なります。オーナー(パーソナルプラン)またはアドミン(エンタープライズプラン)が明示的に分類するまで、 エージェントとデータを交換できません。
UNTRUSTED --> CLASSIFIED (レビュー後、分類レベルが割り当てられる)
UNTRUSTED --> BLOCKED (明示的に禁止される)分類はデータとともに流れる
インテグレーションがデータを返すと、そのデータは分類レベルを持ちます。分類されたデータにアクセスすると、 セッションのTaintはそのレベルに合わせてエスカレートします。一度Taintが付くと、セッションは より低い分類のデスティネーションには出力できません。これがNo Write-Downルールです — 固定されており、オーバーライドできません。
ポリシーフックはすべての境界で強制される
すべてのインテグレーションアクションは確定的なポリシーフックを通過します:
| フック | 発火するタイミング |
|---|---|
PRE_CONTEXT_INJECTION | 外部データがエージェントコンテキストに入るとき(Webhook、プラグインレスポンス) |
PRE_TOOL_CALL | エージェントがツール呼び出しを要求するとき(MCP、exec、ブラウザ) |
POST_TOOL_RESPONSE | ツールがデータを返すとき(レスポンスを分類し、Taintを更新) |
PRE_OUTPUT | レスポンスがシステムから出るとき(最終的な分類チェック) |
これらのフックは純粋関数です — LLM呼び出しなし、ランダム性なし、バイパスなし。 同じ入力は常に同じ決定を生成します。
監査証跡
すべてのインテグレーションアクションが記録されます:何が呼び出されたか、誰が呼び出したか、 ポリシーの決定は何だったか、セッションのTaintがどのように変わったか。この監査証跡は 不変であり、コンプライアンスレビューのために利用できます。
SECURITY LLMはポリシーフックの決定をバイパス、修正、または影響させることはできません。
フックはLLMレイヤーの下のコードで実行されます。AIはアクションを要求します — ポリシーレイヤーが 決定します。 :::
適切なパスの選択
このデシジョンガイドを使用して、ユースケースに合ったインテグレーションパスを選択してください:
- 標準のツールサーバーに接続したい — MCP Gatewayを使用してください。 ツールがMCPを話せるなら、これがそのパスです。
- 外部APIに対してカスタムコードを実行する必要がある — プラグインを使用してください。 エージェントはランタイム時にプラグインを構築、スキャン、ロードできます。 プラグインはセキュリティスキャンとともにサンドボックス化されて実行されます。
- エージェントにコードを構築・反復させたい — Exec環境を使用してください。 エージェントは完全なwrite/run/fixループを持つワークスペースを得ます。
- エージェントに新しい動作を教えたい — スキルを使用してください。
SKILL.mdに指示を書くか、エージェント自身に書かせましょう。 - ウェブインタラクションを自動化する必要がある — ブラウザ自動化を使用してください。 ドメインポリシーの強制付きCDP制御Chromiumです。
- 外部イベントにリアルタイムで反応する必要がある — Webhookを使用してください。 インバウンドイベントが検証、分類され、エージェントにルーティングされます。
これらのパスは互いに排他的ではありません。スキルは内部的にブラウザ自動化を使用するかもしれません。
プラグインはWebhookによってトリガーされるかもしれません。exec環境でエージェントが作成した インテグレーションはスキルとして永続化できます。自然に組み合わせられます。 :::
