Jinba Tool Registry
Guides

Import / Export

ToolSetをZIPファイルでインポート・エクスポートする方法

概要

ToolSetのツール群をZIPファイルとしてエクスポート・インポートできます。

ローカルエディタでコードを編集し、ZIPでインポートすることで効率的に開発できます。

ローカル編集 → Import → Draft更新 → Publish → Version作成

ZIPファイル構造

エクスポートされるZIPは以下の構造を持ちます。

{toolset-slug}/
├── toolset.yml
└── tools/
    └── {tool-slug}/
        ├── tool.yml
        └── main.py  (or main.ts)

ファイル形式

toolset.yml

ToolSetのメタデータを定義します。

name: My ToolSet
description: ToolSetの説明文
language: python  # python or typescript
packages:         # 省略可
  - name: requests
    version: "2.31.0"
  - name: beautifulsoup4
env:              # 省略可
  - key: SLACK_BOT_TOKEN
    secret: true           # secret はキーのみ、値なし
  - key: LOG_LEVEL
    value: debug            # 非 secret は値も含む
  • slugはZIPのルートディレクトリ名から自動決定されます
  • languageによってコードファイルの拡張子が決まります(.py / .ts
  • packagesはサンドボックスにインストールするパッケージの一覧です。versionを指定するとそのバージョンが使用されます(Python: requests==2.31.0、TypeScript: zod@3.24.0)。省略時は最新バージョンがインストールされます
  • envはサンドボックスに設定する環境変数の一覧です。secret: trueの変数はエクスポート時にキーのみ含まれ、値は含まれません。インポート時、secretでvalueのないエントリはスキップされます

tool.yml

各ツールのメタデータを定義します。

name: My Tool
description: ツールの説明文
entrypoint: run  # 省略時は "run"
  • slugはディレクトリ名から自動決定されます
  • entrypointはデフォルト値(run)の場合、エクスポート時に省略されます

コードファイル

ファイル名はlanguageに応じて main.py または main.ts です。

スキーマはコード内で定義し、インポート時に自動抽出されます。

Python(Pydantic)

from pydantic import BaseModel

class Input(BaseModel):
    query: str

class Output(BaseModel):
    result: str

def run(input: Input) -> Output:
    return Output(result=input.query.upper())

TypeScript(Zod)

import { z } from "zod";

export const input = z.object({ query: z.string() });
export const output = z.object({ result: z.string() });

export async function run(input: z.infer<typeof input>) {
  return { result: input.query.toUpperCase() };
}

Web UIでの操作

Export

  1. ToolSetの詳細画面で「Export」ボタンをクリック
  2. {slug}.zipがダウンロードされます

Import

  1. ToolSetの詳細画面で「Import」ボタンをクリック
  2. ZIPファイルを選択
  3. 確認画面でファイル名とオプションを確認
  4. 「Import」をクリックして実行

「Overwrite existing tools with same slug」を有効にすると、同じslugのツールが既に存在する場合に上書きされます。

エラー

ZIPファイルの解析時に以下のエラーが返される場合があります。

ケースエラーメッセージ
toolset.ymlが見つからないInvalid ZIP: no root directory found
toolset.ymlに必須フィールドがないInvalid toolset.yml: name and language are required
ツールにtool.ymlがないInvalid ZIP: tool.yml not found for tool "{slug}"
ツールにコードファイルがないInvalid ZIP: main.{ext} not found for tool "{slug}"

On this page