メインコンテンツへスキップ

概要

Jinba Toolboxは、不変のスナップショットを持つsemverベースのバージョニングシステムを採用しています。各ToolSetはドラフト(編集可能な作業コピー)と公開済みVersionの一覧を管理します。公開すると、すべてのToolコード、スキーマ、Sandbox設定を含むToolSetの完全なスナップショットが、変更不可能なVersionとして凍結されます。 この設計により再現性が保証されます。Version 1.0.0 を実行すると、いつどこから呼び出しても常に同じコードが実行されます。

コンセプト

ドラフトとVersion

不変のスナップショット

各Versionは、公開時点のToolSetの完全なスナップショットを取得します:
  • すべてのToolコードとエントリーポイント
  • 入力スキーマと出力スキーマ
  • Tool名と説明
  • Sandbox設定(プロバイダー、言語、パッケージ、リソース)
これにより、後でドラフトを更新しても、既存のVersionは変更されません。

公開ワークフロー

1

ドラフトを編集する

WebコンソールまたはAPIを通じて、ドラフト内のToolに変更を加え、コンソールのテストパネルで動作を検証します。裏側のエンドポイントは POST /v1/orgs/{orgId}/toolsets/slack-tools/tools/post-message/test(ボディは { "input": { ... } })ですが、サインイン済みユーザーのセッションが必要なため、APIキーでは呼び出せません。
2

新しいVersionを公開する

ドラフトの準備ができたら、semverバージョン番号とオプションのリリースノートを指定して公開します(公開にもサインイン済みセッションが必要です。コンソールのNew Versionダイアログを使用してください):
APIキー(jtb_...)では 400(“User context required”)で拒否されます。SDKの publishVersion() もAPIキーを送るため、同じく失敗します。
3

公開Versionを設定する

新しく公開されたVersionは、"setAsPublished": false を渡さない限り、environmentSlug(デフォルト default)で指定した環境のアクティブVersionに自動的になります。後から別のVersionをアクティブにする場合や、別の環境でVersionをアクティブにする場合は、明示的に設定します:
変更は即座に反映されます。コンソールでは、VersionsタブのSet Activeを使用します。
4

開発を続ける

公開後もドラフトはそのまま残るため、ライブの公開Versionに影響を与えることなく、次のVersionに向けて反復的に開発を続けられます。

Versionの解決

run エンドポイント経由でToolを実行する際、Jinba Toolboxは使用するVersionを以下のように解決します:
  1. リクエストボディに version フィールドが含まれている場合、その正確なVersionが使用されます。
  2. それ以外の場合、ToolSet環境のアクティブVersionが使用されます。環境は、リクエストの environmentSlug フィールド、それがなければAPIキーに紐付けられた環境(セッションリクエストでは default)で決まります。
  3. その環境にアクティブVersionがない場合、組織の run およびMCPエンドポイントは latestVersion にフォールバックします。パブリックエンドポイントはフォールバックせず、「No published version available」を返します。

ロールバック

ロールバックは、環境のアクティブVersionを以前のものに変更するだけです:
Versionは不変であるため、ロールバック時にデータが失われることはありません。新しいVersionは引き続き利用可能で、いつでも再アクティブ化できます。

Version API

Versionデータモデル

公開された各Versionは完全なスナップショットを保存します:

使用量の追跡

Jinba Toolboxは、各Versionの直近30日間の実行回数を集計します。コンソールのVersionsタブでは各Versionの横にこの回数が表示され、Version一覧エンドポイントは runCount として返します。完全な履歴が必要な場合は、APIを通じて実行履歴を取得してください:
使用量データは、古いVersionを廃止しても安全かどうかを判断するのに役立ちます。

ベストプラクティス

  • セマンティックバージョニングに従う — 破壊的なスキーマ変更にはメジャーバンプ、新しいToolや機能にはマイナーバンプ、修正にはパッチバンプを使用してください。
  • リリースノートを記述する — Version間の変更点をチームが理解するのに役立ちます。
  • 公開前にテストする — 不変のVersionを作成する前に、test エンドポイントでドラフトを検証してください。
  • MCPの公開ステップを省略しない — MCPエンドポイントはドラフトではなく公開Versionを配信します。
  • Versionごとの使用状況を監視する — Versionを廃止する前に、依存している利用者がいないことを確認してください。

関連ドキュメント