コンテンツにスキップ

アーキテクチャ (Architecture)

Griptape Nodes は、ワークフローを構築するエディタ (Editor) と、自身が管理するマシン上でそれらを実行するアプリケーション (Application) という 2 つのプログラムで構成されています。アプリケーションが処理を実行し、データを保持し、自身で実行できない少数の機能についてのみ Griptape Cloud を呼び出します。

この構成自体は、どの導入環境でも変わりません。変化するのは、ユーザーのマシンから Griptape Cloud へのネットワーク経路のみです:

  • SaaS 構成(デフォルト): マシンが直接 Griptape Cloud と通信します。
  • オンプレミス構成: マシンをパブリックインターネットから完全に遮断した状態に保ちます。運用管理者が設置する単一の 管理サーバー (Admin Server) を通じてのみ Griptape Cloud に接続します。

どちらの構成でも、全く同一のソフトウェアが動作します。構成を切り替えることは、製品を変えることではなく、ルーティング(ネットワーク経路)を変更することを意味します。


構成コンポーネント

コンポーネント 概要 実行場所
エディタ (Editor) ワークフローを構築するためのビジュアルキャンバス。 Web ブラウザ内、または Griptape Nodes デスクトップ版にバンドル。
アプリケーション (Application) ワークフローを実行するプログラム。griptape-nodes として配布。計算グラフを実行し、ワークスペースを管理し、ライセンスが付与する権限を強制適用します。 ユーザーのローカルマシン上。
エンジン (Engine) オープンソースのワークフローランタイム。griptape-nodes-engine として配布(ソースコードは griptape-nodes-engine で公開)。ノードライブラリをロードし、計算グラフを実行します。 アプリケーションの内部。

エンジンはワークフローの実行が実際に行われるコアであり、完全にオープンソースであるため、ワークフローがどのように実行され、どこにファイルを書き込むかを完全に監査できます。エンジンは単独のデプロイ対象ではなく、エディタはアプリケーションに接続し、エンジンに直接接続することはありません。

Griptape Nodes デスクトップ版 は、エディタを同梱し、バージョン固定された Python インタープリタとともにアプリケーションを提供するため、個別に何かをインストールする必要はありません。


データの保存場所

作成されるほぼすべてのデータは、ワークスペース (Workspace) に書き込まれます。ワークスペースはアプリケーションが読み書きを行い、相対パスを解決するための単一のルートディレクトリです。その保存場所は自由に選択できます。デフォルトではアプリケーションの隣のフォルダに設定されますが、マシンからアクセス可能な任意の場所(共有インフラ上にプロジェクトデータを保管するスタジオで一般的な NAS マウントや LucidLink などのネットワーク接続ストレージを含む)を指定できます。詳細については ワークスペース を参照してください。

したがって、データがどこに送信・保存されるかを確認したい場合は、まずワークスペースを確認してください。アプリケーションは設定されたパスに書き込みを行い、以下の表に記載された項目がデフォルトで Griptape Cloud に送信されることはありません。

項目 保存場所 Griptape Cloud への送信
ワークフローおよびプロジェクトファイル ワークスペース 送信されません
生成されたアセット(画像、動画、音声) ワークスペース 送信されません(ストレージバックエンドを Griptape Cloud に切り替えた場合を除く)
シークレットおよび API キー 環境変数、ワークスペース内の .env ファイル、ユーザー設定ディレクトリ内の順に参照 送信されません
会話履歴 ワークスペース 送信されません
ノードライブラリ アプリケーションを実行しているマシン上にインストール(それぞれ独立した仮想環境内) 送信されません

これらを変更できる設定が 2 つあります。どちらもデフォルトではオフになっており、設定ガイド に記載されています:

  • ストレージバックエンド (Storage backend): デフォルトは local で、アセットをワークスペースに書き込みます。gtc に設定すると、生成されたアセットは Griptape Cloud のバケットに保存されます。
  • ワークフローの同期 (Synced workflows): ワークフローを Griptape Cloud バケット経由で同期するよう有効にすると、複数のマシン間で共有できます。

これらを除けば、データがワークスペース外に出るのは、ワークフロー自身がデータを送信するよう構成されている場合のみです(例: モデルプロバイダーを呼び出すノードは、そのノードの入力を該当プロバイダーに送信します)。これについては次のセクションで説明します。


Griptape Cloud と通信するもの

アプリケーションが Griptape Cloud に依存するのは、ごく一部の機能に限られます。以下がその完全なリストです。

機能 必須要否 ネットワーク境界を越えるデータ
ライセンスとセッション 必須(これなしではアプリケーションは実行できません) ライセンス情報、およびセッションの割り当て・更新・解放リクエスト。ワークフローの内容は送信されません。
エンタイトルメント (権限) 必須(セッション確立時に解決) ライセンスが付与する権限情報。アプリケーションに返され、ローカルで強制適用されます。
モデルプロキシ 任意 (No) 接続するよう指定されたノードのプロンプトと入力。モデルプロバイダーに転送されます。
バケットとアセット 任意 (No, オプトイン) 同期を選択したアセットおよびワークフロー。
Nodes API WebSocket 任意 (No) エディタとアプリケーションが同一マシン上にない場合のエディタ・アプリケーション間のイベント通信。
管理者ダッシュボード 任意 (No, 管理者のみ) ブラウザからのライセンスおよび権限の管理。管理者ダッシュボード を参照。

ライセンス管理が唯一の必須の依存関係です。 ライセンスはアプリケーションの実行を許可するものであり、アプリケーションはライセンスを検証し、Griptape Cloud にセッションの割り当てを要求し、紐づけられた権限情報を受け取って、実行中にローカルで適用します。ワークフローの内容がこの通信に含まれることは一切ありません。アクティベーションについては 管理サーバーの利用 を参照してください。

モデルの呼び出しに Griptape Cloud を関与させる必要は全くありません。ノードに独自の API キーを設定してサードパーティプロバイダーを直接指定することも、Ollama や LM Studio を使用してローカルで実行されているモデルを指定することも可能です。その場合、プロンプトがマシン外に出ることはありません。詳細については AI プロバイダー を参照してください。

エディタとアプリケーション間の通信方法

エディタとアプリケーションは独立したプログラムであるため、両者間のイベント送受信にはトランスポートが必要です:

  • ダイレクト WebSocket (Direct WebSocket): アプリケーションがローカルでリッスンし、エディタがそこに直接接続します。イベントがマシン外に出ることはありません。Griptape Nodes デスクトップ版でライセンス認証を行って利用する場合にこの方式が使用されます。
  • Nodes API WebSocket: エディタとアプリケーションがそれぞれ Griptape Cloud に対してアウトバウンド接続を開き、クラウドが両者間のイベントを中継します。これにより、ブラウザ上のエディタから別マシンのアプリケーションを操作できます。

エディタのトラフィックには、ノードグラフ、パラメータ値、生成されたアセットのプレビューなど、ワークフローの内容が含まれるため、プライバシーの観点でこの違いは重要です。ダイレクト WebSocket では、ネットワーク上にそれらが公開されることはありません。いずれの場合も、ワークスペースはワークフローを実行するマシン上に保持されます。以下の SaaS 構成 セクションに両方の構成図を示します。


SaaS 構成

デフォルトの構成です。マシンが直接 Griptape Cloud と通信するため、ユーザー側で特別なサーバー等をデプロイする必要はありません。この構成には、エディタがアプリケーションにどのように接続するかによって 2 つのバリエーションがあります。

本ページの 3 つの図において、実線は必須の通信、点線は任意の通信を示し、双方向の矢印はデータが同一経路で返されることを示します。Griptape Nodes の実行に不可欠な唯一の通信はライセンス認証です。

エディタとエンジンが同一マシン上にある場合

Griptape Nodes デスクトップ版を利用した場合の構成です。エディタがエンジンをホストするアプリケーションに直接接続するため、ワークフローの内容がネットワークに流れることはありません。

flowchart TB
    subgraph machine["ユーザーのマシン"]
        direction TB
        editor["エディタ (Editor)"]
        app["Griptape Nodes アプリケーション<br/>エンジン + ポリシー強制"]
        workspace[("ワークスペース<br/>ワークフロー、アセット、シークレット")]
        local["ローカルモデル<br/>Ollama, LM Studio"]
        editor <-->|"ダイレクト WebSocket"| app
        app <--> workspace
        app <-.-> local
    end

    subgraph cloud["Griptape Cloud"]
        direction TB
        control["ライセンスとセッション<br/>エンタイトルメント"]
        modelproxy["モデルプロキシ"]
        buckets["バケットとアセット"]
    end

    providers["サードパーティモデルプロバイダー"]

    app <==>|"ライセンス + セッション要求<br/>エンタイトルメント返却"| control
    app <-.->|"プロンプト送信<br/>完了レスポンス返却"| modelproxy
    app <-.->|"任意の同期"| buckets
    modelproxy <--> providers
    app <-.->|"独自の API キー"| providers

エディタとエンジンが異なるマシン上にある場合

自身が操作しているマシンよりも強力なスペックのマシンでエンジンを動かしたい場合や、ノート PC のブラウザからエディタを操作したい場合に使用します。エディタとアプリケーションはそれぞれ Nodes API WebSocket に対してアウトバウンド接続を開き、クラウド経由でイベントが相互中継されます。

flowchart TB
    subgraph remote["任意のマシン (クライアント)"]
        editor["エディタ<br/>(ブラウザ内)"]
    end

    subgraph machine["ユーザーのマシン (ホスト)"]
        direction TB
        app["Griptape Nodes アプリケーション<br/>エンジン + ポリシー強制"]
        workspace[("ワークスペース<br/>ワークフロー、アセット、シークレット")]
        local["ローカルモデル<br/>Ollama, LM Studio"]
        app <--> workspace
        app <-.-> local
    end

    subgraph cloud["Griptape Cloud"]
        direction TB
        wsapi["Nodes API<br/>WebSocket"]
        control["ライセンス、<br/>セッション、<br/>エンタイトルメント"]
        modelproxy["モデル<br/>プロキシ"]
        buckets["バケット<br/>およびアセット"]
    end

    providers["サードパーティモデルプロバイダー"]

    editor <-.->|"アウトバウンド"| wsapi
    app <-.->|"アウトバウンド"| wsapi
    app <==>|"ライセンス送信<br/>エンタイトルメント返却"| control
    app <-.->|"モデル呼び出し"| modelproxy
    app <-.->|"任意の同期"| buckets
    modelproxy <--> providers
    app <-.->|"独自の API キー"| providers

双方が外向き(アウトバウンド)に接続するため、インバウンドのポート開放は不要で、互いの IP アドレスを知る必要もありません。その代わり、エディタのトラフィック(ノードグラフ、パラメータ値、アセットのプレビューなど)がインターネット(Griptape Cloud)を経由することになります。ワークスペース自体の場所は変わらず、ワークフローの実行もエンジンをホストしているマシン上で行われます。

どちらのバリエーションもオンプレミス環境には適用されません。 Nodes API WebSocket は Griptape Cloud のサービスであるため、オンプレミス環境ではダイレクト接続が使用され、ワークフローイベントは完全に社内ネットワーク内に保たれます。


オンプレミス構成

各マシンからパブリックインターネットへの直接のルートはありません。社内ネットワーク内で実行する 管理サーバー (Admin Server) を経由して Griptape Cloud に接続するため、ファイアウォールで許可するホストをマシンごとではなく、単一のホストだけに集約できます。

flowchart TB
    subgraph network["社内ネットワーク"]
        direction TB
        editor["エディタ<br/>(デスクトップ版同梱)"]
        app["Griptape Nodes アプリケーション<br/>エンジン + ポリシー強制"]
        workspace[("ワークスペース<br/>ワークフロー、アセット、シークレット")]
        local["ローカルモデル<br/>Ollama, LM Studio"]
        admin["管理サーバー (Admin Server)<br/>単一の外部接続ポイント<br/>任意のパスフィルタリング"]
        editor <-->|"ダイレクト WebSocket<br/>社内ネットワーク外に出ない"| app
        app <--> workspace
        app <-.-> local
        app <-->|"HTTPS (社内ネットワーク経由)"| admin
        %% Invisible link: keeps the Admin Server on its own rank below the
        %% local models, so the egress edge does not pass behind them.
        local ~~~ admin
    end

    subgraph cloud["Griptape Cloud"]
        direction TB
        control["ライセンスとセッション<br/>エンタイトルメント"]
        modelproxy["モデルプロキシ"]
    end

    admin <==>|"HTTPS: 社内ネットワークから<br/>外に出る唯一のトラフィック"| control
    admin <-.->|"許可した場合にのみ通過"| modelproxy

この構成には 3 つの大きな特徴があります:

ワークフローの構築や実行に関するデータが境界を越えることは一切ありません。 Griptape Nodes デスクトップ版はエディタを内蔵しているため、ブラウザがインターネット経由でエディタを取得することはなく、ダイレクト WebSocket 経由でローカルのアプリケーションに接続します。ワークフロー、アセット、シークレットはマシン上のワークスペース内に留まります。ローカルのモデル実行環境と組み合わせることで、1 パケットも社内ネットワークから出すことなく、最初から最後までワークフローを実行できます。

単一のホストのみが外部と通信し、何を通過させるかは管理者が制御できます。 すべてのアプリケーションは cloud.griptape.ai ではなく管理サーバー(Admin Server)を参照するため、ファイアウォールのルールは 1 つで済み、アウトバウンドトラフィックの監査も 1 箇所で行えます。また、管理サーバーは許可する Cloud パスを制限できるため、ライセンス通信のみを許可しながらモデル呼び出しを社内ネットワーク内に留めることも可能です。転送ルール を参照してください。管理サーバーは「転送」を行うのみで「判断」は行いません。ライセンスの検証やセッションの割り当て、キャッシュなどは行わず、各アプリケーション独自の認証情報がそのまま Griptape Cloud に中継されて承認・拒否されます。

外部へ送信する必要がある通信は、明確に特定・監査可能なリストに限定されています。 ライセンス認証には以下のルートのみが必要であり、それ以外の通信は一切要求されません。設定によってこれらのルートがブロックされる場合、管理サーバーは起動を拒否します:

ルート 必要な理由
/api/sessions/* アプリケーションの実行を許可するセッションの割り当てと管理。
/api/session-renew セッションの有効期限を延長・維持。
/api/session-release セッションを正常終了し、ライセンスシートを解放。
/api/users 起動時および各ハートビート時にライセンス所有者を特定。
/api/organizations 起動時および各ハートビート時に所属組織を解決。

Cloud 接続を維持するメリット

この接続は単にセッションを割り当てる以上の役割を果たします。アプリケーションがライセンスの最新の内容を取得する手段でもあります。管理者がライセンスの許可設定を変更すると、稼働中の環境は再発行や再デプロイを待つことなく、次回のセッション時に新しい権限を即座に取得できます。エンタイトルメント(権限)を一元管理し、即座に反映できることが、このルートを開いたままにしておく実質的なメリットです。

これは、オンプレミスが「完全なオフライン(非接続)モード」を意味するわけではないことを示しています。オンプレミスとは、マシン、ワークフロー、およびアセットが社内ネットワーク内に安全に留まることを意味し、Griptape Nodes が外部への接続ルートを全く持たずに動作することを意味するわけではありません。セッションは Griptape Cloud によって割り当てられるため、管理サーバーがクラウドに到達できる必要があります。このルートが利用できない場合、管理サーバーは期限切れの古い承認情報を提供するのではなくエラーを返し、アプリケーションは新しいセッションを開始できなくなります。


  • インストール: デスクトップ版やアプリケーションの手動インストールについて説明しています。
  • 設定ガイド: ワークスペース、ストレージバックエンド、静的サーバー設定について説明しています。
  • アセットと出力: 生成されたファイルの保存場所と、エディタでのプレビュー方法を解説しています。
  • 管理サーバーの利用: ライセンスキーを使用したアクティベーションの手順を解説しています。
  • 管理サーバー (Admin Server): オンプレミスプロキシのデプロイと設定について説明しています。
  • 管理者ダッシュボード: ライセンスキーの発行と権限テンプレートの作成について説明しています。