> ## Documentation Index
> Fetch the complete documentation index at: https://docs.jinba.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Jinba Toolbox

> フローから Jinba Toolbox に Python ツールを登録する

## 概要

Jinba Toolbox ツールを使うと、フロー内から [Jinba Toolbox](/ja/pages/toolbox/quickstart) に Python ツールを登録できます。初回実行時に ToolSet を作成し、実行のたびにツールを作成または更新するため、生成したツールをソースと同期した状態に保てます。

## 主な機能

* `JINBA_TOOLBOX_REGISTER_TOOL`
  * `org_id`、`tool_set_slug`、`tool_slug` で特定される Python ツールを登録または更新
  * ToolSet が存在しない場合は `tool_set_name` と `tool_set_description` を使って新規作成（非公開、Python サンドボックス）
  * `tool_name`、`tool_description`、`code` は実行のたびに送信され、`tool_name` を変更するとツール名が変更される
  * バージョンの Publish は行わないため、登録後に Toolbox の Web コンソールから Publish する

## 認証

config の `api_key` に Jinba Toolbox の API キー（シークレットタイプ `JINBA_TOOLBOX_API_KEY`）を設定します。任意の `base_url` config を指定すると、Jinba Flow の環境に設定された Toolbox API の URL を上書きできます。

**注意**: API キーは機密情報として扱い、公開リポジトリにコミットしないでください。

## 使用例

### 例：ツールを登録する

```yaml theme={null}
- id: register_tool
  name: register_tool
  tool: JINBA_TOOLBOX_REGISTER_TOOL
  config:
    - name: api_key
      value: "{{secrets.JINBA_TOOLBOX_API_KEY}}"
  input:
    - name: org_id
      value: my-org
    - name: tool_set_slug
      value: greetings
    - name: tool_set_name
      value: Greetings
    - name: tool_slug
      value: hello
    - name: tool_name
      value: Hello
    - name: tool_description
      value: 指定された名前への挨拶を返します。
    - name: code
      value: |
        from pydantic import BaseModel


        class Input(BaseModel):
            name: str


        class Output(BaseModel):
            message: str


        def run(input: Input) -> Output:
            return Output(message=f"こんにちは、{input.name} さん！")
```

## 注意事項

* 入力: `org_id`（Toolbox の組織 ID またはスラッグ）、`tool_set_slug` と `tool_slug`（小文字の英字・数字・ハイフン、64 文字以内）、`tool_set_name` と `tool_name`（256 文字以内）、`tool_set_description` と `tool_description`（任意、4,096 文字以内）、`code`（65,536 文字以内）。
* `code` には pydantic の `BaseModel` を継承した `Input` クラスと `Output` クラス、および `run(input: Input) -> Output` 関数を定義する必要があります。Toolbox はこれらからツールの入出力スキーマを抽出し、いずれかが欠けているコードは拒否されます。
* `tool_set_name` と `tool_set_description` は ToolSet の作成時にのみ使われ、既存の ToolSet の名前は変更されません。`tool_set_description` が空の場合は `tool_set_name` が使われます。`tool_description` が空の場合、既存ツールの説明は変更されません。
* `result` には `tool_set_slug`、`tool_slug`、`tool_set_created`、`tool_created` が含まれます（更新ではなく新規作成だった場合に `true`）。
* 同じ `tool_set_slug` / `tool_slug` への並行登録は調停されないため、フロー側で直列化してください。


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.