メインコンテンツへスキップ
これらのコアコンセプトを理解することで、Jinba Toolbox を効果的に活用し、プラットフォームを自信を持って操作できるようになります。

主要な用語

用語定義
OrganizationToolSetを所有するチームまたは企業。ユーザーはロール(owner、admin、member)を持つ1つ以上のOrganizationに所属します。acme-corp — AIツールのコレクションを共有するチーム
ToolSet共有の実行環境を持つ関連ツールのコレクション。npmパッケージやDockerイメージに相当します。Organizationに属します。slack-tools — Slack連携ツールのセット
ToolToolSet内の個別の実行可能ユニット。入出力スキーマとTypeScriptまたはPythonで記述されたコードを持ちます。post-message — Slackチャンネルにメッセージを送信
RunToolの1回の実行レコード。入力、出力、ログ、ステータス、実行時間を保存します。チャンネルとテキストのパラメータでpost-messageを実行
Versionある時点のToolSetの不変スナップショット。セマンティックバージョニング(semver)を使用します。1.2.0slack-toolsの公開リリース
Sandboxツールのコードが実行される隔離されたコンテナ環境。安全でない操作がホストシステムに影響するのを防ぎます。PythonツールをRunするE2Bコンテナ

ドメインの関係性

Jinba Toolbox のエンティティは明確な階層で構成されています:
Organization
  └── ToolSet
        ├── Tool (1:N)
        ├── Version (1:N)
        └── Run (1:N)
  • Organizationは1つ以上のToolSetを含みます。
  • ToolSetは1つ以上のToolを含み、複数の公開済みVersionを持てます。
  • RunはToolSet内のToolの1回の実行を記録します。
  • ユーザーはロールが割り当てられたメンバーシップを通じてOrganizationに所属します。

エンティティ関係図

┌──────────┐
│   User   │
└────┬─────┘

     ├─────1:N─────┐
     │              │
     │         ┌────┴─────┐
     │         │  ApiKey   │
     │         └──────────┘

     └─────N:M─────┐

        ┌───────────┴───────────┐
        │  OrganizationMember   │  (role: owner / admin / member)
        └───────────┬───────────┘

        ┌───────────┴───────────┐
        │     Organization      │
        └───────────┬───────────┘

                   1:N

        ┌───────────┴───────────┐
        │       ToolSet         │
        └───────────┬───────────┘

         ┌──────────┼──────────┐
         │          │          │
        1:N        1:N        1:N
         │          │          │
    ┌────┴────┐ ┌───┴───┐ ┌───┴──────┐
    │  Tool   │ │  Run  │ │ Version  │
    └─────────┘ └───────┘ └──────────┘

Organization

Organization はトップレベルの所有単位です。すべてのToolSet、APIキー、課金はOrganizationに属します。
  • ユーザーは複数のOrganizationのメンバーになれます。
  • 各メンバーシップにはロールがあります:owneradminmember
  • APIキーはOrganizationにスコープされ、readwriteexecuteadminの権限スコープを持ちます。

ToolSet

ToolSetは、共有のSandbox設定を持つ関連ツールをグループ化します。主なプロパティは以下の通りです:
プロパティ説明
SlugOrganization内で一意の、URLフレンドリーな識別子
Sandbox設定実行環境の定義:プロバイダー(E2BまたはDaytona)、言語(TypeScriptまたはPython)、パッケージ、リソース制限
Visibilityアクセス制御:private(Organization内のみ)、public(誰でも)、restricted(特定のOrganizationのみ)
Tagsカタログでの検索に使用可能なラベル

Tool

Toolは最小の実行可能ユニットです。各Toolは以下を定義します:
プロパティ説明
SlugToolSet内で一意の、URLフレンドリーな識別子
入力スキーマ実行前に入力を検証するJSON Schema
出力スキーマ期待される出力構造を記述するJSON Schema
Code実行可能なソースコード(TypeScriptまたはPython)
Entrypointオプションのカスタムエントリポイント関数名
入出力スキーマは自動的にバリデーションされます。入力がスキーマに一致しない場合、Sandboxリソースが消費される前に実行が拒否されます。

Version

Versionは、ToolSetの不変スナップショットです。公開されたVersionは変更できません。
  • Versionはセマンティックバージョニングに従います(例:1.0.01.2.3)。
  • Versionの公開時に、その時点のすべてのTool、スキーマ、コードがキャプチャされます。
  • ToolSetのlatestVersionフィールドは、最新の公開Versionを常に指します。
  • AIエージェントや外部の利用者は、安定性のために特定のVersionにピン留めすることを推奨します。

Run

Runは1回のツール実行を表し、その詳細をすべて記録します:
フィールド説明
Statuspendingrunningsuccessfailedtimeout
Inputバリデーション済みの入力パラメータ
Outputツールが返す構造化された結果
LogsSandboxからキャプチャされたstdoutとstderr
Durationミリ秒単位の実行時間
ErrorRunが失敗した場合のエラー詳細
Runはツール実行の完全な可観測性を提供し、障害のデバッグやパフォーマンスの監視を容易にします。

Sandbox実行

すべてのツールは隔離されたSandboxコンテナ内で実行されます。Sandboxシステムはプラグイン可能なプロバイダーアーキテクチャで構築されています:
プロバイダー説明
E2B高速起動と幅広い言語サポートを持つクラウドベースのSandbox
Daytonaオンプレミス実行が必要なチーム向けのセルフホスト型Sandboxオプション
Sandboxプロバイダーは、ToolSetレベルで設定されます。ToolSet内のすべてのToolは、言語ランタイム、インストール済みパッケージ、リソース制限を含む同一のSandbox設定を共有します。

アクセス制御

Jinba Toolbox は複数のレイヤーでアクセス制御を提供します:
  • Organizationメンバーシップにより、ToolSetの管理やRunの閲覧権限を管理します。
  • ToolSetのVisibilityprivatepublicrestricted)により、ツールの検索・実行権限を制御します。
  • APIキースコープreadwriteexecuteadmin)により、プログラムからのアクセスに対するきめ細かな権限制御を提供します。

次のステップ